npx skills add ...
npx skills add videozero/skills --skill animation-basics
Animation theory covering the 12 principles of animation and timing guidance. Use when designing motion, choosing easing approaches, or improving animation quality.
npx skills add videozero/skills --skill animation-basics
Stretch in the area of more movement, squash on collision. Always conserve area — if you stretch one axis, compress the other.
Build up energy before action, like a spring loading. Can be combined with squash and stretch.
Pose to pose: define the key states (start, end, a few in-between holds) and let tweens fill the gaps. This is the default for code-driven motion: each yield* is a pose. Use straight-ahead, frame-by-frame motion (physics, procedural noise, springs) for organic or chaotic movement such as particles, liquids or confetti.
Drag adds realism. The main body leads; appendages follow with delay. This communicates mass. Use different timing functions for leading vs trailing parts. Skew can sell the effect.
Essential for realism. Objects ease into and out of motion. Exception: collisions — ease only on the outward motion, not at impact. When motion is very fast, no inbetween frames may be needed — perfect for swapping icons or SVGs at the midpoint.
Move in arcs instead of straight lines when appropriate, especially when gravity is involved.
Supplementary actions that support the main action. Example: a background element pulsing while the foreground element transitions.
Duration and spacing set weight and mood. A heavy object takes longer to start and stop; a light one snaps. Fast timing reads as energetic, slow timing as calm or heavy. Hold important poses long enough to register. See Timing Guidance below for concrete durations.
Not more distorted — more convincing. Quick motions need bigger exaggeration to be noticed at all.
Avoid parallel lines for a more natural, dynamic look. Exception: graphs and data visualizations where parallel structure is intentional.
Keep it simple. Do not add too many details. Clarity and readability beat complexity.
Pick easing by the role of the animation:
| Role | Easing | Duration |
|---|---|---|
| Entrance (element appears) | ease-out (easeOutCubic) | 0.3–0.5s |
| Exit (element leaves) | ease-in (easeInCubic) | 0.2–0.3s |
| In-place change (move, resize, color) | ease-in-out (easeInOutCubic) | 0.3–0.8s |
| Emphasis (pulse, pop) | ease-out with overshoot (easeOutBack) | 0.2–0.3s |
| Stagger between grouped items | — | 40–80ms per word, 100–150ms per element |