general-video

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

general-video — general composition authoring

general-video — 通用合成创作

Confirm the route before you build. This is the fallback for custom composition authoring. If the input clearly fits a specialized workflow, prefer it: marketed product →
/product-launch-video
; general site →
/website-to-video
; topic explainer →
/faceless-explainer
; GitHub PR →
/pr-to-video
; existing footage →
/embedded-captions
·
/graphic-overlays
; short unnarrated motion graphic →
/motion-graphics
; Remotion port →
/remotion-to-hyperframes
. Out of scope: live / at-render-time data, NLE-style editing of a finished video, or producing footage HyperFrames can't capture. Unsure? Read
/hyperframes-read-first
first.
Build exactly what was asked. A title card is a title card — not a title card + three supporting scenes + ambient music + captions. If extra scenes or elements would genuinely improve the piece, propose them; don't add them silently. For small edits (fix a color, adjust one duration, add one element), skip the planning steps and go straight to the build.
开始制作前请确认路径。这是自定义合成创作的兜底方案。如果输入明显适合某个专门工作流,请优先选择:营销产品 →
/product-launch-video
;通用网站 →
/website-to-video
;主题讲解 →
/faceless-explainer
;GitHub PR →
/pr-to-video
;现有素材 →
/embedded-captions
·
/graphic-overlays
;无旁白短动态图形 →
/motion-graphics
;Remotion迁移 →
/remotion-to-hyperframes
超出范围:实时/渲染时数据、对成品视频进行非线性编辑(NLE)风格的剪辑,或制作HyperFrames无法捕获的素材。不确定?先阅读
/hyperframes-read-first
严格按照需求制作。标题卡就是标题卡——不要额外添加三个辅助场景、环境音乐和字幕。如果额外场景或元素确实能提升作品质量,请提出建议;不要擅自添加。对于小修改(调整颜色、修改单个时长、添加一个元素),可跳过规划步骤直接开始制作。

Approach

方法

Discovery — open-ended requests only

探索阶段 — 仅适用于开放式需求

For vague, exploratory requests ("make something for our brand", "a cool intro") — understand intent before picking colors:
  • Audience — who watches? developers / executives / general consumers?
  • Platform — where does it play? social (15s) / website hero / product demo / internal?
  • Priority — what matters most? motion quality / content accuracy / brand fidelity / speed?
  • Variations — one best shot, or 2-3 meaningfully different options (different pacing, energy, or structure — not just color swaps)?
For specific requests ("add a title card", "fix the timing on scene 3"), skip discovery.
对于模糊、探索性的需求(如“为我们的品牌制作一些内容”“一个酷炫的片头”)——在选择颜色前先明确意图:
  • 受众 — 谁会观看?开发者/高管/普通消费者?
  • 平台 — 在哪里播放?社交平台(15秒)/网站首屏/产品演示/内部使用?
  • 优先级 — 最重要的是什么?动效质量/内容准确性/品牌一致性/制作速度?
  • 变体 — 提供一个最佳版本,还是2-3个有显著差异的版本(不同节奏、风格或结构——而非仅颜色差异)?
对于明确的需求(如“添加一个标题卡”“调整第3场景的时长”),跳过探索阶段。

Step 1 — Design system →
hyperframes-creative

步骤1 — 设计系统 →
hyperframes-creative

