From e768136e5d1d021d48c5691d11be5e25aa6145ca Mon Sep 17 00:00:00 2001 From: "DESKTOP-TKLFCPR\\ython" Date: Mon, 1 Jun 2026 01:53:57 +0900 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=EB=A1=9C=EA=B3=A0=20=ED=95=84?= =?UTF-8?q?=ED=84=B0=20=EC=A0=9C=EA=B1=B0,=20=EB=A9=94=EB=89=B4=20?= =?UTF-8?q?=EB=84=A4=EB=B9=84=EA=B2=8C=EC=9D=B4=EC=85=98=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Header.css: filter brightness/invert 완전 제거, cursor:pointer 추가 - Header.jsx: 상단 메뉴 클릭 시 첫 하위 페이지 이동, 드롭다운 닫힘 딜레이 200ms - SolutionPage.jsx: 폴백 라우트 * 추가 --- frontend/src/components/layout/Header.css | 4 ++-- frontend/src/components/layout/Header.jsx | 8 +++++--- frontend/src/pages/SolutionPage.jsx | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/layout/Header.css b/frontend/src/components/layout/Header.css index 3cc3e00..d688576 100644 --- a/frontend/src/components/layout/Header.css +++ b/frontend/src/components/layout/Header.css @@ -25,8 +25,8 @@ } /* 로고 */ -.logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; } -.logo img { height: 40px; width: auto; filter: brightness(0) invert(1); } +.logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; cursor: pointer; text-decoration: none; } +.logo img { height: 40px; width: auto; } .logo-text { color: #fff; font-size: 20px; font-weight: 700; } .logo-text strong { color: var(--accent); } diff --git a/frontend/src/components/layout/Header.jsx b/frontend/src/components/layout/Header.jsx index 6d1250a..53f64fb 100644 --- a/frontend/src/components/layout/Header.jsx +++ b/frontend/src/components/layout/Header.jsx @@ -60,6 +60,7 @@ export default function Header() { const [activeMenu, setActiveMenu] = useState(null); const [mobileOpen, setMobileOpen] = useState(false); const [member, setMember] = useState(null); + const closeTimer = React.useRef(null); const location = useLocation(); const navigate = useNavigate(); @@ -117,10 +118,11 @@ export default function Header() { {MENU.map(menu => (
setActiveMenu(menu.id)} - onMouseLeave={() => setActiveMenu(null)}> + onMouseEnter={() => { clearTimeout(closeTimer.current); setActiveMenu(menu.id); }} + onMouseLeave={() => { closeTimer.current = setTimeout(() => setActiveMenu(null), 200); }}> {activeMenu === menu.id && ( diff --git a/frontend/src/pages/SolutionPage.jsx b/frontend/src/pages/SolutionPage.jsx index 03874f7..c66c47e 100644 --- a/frontend/src/pages/SolutionPage.jsx +++ b/frontend/src/pages/SolutionPage.jsx @@ -287,6 +287,7 @@ export default function SolutionPage() { } /> } /> } /> + } /> ); }