Skip to content

feat(tui): the surface uses its own palette, not the terminal's theme (#455) - #492

Merged
danielgwilson merged 1 commit into
mainfrom
feat/tui-palette
Aug 20, 2026
Merged

feat(tui): the surface uses its own palette, not the terminal's theme (#455)#492
danielgwilson merged 1 commit into
mainfrom
feat/tui-palette

Conversation

@danielgwilson

Copy link
Copy Markdown
Owner

feat(tui): the surface uses its own palette, not the terminal's theme (#455)

The reviewed design specifies colours. The build was emitting ANSI names
"cyan", "green", "yellow" — which hand the decision to whoever
themed the terminal, so the same binary looked different on every machine
and matched the agreed design on none of them. On a theme where "yellow"
sits close to the body text, the line warning that a live run cannot find
its keys was barely distinguishable from the text around it.

Now one PALETTE with the tokens from the artifact: accent #93a2ff for
selection, #7dc9a0 for alive-and-well, #d9a441 for wants-attention,
#e0796b for failed. Verified from the built binary: with a truecolor
terminal it emits 38;2;147;162;255 — the exact hex — and chalk
downsamples to the nearest 256 (38;5;147) where it cannot, so the worst
case is what we had before rather than a broken screen.

Colour is never the only carrier: every state that has one also has a
glyph or a word, so NO_COLOR, a pipe, and a 16-colour terminal all
still say what is happening.

release:check green under CI=true (1597 root, 44 tui, bundle smoke,
surface scan).

…#455)

The reviewed design specifies colours. The build was emitting ANSI names
— `"cyan"`, `"green"`, `"yellow"` — which hand the decision to whoever
themed the terminal, so the same binary looked different on every machine
and matched the agreed design on none of them. On a theme where "yellow"
sits close to the body text, the line warning that a live run cannot find
its keys was barely distinguishable from the text around it.

Now one `PALETTE` with the tokens from the artifact: accent `#93a2ff` for
selection, `#7dc9a0` for alive-and-well, `#d9a441` for wants-attention,
`#e0796b` for failed. Verified from the built binary: with a truecolor
terminal it emits `38;2;147;162;255` — the exact hex — and chalk
downsamples to the nearest 256 (`38;5;147`) where it cannot, so the worst
case is what we had before rather than a broken screen.

Colour is never the only carrier: every state that has one also has a
glyph or a word, so `NO_COLOR`, a pipe, and a 16-colour terminal all
still say what is happening.

release:check green under CI=true (1597 root, 44 tui, bundle smoke,
surface scan).
@vercel

vercel Bot commented Aug 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
humanish Ignored Ignored Aug 20, 2026 6:12pm

Request Review

@danielgwilson
danielgwilson merged commit 98127b9 into main Aug 20, 2026
8 checks passed
@danielgwilson
danielgwilson deleted the feat/tui-palette branch August 20, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant