Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
June 26, 2023 08:03
April 7, 2023 10:04
February 12, 2019 11:38
September 4, 2023 08:18
June 26, 2023 08:03
June 26, 2023 08:03
March 17, 2023 12:08
May 3, 2020 17:02
March 18, 2021 23:08
February 28, 2023 18:30
June 26, 2023 08:03


A spring-physics first animation library
giving you flexible tools to confidently cast your ideas

Chat on Discord

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

Used by

And many others...


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


This project exists thanks to all the people who contribute.