From lightning-tv
Lightning TV framework expertise for @lightningtv/solid v3.x Smart TV applications. Prevents DOM hallucination and provides a traversable knowledge graph of 173 atomic reference entries. Verified against @lightningtv/solid v3.2.3 source.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lightning-tv:lightning-tvThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are working on a **@lightningtv/solid** application. This framework renders to a **WebGL/Canvas GPU scene graph**, NOT the browser DOM. Applying standard web patterns will break things silently.
entries/Announcer loading property defers speech until all elements in the focus path are loaded.mdentries/Announcer singleton announces newly focused elements by diffing the focus path against previous state.mdentries/Announcer speak method supports append and notification modes for programmatic speech control.mdentries/Column component is a vertical navigable list with flexDirection column and 30px gap.mdentries/Config singleton holds all runtime Lightning configuration.mdentries/Config.focusStateKey controls which state string marks focused elements.mdentries/Config.fontWeightAlias maps named weights to numeric values.mdentries/Config.stateOrder controls style resolution priority when multiple states are active.mdentries/DOM renderer AnimationController interpolates numeric props using requestAnimationFrame.mdentries/DOM renderer defers image loading until node enters bounds using renderState tracking.mdentries/DOMNode renders Lightning visual properties as computed inline CSS on a div element.mdentries/DOMText measures its own dimensions after render to feed back into flex layout.mdentries/DefaultKeyHoldMap adds hold-key detection for EnterHold.mdentries/DefaultKeyMap defines the six standard TV navigation keys.mdentries/Effects interface provides eight shader effects applicable to element nodes.mdentries/ElementNode animate method requires rendered state and returns a chainable IAnimationController.mdentries/ElementNode chain and start methods enable sequenced animation queuing.mdentries/ElementNode emit method bubbles custom events up the parent chain.mdentries/ElementNode is the primary abstraction for all renderable elements in Lightning TV Solid.mdentries/ElementNode lng property holds a plain object before render and the live renderer node after.mdYou are working on a @lightningtv/solid application. This framework renders to a WebGL/Canvas GPU scene graph, NOT the browser DOM. Applying standard web patterns will break things silently.
Compatibility: This knowledge base was extracted from
@lightningtv/solidv3.2.3 source code. It is valid for the v3.x major version line. APIs may differ in v2.x or earlier.
<view>, <node>, <text> exist. No <div>, <span>, <img>, or any HTML tag.document, addEventListener, querySelector, classList, innerHTML.forwardFocus on every container that holds focusable children -- without it, children never receive focus.return true to stop event propagation.style object. Use signals on individual props or $-prefixed states for dynamic visuals.color={0xffffffff} when using src for images.Read the full guardrails and quick reference:
notes/guardrails.md (in this skill's directory)entries/index.md (in this skill's directory)The entries/ directory contains a wiki-linked knowledge graph. Start from the guides:
| Guide | Domain |
|---|---|
entries/core guide.md | ElementNode, renderer, config, task scheduling |
entries/styling guide.md | Flex layout, states, transitions, shaders/effects |
entries/focus guide.md | Focus manager, key handling, capture/bubble phases |
entries/navigation guide.md | Row/Column nav, spatial nav, scrolling modes |
entries/components guide.md | Row, Column, Grid, Virtual, Image, Lazy, and more |
entries/input guide.md | useFocusManager, useHold, useMouse, key maps |
entries/accessibility guide.md | Announcer, speech synthesis, ARIA labels |
entries/performance guide.md | Virtual scrolling, lazy loading, preserve, task queue |
entries/routing guide.md | HashRouter, KeepAlive, route preservation |
Each entry is titled as a prose statement (e.g., "Row component is a horizontal navigable list with built-in flex layout and 30px gap") and contains YAML frontmatter with type (api/pattern/gotcha/architecture/comparison) and module fields.
type: gotcha to find all pitfalls, type: api for API references[[wiki links]] between entries to traverse related conceptsInclude these instructions in the subagent prompt:
<view>, <node>, <text> JSX elements exist. No HTML tags. No DOM APIs."[skill-dir]/notes/guardrails.md before writing code."[skill-dir]/entries/."npx claudepluginhub rwaltenberg/lightning-tv-solid-plugin --plugin lightning-tvProvides tvOS design guidelines for focus-based navigation, Siri Remote input, and 10-foot UI. Helps build living room experiences with proper focus states and parallax effects.
tvOS platform-specific development with focus system, large screen UI, Siri Remote, and media playback. Use when building Apple TV apps, video streaming, or living room experiences.
Provides expertise in Jetpack Compose and Compose Multiplatform for UI development across Android, Desktop, iOS, Web. Covers APIs, navigation, Paging 3, Android TV, design systems, and PR reviews.