CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

68

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

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.

Repository
4gray/iptvnator
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.