AppSidebar replaced with fixed 64px icon rail and 224px secondary nav

hosman20 scraps the collapsible sidebar for a two-column desktop shell. The chrome is self-contained under `components/chrome/` but carries real dependencies: Mike 2.1 tokens, a /playbooks stub, and no mobile fallback.

chat-uibranding

Commit 571af72 replaces AppSidebar with two new components: frontend/src/components/chrome/icon-rail.tsx (64px wide, top-level nav icons) and frontend/src/components/chrome/secondary-nav.tsx (224px wide, contextual content including a Playbooks entry). The layout in (pages)/layout.tsx shrinks from ~94 to ~25 net lines as about 70 lines of sidebar toggle state management disappear. The new layout is [ IconRail 64w ][ SecondaryNav 224w ][ main fills ], all three columns side by side.

A few things to know before importing. Mobile: below md breakpoint both columns are hidden with no drawer fallback added yet. The SidebarContext is preserved for downstream consumers that still call setSidebarOpen, but the setter is now a no-op ((_open: boolean) => undefined) because the new chrome has no collapse state. The old AppSidebar.tsx stays on disk until a separate cleanup commit (9974612) deletes it. The Playbooks nav entry points to a route that 404s until the follow-up commit adds the stub.

Smoke tests in chrome.smoke.test.tsx cover IconRail and SecondaryNav rendering.

So what Worth a look if you want a fixed two-rail chrome pattern and are already adopting the Mike 2.1 token system. Adopt it as a unit - the components reference `sidebar` token names that only exist after the `globals.css` rewrite. Skip if you need a working mobile nav before landing this.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from hosman20/mike-2.0, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
571af72d feat(chrome): split AppSidebar into 64px IconRail and 224px SecondaryNav z 2026-05-13 ↗ GitHub
commit body
Batch 3 - replace the legacy collapsible AppSidebar with the Mike 2.1
two-column nav shell (IconRail 64w + SecondaryNav 224w).

- frontend/src/components/chrome/icon-rail.tsx: top-level icon column.
- frontend/src/components/chrome/secondary-nav.tsx: contextual nav,
  includes a new Playbooks entry.
- frontend/src/app/(pages)/layout.tsx: switch to new chrome.
- frontend/src/components/chrome/__tests__/chrome.smoke.test.tsx.

.pen frame references: wF9tL, x72bX, FdYC1, yEGYQ, QxArF, CzlFI.

Notes:
- AppSidebar.tsx left on disk (removed in batch 7 cleanup commit).
- Mobile (<md) currently hides both columns; no drawer yet.
- TrialBanner mount in this layout lands in batch 6 (billing UI).

Agent ID: a36447602e8db8572 (general-purpose).

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-405.md from inside the repo you want the changes in.

⬇ Download capture-thread-405.md