Skip to content

Accent scarcity: terracotta only where it means something - #35

Merged
yujiezhang-ops merged 1 commit into
mainfrom
feat/accent-scarcity
Aug 18, 2026
Merged

yujiezhang-ops merged 1 commit into
mainfrom
feat/accent-scarcity

Conversation

@yujiezhang-ops

Copy link
Copy Markdown
Collaborator

Step two of the approved style review (after #34's copy register). The finding it implements: the terracotta appeared on every surface — eyebrows, the hero's second line, prose links, step/service numbers, callout indexes, info notices, config chips, hover borders, text buttons, the particle field — and a brand colour that ambient stops reading as brand. This palette family is also the most common generated-site look, and ubiquity is what makes it read that way.

The rule after this PR

Accent marks exactly three things:

  1. Primary action.button-primary, skip link
  2. The mark — BrandMark's stem (untouched)
  3. Selected state — platform picker's checked option, explorer's .is-selected, :active press flashes (a press is a selection beginning)

Everything else moves to the ink ladder:

  • Eyebrows, step/service numbers, callout indexes → --ink-faint
  • Prose links and the hero's em--ink (underline stays as the link affordance; .button-text gains one for the same reason)
  • chip-accent (托管配置) and notice-info → neutral surface — a support fact is not a state; green/orange/red chips keep their colours because those are states
  • Explorer card hover → --line-strong (hover ≠ selection; .is-selected keeps accent)
  • Agent row hover inset, wordmark hover → neutral
  • Particle field → ink channels (interim; step four removes HeroParticles entirely)
  • --chip-accent-line deleted from both theme blocks with its last consumer

Test plan

  • Contrast: all six replacement pairs computed ≥ 4.88:1 in both themes (worst: ink-faint on paper 4.88:1; chip text 7.73:1 light / 8.34:1 dark)
  • vitest 98 passed; build 51 pages validated, 0 errors
  • e2e with GITHUB_TOKEN: 216 passed / 18 skipped, zero failures — the axe contrast gates pass unchanged, and no visual baseline moved (console styles untouched)
  • Verified in the browser, light and dark: accent now appears only on the primary button, the mark, and checked/selected states

Remaining steps per the review: latin/mono data-voice typography (step 3), HeroParticles removal + motion consolidation (step 4).

🤖 Generated with Claude Code

Step two of the approved style review. The terracotta was everywhere —
eyebrows, the hero's second line, prose links, step and service
numbers, callout indexes, info notices, config chips, hover borders,
row-hover insets, text buttons, the particle field. A brand colour
that appears on every surface stops reading as a brand colour and
starts reading as the template's tint; the review's finding was that
this palette family is the single most common generated-site look, and
ubiquity is what makes it look generated.

The accent now marks exactly three things: the primary action (button,
skip link), the mark itself (BrandMark stem, unchanged), and selected
state (platform picker's checked option, explorer's .is-selected,
:active flashes — a press is a selection beginning). Everything that
was terracotta because "accent goes here" moves to the ink ladder:
eyebrows and numbers to --ink-faint (4.88:1 on paper, AA), links and
the display em to --ink with the underline as the link affordance,
chip-accent and notice-info to the neutral surface (a support fact is
not a state; green/orange/red chips keep their colours because those
are states), explorer hover to --line-strong (hover is not selection),
the particle field to ink channels. --chip-accent-line leaves both
theme blocks with its last consumer.

All six replacement pairs verified ≥4.88:1 in both themes; the axe
contrast gates in e2e pass unchanged, and no visual baseline moved —
the console styles are untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yujiezhang-ops
yujiezhang-ops merged commit 1922b30 into main Aug 18, 2026
1 check passed
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