mirror of
https://github.com/hanzoai/video.git
synced 2026-11-03 04:21:39 +00:00
Separates creative grammar (renderer_family) from technical engine (render_runtime) so HyperFrames can stand alongside Remotion as a first-class runtime instead of masquerading as a Remotion sub-case. Locks runtime choice at proposal stage and enforces it end-to-end: the schemas require it, video_compose routes by it, the reviewer fails closed on silent swaps, and a parametrized contract test walks every pipeline manifest to ensure each planning-stage skill explains the conversation to the user. Adds hyperframes_compose (scaffold/lint/ validate/render/doctor/add_block), a playbook -> CSS style bridge, and vendored HyperFrames Layer 3 skills from commit d291358, pinned via PROVENANCE.md for future re-sync. Final_review now records render_runtime_used and runtime_swap_detected so compose lies are catchable after the fact.
1.4 KiB
1.4 KiB
Worked Example: Adding a Component
Scenario
User wants to add a shimmer light sweep effect to their title text.
Steps
1. Install the component
hyperframes add shimmer-sweep
2. Read the snippet
Open compositions/components/shimmer-sweep.html and read the comment header.
3. Wire into your composition
HTML — wrap target elements:
<div class="shimmer-sweep-target" style="--shimmer-color: rgba(255, 255, 255, 0.5)">
<h1 class="title">AI-Powered Video</h1>
</div>
CSS — paste the .shimmer-sweep-target and .shimmer-mask rules from the snippet.
JS — paste the auto-injection script (before timeline code):
document.querySelectorAll(".shimmer-sweep-target").forEach((el) => {
if (!el.querySelector(".shimmer-mask")) {
const mask = document.createElement("div");
mask.className = "shimmer-mask";
el.appendChild(mask);
}
});
Timeline — add the sweep:
tl.fromTo(
".shimmer-sweep-target",
{
"--shimmer-pos": "-20%",
},
{
"--shimmer-pos": "120%",
duration: 1.2,
ease: "power2.inOut",
stagger: 0.15,
},
1.5,
);
4. Lint and preview
hyperframes lint
hyperframes preview
5. Customize
--shimmer-color: highlight color per element--shimmer-width: light band width (default 20%)--shimmer-angle: sweep direction (default 120deg)- Timeline
duration,ease,stagger: control speed and feel