# Spring animation presets as CSS linear(): react-spring, Motion, SwiftUI, Compose

> 25 spring presets as CSS linear(): stiffness, damping, settle time and overshoot for react-spring, Motion, SwiftUI, Compose, Material 3 and vawe.

Canonical: https://vawe.dev/springs
Last updated: 2026-11-04

Stiffness is how hard the spring pulls, damping is the friction that drains speed, mass is how heavy the value is (1 for every preset here). The settle time is the last moment the spring is more than 0.1% away from the end value.

## vawe house springs

The four springs in SPRINGS, from core/motion/springs.js. Page code reads them with spring(t, k, d).

- [vawe snappy](https://vawe.dev/springs/vawe-snappy): stiffness 400, damping 32, settles in 0.425 s, overshoot 1.5%
- [vawe default](https://vawe.dev/springs/vawe-default): stiffness 170, damping 26, settles in 0.705 s, overshoot 0%
- [vawe heavy](https://vawe.dev/springs/vawe-heavy): stiffness 90, damping 22, settles in 1.345 s, overshoot 0%
- [vawe playful](https://vawe.dev/springs/vawe-playful): stiffness 220, damping 12, settles in 1.04 s, overshoot 24.9%

## react-spring

The six presets of the config object in react-spring.

- [react-spring default](https://vawe.dev/springs/react-spring-default): stiffness 170, damping 26, settles in 0.705 s, overshoot 0%
- [react-spring gentle](https://vawe.dev/springs/react-spring-gentle): stiffness 120, damping 14, settles in 0.945 s, overshoot 7.4%
- [react-spring wobbly](https://vawe.dev/springs/react-spring-wobbly): stiffness 180, damping 12, settles in 1.14 s, overshoot 20.8%
- [react-spring stiff](https://vawe.dev/springs/react-spring-stiff): stiffness 210, damping 20, settles in 0.715 s, overshoot 5%
- [react-spring slow](https://vawe.dev/springs/react-spring-slow): stiffness 280, damping 60, settles in 1.375 s, overshoot 0%
- [react-spring molasses](https://vawe.dev/springs/react-spring-molasses): stiffness 280, damping 120, settles in 2.915 s, overshoot 0%

## Motion (Framer Motion)

The spring numbers Motion uses when you do not set them.

- [Motion default spring](https://vawe.dev/springs/motion-default): stiffness 100, damping 10, settles in 1.275 s, overshoot 16.3%
- [Motion x, y and rotate default](https://vawe.dev/springs/motion-transform): stiffness 500, damping 25, settles in 0.565 s, overshoot 12%
- [Motion scale default](https://vawe.dev/springs/motion-scale): stiffness 550, damping 30, settles in 0.445 s, overshoot 7.3%

## SwiftUI

Apple spring animations, converted from response and damping fraction to stiffness and damping.

- [SwiftUI spring()](https://vawe.dev/springs/swiftui-spring): stiffness 157.91, damping 20.73, settles in 0.69 s, overshoot 1%
- [SwiftUI .smooth](https://vawe.dev/springs/swiftui-smooth): stiffness 157.91, damping 25.13, settles in 0.735 s, overshoot 0%
- [SwiftUI .snappy](https://vawe.dev/springs/swiftui-snappy): stiffness 157.91, damping 21.36, settles in 0.7 s, overshoot 0.6%
- [SwiftUI .bouncy](https://vawe.dev/springs/swiftui-bouncy): stiffness 157.91, damping 17.59, settles in 0.82 s, overshoot 4.6%

## Jetpack Compose

spring() in Compose, from the constants of the Spring object.

- [Compose spring() default](https://vawe.dev/springs/compose-no-bouncy-medium): stiffness 1500, damping 77.46, settles in 0.24 s, overshoot 0%
- [Compose NoBouncy with StiffnessMediumLow](https://vawe.dev/springs/compose-no-bouncy-medium-low): stiffness 400, damping 40, settles in 0.465 s, overshoot 0%
- [Compose MediumBouncy with StiffnessLow](https://vawe.dev/springs/compose-medium-bouncy-low): stiffness 200, damping 14.14, settles in 0.9 s, overshoot 16.3%
- [Compose HighBouncy with StiffnessMediumLow](https://vawe.dev/springs/compose-high-bouncy-medium-low): stiffness 400, damping 8, settles in 1.655 s, overshoot 52.7%

## Material 3

The spatial springs of the Material 3 motion schemes in Compose.

- [Material 3 Expressive fast spatial](https://vawe.dev/springs/material-expressive-fast-spatial): stiffness 800, damping 33.94, settles in 0.36 s, overshoot 9.5%
- [Material 3 Expressive default spatial](https://vawe.dev/springs/material-expressive-default-spatial): stiffness 380, damping 31.19, settles in 0.435 s, overshoot 1.5%
- [Material 3 Expressive slow spatial](https://vawe.dev/springs/material-expressive-slow-spatial): stiffness 200, damping 22.63, settles in 0.6 s, overshoot 1.5%
- [Material 3 Standard default spatial](https://vawe.dev/springs/material-standard-default-spatial): stiffness 700, damping 47.62, settles in 0.32 s, overshoot 0.2%

## All presets

| Preset | Stiffness | Damping | Settle (s) | Overshoot |
| --- | --- | --- | --- | --- |
| vawe snappy | 400 | 32 | 0.425 | 1.5% |
| vawe default | 170 | 26 | 0.705 | 0% |
| vawe heavy | 90 | 22 | 1.345 | 0% |
| vawe playful | 220 | 12 | 1.04 | 24.9% |
| react-spring default | 170 | 26 | 0.705 | 0% |
| react-spring gentle | 120 | 14 | 0.945 | 7.4% |
| react-spring wobbly | 180 | 12 | 1.14 | 20.8% |
| react-spring stiff | 210 | 20 | 0.715 | 5% |
| react-spring slow | 280 | 60 | 1.375 | 0% |
| react-spring molasses | 280 | 120 | 2.915 | 0% |
| Motion default spring | 100 | 10 | 1.275 | 16.3% |
| Motion x, y and rotate default | 500 | 25 | 0.565 | 12% |
| Motion scale default | 550 | 30 | 0.445 | 7.3% |
| SwiftUI spring() | 157.91 | 20.73 | 0.69 | 1% |
| SwiftUI .smooth | 157.91 | 25.13 | 0.735 | 0% |
| SwiftUI .snappy | 157.91 | 21.36 | 0.7 | 0.6% |
| SwiftUI .bouncy | 157.91 | 17.59 | 0.82 | 4.6% |
| Compose spring() default | 1500 | 77.46 | 0.24 | 0% |
| Compose NoBouncy with StiffnessMediumLow | 400 | 40 | 0.465 | 0% |
| Compose MediumBouncy with StiffnessLow | 200 | 14.14 | 0.9 | 16.3% |
| Compose HighBouncy with StiffnessMediumLow | 400 | 8 | 1.655 | 52.7% |
| Material 3 Expressive fast spatial | 800 | 33.94 | 0.36 | 9.5% |
| Material 3 Expressive default spatial | 380 | 31.19 | 0.435 | 1.5% |
| Material 3 Expressive slow spatial | 200 | 22.63 | 0.6 | 1.5% |
| Material 3 Standard default spatial | 700 | 47.62 | 0.32 | 0.2% |
