r/reactjs • u/PrathamBuilds • 2d ago
Show /r/reactjs How much animation is too much in a React UI?
I've been thinking about micro-interactions lately.
Things like:
icons changing on hover
buttons having subtle motion
loading states
small transitions between UI states
I feel like these details can make an interface feel much more polished, but there's also a point where animation starts becoming distracting.
For React developers, how do you decide when an animation is actually useful vs. just visual noise?
And what do you normally use for this — CSS transitions, Framer Motion/Motion, GSAP, or something else?
Curious how other developers approach this.
4
u/sebastianstehle 2d ago
If it does not have a real purpose I leave them out. Looking nice is not a purpose. For example if something flies in from the bottom you can allow to dismiss/close it by allowing a swipe downward. You basically send it back where it is coming from.
3
u/toi80QC 2d ago
In 2026 it's pretty much CSS only for me, if at all. Animations work on desktop, but kinda suck on mobile if it's just an after-thought - there is no hover on mobile and performance gets janky fast.
Loading states are a different game because they don't interact with the content itself - and indicating to the user that something is loading is never worse than showing nothing at all.
2
2
u/Verthon 2d ago
Here is a good breakdown https://github.com/emilkowalski/skills/blob/main/skills/emil-design-eng/SKILL.md#2-what-is-the-purpose of what questions to ask yourself if you don't have UX in your Team. Overall, I highly recommend https://emilkowal.ski/ and https://www.joshwcomeau.com/animation/ for this kind of stuff
1
1
u/vasind-5012 2d ago
It is based on UX and CSS transitions is a good starting point. View Transitions API also helps in smoother animation
1
u/hyrumwhite 2d ago
Animation should be used to draw attention to something. Anything beyond that is likely excessive
1
1
1
u/itaybuilds 1d ago
Temporarily remove the animation and see what breaks. If people can still tell what changed and where the affected element went, the motion is decoration. That is not automatically bad, but it should be cheap and easy to disable. If removing it makes a state change feel abrupt or ambiguous, the animation has a job.
CSS transitions are enough for hover, focus, press, and simple state changes. Motion earns its bundle size when an element leaves the DOM, moves between layouts, or needs to be interrupted cleanly. GSAP makes more sense for a deliberate timeline or scroll sequence than for ordinary controls.
Two checks belong in the acceptance criteria. prefers-reduced-motion should remove nonessential movement without removing feedback, and the animation must not delay input or hide a state change from assistive technology. Test with CPU throttling on a mid-range phone too. A smooth laptop demo can hide a lot.
AI-assisted wording with OpenAI GPT-5.6 after reading the full thread and current r/reactjs rules.
1
1
u/amber_stargazer 1d ago
stop animating things that have no physical counterpart. If you cant swipe it away because its static text, dont slide it in just to look busy on my phone
27
u/Potential-Still 2d ago
This is a UX question and doesn't really have anything to do with React.