From b6fd1100241dc1634f3cabdb2c7c92fe1d78c5a2 Mon Sep 17 00:00:00 2001 From: Harkirat Date: Fri, 15 May 2026 00:28:19 +0530 Subject: [PATCH 1/4] fix: refine mega menu layout and spacing --- frontend/src/components/shared/Navbar.jsx | 193 +++++++++++----------- 1 file changed, 98 insertions(+), 95 deletions(-) diff --git a/frontend/src/components/shared/Navbar.jsx b/frontend/src/components/shared/Navbar.jsx index a88ce65..767cfdf 100644 --- a/frontend/src/components/shared/Navbar.jsx +++ b/frontend/src/components/shared/Navbar.jsx @@ -204,116 +204,119 @@ export default function Navbar() { {/* ── Mega Menu Panel ── */} - {megaOpen && ( -
- {/* Top accent bar */} -
+
+ {/* Top accent bar */} +
-
-

+

+
+

AI-Powered Tools — GSSoC '26

-
- {MEGA_MENU_ITEMS.map((item, i) => { - const Wrapper = item.to ? Link : "div"; - const hasSubmenu = item.submenu && item.submenu.length > 0; - - if (hasSubmenu) { - return ( -
-
-
- {item.icon} - - {item.label} - - {item.tag && ( - - {item.tag} - - )} -
-

- {item.desc} -

-
-
- {item.submenu.map((subItem, subIdx) => ( - -
- {subItem.icon} - - {subItem.label} - -
-

- {subItem.desc} -

- - ))} -
-
- ); - } - + + v2.0 + +
+ +
+ {MEGA_MENU_ITEMS.map((item, i) => { + const Wrapper = item.to ? Link : "div"; + const hasSubmenu = item.submenu && item.submenu.length > 0; + + if (hasSubmenu) { return ( - -
- {item.icon} - - {item.label} - +
+
+ {item.icon} + + {item.label} + +
{item.tag && ( - + {item.tag} )}
-

- {item.desc} -

- +
+ {item.submenu.map((subItem) => ( + +
+ {subItem.icon} + + {subItem.label} + +
+

+ {subItem.desc} +

+ + ))} +
+
); - })} -
+ } + + return ( + +
+ {item.icon} + + {item.label} + + {item.tag && ( + + {item.tag} + + )} +
+

+ {item.desc} +

+
+ ); + })} +
- {/* Footer strip */} -
- - More tools shipping soon - - - View All → - -
+ {/* Footer strip */} +
+ + Next update: June 2026 + + + All Tools → +
- )} +
From c7833daa500f6e1e561ccd522edbb2001ceda2b5 Mon Sep 17 00:00:00 2001 From: Harkirat Date: Fri, 15 May 2026 01:00:03 +0530 Subject: [PATCH 2/4] fix: keyboard accessibility and aria-hidden for mega menu --- frontend/src/App.jsx | 4 ++++ frontend/src/components/shared/Navbar.jsx | 5 +++-- frontend/src/pages/Toolspage.jsx | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 frontend/src/pages/Toolspage.jsx diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 0162e74..8005d46 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -21,6 +21,7 @@ import NotFoundPage from "./pages/NotFoundPage"; import ForgotPassword from "./components/auth/ForgotPassword"; import ProtectedRoute from "./components/shared/ProtectedRoute"; import PublicRoute from "./components/shared/PublicRoute"; +import ToolsPage from "./pages/ToolsPage"; export default function App() { return ( @@ -81,7 +82,10 @@ export default function App() { } /> } /> } /> + } /> + + diff --git a/frontend/src/components/shared/Navbar.jsx b/frontend/src/components/shared/Navbar.jsx index 767cfdf..0c0b368 100644 --- a/frontend/src/components/shared/Navbar.jsx +++ b/frontend/src/components/shared/Navbar.jsx @@ -208,6 +208,7 @@ export default function Navbar() { ref={megaRef} onMouseEnter={handleMegaMouseEnter} onMouseLeave={handleMegaMouseLeave} + aria-hidden={!megaOpen} className={`absolute top-full left-1/2 mt-4 w-[580px] bg-white border-4 border-black z-50 transition-all duration-200 origin-top ${ megaOpen ? "opacity-100 translate-y-0 scale-100 visible" @@ -230,7 +231,7 @@ export default function Navbar() {
{MEGA_MENU_ITEMS.map((item, i) => { - const Wrapper = item.to ? Link : "div"; + const Wrapper = item.to ? Link : "button"; const hasSubmenu = item.submenu && item.submenu.length > 0; if (hasSubmenu) { @@ -509,7 +510,7 @@ export default function Navbar() { return ( diff --git a/frontend/src/pages/Toolspage.jsx b/frontend/src/pages/Toolspage.jsx new file mode 100644 index 0000000..65c43a1 --- /dev/null +++ b/frontend/src/pages/Toolspage.jsx @@ -0,0 +1,7 @@ +export default function ToolsPage() { + return ( +
+

All Tools — Coming Soon

+
+ ); +} \ No newline at end of file From c808dd7d0ee642e681d2e97bffc128f030480e8e Mon Sep 17 00:00:00 2001 From: Harkirat Date: Fri, 15 May 2026 13:52:18 +0530 Subject: [PATCH 3/4] fix: remove GSSoC branding, reduce mega menu size and padding --- frontend/src/App.jsx | 4 ++-- frontend/src/components/shared/Navbar.jsx | 24 +++-------------------- frontend/src/pages/Toolspage.jsx | 7 ------- 3 files changed, 5 insertions(+), 30 deletions(-) delete mode 100644 frontend/src/pages/Toolspage.jsx diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 8005d46..99bd1ef 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -21,7 +21,7 @@ import NotFoundPage from "./pages/NotFoundPage"; import ForgotPassword from "./components/auth/ForgotPassword"; import ProtectedRoute from "./components/shared/ProtectedRoute"; import PublicRoute from "./components/shared/PublicRoute"; -import ToolsPage from "./pages/ToolsPage"; + export default function App() { return ( @@ -82,7 +82,7 @@ export default function App() { } /> } /> } /> - } /> + diff --git a/frontend/src/components/shared/Navbar.jsx b/frontend/src/components/shared/Navbar.jsx index 0c0b368..e164982 100644 --- a/frontend/src/components/shared/Navbar.jsx +++ b/frontend/src/components/shared/Navbar.jsx @@ -219,15 +219,8 @@ export default function Navbar() { {/* Top accent bar */}
-
-
-

- AI-Powered Tools — GSSoC '26 -

- - v2.0 - -
+
+
{MEGA_MENU_ITEMS.map((item, i) => { @@ -304,18 +297,7 @@ export default function Navbar() {
{/* Footer strip */} -
- - Next update: June 2026 - - - All Tools → - -
+
diff --git a/frontend/src/pages/Toolspage.jsx b/frontend/src/pages/Toolspage.jsx deleted file mode 100644 index 65c43a1..0000000 --- a/frontend/src/pages/Toolspage.jsx +++ /dev/null @@ -1,7 +0,0 @@ -export default function ToolsPage() { - return ( -
-

All Tools — Coming Soon

-
- ); -} \ No newline at end of file From f17ea42352de1007485bd0288c83ceead798cc4a Mon Sep 17 00:00:00 2001 From: Harkirat Date: Fri, 15 May 2026 14:07:49 +0530 Subject: [PATCH 4/4] fix : remove footer strip comment --- frontend/src/components/shared/Navbar.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/components/shared/Navbar.jsx b/frontend/src/components/shared/Navbar.jsx index e164982..40698ef 100644 --- a/frontend/src/components/shared/Navbar.jsx +++ b/frontend/src/components/shared/Navbar.jsx @@ -296,7 +296,6 @@ export default function Navbar() { })}
- {/* Footer strip */}