From 54b7aa1e322ca2738a389c07f2f9a9faaa660f14 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 18 Jun 2026 16:50:06 +0000 Subject: [PATCH] Extend Infrastructure hero banner to the top, overlapping the top bar Moves the hero rendering to the layout level so the banner shows the full golden arch and sky behind the page title, search bar, and sub-tabs row. TopBar and the search input backgrounds are now transparent so the banner reads through cleanly. --- src/App.tsx | 36 +++++++++++-- src/components/TopBar.tsx | 6 +-- src/pages/Infrastructure.tsx | 99 ++++++++++++++---------------------- 3 files changed, 73 insertions(+), 68 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 4b92cca..e93d4d6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,5 @@ import { useState } from 'react' -import { Routes, Route } from 'react-router-dom' +import { Routes, Route, useLocation } from 'react-router-dom' import Sidebar from './components/Sidebar' import TopBar from './components/TopBar' import Glance from './pages/Glance' @@ -8,6 +8,8 @@ import Infrastructure from './pages/Infrastructure' function App() { const [sidebarCollapsed, setSidebarCollapsed] = useState(false) const sidebarWidth = sidebarCollapsed ? 64 : 200 + const location = useLocation() + const showHero = location.pathname === '/infrastructure' return (
@@ -17,14 +19,38 @@ function App() { />
- + {showHero && ( +
+ +
+
+ )} + +
+ +
} /> diff --git a/src/components/TopBar.tsx b/src/components/TopBar.tsx index d7bff31..1594fec 100644 --- a/src/components/TopBar.tsx +++ b/src/components/TopBar.tsx @@ -28,7 +28,7 @@ export default function TopBar() { }, []) return ( -
+
{/* Page Title — pushed away from sidebar edge */}

{title} @@ -41,8 +41,8 @@ export default function TopBar() {

diff --git a/src/pages/Infrastructure.tsx b/src/pages/Infrastructure.tsx index 7d5c0eb..2968b64 100644 --- a/src/pages/Infrastructure.tsx +++ b/src/pages/Infrastructure.tsx @@ -117,67 +117,46 @@ export default function Infrastructure() { return ( <> - {/* Hero banner — faded seamlessly into the page background, no hard edges */} -
- -
- - {/* Sub-tabs + Add Resource, overlaid on the banner */} -
-
- {subTabs.map((tab) => { - const active = tab === activeTab - return ( - - ) - })} -
- + {/* Sub-tabs + Add Resource — hero banner is rendered at the layout level behind this */} +
+
+ {subTabs.map((tab) => { + const active = tab === activeTab + return ( + + ) + })}
+
{/* Status Cards */}