Establish the visual identity first. If the project has a design spec, read it (precedence
frame.md
design.md
DESIGN.md
; treat it as brand truth — exact colors, fonts, constraints).
If no spec exists, you MUST read BOTH
hyperframes-creative/references/house-style.md
AND
hyperframes-creative/references/video-composition.md
before choosing any color or font.
house-style.md
gives the "interpret the prompt / generate real content" opener, lazy-default list, and layer recipe;
video-composition.md
gives the video-medium density / scale / foreground detailing (data bars, registration marks, monospace metadata, "8-10 elements, two the user didn't ask for") that separates "produced" from "generated." Reading only one is the most common miss —
video-composition.md
is the one agents skip, and it is exactly the one that prevents flat, centered, web-page-looking output. Do not self-invent a palette and skip these; crossing into
hyperframes-creative
is mandatory here, not an optional branch. From there, also pull a named style/mood →
references/visual-styles.md
, or the interactive picker →
references/design-picker.md
, as needed. The spec/style defines the brand, not the composition rules.
Find the angle (vague brief, no spec): before picking colors, write ONE sentence — what does this name/word/topic evoke, and what visual world (metaphor, setting, instrument, motif) expresses it? E.g. a cybersecurity tool → vault doors / perimeter scan lines / lock tumblers; a meditation app → tide, breath, slow light bloom. Read the meaning of the subject, not just its letters; pick a concrete angle over a literal restyle. This is the cheap substitute for prompt expansion (Step 2) on single-scene pieces, where expansion is correctly skipped — and it is the difference between a designed concept and a generic logo-on-a-gradient.
<HARD-GATE> Before writing ANY composition HTML, verify you have ALL FOUR: 1. **A visual identity** grounded in the spec or `house-style.md` — not invented on the spot. (Reaching for `#333`, `#3b82f6`, or `Roboto`? You skipped it.) 2. **A one-sentence concept angle** (the "find the angle" step) for anything beyond a trivial edit — not a literal restyle of the prompt words. 3. **A font pairing from the embed list** (`hyperframes-creative/references/typography.md` → "Fonts that embed") chosen on purpose — not `Inter`/`Helvetica Neue`/`system-ui` by default, and never an un-embedded display font you're just hoping renders (un-bundled names embed only if auto-captured locally — and cloud renders won't capture them). 4. **A foreground/density plan from `video-composition.md`** — the anchor-to-edges, 8-10-elements, foreground-metadata, background-texture rules. (Centered stack on a flat color with fewer than ~6 elements and no edge-anchored detail? You skipped it — that is the generic tell.) </HARD-GATE>
首先确立视觉标识。如果项目有设计规范,请阅读(优先级:
frame.md
design.md
DESIGN.md
;将其视为品牌准则——严格遵循颜色、字体、约束条件)。
如果没有规范,你必须在选择任何颜色或字体前阅读
hyperframes-creative/references/house-style.md
hyperframes-creative/references/video-composition.md
house-style.md
提供了“解读需求/生成真实内容”的开篇指南、默认选项列表和图层制作方法;
video-composition.md
给出了视频媒介的密度/比例/前景细节(数据条、定位标记等宽元数据、“8-10个元素,其中2个是用户未要求的”),这是区分“专业制作”与“AI生成”的关键。只阅读其中一个是最常见的失误——
video-composition.md
是Agent常忽略的部分,但它恰恰能避免产出平淡、居中、类似网页的内容。不要自行创建调色板并跳过这些步骤;必须参考
hyperframes-creative
,而非可选分支。在此基础上,还可根据需要选用指定风格/氛围→
references/visual-styles.md
,或交互式选择器→
references/design-picker.md
。规范/风格定义了品牌,而非合成规则。
确定创作角度(模糊需求且无规范):在选择颜色前,写下一句话——这个名称/词汇/主题能唤起什么联想,用什么样的视觉场景(隐喻、设定、元素、主题)来表达?例如,网络安全工具→保险库门/边界扫描线/锁芯;冥想应用→潮汐、呼吸、缓慢的光效绽放。解读主题的内涵,而非仅字面意思;选择具体的创作角度而非字面重构。这是单场景作品中替代提示词扩展(步骤2)的低成本方法——而这正是区分设计概念与通用渐变Logo的关键。
<HARD-GATE> 在编写任何合成HTML前,请确认你已具备以下四点: 1. **视觉标识**:基于规范或`house-style.md`——而非临时自创。(如果你想用`#333`、`#3b82f6`或`Roboto`?说明你跳过了这一步。) 2. **一句话创作角度**(“确定创作角度”步骤):适用于除微小修改外的所有内容——而非对需求文字的字面重构。 3. **从嵌入字体列表中选择的字体搭配**(`hyperframes-creative/references/typography.md` → “可嵌入字体”):需有明确选择依据——不要默认使用`Inter`/`Helvetica Neue`/`system-ui`,绝不要使用未嵌入的显示字体(未打包的字体仅在本地自动捕获时可嵌入——云渲染无法捕获)。 4. **来自`video-composition.md`的前景/密度规划**:边缘锚定、8-10个元素、前景元数据、背景纹理规则。(如果是居中堆叠在纯色背景上,元素少于约6个且无边缘锚定细节?说明你跳过了这一步——这是通用AI生成内容的典型特征。) </HARD-GATE>

Step 2 — Prompt expansion →
hyperframes-creative

步骤2 — 提示词扩展 →
hyperframes-creative

