From b38c834182195ef14f99d6d5e8c3aa9f6c3d239d Mon Sep 17 00:00:00 2001 From: iris Date: Wed, 10 Jun 2026 19:28:29 +0200 Subject: [PATCH] =?UTF-8?q?fix(dashboard):=20keep=20the=20logs=20=E2=86=90?= =?UTF-8?q?=20home=20link=20+=20sub-tabs=20on=20one=20row?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The /logs.html header puts a flex:1 sub-tab strip (`.logs-tabbar`) next to the ← home back-link inside the flex `.page-header`. The strip is itself a flex container, so its default `min-width: auto` keeps it at its intrinsic content width and — without an explicit nowrap on the parent — it gets pushed onto its own row under the back-link. Mirror the working dashboard chrome (`.dashboard-chrome` / `.tabbar`, which sets `flex-wrap: nowrap`): make `.page-header` explicitly nowrap and give `.logs-tabbar` `min-width: 0` so it shrinks to share the row instead of wrapping. Affects every standalone page that uses `.page-header` (flow / logs / stats / settings); the nowrap is correct for all of them. --- frontend/packages/dashboard/src/logs.css | 5 ++++- frontend/packages/shared/src/chrome.css | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/packages/dashboard/src/logs.css b/frontend/packages/dashboard/src/logs.css index ee797a8c..fdaeef92 100644 --- a/frontend/packages/dashboard/src/logs.css +++ b/frontend/packages/dashboard/src/logs.css @@ -9,9 +9,12 @@ body.logs-shell { /* Base tab styling now lives in @hive/shared/tabs.css (.hive-tab*). The logs strip only adds a layout delta: fill the header row next to the - ← home back-link. */ + ← home back-link. `min-width: 0` lets this flex:1 nav shrink below its + intrinsic content width instead of being bumped onto its own row under + the back-link (the `.page-header` is explicitly nowrap; see chrome.css). */ .logs-tabbar { flex: 1; + min-width: 0; } .logs-main { diff --git a/frontend/packages/shared/src/chrome.css b/frontend/packages/shared/src/chrome.css index ee8778ab..5ca8cc80 100644 --- a/frontend/packages/shared/src/chrome.css +++ b/frontend/packages/shared/src/chrome.css @@ -23,6 +23,12 @@ backdrop-filter: blur(8px) saturate(120%); border-bottom: 1px solid var(--purple-dim); display: flex; + /* Keep the back-link + sub-tab nav on one row. Without an explicit + nowrap a flex:1 sub-tab strip (e.g. /logs.html's `.logs-tabbar`) + whose intrinsic min-content width can't shrink (default + `min-width: auto`) gets pushed onto its own line. The strip pairs + this with `min-width: 0` so it can shrink instead of wrapping. */ + flex-wrap: nowrap; align-items: center; gap: 1.5em; padding: 0.5em 1.5em;