Decision 0021
One token file generates every surface
Architecture decision record 0021: One token file generates every surface
Context
Maximum beauty with minimal design means one source of truth and nothing hand-tuned per surface.
The three plans
- Grok: dim phosphor, one accent, no neon soup; 16-colour capable; fewer themes than docs.
- Fable: one config drives Hyprland, waybar, terminal, GTK, Neovim; six to eight curated themes; one mono and one sans.
- Codex: minimal, quiet, dense when needed, dark and light, animation sparingly; avoid gamer styling, hacker green, glassmorphism, giant chat windows.
Decision
design/tokens.toml (colour scales, one accent, type scale, spacing, radii, motion) generates the
TUI theme, the Iced theme, the terminal palette, the Niri configuration fragment, and palette-level
GTK and Qt themes (they honour no more). Inter for interface text, JetBrains Mono for code and the
TUI; a proper icon set, no patched fonts. Dark and light as equals; motion only when it explains a
state change; no neon, glass, gradients or sci-fi noise. Published budgets: power-on to prompt,
idle memory, tacid diff latency, no-op apply, voice latencies; measured in CI on the reference
laptop.
Consequences
- Themes are token files; contributions cannot introduce hard-coded colours.
- The badges (
NET,AIRGAP,SOVEREIGN,MIC,SELF-BUILT) are part of the design system, not afterthoughts.
Alternatives rejected
- Per-app theming: drift and inconsistency within a month.
- Nerd Font glyphs everywhere: legibility and licensing noise.