--- name: hyperframes-studio description: > Use when building or editing a HyperFrames project that people open in Studio: how the timeline should be laid out so it reads well (one caption track, one element kind per track, every scene a sub-composition) and where captions and key content may sit (safe zones). Don't use for how to perform an individual edit (split, trim, retime, volume, copy, swap): that is `creator-editing-recipes.md` in `/hyperframes-core`. --- # HyperFrames Studio conventions Studio draws one timeline row per top-level element. A project that follows the rules below opens as a short, readable timeline; one that does not opens as a wall of unlabeled rows the user cannot edit. These are conventions for what to build. For how to change a clip, follow `/hyperframes-core` `references/creator-editing-recipes.md` and never invent a different form of the same edit. ## 1. Every scene is a sub-composition The root composition holds only timed hosts, media and audio. Any scene with nested structure (a div containing children, a title with a subtitle, a chart) is its own file loaded with `data-composition-src`, wiring in `references/sub-compositions.md`. Nested markup left inside the root does not become a row of its own. It hides inside one opaque row that cannot be trimmed or moved part by part. Author as if a structure lint rejects any violation. ## 2. One caption track - All captions live on one track: a single sub-composition host (one `data-track-index`) marked `data-track-kind="captions"` that carries every caption group in order. - Never one row per caption group, and never captions mixed onto a track with another kind. - Word-timing rules are unchanged: see `/embedded-captions` and the `caption_*` lint rules. ## 3. One element kind per track Group by kind so each row is one thing the user can select, mute or drag as a set. | Kind | `data-track-kind` | | --------------------------------------- | ---------------------- | | Base video / A-roll | `video` (from the tag) | | Scenes, overlays, graphics | `graphics` | | Captions | `captions` | | Audio (voiceover, music, sound effects) | `audio` (from the tag) | Put `data-track-kind` on sub-composition hosts. Video and audio kinds come from the tag, so `