Run for every multi-scene composition (skip for single-scene pieces and trivial edits). Ground the request against the design spec + house style into a consistent intermediate that downstream work reads the same way. See
hyperframes-creative/references/prompt-expansion.md
.
适用于所有多场景合成(单场景作品和微小修改可跳过)。将需求与设计规范+品牌风格结合,生成一致的中间内容,确保下游工作解读一致。参见
hyperframes-creative/references/prompt-expansion.md

Step 3 — Plan

步骤3 — 规划

Before writing HTML, think at a high level:
  1. What — the viewer experience: narrative arc, key moments, emotional beats.
  2. Structure — how many compositions, sub-comp vs inline, which tracks carry video / audio / overlays / captions. For the monolithic-single-file vs modular-sub-comp call, see
    hyperframes-core/references/composition-patterns.md
    § Two Architectures (rule of thumb: ≥3 hard scene cuts, or any reused scene → modularize; a short single-scene piece stays one file).
  3. Rhythm — name the pattern before implementing (e.g.
    fast-fast-SLOW-SHADER-hold
    ); see
    hyperframes-creative/references/beat-direction.md
    .
  4. Timing — which clips drive duration, where transitions land, the pacing.
  5. Layout — build the end state first (see below).
  6. Animate — then add motion via
    hyperframes-animation
    .
编写HTML前,先进行高层级思考:
  1. 内容体验:观众体验——叙事弧线、关键节点、情感节奏。
  2. 结构:需要多少个合成、子合成还是内联、哪些轨道承载视频/音频/叠加层/字幕。关于单文件整体结构与模块化子合成的选择,参见
    hyperframes-core/references/composition-patterns.md
    § 两种架构(经验法则:≥3个硬场景切换,或有重复场景→模块化;短单场景作品保持单文件)。
  3. 节奏:实现前先确定节奏模式(如
    fast-fast-SLOW-SHADER-hold
    );参见
    hyperframes-creative/references/beat-direction.md
  4. 时长:哪些片段决定时长、转场位置、整体节奏。
  5. 布局:先构建最终状态(见下文)。
  6. 动效:然后通过
    hyperframes-animation
    添加动效。

Layout Before Animation

先布局,后动效

Position every element where it sits at its most visible moment — fully entered, correctly placed, not yet exiting. Write that as static HTML + CSS first. No GSAP yet.
Why: if you position elements at their animated start state (offscreen, scaled to 0, opacity 0) and tween to where you think they land, you are guessing the final layout — overlaps stay invisible until render. Build the end state first and you see and fix layout problems before adding motion.
  1. Identify the hero frame for each scene — the moment the most elements are simultaneously visible. That is the layout you build.
  2. Write static CSS for that frame. The content container must fill the scene with padding, not absolute offsets:
css
.scene-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 120px 160px; /* padding positions content; fills any scene size */
  gap: 24px;
  box-sizing: border-box;
}
Never use
position: absolute; top: Npx
on a content container — it overflows when content is taller than the space. Reserve absolute positioning for decoratives.
The
width/height: 100%
above only resolves if every ancestor has a resolved height.
The root
<div data-composition-id>
and any wrapper between it and
.scene-content
must be sized (
position: relative; width: 1920px; height: 1080px
on the root — see
hyperframes-core
→ "Root must be sized"). Skip this and the flex container collapses to ~0, content piles into the top-left corner, and the first glyph clips at x=0 — while
lint
/
inspect
still report 0 issues. And always keep the
padding
(≥80px) on
.scene-content
: it is the title-safe margin. Never replace it with bare
gap
.
  1. Add entrances — animate FROM offscreen/invisible TO the CSS position with
    gsap.from()
    (in sub-compositions prefer
    gsap.fromTo()
    so the start state is explicit; see
    hyperframes-core/references/sub-compositions.md
    ). The CSS position is ground truth; the tween is the journey to it.
  2. Exits are transition-handled — per the scene-transition rules in
    hyperframes-animation/transitions/
    , only the final scene animates elements out; between scenes the transition IS the exit.
Shared space across time: if element A exits before element B enters in the same area, both still need correct CSS positions for their respective hero frames — timeline ordering keeps them from coexisting, and the layout step catches accidental overlap. Layered glows/shadows and z-stacked depth are intentional overlap; the step is about catching unintentional collisions (two headlines on top of each other, content bleeding off-frame).
将每个元素定位到其最清晰可见的时刻——完全进入画面、位置正确、尚未退出。先编写静态HTML + CSS。暂不使用GSAP
原因:如果你将元素定位在动画起始状态(屏幕外、缩放为0、透明度0)并补间到你预期的最终位置,你是在猜测最终布局——重叠问题在渲染前无法察觉。先构建最终状态,你可以在添加动效前发现并修复布局问题。
  1. 确定每个场景的核心帧——最多元素同时可见的时刻。这就是你要构建的布局。
  2. 为该帧编写静态CSS。内容容器必须通过内边距填充场景,而非绝对偏移:
