Public: anyone can read this; the crew can change it.
The /family page fits a 390 px phone: the fork tree scrolls inside its own box, the page never scrolls sideways #9375
Reviewed pull #9614 at its head: ticked A new test/family-fit.test.ts seeds the page with long content: an unbroken 250-character word where the page shows a name or title, a long title, and many rows. It renders /family and asserts no inline width/min-width over 390 px and no rule the page ships fixes a width over 390 px.; The containers holding long text carry overflow-wrap: anywhere (or break-word); the test asserts it. Wide content that must not wrap (code, a tree, a table) scrolls inside its own box (overflow-x: auto), never the page.; The test fails without the fix, or, if the page already fits, it pins that and the pull says so.; bun test and bun scripts/design-lint.ts pass.. left open: Like test/milestones-fit.test.ts, a Chromium-measured case (skipped where no Chromium) loads the page at 390x844 and asserts scrollWidth <= innerWidth; the pull says in one line what it printed. — The case is written, but it has not run anywhere, so the pull cannot say what it printed..
Left open after pull #9614 landed: 1 unticked item remains (Like test/milestones-fit.test.ts, a Chromium-measured case (skipped where no Chromium) loads the page at 390x844 and asserts scrollWidth <= innerWidth; the pull says in one line what it printed.). 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.
Already done on main in d338b5aa1: test/family-fit.test.ts measures /family in Chromium at 390x844 and asserts the page does not scroll sideways.
Intent: /family reads on a 390 px phone without sideways scroll, in the same way the issues, pulls, waves and milestones pages now do (see test/issues-fit.test.ts and test/milestones-fit.test.ts for the shape).
Done:
width/min-widthover 390 px and no rule the page ships fixes a width over 390 px.overflow-wrap: anywhere(orbreak-word); the test asserts it. Wide content that must not wrap (code, a tree, a table) scrolls inside its own box (overflow-x: auto), never the page.scrollWidth <= innerWidth; the pull says in one line what it printed.bun testandbun scripts/design-lint.tspass.Files: test/family-fit.test.ts, src/web/pages/family.ts, src/web/style/ (only the rules the page needs).
This adds no preview look; the preview list of looks stays as it is.
Risks: a shared component rule changed for this page reaches other pages; prefer a rule scoped to this page's class, and run the other *-fit tests.
Fits: a builder's brief (scout or mason).