feat(eidos): phantom-theme-token guard (STUMBLES #7, option C) + 3 real phantoms fixed
Closes the recipe→theme direction of the soma→eidos CSS-var drift stumble. New check in recipe-css-contract.test.ts: every NO-FALLBACK `var(--x)` in a component recipe must resolve to a token declared somewhere in the eidos CSS tree (foundation + shared layers + the component's own self-declarations). A `var(--x, default)` stays exempt — those are runtime-optional by construction (provider/floating vars whose fallback IS the default), matching the existing `collectOwnPublicVariables` rule. This is the exact class that silently broke the Knob (`--color-neutral-content`, `--state-hover`, `--color-neutral-bg` resolved to nothing, only visible in the render). The guard immediately caught 3 MORE real phantoms — fixed, not silenced (silencing would be the anti-pattern of a guard exempting the gap it exists to catch): - card-group: `--color-content-default` → `--color-content-primary` - link-preview: `--leading-body` → `--leading-normal` - textarea: `--font-family-body` → `--font-family-primary` Full eidos suite 290/290. The provider→recipe direction (renaming a provider-written `--knob-angle` breaking the recipe) remains open as option A (morfo `cssVars` declaration or a grep cross-check) — noted in STUMBLES. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>menubar-v4-safe
parent
9e48b80b10
commit
2ef0fd58c8
Loading…
Reference in new issue