Files
warmbly/web/src
Matthew Meszaros cb193f9800 refactor(web): linear-style theme — dense, neutral, no chrome
Outer shell:
- AppShell: drop SkyChrome backdrop and the rounded-tl content tuck.
  L-shape becomes side-by-side: white sidebar (220px) + white content
  column with a hairline #e2e8f0 divider. No decorative background.
- SkyChrome: now a no-op stub. Kept as a named export so the import
  path stays stable if we ever bring decoration back.
- AppNav: drop the "New Campaign" sky pill. Sidebar opens straight
  into the nav tree — logo + org switcher in a slim 44px header row,
  28px nav rows, sentence-case section labels, hairline borders top
  and bottom. Active row = bg-slate-100 + slate-900 text. No shadows.
- AppHeader: 40px breadcrumb strip in the content column (was a
  full-width 56px row spanning the shell). No logo here — it lives
  in the sidebar header.
- OrgSwitcher: slate-900 initial tile instead of sky-600. Sized to
  match the slimmer sidebar (28px tall, 12.5px text).
- UserNav: smaller 24px avatar, tighter row height, slate-100 hover.

Page primitive:
- Page padding: px-4 pt-3 pb-10 (was px-8 pt-8 pb-16).
- PageHeader: single 36px toolbar row — title + subtitle on the same
  baseline, actions on the right. Drops the 28px serif title block
  and the dedicated subtitle paragraph.
- PageSection: 28px header row with title (12.5px) and inline desc.
- StatCard: redesigned as a divided strip cell. Use inside StatRow
  for a row of stats with vertical-rule dividers and a single outer
  border, replacing the four floating shadow-tile cards.
- EmptyState: text-led, dashed-border block, 40px tall icon.

Page sweep:
- All /app pages: sky-600 buttons → slate-900 (h-7 px-2.5 rounded-md,
  text-[12.5px]). Same height as the new toolbar so the page header
  reads as one line.
- emails + analytics: switch StatCards into the new StatRow.
- emails: slate avatar tile instead of sky, slate accent on checkboxes.
- campaigns: slate card chrome instead of sky-tinted hover.
- analytics: slate bars instead of sky, smaller paddings, breakdown
  list reads as a tight column instead of a card.
2026-05-22 16:25:03 +00:00
..