--- name: hyperframes-core description: HyperFrames HTML composition contract. Use for composition structure, data attributes, clips, tracks, sub-compositions, variables, media playback, deterministic render rules, and validation of minimal renderable projects. --- # HyperFrames Core HyperFrames renders video from HTML. A composition is an HTML file whose DOM declares timing with `data-*` attributes, whose animation runtime is seekable, and whose media playback is owned by the framework. This skill is the **technical contract**. Other concerns live in sibling skills: - `hyperframes-animation` — atomic motion rules + scene blueprints + per-runtime adapters (GSAP, Lottie, Three, Anime.js, CSS, WAAPI, TypeGPU) - `hyperframes-creative` — palettes, typography, narration, beat planning, audio-reactive - `hyperframes-media` — TTS, Whisper transcribe, background removal, captions - `hyperframes-registry` — install blocks and components (`hyperframes add`) - `hyperframes-cli` — dev loop commands (lint / validate / preview / render) For **Tailwind v4 projects** (`hyperframes init --tailwind`), see `references/tailwind.md` — the browser-runtime contract is distinct from Studio's Tailwind v3 setup. ## Routing | Want to… | Read | | ------------------------------------------------------------------------------------------ | ------------------------------------ | | See a minimal renderable composition | `references/minimal-composition.md` | | Decide between monolithic single-file and modular sub-comp architecture | `references/composition-patterns.md` | | Structure a modular `index.html` (orchestrator + slots + root audio) | `references/composition-patterns.md` | | Pick a sub-comp archetype (content / driver-only / multi-scene merge / audio-reactive) | `references/composition-patterns.md` | | Look up a `data-*` attribute (root, clip, sub-comp host, legacy aliases) | `references/data-attributes.md` | | Use `class="clip"` correctly | `references/data-attributes.md` | | Pick a `data-track-index`; same-track overlap; track-index vs CSS `z-index` | `references/tracks-and-clips.md` | | Time a clip relative to another (`data-start="intro + 2"`, crossfade overlap, chains) | `references/tracks-and-clips.md` | | Wire a sub-composition (host attributes, `