Framer Motion Made My Site Look Great — Until I Tested It on a Slow Device


When I started building my recent project, I wanted the UI to feel modern, smooth, and lively. So I went with Framer Motion , one of the most popular animation libraries for React. And honestly, at first… it felt like magic.
Everything was buttery smooth on my own laptop and phone. Sections faded in, modals popped beautifully, and page transitions just felt alive.
But then came the real test — I tried it on:
My friend's old Android phone
A slightly outdated laptop with average specs
I even throttled CPU in Chrome DevTools
And that’s when it hit me...
⚠️ The Performance Drop
The website started lagging. Transitions weren’t smooth anymore. Scrolling was choppy. Some elements stuttered during animations.
I realized something important:
What feels smooth on your machine might lag badly on someone else’s.
➣ What I Did Wrong
Too many simultaneous animations on one page
Animations triggered on every route change
Didn’t consider mobile or low-end device rendering
Didn’t check for
prefers-reduced-motion
Animated elements even when they were offscreen
Here’s an example from my hero section:
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
>
<h1>Welcome to My Project</h1>
</motion.div>
→ Now imagine I had 6–7 of these all over the page. The impact added up quickly.
➣ What I Learned
Animations aren’t free
They use real CPU/GPU power — and low-end devices suffer.Subtle animations > Flashy ones
If the animation doesn’t enhance UX, skip it.Test early on mobile and slow devices
Don’t wait till the end to check performance.Use
useReducedMotion()
from Framer
Respect users who prefer less animation.
import { useReducedMotion } from "framer-motion";
const shouldReduceMotion = useReducedMotion();
Be intentional with AnimatePresence and layout animations
Powerful tools , but can become heavy fast.
➣ How I Improved Things
Removed non-essential scroll animations
Used
AnimatePresence
selectivelyLazy-loaded large sections
Reduced animation duration and overlap
➣ Final Thoughts
I still love Framer Motion — it’s an amazing tool.
But this experience taught me something real:
Beautiful UI is great. But fast, responsive UI is essential.
Build for users, not just for your own screen.
Subscribe to my newsletter
Read articles from Aditya Srivastava directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
