Close the frontend class inventory #28
Loading…
Reference in a new issue
No description provided.
Delete branch "class-inventory"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The Kit's Vocabulary is closed where Go emits markup, but 72% of the class names are written in TypeScript and
core.cssis shared by both apps — so no single module could check either half, and the two drifted.kind="primary"rendered as a plain.btnbecause the expander had no branch for it; 21 names were emitted with no rule behind them.just class-checknow walks all three stylesheets against every emitter and fails on a rule nothing emits or a name nothing styles. Everything else here is what it found, plus the two primitives the duplication motivated:isClipped(one definition of "this text does not fit") andbindScrollEdges(one listener, replacing seven copies).Also fixes ОД Подробно, where the М header scrolled away while Команда and Σ stayed frozen.
🤖 Posted by Claude
The class-inventory check found 21 names emitted with no rule and no selector behind them, plus .divider styled with no emitter. Deleting a name that nothing styles and nothing selects cannot change rendering, so they go. Five of them were behaviour hooks wearing class syntax, which is why the dead ones were unfindable: player-select, roster-team-cell, ksi-detailed-team-cell and dope-unnumbered-banner move to data-* — a class is for styling, a data attribute is for behaviour. entry-selection-anchor was neither; only the code clearing it ever selected it, and the anchor already lives in entrySelection. Two primitives absorb what five pages had been copying: isClipped the one definition of "this text does not fit its box", epsilon included. fest-grid reimplemented markNameOverflow verbatim; host.ts inlined the same comparison. bindScrollEdges one listener, one epsilon, one teardown. Seven copies of classList.toggle(name, el.scrollLeft > 1), two of them byte-identical, and host.ts bound the same class twice on the same .sheet-frame with no way to unbind the second. CSS follows: one .popover-inline replaces five positioning blocks that differed only in a left offset, and the reveal/suppress triplet is written once instead of five times. .fight-frame zeroes --sheet-corner-col rather than restating four frozen-column offsets, and the mobile query stops re-stating rules that already compute to the same values. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>