Skip to main content

max / goingson

Remove the dead custom properties Four of the ten unread tokens were genuinely dead and are gone. --overlay-color was superseded by the --overlay intent, which every scrim already reads. Its comment documented a dark-theme bug it never got the chance to cause, because nothing consumed it. --line-height-tight had no reader and no literal 1.25 anywhere in the file. The other two steps of that scale are used, so the scale keeps its shape. --action-hover and --border-strong are makeover intents with no reader in this stylesheet. themes.js applies the full resolved set at runtime, so dropping their first-paint defaults costs nothing; the block comment now says it mirrors the intents this stylesheet reads rather than makeover's whole output, and says what to do when a new rule needs one. The other six are not dead, they are bypassed, so they stay: 27 literal font sizes match --font-size-xl through 4xl exactly, 38 spacing literals match --space-6, and 3 width literals match --width-sidebar. Removing a token whose consumers hardcode its value would bless the hardcoding.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-27 00:49 UTC
Signed with PGP, not checked
Commit: 6054f768da163d640ca13ee07aef6daa43addf1d
Parent: ae417e0
1 file changed, +4 insertions, -11 deletions
@@ -235,9 +235,10 @@
235 235 /* --- INTENT LAYER (themeable)
236 236 Resolved intent tokens, applied at runtime by js/themes.js (setProperty
237 237 on :root). Defaults below are the "goingson" titular theme for first
238 - paint; makeover resolves every theme, including the derived states
239 - (action-hover/active, border-strong, hover-surface, overlay), so this
240 - is one shared mapping across audiofiles / Balanced Breakfast / MNW. */
238 + paint. makeover resolves every theme and themes.js applies the whole
239 + set at runtime, so this block mirrors only the intents this stylesheet
240 + actually reads. Adding a rule that reads a new intent means adding its
241 + default here too, or it has no value until the first paint is over. */
241 242 --surface-page: #AEB6DC;
242 243 --surface-raised: #D9DDF4;
243 244 --surface-sunken: #BAC2E6;
@@ -247,13 +248,11 @@
247 248 --content-muted: #6B6B6B;
248 249 --content-on-action: #000000;
249 250 --action: #6196FF;
250 - --action-hover: #70a6ff;
251 251 --danger: #DC3545;
252 252 --success: #5CB85C;
253 253 --warning: #F7D154;
254 254 --info: #17A2B8;
255 255 --border: #4A5077;
256 - --border-strong: #3D4268;
257 256 --focus-ring: #6196ff;
258 257 --hover-surface: #bac2e6;
259 258 --category-one: #DC3545;
@@ -342,15 +341,9 @@
342 341 --font-size-4xl: 1.75rem; /* Main headings */
343 342
344 343 /* Line height scale */
345 - --line-height-tight: 1.25;
346 344 --line-height-normal: 1.5;
347 345 --line-height-relaxed: 1.75;
348 346
349 - /* Modal overlay, derived: mixes --text-primary into transparent. On a dark theme this
350 - produces a *light* scrim, which is wrong; dark themes should override with their own
351 - --overlay-color or this should be reworked to use a dedicated --scrim token. */
352 - --overlay-color: color-mix(in srgb, var(--content) 60%, transparent);
353 -
354 347 }
355 348
356 349 html {