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

The dead `.headroom` rules leave src/web/style/content.ts and docs/DESIGN.md §5d, and no markup changes #4782

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

This removes the last `.headroom` rules from the stylesheet. Nothing drew them: the subscriptions page's headroom form already uses `.row-fields` with a plain `.input`. No markup changes and no change in behaviour.

shipped production is serving it deploy 78db48e

opened this

This removes the last .headroom rules from the stylesheet. Nothing drew them: the subscriptions page's headroom form already uses .row-fields with a plain .input. No markup changes and no change in behaviour.

  • src/web/style/content.ts: deleted the whole .headroom block — the comment, .headroom, .headroom .input, and the two .row:has(.headroom) rules in the 640px media query.
  • docs/DESIGN.md §5d: .headroom is gone from the style/content.ts class list.
  • test/subscriptions.test.ts: the test "the headroom form is §5's row fields, with no class of its own" now also fetches the served stylesheet (stylesheetAsset().path). It checks that .row-fields is there and .headroom is not. Its existing checks still confirm the page renders the form, with action=".../headroom" and name="headroom".
  • docs/design/baseline.json: not touched. bun scripts/design-lint.ts reported no counts that fell, and the file never listed .headroom.
  • src/web/pages/subscriptions.ts: not touched.

bun scripts/design-lint.ts is clean. bun test test/design-lint.test.ts test/settings-visible.test.ts test/subscriptions.test.ts passes (37 tests), and bun x tsc --noEmit is clean.

To try it, open /settings/subscriptions on the preview. The headroom form should look the same as on production, and the linked stylesheet should contain no .headroom.

🤖 Generated with Claude Code

Closes #4767

commented

This removes the last .headroom rules from the stylesheet. Nothing drew them: the subscriptions page's headroom form already uses .row-fields with a plain .input. No markup changes and no change in behaviour.

  • src/web/style/content.ts: deleted the whole .headroom block — the comment, .headroom, .headroom .input, and the two .row:has(.headroom) rules in the 640px media query.
  • docs/DESIGN.md §5d: .headroom is gone from the style/content.ts class list.
  • test/subscriptions.test.ts: the test "the headroom form is §5's row fields, with no class of its own" now also fetches the served stylesheet (stylesheetAsset().path). It checks that .row-fields is there and .headroom is not. Its existing checks still confirm the page renders the form, with action=".../headroom" and name="headroom".
  • docs/design/baseline.json: not touched. bun scripts/design-lint.ts reported no counts that fell, and the file never listed .headroom.
  • src/web/pages/subscriptions.ts: not touched.

bun scripts/design-lint.ts is clean. bun test test/design-lint.test.ts test/settings-visible.test.ts test/subscriptions.test.ts passes (37 tests), and bun x tsc --noEmit is clean.

To try it, open /settings/subscriptions on the preview. The headroom form should look the same as on production, and the linked stylesheet should contain no .headroom.

🤖 Generated with Claude Code

Approved — before the latest push

Dead-CSS removal, verified: no markup in src uses class headroom (the form is .row-fields with a plain .input), the DESIGN.md §5d list drops the name, and the new test fetches the served stylesheet and would fail if the rule came back. Preview answers 200 and nothing visible changes. Two next things: (1) the removed phone rule let a row wrap its controls under the name; confirm .setting-list/.row-fields already do that at 360px on /settings/subscriptions, which the settings-phone shot suggests; (2) keep sweeping the remaining unused names in the §5d content.ts list the same way, each with a stylesheet-absence test.

commented

This removes the last .headroom rules from the stylesheet. Nothing drew them: the subscriptions page's headroom form already uses .row-fields with a plain .input. No markup changes and no change in behaviour.

  • src/web/style/content.ts: deleted the whole .headroom block — the comment, .headroom, .headroom .input, and the two .row:has(.headroom) rules in the 640px media query.
  • docs/DESIGN.md §5d: .headroom is gone from the style/content.ts page-furniture list. Merging main conflicted on that one line, because main had meanwhile dropped .mirror-form, .origin-mark, .origin-name and .origin-row from it. The merged line is main's with .headroom also removed.
  • test/subscriptions.test.ts: the test "the headroom form is §5's row fields, with no class of its own" now also fetches the served stylesheet (stylesheetAsset().path). It checks that .row-fields is there and .headroom is not. Its existing checks still confirm the page renders the form, with action=".../headroom" and name="headroom".
  • docs/design/baseline.json: not touched. bun scripts/design-lint.ts reported no counts that fell, and the file never listed .headroom.
  • src/web/pages/subscriptions.ts: not touched.

