MotionLab · animation & interaction generator

Choose the motion before you write the CSS

MotionLab is a browsing tool for web animation decisions. Pick a category, compare named patterns such as Fluid Wave, Magnetic Hover or Elastic Reveal, then tune speed, intensity, direction and delay in a live playground until the timing feels right — and take the values back to your stylesheet.

  • 12 interaction categories covered
  • 4 live controls: speed, intensity, direction, delay
  • 16.7ms frame budget every pattern is judged against

How MotionLab decides what is worth animating

Every pattern in the index is described against the same four questions. If a pattern fails the first one, nothing else about it matters.

1. Does it carry meaning?

Motion should explain a relationship: this panel came from that button, this list is still loading, this card is the one under your pointer. Decoration that carries no meaning is the first thing to cut when a page feels slow.

2. Does it stay on the compositor?

Transform and opacity can usually be handled without re-running layout. Animating width, height, top or box-shadow invites layout and paint work on every frame, which is where dropped frames come from on mid-range hardware.

3. Is the duration honest?

Micro-interactions read best around 120–200ms, component transitions around 200–320ms, and full-page or hero sequences up to roughly 600ms. Anything longer needs to be interruptible or it becomes a wait.

4. Does it degrade politely?

Content must be readable with animation switched off. Every pattern here assumes a prefers-reduced-motion branch and a no-JavaScript fallback in which elements are simply visible.

Reference reading: the specifications and browser notes behind these patterns are documented on MDN's CSS animation reference, the Web Animations API pages, and support tables on Can I use.