hyperframes-core

影像 / 音视频 视频与文档 视频核心 11 文件 EN 原文

Hyperframes 核心概念

时间轴、图层、关键帧与渲染管线的基本模型。

说明语言:中文

原文描述EN

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

来源heygen-comhyperframes ↗ 查看原文件 ↗版权归原作者,请遵循原仓库许可
安装
npx skills add https://github.com/heygen-com/hyperframes --skill hyperframes-core

需要已安装 skills CLI。也可以直接从源仓库 clone。

在星云中查看 ↗
SKILL.md 原文

name: hyperframes-core description: The HyperFrames composition contract — build one renderable project. Use for composition structure, the data-* timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML. ---

Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below.

HyperFrames Core

Agent pitfalls (read first):

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 — how to build one hyperframes project. The body below is the build guide; per-topic detail lives in references/ (index next), read on demand. Process docs (brief, storyboard, review, production, dispatch, frame-worker) live in /hyperframes → references/. Other concerns live in the sibling domain skills — hyperframes-animation, hyperframes-creative, media-use, hyperframes-cli, hyperframes-registry. The capability map in /hyperframes says what each one covers.

References

FileRead it to…
references/minimal-composition.mdstart from the smallest renderable composition skeleton
references/composition-patterns.mdchoose monolithic vs modular; structure a modular index.html; pick a sub-comp archetype
references/data-attributes.mdlook up any data-* (root / clip / sub-comp host / legacy aliases); use class="clip"
references/tracks-and-clips.mdunderstand what data-track-index does (and does not) control, z-index, time a clip relative to another; list every track and clip with npx hyperframes timeline
references/creator-editing-recipes.mdcopy truthful cut/trim/reorder/retime/freeze/camera/mask/crossfade/audio editing recipes and their limits
references/sub-compositions.mdwire a sub-composition (host attrs, <template>, per-instance vars) and animate inside it
references/variables-and-media.mddeclare variables; place <video>/<audio>, set volume, trim
references/determinism-rules.mdbuild a seekable timeline; determinism bans; layout / text fit
references/full-screen-motion.mdauthor full-frame motion with shared backgrounds
references/tailwind.mdwork in a Tailwind v4 project (init --tailwind; runtime contract differs from Studio's v3)

For animation runtime specifics (GSAP API, Lottie, Three.js, etc.) go to hyperframes-animation → adapters/<runtime>.md.

Building a composition

Two root forms (not interchangeable)

⚠ Transport rule: for a templated sub-composition the assembler drops the file's own <head> <style>/<script> (packages/core/src/compiler/compositionAssembly.ts, the hasTemplate gate), so put <style>/<script> inside the template. <link> is hoisted either way. ⚠ Host-id convention: give the host slot, the inner template, and the window.__timelines["<id>"] key the same id. A different local id is supported (the assembler falls back to the first root in the file) but the mismatch is silent, so match them unless you have a reason not to.

File shape, host wiring, and the pre-render checklist → references/sub-compositions.md.

Root must be sized (silent layout bug)

The standalone root authors width/height: 100%. Canvas size is data-width/data-height. The runtime stamps those pixels onto the composition root. Do not hardcode 1920px/1080px on #root. Skeleton → references/minimal-composition.md.

One paused timeline

Each composition registers exactly one gsap.timeline({ paused: true }) at window.__timelines["<id>"] (key = root data-composition-id). Building it inside an async callback (document.fonts.ready) is supported; what matters is that you register only after the build completes. Render length is the root's data-duration, not the timeline's length: a timeline that runs past it is cut off, and one that ends early holds its last frame. Omit the root data-duration and the length is inferred instead (timeline, media window, or adapter). You do not need window.__timelines = window.__timelines || {}: the runtime creates the registry before your inline scripts run, and lint no longer asks for it. Don't manually nest sub-timelines into the host; the runtime auto-nests registered child timelines. Full contract (incl. non-GSAP runtimes) → references/determinism-rules.md + hyperframes-animation/adapters/.

First-pass lint gotchas (a guaranteed first build failure)

Rules that lint does catch, but only after the fact. Write them right the first time:

A lint error also switches off the layout and contrast audits: check then reports 0 sample(s) and 0/0 text checks, which reads like a clean file but means nothing ran. Clear lint errors before you trust those numbers.

Non-negotiable rules (silent bugs automated gates may miss)

Surfaced here; full rationale in the linked reference. Do not violate:

Editing existing compositions

Validation

Use hyperframes-cli for command details

同类技能
document-illustratorembedded-captionsfaceless-explainerhyperframeshyperframes-animationhyperframes-cliinfographicsmd-to-pptx
本页内容来自开源项目 heygen-com, 版权归原作者所有。
本站仅作技能索引与分享,所有 Skill 版权归其原作者所有。