-
-
Notifications
You must be signed in to change notification settings - Fork 5
Design System Layout Shell
github-actions[bot] edited this page Aug 20, 2026
·
4 revisions
Primary chrome shared across Chat and Code workspace views.
┌─────────────────────────────────────────────────────────┐
│ Top bar (--topbar-h: 52px) │
├──────────┬──────────────────────────────────────────────┤
│ Sidebar │ Messages / workspace │
│ 300px │ │
│ (48 rail)│ │
├──────────┴──────────────────────────────────────────────┤
│ Stats strip (instrumentation) │
├─────────────────────────────────────────────────────────┤
│ Composer (input bar + mode + context ring + send) │
└─────────────────────────────────────────────────────────┘
-
CSS:
topbar.css - Logic: model select, status, settings entry
-
Height:
--topbar-h(52px) - Border-bottom only; no shadow at rest
-
CSS:
sidebar.css -
Logic:
sidebar.ts,layout.ts -
Width:
--sidebar-w(300px); collapsed rail--sidebar-rail(48px) -
Breakpoints (
responsive.css):- ≤640px: fixed overlay + scrim (
--mn-overlay),--shadow-sidebar - 641–899px: narrower effective width in some layouts
- ≥900px: full width
- ≤640px: fixed overlay + scrim (
-
CSS:
input.css,composer-controls.css,composer-overflow.css,composer-model-trigger.css,mode-selector.css,context-usage.css -
Logic:
input.ts,composer-send.ts,mode-selector.ts,composer-compact.ts,context-usage-ring.ts -
Input:
#msgInputmin-height 44px; 16px font at ≤600px (iOS zoom guard) - Context ring: SVG ring on the compact row (after the model chip) showing context fill
-
Compact:
#composerControlsunder 880px (hysteresis leave 920px) shows mode dropdown, overflow cog, model, then context wheel inside the composer column. The cog sheet is two pages: labeled this-turn rows, then a Tools drill-in. The sheet portals todocument.body(z-index: 1200) while open so it paints above the chats sidebar.
-
CSS:
stats.css -
Logic:
stats.ts - Desktop: grid of metric cells, mono tabular values
- ≤600px: collapsed row;
.stats-strip.is-expandedon tap - Token bars: 6px track, warning (prompt) + success (completion) fills
-
Drawer: right sheet
min(420px, 100vw - 16px), slide 0.22s--ease-out -
Full page:
settings-page.css, route#/settings/... - Controls: shared primitives in primitives.md
| Region | Token | CSS |
|---|---|---|
| File sidebar |
--file-sidebar-w (350px) |
file-panel.css |
| Split viewer |
--split-ratio (0.55) |
init-file-panel.ts |
| Terminal | — | terminal.css |
| Token | Value | Typical use |
|---|---|---|
--bp-compact |
600px | Stats collapse, composer font bump |
--bp-mobile |
640px | Sidebar overlay |
--bp-wide |
900px | Full sidebar width |
- Panel reveal:
motion.css(minnow-panel-reveal) - Durations:
--duration-fast(150ms),--duration-normal(220ms),--duration-slow(350ms) -
prefers-reduced-motion: transitions stripped inglobal.css - No width animation on desktop rails (resize uses pointer capture, not CSS layout transition)
Generated from documentation/. Do not edit generated pages directly.
Extensions
Developer reference
Contributing
- Accessibility and keyboard-first audit
- Minnow apps
- Architecture overview
- Command reference
- LAN companion
- Orchestrator V2 board testing
- Contributing to Minnow
- Setup from source
Design system
- CSS file map
- Layout shell
- UI primitives
- Minnow design system (current state)
- Minnow Shell
- Themes
- Design tokens
Guides
- Accessibility and keyboard-first audit
- Minnow apps
- Architecture overview
- Command reference
- Configuration & storage
- Keyboard shortcuts
- LAN companion
- Model bench: Flip Match v1
- Orchestrate board testing
- Minnow guides
- Release E2E testing guide
- Setup guide
- Troubleshooting
- Minnow wiki
Maintainers
- macOS release signing & notarization
- Prompt ownership matrix (MIN-379)
- Releasing Minnow
- Settings reference
- GitHub Wiki publishing
Apps
Chat
Core concepts
Extend Minnow
Get started
Orchestrate
Overview
Reference