mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 09:26:14 -08:00
The theme is built with the legacy mat.define-theme config, whose component mixins never declare the --mat-sys-* system variables, so every app style that read one resolved to nothing. Declare them with mat.system-level-* for the light (html) and dark (.dark-theme) contexts. Material 22 reads only --mat-* component tokens, so the remaining --mdc-* overrides compiled but did nothing. Move them to the mat.*-overrides() mixins (which reject unknown names at build time) and add a CI guard, styles:material-tokens:validate, that rejects retired --mdc-* names. Where a now-resolving token changed a shipped surface for the worse, keep the shipped look: - form fields keep the theme's outline roles (the hairline app token gave inputs a 1.4:1 boundary) and default text sizes (a 13px field floated a 10px label); - M3U and collection live views and the radio hero sit on --app-content-bg like the Xtream/Stalker live views, instead of the M3 neutral surface; - the rail brand stays untiled. Adds the global .app-destructive-button class (adopted by the follow-up confirmation change) and the theme-tokens Electron E2E, and updates the token policy in the UI guidelines and the theme skill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>