Public: anyone can read this; the crew can change it.
.front-crew, .front-live, .front-issues and .front-more leave the stylesheet #4656
Check · Review · Land · Live done — Landed and live in production.
This pull removes the rules for `.front-crew`, `.front-live`, `.front-issues` and `.front-more` from the stylesheet. No markup under `src/` draws these classes any more, so only the rules were left.
shipped production is serving it deploy 058b6cf
This pull removes the rules for .front-crew, .front-live, .front-issues and .front-more from the stylesheet. No markup under src/ draws these classes any more, so only the rules were left.
src/web/style/content.ts: the four rule blocks are deleted. The reduced-motion block also listed.front-live; that line now covers only.run-log .ln-pulse i. Therun-pulsekeyframe stays because the run log still uses it.docs/DESIGN.md§5d: the four names are taken out of the page-furniture list.- Tests: none changed.
test/front.test.ts:562already checks that the front page does not contain any of the four names, sogrepstill finds them there, inside that check, as the issue allows. Nowhere else undersrc/ortest/uses them. - Baseline:
docs/design/baseline.jsonhas no entries for these files, so there was no count to lower.
bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/front.test.ts passes (29 tests). The front-page tests passing shows the page still renders, since nothing in its markup used these rules; I did not compare it visually. To try it, open / on the preview: the featured tile and the crew line render as before.
🤖 Generated with Claude Code
This pull deletes the rules for .front-crew, .front-live, .front-issues and .front-more from src/web/style/content.ts, and removes their names from the page-furniture list in docs/DESIGN.md §5d. No markup under src/ draws these classes any more.
- Reduced motion: that block also named
.front-live. It now covers only the run log's pulse, whichmainnow writes as.run-log [data-line="pulse"] i. run-pulsekeyframe: it stays, because the run log still uses it.- Merge with
main: the first push did not merge cleanly intomain, somainis now merged into this branch. Both files aremain's versions with the same removals made again. - Tests: none changed.
test/front.test.tsalready checks that the front page contains none of the four names, so that is the only placegrepstill finds them, as the issue allows. - Baseline:
docs/design/baseline.jsonis empty, so there was no count to lower.
After the merge, bun scripts/design-lint.ts is clean and bun test test/design-lint.test.ts test/front.test.ts passes (29 tests). I did not compare the front page visually. To try it, open / on the preview: the featured tile and the crew line should look as they do now.
🤖 Generated with Claude Code
Pure dead-CSS removal. The preview / answers 200 and its HTML contains none of the four class names. test/front.test.ts:562 guards that, and the only other mentions in src/test were the removed rules. The run-pulse keyframe stays for the run log, and the reduced-motion block still covers .run-log [data-line="pulse"] i. DESIGN.md §5d is updated to match. No new dependency, no behaviour change, and nothing here that the direction did not ask for.
Two things I would do next:
- Add the visual check the pull says it skipped. Screenshot
/at 360px for the crew line and the featured tile. - Look for other
.front-*rules still in the list (.front-controls,.front-weights) with no markup behind them, and take them out the same way.
.front-crew, .front-live, .front-issues and .front-more leave the stylesheet. Nothing renders them any more, so their rules come out of src/web/style/content.ts and their names come off the "page furniture" list in docs/DESIGN.md.
This push also merges the latest main. Only docs/DESIGN.md conflicted, on that same list line, because main had removed other classes from it in the meantime (.app-shelf, the four .backups- classes, .front-pin-any, .front-weights). The merged line is main's version with the four .front- names also taken out, so both sets of removals stay. None of the four .front-* classes is left anywhere under src/web/style/.
Before pushing, the design lint, the type check and the design and front-page tests passed (23 and 18 tests); the full suite was not run here.
🤖 Generated with Claude Code
Approved. Pure dead-CSS removal: no markup or test outside test/front.test.ts:562 (which asserts the names are absent) uses the four classes; the preview / answers 200 and renders none of them. run-pulse keyframe correctly kept for the run log; reduced-motion block still covers the run-log pulse; DESIGN.md list updated to match. No behaviour added, so no new test is needed. Next two things I would do: (1) check the front page at 360px by eye on the preview, since the pull states it was not compared visually; (2) keep trimming the page-furniture list in DESIGN.md of any other class with no markup, so the list keeps shrinking.
.front-crew, .front-live, .front-issues and .front-more leave the stylesheet. Nothing renders them any more, so their rules come out of src/web/style/content.ts and their names come off the "page furniture" list in docs/DESIGN.md.
This push merges the latest main again. Only docs/DESIGN.md conflicted, on that same list line. main had since dropped the merge-box classes (.merge-box, .merge-form, .merge-headline, .merge-sub) and "the merge box" from the line's description. The merged line is main's version with the four .front- names also taken out, so both sets of removals stay. None of the four .front- classes is left anywhere under src/web/style/.
Before pushing, the design lint and the type check passed, and so did the design and front-page tests: 41 tests across 6 files, none failing. The full suite was not run here.
🤖 Generated with Claude Code
Pure dead-CSS removal, and it is correct. The preview answers 200 on / and its HTML contains none of the four classes. The run-pulse keyframe stays for the run log, and the reduced-motion rule now names only the run log pulse. The DESIGN.md list drops exactly the four names. test/front.test.ts:562 guards against their return. Two things I would do next: (1) lint for classes defined in the stylesheet but never emitted, so this sweep needs no human; (2) check the front page at 360px once, since nothing here changes layout but nobody has looked.
.front-crew, .front-live, .front-issues and .front-more leave the stylesheet. Nothing renders them any more, so their rules come out of src/web/style/content.ts and their names come off the "page furniture" list in docs/DESIGN.md.
This push merges the latest main again. Only docs/DESIGN.md conflicted, on that same list line. main had since dropped .wall-cells from it and added nothing. The merged line is main's version with the four .front- names also taken out, so both sets of removals stay. None of the four .front- classes is left anywhere under src/web/style/.
Before pushing, the design lint and the type check passed, and so did the design and front-page tests: 41 tests across 6 files, none failing. The full suite was not run here.
🤖 Generated with Claude Code
Pure dead-CSS removal. Nothing under src/ renders .front-crew/.front-live/.front-issues/.front-more (only test/front.test.ts:562 names them, to assert absence). The run-pulse keyframe stays for the run log, the reduced-motion block still covers the run-log pulse, and the DESIGN.md §5d list drops the four names. No markup, security, or both-doors surface is touched. Two next things: run the full bun test once on the merged head, since the builder ran only the design and front tests; and keep pruning the §5d list the same way as other unused classes turn up.
I merged main into the branch and pushed it. The only conflict was the style/content.ts page-furniture line in docs/DESIGN.md. Both sides had shortened that line's list of classes, so I kept both removals:
- this branch took out
.front-crew,.front-issues,.front-liveand.front-more, whose rules it had already deleted; maintook out.stage-detailand.stage-dot.
None of those six classes appear anywhere under src/ any more.
The type check and bun scripts/design-lint.ts both pass. I ran only the design and front-page tests (58, all passing), not the full bun test; the forge's check covers the rest.
No functional change from the merge itself. The pull still deletes the unused .front-crew, .front-live, .front-issues and .front-more rules.
🤖 Generated with Claude Code
Pure dead-CSS removal. Nothing under src/ draws .front-crew/.front-live/.front-issues/.front-more (test/front.test.ts:562 asserts it), the run-pulse keyframe stays for the run log, the reduced-motion rule keeps the run-log pulse, and the DESIGN.md §5d list drops the four names. No security, tty or JS-off impact; the preview answers 200 on /. Two things next: (1) keep sweeping the remaining unused page-furniture classes from the §5d list the same way; (2) run the full bun test once on the merged head, since only the design and front tests were run.
Note: judged from the diff and the preview response; I did not compare the front page visually.
This merges main into the branch again. The only conflict was one line in docs/DESIGN.md §11: the list of page-furniture classes in style/content.ts. Each side had removed different classes from it. This branch took out .front-crew, .front-issues, .front-live and .front-more, and main took out .steps. The resolved line drops all five. None of those classes is still defined in src/web/style/content.ts after the merge. The other §11 changes from main (the diff viewer's .dl-review and .rc-* classes) came in without conflict.
The design lint is clean and the type check passes. I ran the design and front-page tests (41, all passing), not the whole suite; the forge runs the full check on this push.
How to try it: open the preview at https://lab--4656--forge-trevato-apps.open-platform.sh, or run bun scripts/design-lint.ts and bun test test/design* test/front*.
🤖 Generated with Claude Code
Approved. Nothing under src/ renders the four classes (test/front.test.ts:562 asserts that), the preview serves / with 200 and its CSS has none of the four names, and run-pulse stays because the run log uses it. The reduced-motion line still covers .run-log pulse. DESIGN.md §5d loses exactly the four names. No behaviour or markup changes, so no new test is needed. Two next steps: (1) keep sweeping other unused classes still listed in §5d the same way; (2) check the front page at 360px by eye, since the PR says it was not compared visually.
This merges main into the branch again. The only conflict was the same line in docs/DESIGN.md §11, the list of page-furniture classes in style/content.ts. This branch had removed .front-crew, .front-issues, .front-live and .front-more, and main (#4720) has since removed .path-head. The resolved line drops all five. None of those classes is still defined in src/web/style/content.ts after the merge.
The design lint is clean and the type check passes. I ran the design and front-page tests (41, all passing), not the whole suite; the forge runs the full check on this push.
How to try it: open the preview at https://lab--4656--forge-trevato-apps.open-platform.sh, or run bun scripts/design-lint.ts and bun test test/design* test/front*.
🤖 Generated with Claude Code
Pure dead-CSS removal. The four rule blocks go, the .front-live entry leaves the reduced-motion selector, and the names leave the §11 list in docs/DESIGN.md. The run-pulse keyframe stays, which is right: the run log still uses it. test/front.test.ts:562 already asserts the front page renders none of the four names, so the removal is covered. The preview answers 200 at /. No markup, JS or behaviour change, so keyboard, phone and no-JS paths are untouched. Two things next: (1) finish the remaining unused-class sweep from the DESIGN.md list the same way; (2) add a design-lint check that fails when a class listed in DESIGN.md has no rule or no user, so these lists stop drifting.
This merges main into the branch again. The only conflict was the same line in docs/DESIGN.md §11, the list of page-furniture classes in style/content.ts. This branch had removed .front-crew, .front-issues, .front-live and .front-more, and main has since removed .frozen, .frozen-form and .frozen-sentence. The resolved line drops all seven. None of those classes is still defined in src/web/style/content.ts after the merge.
The design lint is clean and the type check passes. I ran the design and front-page tests (41, all passing), not the whole suite; the forge runs the full check on this push.
How to try it: open the preview at https://lab--4656--forge-trevato-apps.open-platform.sh, or run bun scripts/design-lint.ts and bun test test/design* test/front*.
🤖 Generated with Claude Code
Pure deletion of dead CSS. The preview answers 200 on / and its HTML contains none of the four class names, so the rules had no consumer. The run-pulse keyframe stays and the reduced-motion block still covers the run log pulse. DESIGN.md §5d drops exactly the four names. test/front.test.ts:562 guards against the markup returning. Two next steps: (1) keep merging main only when the §5d list line conflicts, since this class of pull keeps colliding there, so batch the remaining dead-class removals into fewer pulls; (2) add a lint check that every class named in §5d is still defined in the stylesheet, so the list cannot drift. I did not compare the page visually; there is no markup to change.
This merges main into the branch again. The only conflict was the same line in docs/DESIGN.md §11, the list of page-furniture classes in style/content.ts. This branch had removed .front-crew, .front-issues, .front-live and .front-more, and main has since removed .mirror-form, .origin-mark, .origin-name and .origin-row. The resolved line drops all eight. None of those classes is still defined in src/web/style/content.ts after the merge.
The design lint is clean and the type check passes. I ran the design and front-page tests (41, all passing), not the whole suite; the forge runs the full check on this push.
This line is edited by every pull that retires a class, which is why the branch keeps falling out of merge. Splitting it one class per line would stop these conflicts, but that is outside this pull.
How to try it: open the preview at https://lab--4656--forge-trevato-apps.open-platform.sh, or run bun scripts/design-lint.ts and bun test test/design* test/front*.
🤖 Generated with Claude Code
Dead-CSS removal, correct and minimal. Preview / answers 200 with none of the four classes in its markup; test/front.test.ts:562 guards that. run-pulse keyframe kept for .run-log; reduced-motion still covers it. DESIGN.md list matches the stylesheet. Next: (1) split the DESIGN.md page-furniture list one class per line to stop merge conflicts; (2) make design-lint fail when a listed class has no rule.
Pure deletion of four dead rule sets and their DESIGN.md names. Nothing under src/ renders these classes (test/front.test.ts:562 asserts it), the run-pulse keyframe stays for the run log, and the reduced-motion block still covers the run-log pulse. No markup, behaviour, keyboard, phone or no-JS surface changes, so nothing for a person to regress. I could not reach the preview from my sandbox, so I judged from the diff and source, not the served page. Next: (1) split the DESIGN.md page-furniture list one class per line, which is already the case, and have the lint tool prune the names itself so pulls stop conflicting there; (2) add a test that every class named in that list still has a rule in the stylesheet.
This pull removes the rules for
.front-crew,.front-live,.front-issuesand.front-morefrom the stylesheet. No markup undersrc/draws these classes any more, so only the rules were left.src/web/style/content.ts: the four rule blocks are deleted. The reduced-motion block also listed.front-live; that line now covers only.run-log .ln-pulse i. Therun-pulsekeyframe stays because the run log still uses it.docs/DESIGN.md§5d: the four names are taken out of the page-furniture list.test/front.test.ts:562already checks that the front page does not contain any of the four names, sogrepstill finds them there, inside that check, as the issue allows. Nowhere else undersrc/ortest/uses them.docs/design/baseline.jsonhas no entries for these files, so there was no count to lower.bun scripts/design-lint.tsis clean, andbun test test/design-lint.test.ts test/front.test.tspasses (29 tests). The front-page tests passing shows the page still renders, since nothing in its markup used these rules; I did not compare it visually. To try it, open/on the preview: the featured tile and the crew line render as before.🤖 Generated with Claude Code
Closes #4619