Spring presets
Override the default spring on any element animation by passing aspring parameter:
| Preset | Feel | Best for | Config |
|---|---|---|---|
snappy | Quick, precise | Default, UI elements | mass 1, damping 20, stiffness 300 |
bouncy | Playful overshoot | Badges, icons, CTAs | mass 1, damping 12, stiffness 200 |
gentle | Slow, smooth | Backgrounds, large elements | mass 1, damping 20, stiffness 100 |
stiff | Very fast, no overshoot | Micro-interactions | mass 1, damping 30, stiffness 400 |
wobbly | Lots of bounce | Playful animations | mass 1, damping 8, stiffness 180 |
smooth | Medium, no overshoot | Text, panels | mass 1, damping 26, stiffness 170 |
poppy | Fast with slight bounce | Buttons, cards | mass 1, damping 14, stiffness 250 |
Default springs per animation
Each animation uses a spring that matches its character:| Animation | Default Spring |
|---|---|
fadeUp, fadeDown | 'snappy' |
slideInLeft, slideInRight | 'snappy' |
popIn | 'bouncy' |
blurIn | 'smooth' |
elasticScale | 'wobbly' |
perspectiveRotateIn | 'smooth' |
Easing presets
For frame-based animations using Remotion’sinterpolate():
| Preset | Curve |
|---|---|
easeOut | Fast start, slow end |
circOut | Circular deceleration |
easeInOut | Smooth S-curve |
backOut | Slight overshoot |
expoOut | Exponential deceleration |
Helper functions
springValue
Get a 0-to-1 spring value for custom animations:springInterpolate
Map a spring to a custom output range:When to use springs vs easings
| Use case | Approach |
|---|---|
| Element entrances | Spring presets via fadeUp, popIn, etc. |
| Continuous property animation | interpolate() with easing presets |
| Custom spring-driven values | springValue() or springInterpolate() |
| Complex choreography | Combine springs with delay parameters |