Public: anyone can read this; the crew can change it.
.theme-option and .theme-apply leave the stylesheet and docs/DESIGN.md §5d #5725
Check · Review · Land · Live done — Landed and live in production.
This pull removes `.theme-option`, `.theme-apply` and the `.tick` inside the option from `src/web/style/components.ts`, because nothing renders them anymore. It also removes all three from the `style/components.ts` class list in `docs/DESIGN.md` §5d.
shipped production is serving it deploy eb43263
The .theme-option and .theme-apply rules, and the .theme-option .tick rule that went with them, are deleted from src/web/style/components.ts. Their names are deleted from the style/components.ts list in docs/DESIGN.md §5d. The picker markup no longer uses any of these classes, so this only removes rules nothing matches, and the page looks the same.
Nothing else in either file changes, apart from one comment. The comment above .swatch used to say "theme switcher", which named the section being deleted, so it now says what .swatch styles: the colour chip beside each theme in the menu's picker.
On main, §5d now puts each class on its own line (#4888). This branch had edited the old single-line list, so merging main conflicted on that line. I took main's list and deleted the three lines for .theme-apply, .theme-option and .tick. Nothing outside the deleted rules used the .tick class, so its name goes too.
grep -rn finds none of the three class names under src/ or in docs/DESIGN.md, and src/web/style and docs/DESIGN.md have no conflict markers. bun scripts/design-lint.ts is clean and bun test test/design-lint.test.ts passes (16 tests). docs/design/baseline.json did not need changing.
To try it: open the theme picker in the topbar menu on the preview; it should look and behave as it does on production.
🤖 Generated with Claude Code
This pull removes .theme-option, .theme-apply and the .tick inside the option from src/web/style/components.ts, because nothing renders them anymore. It also removes all three from the style/components.ts class list in docs/DESIGN.md §5d.
This update merges origin/main to fix the conflict in docs/DESIGN.md. While this pull was open, main changed that class list in two ways: it went from one inline line to one class per line, and it dropped .hex and .empty-title. The resolved list uses main's format and drops the three classes this pull removes. .tick is not used anywhere else in docs/ or src/web.
After the merge, bun scripts/design-lint.ts passes and the 44 tests in the six design and style suites pass.
🤖 Generated with Claude Code
Approved. This only deletes CSS rules that nothing uses anymore.
- The picker in
src/web/layout.ts(themeForm) now renderslabel.checkwith.swatch. Nothing undersrc/uses.theme-option,.theme-applyor a.tickclass outside the deleted rules. - The preview at this head renders the picker with
class="swatch". Its inline stylesheet no longer containstheme-optionortheme-apply. docs/DESIGN.md§5d drops the same three names and keeps main's one-class-per-line list.- The
.swatchcomment now says what it styles, not the section that was removed. test/web.test.ts:665-666already checks that the page does not contain these classes.
No security surface, no behaviour change, no new dependency, and the terminal is unaffected.
This pull removes .theme-option, .theme-apply and the .tick inside the option from src/web/style/components.ts, because nothing renders them anymore. It also removes all three from the style/components.ts class list in docs/DESIGN.md §5d. The pages look the same.
The only other change is one comment: the one above .swatch said "theme switcher", which named the deleted section, so it now says what .swatch styles (the colour chip beside each theme in the menu's picker).
Main has not moved since the last update (35d1086b), so there was nothing to merge and nothing new to push. The branch head is still d6608ca5. The earlier conflict in docs/DESIGN.md was resolved by taking main's one-class-per-line list and deleting the three lines.
On this head, bun scripts/design-lint.ts is clean. grep finds no conflict markers in src/web/style or docs/DESIGN.md, and none of the three classes remain under src/. .tick is not used anywhere else in docs/ or src/web.
To try it: open the theme picker in the topbar menu on the preview; it should look and behave as it does on production.
🤖 Generated with Claude Code
This pull removes .theme-option, .theme-apply and the .tick inside the option from src/web/style/components.ts, because nothing renders them anymore. It also removes all three from the style/components.ts class list in docs/DESIGN.md §5d. The pages look the same.
The only other change is one comment: the one above .swatch said "theme switcher", which named the deleted section, so it now says what .swatch styles (the colour chip beside each theme in the menu's picker).
This update merges the one new commit on main (262f7862, which only touches docs/MCP.md); it merged without conflicts.
After the merge, bun scripts/design-lint.ts is clean and bun test test/design-lint.test.ts passes (16 tests). grep finds no conflict markers in src/web/style or docs/DESIGN.md, and neither .theme-option nor .theme-apply appears under src/ or in docs/DESIGN.md.
To try it: open the theme picker in the topbar menu on the preview; it should look and behave as it does on production.
🤖 Generated with Claude Code
Approved. Only dead CSS leaves: nothing in src/web renders .theme-option, .theme-apply or a .tick class, and the preview picker renders 7 .swatch chips with none of the removed classes in its markup. DESIGN.md §5d drops the same three names, and the .swatch comment now says what it styles. No security, terminal or dependency surface. Next: (1) keep the test in test/web.test.ts that asserts these classes are absent; (2) run the design-lint orphan check in CI so a class list and stylesheet cannot drift again.
This pull removes .theme-option, .theme-apply and the .tick inside the option from src/web/style/components.ts, because nothing renders them anymore. It also removes all three from the style/components.ts class list in docs/DESIGN.md §5d. The pages look the same.
The only other change is one comment: the one above .swatch said "theme switcher", which named the deleted section, so it now says what .swatch styles (the colour chip beside each theme in the menu's picker).
Main has not moved since the last merge, so nothing new was merged or pushed. The pull is open and mergeable with no conflicts.
On the current head, bun scripts/design-lint.ts is clean and bun test test/design-lint.test.ts passes (16 tests). grep finds no conflict markers in src/web/style or docs/DESIGN.md, and neither .theme-option nor .theme-apply appears under src/ or in docs/DESIGN.md.
To try it: open the theme picker in the topbar menu on the preview; it should look and behave as it does on production.
🤖 Generated with Claude Code
.theme-option, .theme-apply and .tick in src/web/style/components.ts were defined but never used, so this deletes them. It also drops their three entries from the style/components.ts class list in docs/DESIGN.md §5d. Nothing in src/web uses them, and no page changes.
main has been merged in again. The conflict in docs/DESIGN.md came from #5567 and the related area-doc pulls on main. They moved .table-scroll, .tell-here, .timeline, .tl-dot, .toast-body and .topbar-search out of the same list into their own docs/design/areas/*.md files. I kept both sides' removals, so nothing from either side is left in that spot. Compared with main, docs/DESIGN.md now differs only by the three deleted lines.
bun scripts/design-lint.ts, the design tests (45 pass) and bun x tsc --noEmit are clean.
🤖 Generated with Claude Code
Approved. Pure dead-CSS removal: no file under src/web renders .theme-option, .theme-apply or a .tick class (grep at base finds them only in style/components.ts and DESIGN.md §5d), and test/web.test.ts:665-666 already asserts the first two are absent from the page. On the preview the served stylesheet (/assets/forge-0b870b328c26426d.css) has zero matches for the three, .swatch and its per-theme variants remain, and the picker is still a <form class="theme-form" method="post" action="/theme"> with 7 swatches, so it works with JavaScript off. §5d drops exactly the three names; the new .swatch comment describes what it styles. No security, terminal, dependency or behaviour surface changes, so no new test or tty work is owed.
This removes .theme-option and .theme-apply from the stylesheet and from the §5d list in docs/DESIGN.md. #4700 has already taken them out of the theme picker's markup, so nothing on a page uses them.
src/web/style/components.ts: the.theme-optionrules (including the.tickandinputrules nested under it) and the.theme-applyrule are deleted..swatchstays. Its section comment changed from "theme switcher" to say what.swatchis, since it is now the only thing in that section.docs/DESIGN.md§5d:.theme-apply,.theme-optionand.tickleave the components list. The issue says nothing else in these files should change, but.tickwas only ever styled inside.theme-option, and no web markup uses it as a class. Leaving it listed would name a class that no longer exists.docs/design/baseline.json: unchanged. It never named these classes.
The branch is merged up to current main with no conflict markers in src/web/style or docs. The only remaining mentions of the two names under src/ and test/ are the existing checks in test/web.test.ts, which assert the page does not contain them. bun scripts/design-lint.ts is clean, and bun test test/design-lint.test.ts test/web.test.ts passes (58 tests).
To try it: open the theme picker from the menu. It should look and work the same, since it no longer used these classes. Then run the grep and the two commands above.
🤖 Generated with Claude Code
Approved. Pure dead-CSS removal that does what the issue asked and nothing more. No src/ file renders .theme-option, .theme-apply or a .tick class (the remaining grep hits for tick are unrelated JS identifiers). On the preview the home page serves 7 class="swatch" chips and no mention of the removed classes. The picker stays a plain post form, so it works with JavaScript off. DESIGN.md §5d drops exactly the three names, and the new .swatch comment is accurate. There is no security, terminal or dependency surface. Two things to do next: (1) keep the web.test.ts assertions that the page lacks these classes, since they guard against the rules coming back; (2) rerun the design-lint baseline whenever the picker markup changes.
This removes .theme-option and .theme-apply from the stylesheet and from the §5d list in docs/DESIGN.md. The theme picker's markup stopped using them in #4700, so no page refers to them any more.
src/web/style/components.ts: the.theme-optionrules are deleted, including the.tickandinputrules nested under it, and so is the.theme-applyrule..swatchstays. Its section comment changes from "theme switcher" to say what.swatchis, since it is now the only rule in that section.docs/DESIGN.md§5d:.theme-apply,.theme-optionand.tickcome out of the components list. The issue asks for nothing else in these files to change. But.tickwas only ever styled inside.theme-optionand no web markup uses it as a class, so leaving it listed would name a class that no longer exists.docs/design/baseline.json: unchanged; it never named these classes.
Main has not moved since the last merge, so this push adds no new commits. There are no conflict markers in src/web/style or docs, and grep finds neither class name under src/. bun scripts/design-lint.ts reports no problems and bun test test/design-lint.test.ts passes (17 tests). The only remaining mentions in the repository are the existing checks in test/web.test.ts, which assert that the rendered page does not contain them.
To try it, open the theme picker from the menu: it should look and behave exactly as before, because it had already stopped using these classes.
🤖 Generated with Claude Code
This pull removes
.theme-option,.theme-applyand the.tickinside the option fromsrc/web/style/components.ts, because nothing renders them anymore. It also removes all three from thestyle/components.tsclass list indocs/DESIGN.md§5d.This update merges
origin/mainto fix the conflict indocs/DESIGN.md. While this pull was open, main changed that class list in two ways: it went from one inline line to one class per line, and it dropped.hexand.empty-title. The resolved list uses main's format and drops the three classes this pull removes..tickis not used anywhere else indocs/orsrc/web.After the merge,
bun scripts/design-lint.tspasses and the 44 tests in the six design and style suites pass.🤖 Generated with Claude Code
Continues #5725