Page Header
One compact, Linear-style header strip for every in-app screen. Left: the title (Sharp Grotesk, 18px) with an optional parent breadcrumb above it — no subtitle. Right: a primary action plus secondary / icon actions (overflow past 3). Optional tabs / filters sub-rows. Sticky, with a hairline divider. Phase 1 of the layout harmonization — see the tech design.
Top-level destination
A sidebar root (Home, Assets, a dashboard). Title only — no breadcrumb, since the sidebar already shows location. One primary action.
Competitive intelligence
Detail page (breadcrumb + actions)
A nested entity, Linear-compact: the breadcrumb trail is the header on one row, ending in the current entity as an emphasized leaf (the title). A favourite toggle as the trailing visual, icon-only utility actions, then the primary.
With tabs sub-row
In-page navigation lives in the tabs slot as segmented pills (the app's pill language, like Linear) — not an underline. A divider sits below the title, so the tab sub-row reads as a distinct strip beneath it.
My issues
With filters sub-row
The dashboards' channel / date / refresh chips fold into the filters slot — retiring the standalone FilterStrip.
Campaign spend
Action overflow
Past 3 visible secondary actions the rest collapse into a “…” menu (Material 3 ceiling). Emphasis comes from the primary's fill, not the count.
Top creatives
Breadcrumb (standalone)
Short trail
Chevron separators (Lucide 1.8px). The leaf is the current page — plain text, aria-current, never a link.
Long trail — truncated
Past 4 crumbs the middle collapses into a “…” menu; the first crumb and last two stay visible (Carbon / Primer).