Files
iptvnator/.codex/skills/iptvnator-theme-style/SKILL.md
T
4gray 2ac0de752f fix(skills): align repository guidance with implementation (#1315)
* docs(skills): design implementation synchronization

* docs(skills): plan implementation synchronization

* fix(release): filter internal notes from public body

* docs(release): synchronize release workflow guidance

* fix(stalker): normalize catalog series flags

* fix(stalker): preserve progress with scoped episode IDs

* fix(playback): expose strict position persistence

* docs(stalker): record series position compatibility

* test(skills): validate repository skill contracts

* fix(database): keep SQL trace values private

* docs(skills): refresh Nx and SQLite ownership

* docs(skills): align provider and UI guidance

* docs(skills): tighten validated guidance

* docs(release): require exact release pushes

* style(electron): remove trailing blank line

* fix(ci): classify repository skills coverage
2026-07-31 08:00:59 +02:00

2.5 KiB

name, description
name description
iptvnator-theme-style Use when changing IPTVnator SCSS tokens, shared layout mixins, portal headers, sidebars, detail views, Electron drag regions, or cross-portal visual consistency.

IPTVnator Theme Style

Canonical Sources

  • Theme contexts and app tokens: apps/web/src/m3-theme.scss
  • Shared forwarding inventory: libs/ui/styles/_index.scss
  • Shared partials: libs/ui/styles/_portal-layout.scss, libs/ui/styles/_content-grid.scss, libs/ui/styles/_portal-sidebar.scss, libs/ui/styles/_panel-header.scss, libs/ui/styles/_detail-view.scss, and libs/ui/styles/_detail-view-actions.scss
  • UI policy and migration debt: docs/architecture/iptvnator-ui-guidelines.md

The index is a barrel, not a configured Sass include path. Production consumers currently use relative @use paths to the needed partial.

Token Boundary

  • App-owned surfaces, text, separators, hover states, selections, and provider accents use --app-* tokens from m3-theme.scss.
  • Use --app-selection-on-color for foregrounds placed on the selection accent; do not assume white has enough contrast in both themes.
  • Angular Material mixins and Material-component overrides may use Material tokens. Outside Material-owned components, use a --mat-sys-* token only after proving it is emitted in both light and dark contexts and supplying a real app-token or literal fallback.
  • Local semantic status colors are acceptable. Existing hard-coded layout, selection, and EPG surface colors are migration debt, not precedent.

Shared Layout Rules

  • Extend the matching partial instead of copying a large provider stylesheet. Provider-neutral services and UI use the existing shared data-access/UI libraries; repeated visual structure belongs in a shared Sass partial. Portal-shared consumers use their existing forwarding style modules instead of copied SCSS.
  • In an Electron drag region, every interactive descendant—buttons, links, inputs, overlays, and resize handles—must explicitly use app-region: no-drag. The shared directive-generated .resize-handle does not set this centrally yet; consumers in drag regions must cover it themselves and must not assume the generated handle opts out.
  • A shared change must be checked across M3U, Xtream, Stalker, workspace, portal catalog/shared UI, and unified collections where relevant.

Validation

Run the affected consumer's Nx lint/test/build target. Inspect light and dark themes, selected/hover states, and Electron title-bar drag/no-drag behavior.