-
-
Notifications
You must be signed in to change notification settings - Fork 5
Design System Shell
Electron shell layer wrapping Minnow apps: menubar, app rail, workspace gate, full-stage app surfaces. Tokens alias the chat palette via --os-* → --mn-*.
src/styles/minnowos-tokens.css
| OS token | Maps to |
|---|---|
--os-bg |
--mn-bg |
--os-surface-0 … --os-surface-3
|
--mn-surface-* (+ mixed surface-3) |
--os-text, --os-text-dim, --os-text-faint
|
--mn-fg, muted, subtle |
--os-border, --os-border-strong
|
--mn-border* |
--os-accent, --os-accent-2, --os-on-accent, --os-accent-soft, --os-accent-glow
|
Accent family |
--os-menubar-h |
46px (shell menubar) |
--os-r-sm/md/lg/xl |
Radii (md = 9px, xl = 20px) |
--os-wall-a/b/c |
Wallpaper gradient stops (per theme) |
Core --os-* tokens are on :root as well as .mn-os so wallpaper thumbnails render outside the live shell.
| Module | Role |
|---|---|
shell.ts |
OS stage (#osStage), immersive mode |
workspace-gate.ts |
#/workspaces picker until a folder is chosen |
app-rail.ts |
Left app rail (released apps) |
menubar.ts |
Top menubar, model chip, settings entry |
router.ts |
Hash routes, legacy redirects (#/desktop, #/app/chat) |
app-registry.ts |
Released app metadata (rail, shortcuts, launches) |
wallpaper.ts |
Stage background renderer |
window-control-buttons.ts |
Frameless Electron chrome |
Released apps mount as full-stage layers in #osAppsLayer. Scheduler is a side-panel overlay; Settings opens from the menubar gear.
These names may still appear in old CSS comments or git history; they are not in the tree:
| Former module | Replaced by |
|---|---|
dock-launcher.ts |
app-rail.ts |
desktop-chat.ts |
Code chat rail (#/app/code/chat) |
window-manager.ts |
Full-stage #osAppsLayer + Scheduler side panel |
| File | Scope |
|---|---|
minnowos-shell.css |
Menubar, stage chrome, app rail |
minnowos-rail.css |
App rail tiles |
workspace-gate.css |
Workspaces picker |
minnowos-responsive.css |
Narrow-layout rail, drawers, bottom tab bar |
Wallpaper layers and full-stage app chrome are declared in minnowos-tokens.css and minnowos-shell.css; there is no separate wallpaper or apps stylesheet.
The shell is a single full-stage surface. Do not introduce floating-window chrome, dock tiles, or a separate chat surface: apps take the stage, Scheduler overlays it as a side panel, and chat lives in Code.
Theme family backgrounds (src/theme.ts):
- underwater (default), minnow fish (boids + glyph), aurora, starfield, gradient, flat
- custom image (IndexedDB via
asset-store.ts) - retired aliases:
mesh→gradient,grain→flat
Fish wallpaper tints --mn-accent via minnow-glyph-white.svg.
Shell chrome uses .mn-os-* prefixes. Do not mix OS rules into chat CSS without scoping under .mn-os.
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