feat(responsividade): Adiciona responsividade do header
This commit is contained in:
parent
f25f18824c
commit
0e02133dde
@ -1,3 +1,4 @@
|
|||||||
|
import { useState } from "react";
|
||||||
import SearchBar from "./SearchBar";
|
import SearchBar from "./SearchBar";
|
||||||
import Logo from "../assets/img/logoM3.png";
|
import Logo from "../assets/img/logoM3.png";
|
||||||
import Cart from "../assets/img/Cart.png";
|
import Cart from "../assets/img/Cart.png";
|
||||||
@ -7,13 +8,9 @@ import HeaderLinks from "./HeaderLinks";
|
|||||||
import MenuMobile from "./menuMobile";
|
import MenuMobile from "./menuMobile";
|
||||||
|
|
||||||
const Header = () => {
|
const Header = () => {
|
||||||
const activeMenuMobile = async () => {
|
const [isActive, setIsActive] = useState(false);
|
||||||
const menu = document.querySelector(".page-header__menu-mobile");
|
const activeMenuMobile = () => {
|
||||||
if (menu?.classList.contains("active")) {
|
setIsActive(!isActive);
|
||||||
menu?.classList.remove("active");
|
|
||||||
} else {
|
|
||||||
menu?.classList.add("active");
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -28,16 +25,23 @@ const Header = () => {
|
|||||||
>
|
>
|
||||||
<img src={iconMenu} alt="" />
|
<img src={iconMenu} alt="" />
|
||||||
</button>
|
</button>
|
||||||
<MenuMobile onClick={activeMenuMobile} />
|
<MenuMobile
|
||||||
|
className={
|
||||||
|
isActive
|
||||||
|
? "page-header__menu-mobile active"
|
||||||
|
: "page-header__menu-mobile"
|
||||||
|
}
|
||||||
|
onClick={activeMenuMobile}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<a href="/">
|
<a className="page-header__logo" href="/">
|
||||||
<img src={Logo} alt="" />
|
<img src={Logo} alt="" />
|
||||||
</a>
|
</a>
|
||||||
<SearchBar />
|
<SearchBar />
|
||||||
<div className="page-header__container-login">
|
<div className="page-header__container-login">
|
||||||
<Link link="/" text="ENTRAR" />
|
<Link link="/" text="ENTRAR" />
|
||||||
<a href="/" aria-label="Carrinho">
|
<a href="/" aria-label="Carrinho" className="page-header__cart">
|
||||||
<img src={Cart} alt="" className="page-header__cart" />
|
<img src={Cart} alt="" className="page-header__cart-image" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,12 +3,13 @@ import Link from "./Link";
|
|||||||
import HeaderLinks from "./HeaderLinks";
|
import HeaderLinks from "./HeaderLinks";
|
||||||
|
|
||||||
interface MenuMobileProps {
|
interface MenuMobileProps {
|
||||||
|
className: string;
|
||||||
onClick: React.MouseEventHandler;
|
onClick: React.MouseEventHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MenuMobile = (props: MenuMobileProps) => {
|
const MenuMobile = (props: MenuMobileProps) => {
|
||||||
return (
|
return (
|
||||||
<div className="page-header__menu-mobile">
|
<div className={props.className}>
|
||||||
<div className="page-header__menu-mobile--container">
|
<div className="page-header__menu-mobile--container">
|
||||||
<div className="page-header__menu-mobile--header">
|
<div className="page-header__menu-mobile--header">
|
||||||
<Link link="/" text="ENTRAR" />
|
<Link link="/" text="ENTRAR" />
|
||||||
|
@ -9,17 +9,24 @@
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__logo {
|
||||||
|
min-width: 136px;
|
||||||
|
width: 12.6%;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__busca {
|
&__busca {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 264px;
|
width: 24.45%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__busca-input {
|
&__busca-input {
|
||||||
width: 98.6%;
|
width: 100%;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
background: $white;
|
background: $white;
|
||||||
border: 2px solid $gray-700;
|
border: 2px solid $gray-700;
|
||||||
@ -42,7 +49,7 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
right: 7px;
|
right: 16px;
|
||||||
width: 18px;
|
width: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,6 +59,14 @@
|
|||||||
gap: 55px;
|
gap: 55px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&__cart {
|
||||||
|
width: 28px;
|
||||||
|
|
||||||
|
&-image {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@ -67,6 +82,10 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 55px;
|
gap: 55px;
|
||||||
|
|
||||||
|
.link {
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__menu-button {
|
&__menu-button {
|
||||||
@ -128,7 +147,46 @@
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 2500px) {
|
||||||
|
&__container-top {
|
||||||
|
height: 103px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__logo {
|
||||||
|
min-width: 265px;
|
||||||
|
width: 11.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__busca {
|
||||||
|
width: 22.4%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__busca-input {
|
||||||
|
height: 57px;
|
||||||
|
font-size: 28px;
|
||||||
|
line-height: 33px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__busca-icon {
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
right: 7px;
|
||||||
|
width: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__cart {
|
||||||
|
width: 54px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link {
|
||||||
|
font-size: 28px;
|
||||||
|
line-height: 33px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__container-bottom {
|
||||||
|
height: 59px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 1025px) {
|
@media screen and (min-width: 1025px) {
|
||||||
&__container-top {
|
&__container-top {
|
||||||
|
@ -2,4 +2,5 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-family: $font-family;
|
font-family: $font-family;
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user