Skip to content

fix(ui): make small text readable at 12px and 4.5:1 contrast - #822

Merged
astyfx merged 2 commits into
mainfrom
fix/small-text-readability
Oct 25, 2026
Merged

astyfx merged 2 commits into
mainfrom
fix/small-text-readability

Conversation

@astyfx

@astyfx astyfx commented Oct 25, 2026

Copy link
Copy Markdown
Member

Summary

Small informational text across the app was hard to read. It was drawn at 11px, or in the 3:1 subtle color, or faded with color-mix(... transparent). This raises informational text to the 12px caption step and to at least 4.5:1 contrast, without changing row, card or chip heights.

Changes

Fixes

  • ui: status, meta, path, description and section-label text moves from 11px micro to 12px caption. Keycaps, StatusChip/Badge, counts, avatars and short boxed labels keep 11px, so chips do not widen.
  • ui: converted text keeps its previous line box (old px line-height pinned; positive caps tracking steps down as size goes up), so rows, cards, the settings rail and schedule cards keep their height.
  • ui: em-sized chat text gets a px floor (max(Xem, caption)). The trace diff stat no longer drops to 9.6px.
  • ui: 12px and smaller informational text uses colorTextMuted instead of colorTextSubtle or faded muted. This covers review paths and line numbers, results notes, check states, turn-activity offsets, chat trace summaries, side-chat byline and hint, and the group labels, footers and shortcut hints in the ADS Command, menu, listbox and select recipes. Subtle stays on icons, disabled items and text at 14px and above.
  • ui: the sidebar branch line and command palette subtitles get one ink step over muted. Muted measured 4.15:1 under the light selected-row wash and 4.39:1 on the highlighted palette row.

Refactors / Chores

  • ADS PROVENANCE.md records the subtle-to-muted host modification.

Test Evidence

  • bun run typecheck, bun run lint, check:style-channel, check:design-system, check:doc-paths, check:max-lines-ratchet: pass. Lint only reports existing hook-dependency warnings.
  • bun run test:isolated: passed 1033 files.
  • bun run build:pages: pass.
  • Rendered comparison: I captured every text and boxed element on the base commit and on this change in the dev renderer and compared them element by element. That covers 42 runs: 14 surfaces (8 previews, the app shell, Settings General/Design/Repository/Lens, the schedule editor and the in-app command palette), light and dark themes (app surfaces), and panel and 720px widths.
    • Informational text under 12px: 421 to 20. The 20 are inline code chips in the theme import help, kept on purpose.
    • Text at 12px and below under 4.5:1: 108 to 0. No element lost contrast.
    • Newly clipped text: 0. Box heights change by less than 1px, except a theme-import help paragraph that grows 1 to 2px.
    • Real dark command palette in the app shell: highlighted subtitle 5.96:1, group labels and footer 6.21:1.

Notes

  • No token values changed. subtle stays the 3:1 tier; only its use on small informational text changed.
  • Not verified: the Electron desktop window, custom themes, and surfaces without a dev preview (Lens detail, commit graph, scripts manager). Those follow the same rules, but text there that inherits its line-height may grow 1 to 2px per line.
  • Two commits: size first, then contrast, so each can be reviewed alone.

🤖 Generated with Claude Code

astyfx and others added 2 commits October 25, 2026 09:30
Status, meta, path, description and section-label text used the 11px micro
step across 87 style files. Those move to the 12px caption step. Keycaps,
StatusChip/Badge, counts, avatars and other short boxed labels keep 11px, so
chips do not widen.

Rows, cards and rails keep their height: where 12px text would grow its line
box, the old px line box is kept (tight -> 15px, normal -> 16px, relaxed ->
18px, plus measured pins such as 14px for schedule meta), and positive
tracking on uppercase labels steps down as the size goes up. Em-sized chat
text gets a px floor (`max(Xem, caption)`) so it no longer drops to 9.6px.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`colorTextSubtle` is a 3:1 tier (ads-theme.ts), so 12px text drawn in it, or
in muted faded through `color-mix(... transparent)`, measured 2.9 to 3.9:1.
Informational text at 12px and below now uses `colorTextMuted`: review paths
and line numbers, results notes, check states, turn-activity offsets, chat
trace summaries, and the group labels, footers and shortcut hints in the
ADS Command, menu, listbox and select recipes. Subtle stays on icons,
disabled items and text at 14px and above.

Two tinted surfaces get one ink step over muted: the sidebar branch line
(muted is 4.15:1 under the light selected-row wash) and command palette
subtitles (4.39:1 on the highlighted row). PROVENANCE.md records the ADS
host modification.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@astyfx
astyfx requested a review from a team as a code owner October 25, 2026 00:34
@astyfx
astyfx requested review from JongSikLim and schang124 and removed request for a team October 25, 2026 00:34

@heath-s heath-s left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@astyfx
astyfx merged commit 04b60f0 into main Oct 25, 2026
6 checks passed
@astyfx
astyfx deleted the fix/small-text-readability branch October 25, 2026 01:22
@astyfx astyfx mentioned this pull request Oct 25, 2026
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