css
.scene-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 120px 160px; /* padding positions content; fills any scene size */
  gap: 24px;
  box-sizing: border-box;
}
绝不要对内容容器使用
position: absolute; top: Npx
——当内容高度超过空间时会溢出。仅将绝对定位用于装饰元素。
上述
width/height: 100%
仅在所有祖先元素高度已确定时生效
。根元素
<div data-composition-id>
及其与
.scene-content
之间的任何包装器都必须设置尺寸(根元素设置
position: relative; width: 1920px; height: 1080px
——参见
hyperframes-core
→ “根元素必须设置尺寸”)。跳过这一步会导致flex容器收缩至约0,内容堆积在左上角,第一个字符在x=0处被截断——而
lint
/
inspect
仍会报告无问题。并且始终保留
.scene-content
的内边距
(≥80px):这是标题安全边距。绝不要仅用
gap
替代它。
  1. 添加入场动效——使用
    gsap.from()
    从屏幕外/不可见状态动画到CSS定位的位置(子合成中优先使用
    gsap.fromTo()
    ,以便明确起始状态;参见
    hyperframes-core/references/sub-compositions.md
    )。CSS定位是基准;补间是到达基准的过程。
  2. 退场由转场处理——根据
    hyperframes-animation/transitions/
    中的场景转场规则,只有最后一个场景需要将元素动画退场;场景间的转场即为退场。
跨时间共享空间:如果元素A在元素B进入同一区域前退场,两者仍需为各自的核心帧设置正确的CSS位置——时间线顺序会避免它们同时存在,布局步骤会发现意外重叠。分层发光/阴影和z轴堆叠深度是有意的重叠;此步骤旨在发现无意的碰撞(两个标题重叠、内容溢出画面)。

Build — delegate to the domain skills

制作 — 委托给领域技能

This maps the skill's full surface (see the
description
) to its references — non-exhaustive; when an intent isn't listed, route through
hyperframes-creative
(look/concept),
hyperframes-animation
(motion),
hyperframes-core
(contract),
hyperframes-media
(audio/captions). The first row is ADDITIVE — read it AND your intent row, not one or the other.
Building…Read first (in order)
ALWAYS — every non-trivial piece, on top of your intent row below
hyperframes-creative/references/house-style.md
+
references/video-composition.md
(also gated in Step 1 / HARD-GATE; the "produced, not generated" foreground detailing)
Kinetic typography / text-forward
hyperframes-animation/techniques.md
(kinetic type) +
adapters/gsap-easing-and-stagger.md
+
rules/kinetic-beat-slam.md
Title card / lower-third / overlay / PiP / text-behind-subject
hyperframes-creative/references/composition-patterns.md
+ (for the centered/sized frame)
hyperframes-core
→ "Root must be sized"
Logo / brand-mark reveal
hyperframes-animation/rules/svg-path-draw.md
(draw-on) +
rules/3d-text-depth-layers.md
+
rules/scale-swap-transition.md
Data / stats / numbers
hyperframes-animation/rules/counting-dynamic-scale.md
+
rules/stat-bars-and-fills.md
+
hyperframes-creative/references/data-in-motion.md
Product / app / UI demo
hyperframes-animation/rules/3d-page-scroll.md
+
rules/cursor-click-ripple.md
+
rules/press-release-spring.md
Audio-reactive / music-driven
hyperframes-creative/references/audio-reactive.md
(pre-extract bands; map to motion)
Narrated / voiceover / captions / subtitles
hyperframes-media
(
tts
,
transcribe
, caption authoring) → place assets via
hyperframes-core
Multi-scene / transitions
hyperframes-animation/transitions/overview.md
then
transitions/catalog.md
(you are not done after the overview — the GSAP recipe is in the catalog)
Modular / sub-compositions
hyperframes-core/references/composition-patterns.md
+
references/sub-compositions.md
这将技能的完整范围(参见
description
)映射到其参考文档——非详尽列表;当意图未列出时,通过
hyperframes-creative
(视觉/概念)、
hyperframes-animation
(动效)、
hyperframes-core
(规范)、
hyperframes-media
(音频/字幕)进行处理。第一行是附加要求——需同时阅读第一行和对应意图行,而非二选一
制作内容…优先阅读(按顺序)
始终适用——所有非微小作品,需结合下方对应意图行
hyperframes-creative/references/house-style.md
+
references/video-composition.md
(同样在步骤1 / HARD-GATE中强制要求;是“专业制作,而非AI生成”的前景细节)
动态文字 / 文字主导内容
hyperframes-animation/techniques.md
(动态文字) +
adapters/gsap-easing-and-stagger.md
+
rules/kinetic-beat-slam.md
标题卡 / 下三分之一字幕 / 叠加层 / 画中画 / 文字置于主体后方
hyperframes-creative/references/composition-patterns.md
+(居中/尺寸设置)
hyperframes-core
→ “根元素必须设置尺寸”
Logo / 品牌标识展示
hyperframes-animation/rules/svg-path-draw.md
(路径绘制) +
rules/3d-text-depth-layers.md
+
rules/scale-swap-transition.md
数据 / 统计 / 数字
hyperframes-animation/rules/counting-dynamic-scale.md
+
rules/stat-bars-and-fills.md
+
hyperframes-creative/references/data-in-motion.md
产品 / 应用 / UI演示
hyperframes-animation/rules/3d-page-scroll.md
+
rules/cursor-click-ripple.md
+
rules/press-release-spring.md
音频响应 / 音乐驱动
hyperframes-creative/references/audio-reactive.md
(预提取频段;映射到动效)
旁白 / 语音解说 / 字幕 / 副标题
hyperframes-media
tts
transcribe
、字幕制作)→ 通过
hyperframes-core
放置素材
多场景 / 转场
hyperframes-animation/transitions/overview.md
然后
transitions/catalog.md
(仅阅读概述不够——GSAP实现方法在目录中)
模块化 / 子合成
hyperframes-core/references/composition-patterns.md
+
references/sub-compositions.md

