Themes
Visual Integrity Report
Generated: 2026-09-20 Scope: terminal theme SSOT, shell first-paint path, font rendering, and cross-platform template intent.
| Metric | Current | Target | Status |
|---|---|---|---|
| Body text contrast | Catalog minimum 14.950:1 | WCAG >= 7:1 | Pass |
| Semantic text contrast | Catalog minimum 7.567:1 | WCAG >= 7:1 | Pass |
| Focus indicator contrast | Catalog minimum 5.758:1 | WCAG non-text >= 3:1 | Pass |
| xterm-256 ANSI contrast | Catalog minimum 4.836:1 after quantization | >= 4.5:1 | Pass |
| Wallpaper support separation | Catalog minimum DeltaE 18.041 | DeltaE >= 18 | Pass |
| Color-vision semantic separation | Worst protan/deutan/tritan result DeltaE 9.596 | DeltaE >= 8 | Pass |
| Startup Time | bash 25ms, zsh 35ms, fish 25ms | < 100ms | Pass |
| Runtime color parity | SSOT unified across Ghostty/Kitty/Alacritty/WezTerm/Foot; no framebuffer probe yet | DeltaE < 2 | Needs instrumentation |
Findings
scripts/theme/audit-palettes.pyderives a deterministic, versioned JSON report from the complete catalog and fails closed on contract violations.- Status roles use mode-specific semantic colors rather than arbitrary wallpaper clusters; wallpaper identity remains in terminal, accent, support, and session colors.
- Truecolor and xterm-256 are measured independently so quantization cannot silently reduce a compliant source color below the fallback floor.
- First-prompt Fish initialization still performed live CLI work when cache artifacts were present. The prompt path now sources prewarmed cache files first and only regenerates on cache miss.
- Terminal templates were palette-consistent, but rendering policy was inconsistent. macOS now prefers Display P3 and CoreText-friendly metrics; Linux/Wayland templates prefer more conservative opacity and FreeType-safe fallbacks.
Edge Cases
- Wayland fontconfig now sets
rgbadeclaratively from feature flags to avoid color fringing on mixed-density Linux panels. - Ghostty, Kitty, Alacritty, and WezTerm now share the same terminal ramp while allowing platform-specific font fallback and window-compositor behavior.
- WSL parity is template-capable and its xterm-256 input is audited, but DeltaE validation is not yet automated against Windows Terminal serialization.
Next Step
Add deterministic golden renders for Ghostty, Kitty, WezTerm, Alacritty, Foot, and tmux at widths 80/100/120/160 in light, dark, and high-contrast modes.