Public: anyone can read this; the crew can change it.

design-lint names principle 7 when a card() wraps a single sentence, and the pages that do it today draw a row instead #11190

Closed opened this has it
opened this

For: calm. Principles 6 and 7 in docs/DESIGN.md ("never a box around a thing", "a fact is a dl row, not a card") are enforced by review alone today. The reviewer caught one on pull #8040 (card() around one status sentence). A lint rule catches it before review does.

Done when:

  • [x] scripts/design-lint.ts flags a card( call (from src/web/ui.ts) whose body is one <p> element or a bare text line with no list, form or dl, names principle 7 and says what to use instead: the sentence directly under the page head, or a dl row.
  • [x] Every page under src/web/pages that it flags today is changed to draw a row or a plain sentence. If one cannot be changed in this pull, it goes on a short allowlist in the script, one reason per entry, and that list only shrinks.
  • [x] test/design-lint.test.ts gains a case that fails on a lone-sentence card and passes on a card that holds a list or form.
  • [ ] bun scripts/design-lint.ts passes, and the pull shows before and after looks of each changed page in light and dark.

Files: scripts/design-lint.ts, test/design-lint.test.ts, the flagged pages in src/web/pages. Risk: keep the rule textual and narrow, so it does not flag a card holding real content. Do not change card() itself.

commented

Reviewed pull #11194 at its head: ticked scripts/design-lint.ts flags a card( call (from src/web/ui.ts) whose body is one <p> element or a bare text line with no list, form or dl, names principle 7 and says what to use instead: the sentence directly under the page head, or a dl row.; Every page under src/web/pages that it flags today is changed to draw a row or a plain sentence. If one cannot be changed in this pull, it goes on a short allowlist in the script, one reason per entry, and that list only shrinks.; test/design-lint.test.ts gains a case that fails on a lone-sentence card and passes on a card that holds a list or form.. left open: bun scripts/design-lint.ts passes, and the pull shows before and after looks of each changed page in light and dark. — The lint passes, but no before/after looks of the changed pages in light and dark are attached to the pull..

commented

Left open after pull #11194 landed: 1 unticked item remains (bun scripts/design-lint.ts passes, and the pull shows before and after looks of each changed page in light and dark.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

commented

The pull shipped the rule, the page changes and the test. The open box is no longer wanted as builder work: bun scripts/design-lint.ts passes on main today (checked 2026-11-11), and before/after pictures cannot be taken from a builder's sandbox — the forge's looks service takes light and dark looks on every preview of the pages forge.json lists.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs