Documentation

Springs & Easing

Configure spring physics and easing curves for natural-feeling animations.

Springs & Easing

Every animation needs timing. motionwind-react-native supports two animation types: timing (duration + easing curve) and spring (physics-based).

Timing animations (default)

By default, animations use withTiming with an ease-out curve.

Duration

<mw.View className="animate-initial:opacity-0 animate-enter:opacity-100 animate-duration-300" />
<mw.View className="animate-initial:scale-90 animate-enter:scale-100 animate-duration-1000" />

Note: On React Native, durations are in milliseconds (not seconds like the web package).

Named easing functions

ClassReanimated EasingWhen to use
animate-ease-outEasing.out(cubic)Elements entering (most common)
animate-ease-inEasing.in(cubic)Elements exiting (rare)
animate-ease-in-outEasing.inOut(cubic)Elements moving on screen
animate-ease-linearEasing.linearConstant-speed (loaders)
animate-ease-circ-outEasing.out(circle)Snappy, responsive
animate-ease-back-outEasing.out(back)Slight overshoot, playful

Custom cubic-bezier

<mw.View className="animate-enter:y-0 animate-ease-[0.23,1,0.32,1]" />

Spring animations

Springs simulate real physics. Use them for interactions that should feel alive.

Spring EntranceNative
9:41

Configure spring physics

ClassPropertyDefaultDescription
animate-stiffness-{n}stiffness100Higher = snappier
animate-damping-{n}damping10Higher = less oscillation
animate-mass-{n}mass10 (÷10 → 1.0)Higher = heavier, slower

Spring presets

Spring Presets ComparisonNative
9:41

Repeat and loop

Infinite pulse

Infinite PulseNative
9:41
// Repeat 3 times
<mw.View className="animate-enter:scale-110 animate-repeat-3" />

// Infinite loop
<mw.View className="animate-enter:rotate-360 animate-repeat-infinite animate-ease-linear" />

Stagger metadata

The shared parser retains animate-stagger-* and animate-delay-children-* in transition, but the React Native v2 component adapter does not schedule child mounts from that metadata. Apply explicit child delays or orchestrate the list with Reanimated.

When to use spring vs. timing

Use caseRecommendation
Tap/press feedbackSpring (feels responsive)
Entrance animationsTiming with ease-out
Drag releaseDirect Reanimated spring
Loading spinnersTiming with linear
Color transitionsTiming (springs can overshoot)

Next steps