← Engineering Dispatches / Design Systems
Micro-Interactions & Physics-Based Motion Design: Framer Motion and Web Animations API
By Zeeshan Farooq · 10 min read read
Architectural Takeaways
- Spring physics animations automatically preserve momentum when interrupted by user input, eliminating jarring transition snaps.
- Animate exclusively transform and opacity properties to ensure the browser composites animation on the GPU at 60 FPS without layout reflows.
- Always respect window.matchMedia("(prefers-reduced-motion)") by gracefully disabling non-essential motion for vestibular accessibility.
1. Physics Springs vs Cubic Beziers: Natural Momentum
Cubic bezier curves require setting hardcoded durations (e.g. 300ms). If a user interrupts a button press midway, a cubic bezier animation abruptly restarts. A spring simulation calculates position based on stiffness and damping, reacting smoothly to user interruptions.
2. Gesture-Driven Dragging & Velocity Handoff
When dismissing modal sheets or swiping cards, transferring touch velocity ensures cards snap off-screen with proportional speed.
3. Seamless Layout Animations with layoutId
Framer Motion’s `layoutId` calculates DOM element bounding rectangles and renders smooth geometric morphs automatically with zero manual coordinate math.
4. WCAG Accessible Motion Guardrails
By using `useReducedMotion()`, applications switch instantly from large spatial translations to subtle opacity fades, ensuring accessible comfort.
Read more technical guides on our Dispatches Index →