feat(tokens): icon-size + size tiers upstream + rituals token-divergence decision memo #48

Merged
peterswimm merged 1 commit from feat/size-tiers-and-divergence-survey into main 2026-07-24 04:08:38 +00:00
Owner

Follow-up to the ville/MDN commit audit — the upstream-token-gap track.

New tiers (gap-fills, values match the shipping app — no conflicts introduced):

  • Brand/UDG/dtcg/icon-size.json — xsm/sm/md/lg = 16/20/24/32
  • Brand/UDG/dtcg/size.json — sm/md/lg/xl/2xl = 16/24/32/48/64, touch-target-min 44, indicator-dot 6, pagination-dot 8, carousel-height 192
  • extract.py DTCG_TIERS += icon-size, size; dist/ rebuilt for all 13 products.

The packages/udg block renderers (PRs #170/#171 in Toilville_Rituals, sign-off pending in rituals#174) consume IconSizeToken/SizeToken that until now existed only as app-side constants ('sourced from toilville-brand #102'). This gives them a canonical home. Rituals follow-up: bind token_manifest.dart to the exported icon-size.*/size.* paths.

Decision memo: docs/reviews/token-divergence-2026-07-23.md — the space-scale name collision (app space5=20px from MDN's #164 vs upstream space.5=32px; whole space3–8 range is two different scales under one set of names), radius, border-width, and dark-mode value ownership. Built from six adversarially-verified consumer-surface audits. Highlights:

  • rituals-web is the only surface that visibly moves under any space re-value; forgejo theme (colors only), WP (not a rituals consumer), macOS (already linear, compile-time) are provably unaffected.
  • App→modular migration would cost 433 non-test call sites with overflow risk; options (a) product override / (b) app migrates / (c) rename laid out — decision deferred to @peterswimm + @ville per submodule governance. Feeds rituals#173/#174/#175.
  • Bonus defects found: stale sync-manifest.yml macOS path, preview.html var(--border) invalid-at-computed-value under rituals skin, dtcg_to_udg_tokens.py strips borders/shadows.

Verified: just check all gates green; dist regenerated via just build only. NOTE: this branch forks from main and will show the two known-red CI checks until #47 (the CI-gate fix) merges — rebase after.

No baseline values were changed anywhere in this PR.

Follow-up to the ville/MDN commit audit — the upstream-token-gap track. **New tiers (gap-fills, values match the shipping app — no conflicts introduced):** - `Brand/UDG/dtcg/icon-size.json` — xsm/sm/md/lg = 16/20/24/32 - `Brand/UDG/dtcg/size.json` — sm/md/lg/xl/2xl = 16/24/32/48/64, touch-target-min 44, indicator-dot 6, pagination-dot 8, carousel-height 192 - `extract.py` `DTCG_TIERS` += `icon-size`, `size`; `dist/` rebuilt for all 13 products. The `packages/udg` block renderers (PRs #170/#171 in Toilville_Rituals, sign-off pending in **rituals#174**) consume `IconSizeToken`/`SizeToken` that until now existed only as app-side constants ('sourced from toilville-brand #102'). This gives them a canonical home. Rituals follow-up: bind `token_manifest.dart` to the exported `icon-size.*`/`size.*` paths. **Decision memo:** `docs/reviews/token-divergence-2026-07-23.md` — the space-scale name collision (app `space5`=20px from MDN's #164 vs upstream `space.5`=32px; whole space3–8 range is two different scales under one set of names), radius, border-width, and dark-mode value ownership. Built from six adversarially-verified consumer-surface audits. Highlights: - **rituals-web is the only surface that visibly moves** under any space re-value; forgejo theme (colors only), WP (not a rituals consumer), macOS (already linear, compile-time) are provably unaffected. - App→modular migration would cost 433 non-test call sites with overflow risk; options (a) product override / (b) app migrates / (c) rename laid out — **decision deferred to @peterswimm + @ville** per submodule governance. Feeds rituals#173/#174/#175. - Bonus defects found: stale `sync-manifest.yml` macOS path, `preview.html` `var(--border)` invalid-at-computed-value under rituals skin, `dtcg_to_udg_tokens.py` strips borders/shadows. **Verified:** `just check` all gates green; dist regenerated via `just build` only. NOTE: this branch forks from main and will show the two known-red CI checks until **#47** (the CI-gate fix) merges — rebase after. No baseline values were changed anywhere in this PR.
feat(tokens): icon-size + size tiers upstream + rituals token-divergence decision memo
Some checks failed
UDG dist drift gate / dist/ matches dtcg + udg sources (pull_request) Failing after 18s
Test Generator / lint-workflows (pull_request) Successful in 20s
Security Scans / Gitleaks secret scan (pull_request) Successful in 24s
Test Generator / lint-prose (pull_request) Successful in 24s
Security Scans / Trivy filesystem scan (pull_request) Successful in 29s
Test Generator / test (pull_request) Failing after 44s
11c4afb818
Two new DTCG tiers give the packages/udg block renderers a source of truth
in this repo (they previously hard-coded IconSizeToken/SizeToken app-side,
annotated 'sourced from toilville-brand #102'):

- Brand/UDG/dtcg/icon-size.json — xsm/sm/md/lg = 16/20/24/32
- Brand/UDG/dtcg/size.json — sm/md/lg/xl/2xl = 16/24/32/48/64,
  touch-target-min 44 (WCAG 2.5.5/HIG), indicator-dot 6, pagination-dot 8,
  carousel-height 192
- extract.py DTCG_TIERS += icon-size, size; dist/ rebuilt for all 13
  products (skin.css vars + tokens.dtcg.json groups)

Values are gap-fills matching the shipping app — no value conflicts here.
The conflicts (space scale name collision incl. MDN's space5=20px vs
upstream 32px, radius, border width, dark-mode value ownership) are laid
out in docs/reviews/token-divergence-2026-07-23.md — a decision memo for
Peter + ville built from six adversarially-verified consumer-surface
audits (rituals-web is the only surface that would visibly move; forgejo
theme/WP/macOS provably unaffected). No baseline value was changed —
divergence decisions defer to leadership per the submodule rules.
peterswimm deleted branch feat/size-tiers-and-divergence-survey 2026-07-24 04:08:39 +00:00
Sign in to join this conversation.
No description provided.