HyperFrames Core 是 HyperFrames 体系中的技术契约技能,目标是帮助使用者构建一个可渲染的 HyperFrames 项目。HyperFrames 以 HTML 渲染视频:合成是一个 HTML 文件,其 DOM 通过 data-* 属性声明时间信息,动画运行时必须可定位,媒体播放由框架负责。
用途与定位:本技能专注于“如何搭建一个 HyperFrames 项目”的技术规范。动画运行时(GSAP、Lottie、Three.js 等)、创意、媒体、CLI 与注册表等主题位于同域的兄弟技能中,本技能不展开。
主要能力与内容结构:技能正文是构建指南,细分主题放在 references/ 目录中按需查阅,包括:最小可渲染合成骨架(minimal-composition.md)、单体与模块化结构选择及子合成原型(composition-patterns.md)、data-* 属性查阅(root / clip / 子合成宿主 / 旧别名,使用 class="clip")(data-attributes.md)、轨道与片段(data-track-index、同轨重叠与 z-index、相对时间)(tracks-and-clips.md)、子合成接入(宿主属性、<template>、逐实例变量)(sub-compositions.md)、变量与媒体(<video>/<audio>、音量、裁剪)(variables-and-media.md)、确定性规则(可定位时间轴、禁用项、可动画属性白名单、布局与文字适配)(determinism-rules.md)、全屏运动(共享背景的全画幅运动)(full-screen-motion.md)、分镜格式(STORYBOARD.md 及解析清单)(storyboard-format.md)、脚本格式(可选 SCRIPT.md 锁定旁白)(script-format.md)、子代理调度动词映射(subagent-dispatch.md)以及 Tailwind v4 项目用法(tailwind.md)。
使用方式要点:
- 两种根形态不可互换:独立合成(顶层 index.html)的根 <div data-composition-id="…"> 直接位于 <body>,不能加 <template> 包裹,否则内容隐藏且渲染失败;子合成(通过 data-composition-src 加载)的根必须包裹在 <template> 中。运行时只克隆 <template> 内容,模板外(含 <head> 样式/脚本)会被丢弃,因此 <style>/<script> 需放进模板内。宿主槽位的 data-composition-id 必须与内部模板的 data-composition-id 以及 window.__timelines["<id>"] 的键完全一致,不能加 -mount/-slot/-host 后缀。
- 根元素必须设置尺寸:独立合成根需要显式 px 宽高,且到 height:100% 元素的每一层祖先都要有可解析高度,否则 flex/100% 子元素会塌缩到约 0,内容堆到左上角;lint/validate/inspect 不会捕获此问题。
- 每个合成只注册一个 gsap.timeline({ paused: true }),键为 window.__timelines["<id>"](<id> 为根 data-composition-id),在页面加载时同步构建;渲染时长取根 data-duration,而非时间轴长度;不要手动把子时间轴嵌套进宿主。
- 不可违反的规则(lint/validate/inspect 无法捕获的静默缺陷):禁止渲染时时钟、未播种的 Math.random、网络、输入状态;禁止 repeat: -1(改用有限次数);只能动画化视觉属性白名单,不得使用 display/visibility,不得对后续场景片段使用 gsap.set;正文不得使用 <br>;被变换元素须为块级且有尺寸;脉冲式绝对定位装饰需留出峰值余隙;<video>/<audio> 必须是宿主根的直接子元素,不能放在子合成 <template>/包裹层内,播放由框架接管;所有 id 在组装页中唯一,子合成内以组合 id 为前缀(如 #<id>-hero),重复的 <video>/<img> id 会渲染为空白;全屏场景填充应放在全出血子元素(position:absolute; inset:0)上,不要放在合成根本身,否则帧合成可能丢掉根背景而渲染成黑帧。
- 编辑已有合成时先读文件,保留无关的时间、轨道、ID、变量、媒体路径,匹配现有组合 ID 与时间轴键;添加片段需选择不重叠的 data-track-index 或有意识地调整周边时间;接入子合成前先核对其内部 data-composition-id。
适用场景:按 HyperFrames 契约从零构建或维护可渲染的 HTML 视频合成项目,涉及合成结构、时间属性、轨道片段、子合成、变量与媒体、确定性约束等场景。
限制与校验:使用 hyperframes-cli 运行 npx hyperframes lint、validate、inspect(应无错误);含子合成的项目可用 npx hyperframes snapshot --at <midpoints> 逐帧目检;npx hyperframes preview 供审阅(用户可在 Studio 时间轴中编辑);仅在用户确认后再运行 npx hyperframes render。技能文本未提供具体收费、价格或平台支持等额外信息。