Public: anyone can read this; the crew can change it.
Text utilities are named in docs/design/areas/text.md, and .muted, .small, .num, .truncate, .sr-only and .mark leave §5d #5550
Check · Review · Land · Live done — Landed and live in production.
The new file `docs/design/areas/text.md` documents base.ts's text utilities as a single component. It covers `.muted`, `.small`, `.num`, `.truncate`, `.sr-only` and `.mark`, and for each one gives what it is for, the functions or pages that write it, and the stylesheet that styles it. `.num` and `.truncate` also note their contextual rules inside `.table`, in `style/components.ts` and `style/conte…
shipped production is serving it deploy 9f16946
The new file docs/design/areas/text.md documents base.ts's text utilities as a single component. It covers .muted, .small, .num, .truncate, .sr-only and .mark, and for each one gives what it is for, the functions or pages that write it, and the stylesheet that styles it. .num and .truncate also note their contextual rules inside .table, in style/components.ts and style/content.ts. The six lines for those classes are deleted from the style/base.ts list in docs/DESIGN.md §5d, and nothing else in that file changes. No markup or stylesheet rules change, so every page looks the same.
Every class still has both a rule and markup, so none needs a separate retirement issue. .mark has no rule of its own, though: it is styled only inside .wordmark and .foot, and the area file says so.
bun scripts/design-lint.ts passes, and so do test/design-lint.test.ts, test/design-audit.test.ts and test/design-map.test.ts (24 pass, 0 fail).
To try it, remove one of these entries from text.md and run bun scripts/design-lint.ts: it should report that class as undocumented.
🤖 Generated with Claude Code
Docs-only move, verified: the six classes have rules in style/base.ts (.mark only inside .wordmark/.foot, as the area file says), design-lint passes, the preview answers 200, and no markup or CSS changed so nothing shifts on a phone or for a screen reader. Next two things I would do: (1) the area file lists writers by example ("pages such as"); if it should stay true as pages change, keep it to the style files and the contract rather than file names that will drift. (2) Consider a one-line note in .sr-only that it is the only sanctioned way to label a control without showing text, so pages stop inventing hidden-label classes.
The text utility classes .muted, .small, .num, .truncate, .sr-only and .mark are now named in docs/design/areas/text.md and no longer listed in DESIGN.md §5d. No markup or stylesheet changes.
After merging main, the conflict in §5d's style/base.ts list was on one line. This branch removes .truncate, and main removes .topbar-tools. Both sides meant to remove a line, so the merge keeps neither. .truncate is now in text.md, and .topbar-tools is still in docs/design/areas/shell.md.
bun scripts/design-lint.ts reports nothing added outside the system. bun test test/design-lint.test.ts test/review-design.test.ts passes (19 tests). I didn't run the full test suite.
🤖 Generated with Claude Code
Docs-only move: six text utility classes leave §5d and are named in docs/design/areas/text.md. design-lint passes here; the classes still have rules in style/base.ts (muted, small, num, truncate, sr-only). No markup or CSS changes, so nothing shifts on phone or desktop. Two things I would do next: (1) have design-lint also check that each file path named in an area doc exists, so the Written-by lists cannot rot; (2) keep going with the remaining base.ts list entries (.stack, .mt, .mb) in the same small pulls.
The new file
docs/design/areas/text.mddocuments base.ts's text utilities as a single component. It covers.muted,.small,.num,.truncate,.sr-onlyand.mark, and for each one gives what it is for, the functions or pages that write it, and the stylesheet that styles it..numand.truncatealso note their contextual rules inside.table, instyle/components.tsandstyle/content.ts. The six lines for those classes are deleted from thestyle/base.tslist indocs/DESIGN.md§5d, and nothing else in that file changes. No markup or stylesheet rules change, so every page looks the same.Every class still has both a rule and markup, so none needs a separate retirement issue.
.markhas no rule of its own, though: it is styled only inside.wordmarkand.foot, and the area file says so.bun scripts/design-lint.tspasses, and so dotest/design-lint.test.ts,test/design-audit.test.tsandtest/design-map.test.ts(24 pass, 0 fail).To try it, remove one of these entries from
text.mdand runbun scripts/design-lint.ts: it should report that class as undocumented.🤖 Generated with Claude Code
Closes #5528