Setting up your dashboard0 entities found · 9/34 branches scanned
ID:WORK-435Status:ready
Spacing token contract + Lumina refactor
The prerequisite the WORK-410 spike surfaced: a clean skeleton/skin split needs spacing to be tokenized, exactly as the type split needed WORK-404/WORK-405. Skeleton references spacing tokens by name; skin owns their values — but today Lumina hardcodes magnitudes (0.5rem, 0.375rem, 0.8125em, …), so the skin layer can't retune them without restating structure. The gate for the re-bucketing.
Extend the token contract (packages/types/src/token-contract.ts) with a spacing system — a named scale (and any rhythm / inset / gap facets the audit shows are needed), mirroring the typographic-token shape from WORK-404.
Refactor Lumina's hardcoded spacing declarations onto the tokens (no visual change), the way WORK-405 did for type. Drive the audit from the spike's finding (card/hint/surfaces hardcodes) outward across the rune + dimension CSS.
Generate the spacing tokens into Lumina's token CSS (extend the WORK-406 generator), not a hand-maintained mirror.
Acceptance Criteria
The token contract defines a spacing scale (+ needed facets) with typed --rf-* tokens, generated into Lumina's token CSS.
Lumina's hardcoded spacing magnitudes are refactored onto the tokens with no visual change (CSS-coverage + contracts green).
An audit confirms no stray hardcoded spacing remains in the slice the re-bucketing will touch first (card / hint / surfaces), and a documented residue list for the rest.
Dependencies
Builds on the token-contract work (WORK-404/WORK-405/WORK-406). Gates the re-bucketing (WORK-438).