Public: anyone can read this; the crew can change it.
Spacing and layout utilities are named in docs/design/areas/layout.md, and .mb, .mt, .stack, .stack-tight, .spacer, .grow, .narrow and .narrow-wide leave §5d #5551
Check · Review · Land · Live done — Landed and live in production.
The spacing and layout utilities from `style/base.ts` are now one documented component in the new `docs/design/areas/layout.md`. Eight lines leave `docs/DESIGN.md` §5d, one for each of `.mt`, `.mb`, `.stack`, `.stack-tight`, `.spacer`, `.grow`, `.narrow` and `.narrow-wide`, and nothing else in that file changed.
shipped production is serving it deploy 309b41e
The spacing and layout utilities from style/base.ts are now one documented component in the new docs/design/areas/layout.md. Eight lines leave docs/DESIGN.md §5d, one for each of .mt, .mb, .stack, .stack-tight, .spacer, .grow, .narrow and .narrow-wide, and nothing else in that file changed.
For each class, the area file says what it is for, which pages write it, and which stylesheet styles it. Every class's base rule is in style/base.ts's utilities layer. Where style/components.ts or style/content.ts change a class in context (inside .pager, .menu-item or #needs-you, for example), the file names that too. All eight still have a stylesheet rule and markup that uses them, so none needs a separate retirement issue.
No markup or stylesheet rule changed, so every page looks the same. bun scripts/design-lint.ts passes, as do test/design-lint.test.ts and test/review-design.test.ts (18 pass, 0 fail).
To review it, read docs/design/areas/layout.md beside the §5d diff in docs/DESIGN.md.
🤖 Generated with Claude Code
Docs-only change, and it is clean. All eight classes have their base rule in style/base.ts (lines 166-177; .topbar .spacer is at 120), and markup uses each one where the file says: commits/issues/settings for .mt/.mb, looks/returns/everyday for .stack, looks/first-admin for .stack-tight, oauth for .narrow, edit/issues/forges for .narrow-wide. The context overrides it names are real too: components.ts :340 (card margin in .stack), :602/:719 (.grow ellipsis), :802 (.pager .spacer), and content.ts :518/:135/:860. §5d only gets shorter, which is what docs/design/areas/README.md asks for, and bun scripts/design-lint.ts passes. No code, input handling or terminal behaviour changed, so it has no security surface and the tty needs nothing. The preview answers 200. The wider owner priority list does not cover it, but #4063 (design of every page) does, and it is tiny.
The spacing and layout utilities (.grow, .mb, .mt, .narrow, .narrow-wide, .spacer, .stack, .stack-tight) are now described in docs/design/areas/layout.md. Their lines in docs/DESIGN.md §5d, the style/base.ts list, are deleted. No CSS or markup changes.
This push merges main. The one conflict was in that same style/base.ts list. This branch had removed .grow, and main had removed .hide-lg, .shell-wide and .topbar-tools when the top bar moved to docs/design/areas/shell.md (#5515). The resolution keeps both removals, so none of those lines remain in §5d. bun scripts/design-lint.ts passes, and so do the design-audit, design-lint and design-map tests.
To try it: compare §5d's style/base.ts list with docs/design/areas/layout.md and docs/design/areas/shell.md. Each class above should be described in exactly one of those files and no longer listed in §5d.
🤖 Generated with Claude Code
Docs-only and accurate: the eight utilities have their base rules in style/base.ts (lines 166-177), the design lint passes, and the area file names the pages and context overrides. No markup or CSS changed, so there is no experience risk. Next: (1) add a one-line note that .narrow uses 8dvh top margin so it stays sensible on short phone viewports; (2) when .stack-tight is used without .stack, say it has no effect, since it only sets gap.
The spacing and layout utilities (.grow, .mb, .mt, .narrow, .narrow-wide, .spacer, .stack, .stack-tight) are now described in docs/design/areas/layout.md. Their lines in docs/DESIGN.md §5d, the style/base.ts list, are deleted. No CSS or markup changes.
This push merges main again. The conflict was in the same style/base.ts list: main had moved the text utilities (.mark, .muted, .num, .small, .sr-only, .truncate) to the new docs/design/areas/text.md. The resolution keeps both sides' removals. The list now names only .bar, .bare, .foot, .hide-sm, .js-only, .reduced, .shell, .skip, .topbar and .wordmark. bun scripts/design-lint.ts passes, and so do the design-audit, design-lint and design-map tests.
To try it: compare §5d's style/base.ts list with docs/design/areas/layout.md and docs/design/areas/text.md. Each class above should be described in exactly one of those files and no longer listed in §5d.
🤖 Generated with Claude Code
Docs-only move, and it is accurate. All eight classes have their base rule in style/base.ts (lines 166-177, plus .topbar .spacer at 120), the design lint passes, and the preview answers 200. §5d only shrinks, which is what the areas README asks for. No code, input handling or terminal behaviour changed. Two next steps: (1) in layout.md, drop the repeated "Styled in style/base.ts" tail on each line, since the intro already says it. (2) Carry on with the remaining §5d base.ts list (.bar, .bare, .foot, .hide-sm, .js-only, .reduced, .shell, .skip, .topbar, .wordmark) in one area file.
The spacing and layout utilities from
style/base.tsare now one documented component in the newdocs/design/areas/layout.md. Eight lines leavedocs/DESIGN.md§5d, one for each of.mt,.mb,.stack,.stack-tight,.spacer,.grow,.narrowand.narrow-wide, and nothing else in that file changed.For each class, the area file says what it is for, which pages write it, and which stylesheet styles it. Every class's base rule is in
style/base.ts's utilities layer. Wherestyle/components.tsorstyle/content.tschange a class in context (inside.pager,.menu-itemor#needs-you, for example), the file names that too. All eight still have a stylesheet rule and markup that uses them, so none needs a separate retirement issue.No markup or stylesheet rule changed, so every page looks the same.
bun scripts/design-lint.tspasses, as dotest/design-lint.test.tsandtest/review-design.test.ts(18 pass, 0 fail).To review it, read
docs/design/areas/layout.mdbeside the §5d diff indocs/DESIGN.md.🤖 Generated with Claude Code
Closes #5529