Home/React Animation/react-spring
R

react-spring

Updated: Sep 30, 2026

React-native animation library with spring physics that runs without re-rendering, supports SSR, and targets web, native, Three.js, Konva, and Zdog.

react-spring

About react-spring

Overview React-spring is a spring-based animation library for React applications. It replaces traditional duration-and-curve animation APIs with spring physics, where animations do not have a defined curve or set duration. The library is built to overcome the limitations of both react-motion (which relies exclusively on React rendering and can be janky) and Popmotion (which skips React rendering entirely). React-spring uses both approaches depending on the context, enabling smooth, fluid interactions. It is written in TypeScript and supports server-side rendering out of the box. Key Benefits Animations run without re-rendering React components, using imperative API methods that bypass the React rendering overhead. Spring-based animations do not require a set duration or predefined curve, matching how motion works in the real world. Fully written in TypeScript for easy integration into existing TypeScript codebases. Production-ready with SSR support — no need for useRef or useEffect to attach animations to DOM nodes. Bundle size is kept small: 55.1 KB for the full react-spring package, 19.2 KB for @react-spring/web, and 15.2 KB for @react-spring/core. Cross-platform support with five targets: web, native (React Native), three (Three.js), konva (Konva), and zdog (Zdog). How It Works You install the library via npm by running npm i @react-spring/web . You import the animated wrapper and a hook such as useSpring , then define animation values with from and to objects. The animated component handles attaching those values to the DOM without requiring refs or effects. Use Cases React UI developers who need drop-in, natural-feeling transitions for modals, drawers, and page elements. Game developers building React-based interfaces who previously found Tailwind CSS animations insufficient for 2020-era expectations. Full-stack teams mixing HTML and WebGL — React-spring can animate both in the same application. Library authors and design system maintainers who want to wrap third-party UI kits (e.g., Reach UI) with custom brand animations. React Native developers seeking a performant cross-platform animation solution that does not trigger re-renders. Creative coders working with Three.js, Konva, or Zdog who want spring physics in their canvas-based projects. Why Choose This Product React-spring is best suited for React developers who want natural, physics-based animations without sacrificing performance or re-render control. The page notes that the learning curve is steeper than expected for some developers, but that the experience becomes delightful afterwards. If you need a target not in the five provided (web, native, three, konva, zdog), you can request it or build one yourself using the advanced API.

react-spring Pros & Cons

Strengths
  • Spring physics eliminate predefined duration and curve
  • Animations run without React re-renders
  • Five platform targets including Web, React Native, Three.js, Konva, and Zdog
  • Small bundle sizes (15-55 KB)
  • SSR support out of the box

Key Features

4a5

Spring-based animations

Replaces duration-and-curve animation with spring physics that has no set duration or predefined curve.

6a8

Re-render free

Animations run without updating React state using imperative API methods, avoiding unnecessary re-renders.

916

No refs or effects

The animated wrapper attaches animations to DOM nodes automatically, eliminating the need for useRef and useEffect.

4dd

TypeScript native

The library is fully written in TypeScript for easy integration into existing codebases.

4bb

SSR support

Supports server-side rendering out of the box without extra configuration.

30d

Five platform targets

Choose from web, native (React Native), three (Three.js), konva (Konva), and zdog (Zdog) targets.

4e6

Small bundle sizes

The full package is 55.1 KB, @react-spring/web is 19.2 KB, and @react-spring/core is 15.2 KB.

3a8

Any value type

Animate strings, numbers, CSS variables, and transform styles, with inline value interpolation.

514

Event callbacks

Easily react to animation lifecycle events such as onRest.

react-spring Pricing

Free
Free
  • Open-source library
  • Free to install and use
  • No sign-up or API key required
  • Cross-platform support
  • Full TypeScript types
  • SSR support

Pricing extracted from the product website and may change. Check the source for current details.

Frequently asked questions about react-spring

Is react-spring free?

Yes — react-spring is free to use. See the pricing section for any optional add-ons.

How much does react-spring cost?

react-spring offers the following plans: Free. See the pricing section for what's included in each tier and any per-seat or usage-based costs.

What platforms does react-spring support?

react-spring is available on: Web, iOS, Android.