Output checklist →
hyperframes-cli

输出检查清单 →
hyperframes-cli

  • npx hyperframes lint
    and
    npx hyperframes validate
    pass (block on results)
  • design adherence verified if a spec (
    frame.md
    /
    design.md
    ) exists — checklist in
    hyperframes-creative/references/design-adherence.md
  • npx hyperframes inspect
    passes, or every overflow is intentionally marked
  • contrast warnings addressed; for multi-scene work, review the animation map (
    hyperframes-animation/scripts/animation-map.mjs
    )
  • deliver the preview; render to MP4 only on explicit request
  • surface the preview only at handoff (it is the stable, final preview); don't pop one mid-build — build-phase snapshots are headless
  • npx hyperframes lint
    npx hyperframes validate
    通过(需根据结果修改)
  • 如果有规范(
    frame.md
    /
    design.md
    ),已验证符合设计要求——检查清单见
    hyperframes-creative/references/design-adherence.md
  • npx hyperframes inspect
    通过,或所有溢出均已标记为有意为之
  • 已处理对比度警告;对于多场景作品,已检查动效映射(
    hyperframes-animation/scripts/animation-map.mjs
  • 交付预览版;仅在明确要求时渲染为MP4格式
  • 仅在交付时提供预览(这是稳定的最终预览);制作过程中不要提供预览——制作阶段的快照为无头渲染结果

Not this workflow

不属于此工作流的场景

  • A specific product / company / SaaS / website being marketed, launched, or promoted →
    /product-launch-video
  • A concept / topic / article / how-X-works being explained, no product →
    /faceless-explainer
  • A GitHub PR / code change
    /pr-to-video
  • An existing talking-head video to add captions to →
    /embedded-captions
  • Porting an existing Remotion composition →
    /remotion-to-hyperframes
  • Cutting / editing a finished video file like an NLE → out of scope (HyperFrames composites HTML and media into a deterministic timeline; it does not edit footage)
  • 正在营销、发布或推广的特定产品/公司/SaaS/网站
    /product-launch-video
  • 讲解概念/主题/文章/原理,无产品内容 →
    /faceless-explainer
  • GitHub PR/代码变更
    /pr-to-video
  • 为现有访谈视频添加字幕 →
    /embedded-captions
  • 迁移现有Remotion合成 →
    /remotion-to-hyperframes
  • 像非线性编辑器(NLE)一样剪辑/编辑成品视频文件 → 超出范围(HyperFrames将HTML和媒体合成为确定性时间线;不支持素材剪辑)