Skip to content

fix(cli-registry): correct accent colours, and a real gemini/antigravity/omp rendering bug - #463

Merged
Ark0N merged 1 commit into
Ark0N:masterfrom
opticon454:fix/cli-accent-colours
Sep 23, 2026
Merged

Ark0N merged 1 commit into
Ark0N:masterfrom
opticon454:fix/cli-accent-colours

Conversation

@opticon454

Copy link
Copy Markdown
Contributor

Context

While reviewing #458, I compared stock.ts's accent field (declared but not yet read, per docs/cli-registry.md's own "transcribed, not authoritative — re-measure before wiring one up" warning) against the actual rendered .btn-toolbar.btn-run.mode-<id> CSS, and found two separate things worth fixing.

1. A real, user-visible rendering bug

.btn-toolbar.btn-run.mode-gemini, .mode-antigravity and .mode-omp had no override rule inside the html:not([data-skin="og"]) block — unlike codex/pi/grok/deepseek, which do. The generic .btn-toolbar.btn-run rule in that block resolves at higher specificity than the base sheet's per-mode pair, so all three CLIs rendered as plain claude-blue on every skin except og — including daylight-blue, which index.html's pre-paint script sets as the actual default for a fresh install with no localStorage yet. Not a corner case; the out-of-the-box experience for gemini/antigravity/omp buttons.

Fixed by adding the three missing rules, sourced from each CLI's own already-designed og-skin colours (no new colours invented) — same pattern pi/grok/deepseek already use. Also corrected a stale comment on the pi rule that claimed this was still broken for gemini/antigravity (it predated omp joining the registry and was already half wrong).

2. accent itself was wrong for most CLIs

Measured each CLI's real border-color from its own .mode-<id> rule on the og skin (the cleanest single representative hex each entry's multi-stop gradient resolves around) and corrected all 9 non-shell entries. Examples: claude was registered as Anthropic's brand orange (#d97757) while its button renders blue; antigravity was registered purple while it renders cyan; pi was registered green while it renders pink.

accent has no reader yet (confirmed via the DECLARED_FOR_LATER guard test in test/cli-registry-no-id-branching.test.ts), so this changes no rendered output on its own — pure data-accuracy.

Also fixed a false claim in types.ts's doc comment for the field ("CSS derives every per-CLI gradient from it via --cli-accent") — no such CSS custom property exists anywhere in the codebase; git grep confirms it.

Verification

Full CI gate, typecheck, lint, format:check, check:public-assets and check:frontend-syntax all run against a fresh clone of current master (not an incremental branch) on a tmux-capable VM: 414 files, 7828 tests, 0 failures.


🤖 Generated with Claude Code

https://claude.ai/code/session_01GuHtuPiHXdykq9T6rKQJ9n

…ity/omp rendering bug

Two related fixes, found while re-measuring stock.ts's `accent` field
against the actual rendered UI (docs/cli-registry.md flags this field as
"transcribed, not authoritative — re-measure before wiring one up"):

1. A real, user-visible bug: `.btn-toolbar.btn-run.mode-gemini`,
   `.mode-antigravity` and `.mode-omp` had no override rule inside the
   `html:not([data-skin="og"])` block, unlike codex/pi/grok/deepseek, which
   do. The generic `.btn-toolbar.btn-run` rule in that block resolves at
   higher specificity than the base sheet's per-mode pair, so all three
   rendered as plain claude-blue on every skin except `og` — including
   `daylight-blue`, which is the actual DEFAULT skin for a fresh install
   (index.html's pre-paint script), not an edge case. Added the three
   missing rules, sourced from each CLI's own already-designed og-skin
   colours (no new colours invented), mirroring the exact pattern
   pi/grok/deepseek already use. Also corrected the stale comment on the
   pi rule, which claimed this was still broken for gemini/antigravity.

2. `stock.ts`'s `accent` field was simply wrong for most CLIs — e.g. claude
   was registered as Anthropic's brand orange (#d97757) while its button
   renders blue, antigravity was registered purple while it renders cyan,
   pi was registered green while it renders pink. Measured each CLI's real
   `border-color` from its own `.mode-<id>` rule on the og skin (the
   cleanest single representative hex each entry's gradient resolves
   around) and corrected all 9 non-shell entries to match. `accent` has no
   reader yet (confirmed via the DECLARED_FOR_LATER guard test), so this
   changes no rendered output — it's a data-accuracy fix, matching the
   registry's own "transcribed, not authoritative" warning taken literally.
   Also fixed a false claim in types.ts's doc comment for the field
   ("CSS derives every per-CLI gradient from it via --cli-accent") — no
   such CSS variable exists anywhere in the codebase.

Full gate: 406 files / 7721 tests / 0 failures, typecheck/lint/format:check/
check:public-assets/check:frontend-syntax all clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GuHtuPiHXdykq9T6rKQJ9n
@Ark0N
Ark0N merged commit 233af33 into Ark0N:master Sep 23, 2026
2 checks passed
Ark0N pushed a commit that referenced this pull request Sep 23, 2026
- mobile.css: gemini and antigravity run/gear rules get `!important` like
  pi/omp/grok/deepseek, so the gear half no longer keeps the skin accent
  while the body takes the mode colour (two-tone button on the default skin).
- test/skin-themes.test.ts: static guard that every run mode with a base
  `.btn-toolbar.btn-run.mode-<id>` rule also has a resting rule inside the
  `html:not([data-skin="og"])` block; ids are derived from the stylesheet.
- stock.ts: grok's accent comment names zinc-300 (border/badge colour);
  gemini's accent is #8ab4f8 to match its tab badge and run-mode dot, noted
  as the one exception to the border-colour method.
- types.ts: "(below)" -> "(above)".
- docs/cli-registry.md, CLAUDE.md: `accent` is now measured, not transcribed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Ark0N

Ark0N commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Merged, thanks @opticon454! This ships in 1.32.1.

Good catch, and a real one: Gemini, Antigravity and OMP were rendering in Claude blue on every skin except OG, which means that was the out-of-the-box look for three of the ten run modes. I reproduced it against the merge base before reading the diff.

I applied a few things at merge instead of sending it back:

  • On phones the gear half of the Gemini/Antigravity split button still lost to the nested skin rule, so the button went two-tone. Added the !important pair in mobile.css like pi/grok/deepseek have.
  • Added a guard in test/skin-themes.test.ts that derives every .mode-<id> run rule from styles.css and fails if its counterpart inside the html:not([data-skin="og"]) block is missing. This trap had been patched by hand four times, so it seemed worth pinning.
  • Grok's accent comment now names zinc-300, the "(below)" in types.ts points up, and docs/cli-registry.md plus CLAUDE.md now say accent is measured rather than transcribed.
  • Gemini's accent is #8ab4f8, matching its tab badge and run-mode dot, since that is the one hex that names the CLI everywhere else.

@github-actions github-actions Bot mentioned this pull request Sep 23, 2026
@opticon454
opticon454 deleted the fix/cli-accent-colours branch September 24, 2026 00:33
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.

2 participants