After the merge, bun scripts/design-lint.ts is clean, bun test test/design-lint.test.ts test/settings-visible.test.ts test/subscriptions.test.ts passes (37 tests), and bun x tsc --noEmit is clean.

To try it, open /settings/subscriptions on the preview. The headroom form should look the same as on production, and the linked stylesheet should contain no .headroom.

🤖 Generated with Claude Code

Approved — before the latest push

Dead-rule removal, verified: no markup anywhere in src uses class headroom, the subscriptions form uses .row-fields with a plain .input, and the preview answers. DESIGN.md §5d drops the name, and the test now asserts the served stylesheet has .row-fields and no .headroom. Next: (1) check whether .flag-form (the neighbouring block) is likewise unused and remove it the same way; (2) ensure the 5em width the old .headroom .input gave is not wanted on a 360px phone, since .row-fields wraps.

commented

This removes the last .headroom rules from the stylesheet. Nothing drew them: the subscriptions page's headroom form already uses .row-fields with a plain .input. No markup changes and no change in behaviour.

  • src/web/style/content.ts: deleted the whole .headroom block — the comment, .headroom, .headroom .input, and the two .row:has(.headroom) rules in the 640px media query.
  • docs/DESIGN.md §5d: .headroom is gone from the style/content.ts page-furniture list. main changed that same line twice while this pull was open, and each merge conflicted on it:

- The first time, main had dropped .mirror-form, .origin-mark, .origin-name and .origin-row. - This time, it had dropped .sys-pair. - Each time the merged line is main's with .headroom also removed.

  • test/subscriptions.test.ts: the test "the headroom form is §5's row fields, with no class of its own" now also fetches the served stylesheet (stylesheetAsset().path). It checks that .row-fields is there and .headroom is not. Its existing checks still confirm the page renders the form, with action=".../headroom" and name="headroom".
  • docs/design/baseline.json: not touched. bun scripts/design-lint.ts reported no counts that fell, and the file never listed .headroom.
  • src/web/pages/subscriptions.ts: not touched.

After this merge, bun scripts/design-lint.ts is clean, bun test test/design-lint.test.ts test/settings-visible.test.ts test/subscriptions.test.ts passes (37 tests), and bun x tsc --noEmit is clean.

To try it, open /settings/subscriptions on the preview. The headroom form should look the same as on production, and the linked stylesheet should contain no .headroom.

🤖 Generated with Claude Code

Approved — before the latest push

Dead .headroom rules removed from the stylesheet and the §5d list; the served preview CSS contains no .headroom, and subscriptions.ts already renders the form as .row-fields with a plain .input (no markup change). The new test fetches the served stylesheet, so it fails if the rules return. Nothing outside the issue. Next, if you want: (1) have design-lint flag a documented class that no stylesheet rule defines, so §5d lists cannot drift from the CSS; (2) check the /settings/subscriptions headroom row at 360px by hand once, since the removed phone wrap rules never matched.

Approved

Pure dead-CSS removal. The headroom form in src/web/pages/subscriptions.ts:226 is already .row-fields with a plain .input, and components.ts:442-445 gives it wrapping and a 5em number input, so the phone layout is unchanged. The test now fails if .headroom returns to the served stylesheet. DESIGN.md §5d drops the class. No markup, behaviour or security surface changes. I could not load the preview from my sandbox, so this rests on the diff and the base source. Next, if you want: (1) add a design-lint check that every class listed in DESIGN.md §5d still exists in the stylesheet, so lists like this stop drifting; (2) check /settings/subscriptions at 360px to confirm the Keep form still wraps under the name.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs