Spring Physics in Framer Motion
A practical guide to stiffness, damping, and mass — the three knobs that control every good micro-interaction in Framer Motion springs.
Most satisfying UI animation is spring-based, not time-based. A spring models a physical system: pull an element, let go, and it oscillates to rest. Learning to tune stiffness, damping, and mass gives you predictable, natural motion — no easing curves to guess at.
The three knobs
transition={{
type: "spring",
stiffness: 300,
damping: 30,
mass: 1,
}}Stiffness controls how strongly the spring pulls the element back to rest.
- Low stiffness (e.g.
80) — slow, floaty return. - High stiffness (e.g.
500) — snappy, almost instant.
Damping controls how much the spring resists motion.
- Low damping (e.g.
8) — visible overshoot and bounce. - High damping (e.g.
40) — no bounce, a clean stop.
The relationship between the two decides whether a spring oscillates at all.
Defaults you should almost never need to change
Framer Motion provides sensible presets:
transition={{ type: "spring", stiffness: 260, damping: 20 }}For modals and tooltips use damping: 25 — a touch more friction means the element settles on open instead of wobbling over the content behind it.
Practical recipes
- Tooltip pop —
stiffness: 400, damping: 25. Small element, small travel, needs to arrive instantly. - Card hover lift —
stiffness: 300, damping: 30. Fast arrival with a hint of life, no bounciness. - Drawer/modal — lower stiffness stays elegant:
stiffness: 200, damping: 25.
Friction between springs
When several elements animate in sequence, add a small per-item delay (e.g. index * 0.03) so they stagger. Springs can be delayed, but keep delays tiny — a delayed spring feels like a queue, not a ripple.
Remember
- Bigger
mass= slower response. Leave it at1until an element needs extra "weight". - If a spring wobbles too much, raise
dampingbefore loweringstiffness. - Spring timing derives from physics, so it resizes gracefully across framerates — a key reason to prefer it over
durationfor micro-interactions.