NPM Star
Collections
  1. Home
  2. Compare
  3. framer-motion vs react-spring
NPM Compare

Compare NPM packages statistics, trends, and features

CollectionsVS Code extensionChrome extensionTermsPrivacyLinkTreeIndiehackersBig Frontendqiuyumi

React Animation Libraries: Framer Motion vs React Spring

Both packages help developers create smooth animations and transitions in React applications. Framer Motion is known for its simpler API and easy-to-use features, while React Spring focuses on spring physics-based animations. These libraries are popular choices when you want to add movement, transitions, and interactive animations to your website or app.

Animation Librariesreactanimationstransitionsuser-interfacemotion

Unable to load comparison data. Please try again later.

Similar Packages

popmotion

90%

A functional, flexible animation library that powers framer-motion under the hood. It gives you complete control over animations with simple functions.

Good for developers who want more control than framer-motion but don't want the complexity of react-spring. It's like getting the engine without the full car.

Animation Library

react-motion

80%

A simple animation library that uses springs for natural movement. It helps you create smooth animations using physics-based principles, making elements move in a more realistic way.

Perfect for developers who want simpler animations than framer-motion but still want natural-feeling movement. It's easier to learn and has been battle-tested in many projects.

Animation Library

react-move

70%

A library for beautifully animated React visualizations. It's especially good for data visualizations and charts that need smooth transitions.

While less popular than framer-motion, it's perfect for data-heavy applications that need smooth animations. Simpler API than framer-motion but still powerful.

Animation Library

react-transition-group

60%

A basic but powerful tool for adding enter and exit animations to React components. It's the official React animation add-on that helps manage component states during animations.

Great starting point for simple animations, especially if you're just learning. Works well with CSS animations and requires less JavaScript knowledge than other options.

Animation Library

auto-animate

60%

A zero-config animation utility that adds smooth transitions automatically. Just add one line of code and your elements will animate smoothly when they change.

Super easy to use with almost no setup required. Perfect for beginners who want quick, good-looking animations without learning complex animation concepts.

Animation Library

No README available

<p align="center"> <img src="https://i.imgur.com/QZownhg.png" width="240" /> </p> <br /> <h1 align="center">react-spring</h1> <h3 align="center">A spring-physics first animation library <br>giving you flexible tools to confidently cast your ideas</h3> <br> <p align="center"> <a href="https://www.npmjs.com/package/react-spring" target="_blank"> <img src="https://img.shields.io/npm/v/react-spring.svg?style=flat&colorA=000000&colorB=000000" /> </a> <a href="https://www.npmjs.com/package/react-spring" target="_blank"> <img src="https://img.shields.io/npm/dm/react-spring.svg?style=flat&colorA=000000&colorB=000000" /> </a> <a href="https://discord.gg/ZZjjNvJ" target="_blank"> <img src="https://img.shields.io/discord/740090768164651008?style=flat&colorA=000000&colorB=000000&label=discord&logo=discord&logoColor=ffffff" alt="Chat on Discord"> </a> </p> <br>

react-spring is a cross-platform spring-physics first animation library.

It's as simple as:

const styles = useSpring({ from: { opacity: 0 }, to: { opacity: 1 } }) <animated.div style={styles} />

Just a small bit about us:

  • Cross-Platform: We support react-dom, react-native, react-three-fiber, react-konva & react-zdog.
  • Versatile: Be declarative with your animations or if you prefer, imperative.
  • Spring-Physics First: By default animation use springs for fluid interactivity, but we support durations with easings as well.

There's a lot more to be had! Give it a try and find out.

Getting Started

⚡️ Jump Start

# Install the entire library npm install react-spring # or just install your specific target (recommended) npm install @react-spring/web
import { animated, useSpring } from '@react-spring/web' const FadeIn = ({ isVisible, children }) => { const styles = useSpring({ opacity: isVisible ? 1 : 0, y: isVisible ? 0 : 24, }) return <animated.div style={styles}>{children}</animated.div> }

It's as simple as that to create scroll-in animations when value of isVisible is toggled.

📖 Documentation and Examples

More documentation on the project can be found here.

Pages contain their own examples which you can check out there, or open in codesandbox for a more in-depth view!


📣 What others say

<p align="middle"> <img src="assets/testimonies.jpg" /> </p>

Used by

<p align="middle"> <a href="https://nextjs.org/"><img width="285" src="assets/projects/next.png"></a> <a href="https://codesandbox.io/"><img width="285" src="assets/projects/csb.png"></a> <a href="https://aragon.org/"><img width="285" src="assets/projects/aragon.png"></a> </p>

And many others...

Backers

Thank you to all our backers! 🙏 If you want to join them here, then consider contributing to our Opencollective.

<a href="https://opencollective.com/react-spring#backers" target="_blank"> <img src="https://opencollective.com/react-spring/backers.svg?width=890"/> </a>

Contributors

This project exists thanks to all the people who contribute.

<a href="https://github.com/react-spring/react-spring/graphs/contributors"> <img src="https://opencollective.com/react-spring/contributors.svg?width=890" /> </a>

Dependencies Comparison

framer-motion

Dependencies

tslib^2.4.0
motion-dom^12.24.11
motion-utils^12.24.10

Dev Dependencies

three0.137.0
@types/three0.137.0
@thednp/dommatrix^2.0.11
@radix-ui/react-dialog^1.1.15

Peer Dependencies

react^18.0.0 || ^19.0.0
react-dom^18.0.0 || ^19.0.0
@emotion/is-prop-valid*

react-spring

Dependencies

@react-spring/core~10.0.3
@react-spring/konva~10.0.3
@react-spring/native~10.0.3
@react-spring/three~10.0.3
@react-spring/web~10.0.3
@react-spring/zdog~10.0.3

Dev Dependencies

Peer Dependencies

react^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
StarsIssuesVersionUpdatedⓘLast publish dateCreatedⓘPackage creation dateSizeⓘMinified + Gzipped size
F
framer-motion
30,72428612.26.1a month ago7 years agoinstall size 58.4 KB
R
react-spring
29,01713410.0.34 months ago8 years agoinstall size 19.3 KB