docs(brand): canonical terracotta #C05734 + scope the dark-first rule to product surfaces #98

Merged
peterswimm merged 2 commits from fix/terracotta-canonical-c05734 into fix/wcag-accent-contrast-301 2026-09-09 20:23:25 +00:00
Owner

Stacked on #97 — please merge that first. Base is
fix/wcag-accent-contrast-301.

Why

brand.primary had two values in circulation. Canonical DTCG says #C05734;
CLAUDE.md, the toilville-fse theme, the design-sync conventions and a pile of
generator fallbacks still said #CC5C37.

It is not cosmetic — white text passes on #C05734 (4.51:1) and fails on
#CC5C37 (4.07:1)
. The two website design files we just reviewed disagree
with each other for exactly this reason.

Corrected

  • CLAUDE.md — the <frontend_aesthetics> colour table + the skin.css example
  • README.md — the canonical ANSI 256 mapping table
  • .design-sync/conventions.toilville.md, .design-sync/remote-stage/tokens/colors.css
  • udg/products/wp-themes/toilville-fse/theme.jsonprimary, color-1, color-7
  • udg/products/rituals/bbs-style.yml — the mapping comment
  • udg/icon-registry/ICON_ISSUES_GITHUB.md
  • udg/generators/templates/extra.css — every var(--accent, …) fallback. This
    file already mixed both hexes line-to-line, so it is now uniform.

Left alone on purpose

  • Brand/specs/rituals/rituals-color-theme-light.md — the Rituals sidebar-bg
    genuinely is #CC5C37, a distinct token from brand.primary. Not drift.
  • docs/reviews/theme-alignment-strategy.md — historical record of this exact
    drift; rewriting it would erase the finding.

The ANSI 166 mapping is hardcoded config, not derived from the hex, so the
mapping is unaffected. (Neither hex is actually the nearest ANSI index — 166 is
a curated terminal choice.)

Also: scoping the dark-first rule

The approved toilville.com design is light-first, which CLAUDE.md listed as an
anti-pattern. Now scoped: product surfaces stay dark-cocoa-first;
marketing surfaces (toilville.com, deck.landing) are light-first by
design, with dark still available from the token layer's
prefers-color-scheme block.

Verification

  • just check — fully green
  • python -m pytest generator/tests/ — 161 passed
  • Rebuild touched only dist/*/artifact.html (extra.css is a generator template)

https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78

**Stacked on #97** — please merge that first. Base is `fix/wcag-accent-contrast-301`. ## Why `brand.primary` had two values in circulation. Canonical DTCG says `#C05734`; `CLAUDE.md`, the toilville-fse theme, the design-sync conventions and a pile of generator fallbacks still said `#CC5C37`. It is not cosmetic — **white text passes on `#C05734` (4.51:1) and fails on `#CC5C37` (4.07:1)**. The two website design files we just reviewed disagree with each other for exactly this reason. ## Corrected - `CLAUDE.md` — the `<frontend_aesthetics>` colour table + the skin.css example - `README.md` — the canonical ANSI 256 mapping table - `.design-sync/conventions.toilville.md`, `.design-sync/remote-stage/tokens/colors.css` - `udg/products/wp-themes/toilville-fse/theme.json` — `primary`, `color-1`, `color-7` - `udg/products/rituals/bbs-style.yml` — the mapping comment - `udg/icon-registry/ICON_ISSUES_GITHUB.md` - `udg/generators/templates/extra.css` — every `var(--accent, …)` fallback. This file already mixed both hexes line-to-line, so it is now uniform. ## Left alone on purpose - `Brand/specs/rituals/rituals-color-theme-light.md` — the Rituals **sidebar-bg** genuinely is `#CC5C37`, a distinct token from `brand.primary`. Not drift. - `docs/reviews/theme-alignment-strategy.md` — historical record of this exact drift; rewriting it would erase the finding. The ANSI `166` mapping is hardcoded config, not derived from the hex, so the mapping is unaffected. (Neither hex is actually the nearest ANSI index — 166 is a curated terminal choice.) ## Also: scoping the dark-first rule The approved toilville.com design is light-first, which `CLAUDE.md` listed as an anti-pattern. Now scoped: **product** surfaces stay dark-cocoa-first; **marketing** surfaces (toilville.com, `deck.landing`) are light-first by design, with dark still available from the token layer's `prefers-color-scheme` block. ## Verification - `just check` — fully green - `python -m pytest generator/tests/` — 161 passed - Rebuild touched only `dist/*/artifact.html` (extra.css is a generator template) https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
`brand.primary` had two values in circulation. Canonical DTCG says #C05734;
CLAUDE.md, the toilville-fse theme, the design-sync conventions and several
generator fallbacks still said #CC5C37. It is not cosmetic — white text passes
on #C05734 (4.51:1) and fails on #CC5C37 (4.07:1).

Corrected: CLAUDE.md, README.md (ANSI table), .design-sync/{conventions,
remote-stage}, udg/products/wp-themes/toilville-fse/theme.json, rituals
bbs-style.yml, udg/icon-registry/ICON_ISSUES_GITHUB.md, and every --accent
fallback in udg/generators/templates/extra.css (which already mixed both).

Left alone on purpose:
  Brand/specs/rituals/rituals-color-theme-light.md — sidebar-bg genuinely is
    #CC5C37, a distinct token from brand.primary
  docs/reviews/theme-alignment-strategy.md — historical record of this drift

Also scopes the <frontend_aesthetics> dark-first rule: product surfaces stay
dark-cocoa-first, marketing surfaces (toilville.com, deck.landing) are
light-first by design.

Claude-Session: https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
build: regenerate artifact.html for the extra.css terracotta fallbacks
Some checks failed
PR policy check / policy-gate (pull_request) Failing after 0s
Security Scans / Gitleaks secret scan (pull_request) Successful in 2m24s
Security Scans / Trivy filesystem scan (pull_request) Successful in 3m6s
Test Generator / lint-workflows (pull_request) Successful in 1m9s
UDG dist drift gate / dist/ matches dtcg + udg sources (pull_request) Successful in 40s
Test Generator / lint-prose (pull_request) Successful in 48s
Test Generator / test (pull_request) Successful in 5m39s
bbd44b79d4
Claude-Session: https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
peterswimm merged commit a1c0e60d6b into fix/wcag-accent-contrast-301 2026-09-09 20:23:25 +00:00
peterswimm deleted branch fix/terracotta-canonical-c05734 2026-09-09 20:23:26 +00:00
Sign in to join this conversation.
No description provided.