Skip to content
Knsept
Free playbook

Motion guidelines

When animation helps, when it hurts, and the defaults used across this site.

Updated Oct 19, 20261 min read

Motion should explain something: where an element came from, what changed, or what's connected to what. If it only decorates, keep it small or cut it.

Defaults

UseDurationEasing
Hover and press150–250msease-out
Enter and reveal500–800mscubic-bezier(.22,1,.36,1)
Ambient loops4s or slowerease-in-out

Rules

  • Respect reduced motion. Under prefers-reduced-motion: reduce, show the end state immediately.
  • Never hide content behind an animation without a fallback. If the script fails, the content is still there.
  • Animate transform and opacity. They're cheap. Width, height and top cause layout work.
  • Pause what's off-screen. Use an IntersectionObserver to stop loops nobody can see.

Examples