From 891a8f82b7f2a62b51df21b20531fa9140ced74c Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Thu, 21 May 2026 12:30:40 -0400 Subject: [PATCH] =?UTF-8?q?web-ui:=20wave-1=20foundation=20=E2=80=94=20ser?= =?UTF-8?q?vices/web-ui/src/css/components/topbar.css?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/web-ui/src/css/components/topbar.css | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 services/web-ui/src/css/components/topbar.css diff --git a/services/web-ui/src/css/components/topbar.css b/services/web-ui/src/css/components/topbar.css new file mode 100644 index 0000000..20ecbf7 --- /dev/null +++ b/services/web-ui/src/css/components/topbar.css @@ -0,0 +1,79 @@ +/* topbar.css ─ sticky 48px topbar with breadcrumb + scoped search */ + +.wd-topbar { + position: sticky; + top: 0; + z-index: 30; + height: var(--topbar-h); + display: flex; + align-items: center; + padding: 0 12px 0 16px; + gap: 16px; + background: var(--bg-panel); + border-bottom: 1px solid var(--border-faint); + flex-shrink: 0; +} + +.wd-topbar-left { flex: 0 1 auto; min-width: 0; } +.wd-topbar-center { flex: 1 1 360px; display: flex; justify-content: center; } +.wd-topbar-right { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; margin-left: auto; } + +/* Breadcrumb */ +.wd-breadcrumb { + display: flex; + align-items: center; + gap: 0; + font: 500 13px/1 var(--font); +} +.wd-breadcrumb-crumb { color: var(--text-secondary); } +.wd-breadcrumb-crumb:last-child { color: var(--text-primary); font-weight: 600; } +.wd-breadcrumb-sep { + width: 10px; height: 10px; + margin: 0 8px; + color: var(--text-tertiary); + flex-shrink: 0; +} + +/* Page-scoped search */ +.wd-topbar-search { + width: 100%; + max-width: 360px; + height: 28px; + display: flex; + align-items: center; + gap: 6px; + padding: 0 10px; + background: var(--bg-deep); + border: 1px solid var(--border-faint); + border-radius: 4px; +} +.wd-topbar-search:focus-within { + border-color: var(--accent-border); + outline: 2px solid var(--accent-subtle); + outline-offset: 1px; +} +.wd-topbar-search svg { + width: 12px; height: 12px; + color: var(--text-tertiary); + flex-shrink: 0; +} +.wd-topbar-search input { + flex: 1; + background: transparent; + border: 0; + outline: 0; + font: 400 13px/1 var(--font-mono); + color: var(--text-primary); +} +.wd-topbar-search input::placeholder { + color: var(--text-tertiary); + font: 400 13px/1 var(--font-mono); +} + +/* Vertical divider between secondary actions and primary CTA */ +.wd-topbar-divider { + width: 1px; + height: 20px; + background: var(--border-faint); + margin: 0 4px; +}