fix(front) Добавлен бургер меню , изменена верстка

This commit is contained in:
2026-06-10 11:30:38 +03:00
parent 21f7e75a63
commit 5fed1bd16d
6 changed files with 175 additions and 54 deletions
+23
View File
@@ -0,0 +1,23 @@
import PropTypes from "prop-types";
export default function BurgerButton({ onClick }) {
return (
<button onClick={onClick}>
<svg
width="26"
height="14"
viewBox="0 0 26 14"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="pr-1"
>
<path d="M0 1H26" stroke="#B78A61" strokeWidth="2" />
<path d="M0 7H26" stroke="#B78A61" strokeWidth="2" />
<path d="M0 13H26" stroke="#B78A61" strokeWidth="2" />
</svg>
</button>
);
}
BurgerButton.propTypes = {
onClick: PropTypes.func.isRequired,
};
+21
View File
@@ -0,0 +1,21 @@
export default function BurgerClose() {
return (
<svg
width="18"
height="18"
viewBox="0 0 18 18"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g clipPath="url(#clip0_305_391)">
<path d="M1 17L17 1.00003" stroke="#B78A61" strokeWidth="2" />
<path d="M1 1L17 17" stroke="#B78A61" strokeWidth="2" />
</g>
<defs>
<clipPath id="clip0_305_391">
<rect width="18" height="18" fill="white" />
</clipPath>
</defs>
</svg>
);
}
+62
View File
@@ -0,0 +1,62 @@
import { useNavigate } from "react-router-dom";
import BurgerClose from "./BurgerClose";
export default function BurgerMenu({ isOpen, onClose }) {
const navigate = useNavigate();
return (
<div
onClick={onClose}
className={`fixed inset-0 bg-black/60 backdrop-blur-sm z-40 transition-all duration-300 ease-in-out ${isOpen ? "visible" : "invisible"}
`}
>
<div
className={`fixed top-0 left-0 bottom-0 w-4/5 max-w-sm bg-dark-blue p-6 z-50 flex flex-col transition-transform duration-300 ease-in-out ${isOpen ? "translate-x-0" : "-translate-x-full"
}`}
>
<div className="flex justify-start pt-12 px-6">
<button onClick={onClose}>
<BurgerClose />
</button>
</div>
<div className="flex flex-col text-lg font-medium text-white gap-6 transition-color duration-200 hover:text-gold justify-center items-center">
<button
className="hover:text-gold duration-200 transition uppercase"
onClick={() => navigate("/about")}
>
fish fish
</button>
<svg
width="4"
height="4"
viewBox="0 0 4 4"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<circle cx="2" cy="2" r="2" fill="white" />
</svg>
<button
className="hover:text-gold duration-200 transition uppercase"
onClick={() => navigate("/shop")}
>
ассортимент
</button>
<svg
width="4"
height="4"
viewBox="0 0 4 4"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<circle cx="2" cy="2" r="2" fill="white" />
</svg>
<button
className="hover:text-gold duration-200 transition uppercase"
onClick={() => navigate("/about")}
>
контакты
</button>
</div>
</div>
</div>
);
}
+1 -1
View File
@@ -7,7 +7,7 @@ export default function HeaderDesktop() {
return (
<header className="w-full h-27.5 px-16 flex items-center justify-between ">
<button
className="flex flex-col items-center gap-2 text-lg tracking-widest text-gold"
className="flex flex-col items-center text-lg tracking-widest text-gold"
onClick={() => navigate("/")}
>
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
+17 -3
View File
@@ -1,19 +1,31 @@
import { useNavigate } from "react-router-dom";
import siteLogo from "../assets/Исходники/logo.png";
import BurgerButton from "./BurgerButton";
import { useState } from "react";
import BurgerMenu from "./BurgerMenu";
export default function HeaderMobile() {
const navigate = useNavigate();
const [isOpen, setIsOpen] = useState(false);
return (
<>
<header className="w-full h-27.5 px-6 flex items-center justify-between ">
<div className="flex items-center gap-1">
<BurgerButton isOpen={isOpen} onClick={() => setIsOpen(!isOpen)} />
<button
className="flex flex-col items-center gap-2 text-sm tracking-widest text-gold"
className="flex flex-col items-center text-sm tracking-widest text-gold"
onClick={() => navigate("/")}
>
<img src={siteLogo} alt="Лого" className="w-12 h-12 object-contain" />
<img
src={siteLogo}
alt="Лого"
className="w-12 h-12 object-contain"
/>
<span>FISH FISH</span>
</button>
</div>
<div className="flex items-center">
<button className="text-slate-200 hover:text-gold transition-colors duration-200 pr-7">
<svg
@@ -60,5 +72,7 @@ export default function HeaderMobile() {
</button>
</div>
</header>
<BurgerMenu isOpen={isOpen} onClose={() => setIsOpen(false)} />
</>
);
}
+1
View File
@@ -7,6 +7,7 @@
--color-light-blue: #1c3751;
--color-light-gray: #d2cccc;
--font-sans: "Ubuntu", sans-serif;
--color-dark-blue: #051b26;
}
@layer base {