v1.7.2 — Theme coverage complete (for now)
A theming-completeness pass: every color the theme system should reach now resolves through a token — enforced by a build guard so it can't drift back.
Theming
- Full token coverage. Swept the last hardcoded color literals out of the panel CSS and the standalone cards — map zone/highlight fills that ignored a re-themed accent, card hovers, text-on-accent, a mobile scrim, and more — routing each through the existing
--evcc-*tokens with the original literal kept as fallback (so appearance is unchanged, and it follows a custom theme). 98.9% of color declarations now resolve through a theme token — 100% of the colors that should be themed. The remaining 1.1% are deliberately theme-independent (legibility whites that must read over any room color, amix-blend-modemarker, aprefers-color-scheme: lightblock) — each explicitly marked with a reason. - Theme-lint guard.
check-styles.mjsnow fails the build — locally and in CI — on any un-tokenized color in the panel CSS or the cards. Deliberate exceptions carry a/* theme-lint-ignore */with a rationale. - Coverage tracked. The generated token CSS-usage trace now stamps the coverage % on every regen, so the number moves with the code instead of going stale.
No new tokens (still 406 across 25 groups) — this raised coverage, not palette size.
Frontend-only — a browser hard-refresh (Ctrl+Shift+R) picks it up; no Home Assistant restart. Builds on the profile card from v1.7.1.