diff options
| -rw-r--r-- | todo.org | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -177,7 +177,13 @@ Phase 2. Initial state from seed() plus seedPkgmap for the non-org packages; all *** TODO Seeding-engine test surface :solo:tests: Keep #seedtest, #selftest, the default-on-open check, the dupre-revised round-trip, node --check, and Chrome validation green. ** TODO [#C] theme-studio terminal/ANSI colors :feature:theme-studio: -theme-studio represents GUI faces only; the 16 ANSI terminal colors aren't surfaced at all. The guide's "Handle terminal Emacs" section says a theme should define the 16 ANSI colors coherently with the palette, because =emacs -nw=, =ansi-color= in shells, and compilation buffers all draw from them. Add a tier (or panel) that maps the 16 ANSI slots (black/red/green/yellow/blue/magenta/cyan/white + their bright variants) to palette colors, with a preview, and exports them so =build-theme.el= can emit the ANSI mapping. Open question to settle first: GUI-first (declare the 16 and stop) vs full display-class fallback (=((class color) (min-colors 256) ...)= specs with a =(t ...)= terminal fallback per face) — the guide flags both as valid; pick one for dupre. Signal colors (error red, success green, warning amber, info blue) should line up with the ANSI red/green/yellow/blue so a signal reads the same in a terminal. +theme-studio represents GUI faces only; terminal colors aren't surfaced at all. Scope decided 2026-06-09: GUI-first faces, NOT full per-face display-class fallback. Two pieces: + +1. ANSI-16 panel. Map the 16 ANSI slots (black/red/green/yellow/blue/magenta/cyan/white + bright variants) to palette colors, with a preview, and export them so =build-theme.el= emits the =ansi-color-*= / =term-color-*= faces. This matters even in pure-GUI Emacs: colored shell output, compilation buffers, eshell, and vterm/eat all draw from these. Signals must line up with their ANSI slot (error red→ansi red, success→green, warning→yellow, info/link→blue) so a signal reads the same in a terminal. + +2. Core-face 16-color fallback. Only the ~10 faces that decide console legibility get a =(((class color) (min-colors 16)) ...)= clause plus a =(t ...)= floor: default/fg, bg, keyword, string, comment, constant, error, warning, region, mode-line, line-number. Tune these for contrast — push it UP, legibility over fidelity, because the only 16-color target is the bare Linux virtual console (an occasional emergency context). The long tail stays GUI-first and auto-approximates. + +Why this scope: the GUI and the normal terminal (foot + tmux, truecolor / ≥256-color) both render the GUI hexes fine; GUI-first is correct there. Only the Linux VT is 16-color, and a low-contrast palette approximates badly down to 16 — so a few core faces get a deliberately higher-contrast 16-color fallback rather than every face carrying a multi-spec. Tool work: the ANSI-16 panel + a flag on the core faces to also capture a 16-color value; =build-theme.el= emits multi-spec only for those. Full per-face fallback is revisited only if console work becomes regular. ** TODO [#D] theme-studio per-tier reseed controls :feature:theme-studio: Deferred from the seeding-engine spec (vNext). V1 reseeds all three guide-owned tiers at once; later consider separate "reseed syntax", "reseed UI", and "reseed package/org" controls if all-at-once proves too blunt. Spec: [[file:docs/design/theme-studio-seeding-engine-spec.org][spec]] (vNext; review folded in 2026-06-08). ** TODO [#D] theme-studio low-contrast preset/mask mode :feature:theme-studio: |
