Minimal contract
Give the composition a finite duration, create a paused timeline, and register it under the composition ID:data-composition-id.
Rules that matter
- Create the timeline with
{ paused: true }. - Register it on
window.__timelines. - Give important tweens an explicit position.
- Prefer
fromTo()when both endpoints matter; it remains reliable after backward or random seeks. - Animate transforms and opacity for movement. Avoid repeatedly animating layout properties such as
top,left,width, orheight. - Let HyperFrames control clip visibility and media playback.
to(), from(), fromTo(), and set(). GSAP supports many CSS properties, but the HyperFrames animation skill contains the render-safe patterns used by agents.
Duration
An explicit rootdata-duration is the composition’s render length:
data-duration, HyperFrames can infer length from registered timelines and supported media after the page initializes.
Do not assume a long source video automatically extends a shorter explicit root duration. The authored duration is the output window.