Why we bet on Framer Motion
Updated Jan 2026 • 8 min read
Animation is often the first thing cut from scope. It’s treated as decoration. In reality, motion is a core part of usability—it communicates hierarchy, confirms actions, and reduces cognitive load in complex interfaces.
As our products grew, hand-crafted CSS animations became fragile. Small layout changes broke timing, transitions conflicted, and animation logic leaked across components. That’s when we standardized on Framer Motion.
Why animation systems fail at scale
Most teams start with one-off animations. Over time, these turn into an unmaintainable collection of delays, easings, and overrides. Without a shared motion language, UX becomes inconsistent and harder to reason about. Framer Motion allowed us to move from ad-hoc animation to a repeatable UI motion system.
Declarative vs imperative animation
Imperative animation tells the browser how to animate step by step. Declarative animation describes the final state and lets the engine handle transitions. This approach scales better, survives refactors, and works naturally with React’s component model.
Our minimum motion system
Instead of infinite variations, we constrain motion to a small set of tokens:
- Enter: Opacity 0 → 1, Y 10px → 0 (0.3s)
- Exit: Opacity 1 → 0 (0.2s)
- Hover: Scale 1.02, Lift Y −5px (spring)
Framer Motion vs CSS animations
CSS animations are powerful, but brittle for complex UI states. Framer Motion handles interruptions, layout changes, and conditional rendering without manual cleanup. This dramatically reduces bugs in navigation, modals, and list-to-detail transitions.
Accessibility and reduced motion
Motion must respect user preferences. Framer Motion integrates cleanly with
prefers-reduced-motion, allowing us to scale animation down automatically for users
sensitive to motion—without branching logic across the codebase.
When Framer Motion is not the right choice
For static marketing pages or ultra-lightweight sites, CSS may be enough. Framer Motion shines when interfaces change state often—dashboards, apps, onboarding flows, and interactive products where velocity and consistency matter more than bundle size.