Skip to main content

Overview

No complex animation logic required. Use your favorite classNames to trigger high-performance animations. Our translation layer ensures that your animations remain performant, responsive and 100% native.
Uniwind Pro integrates seamlessly with react-native-reanimated (v4.0.0+) to provide CSS-like animations and transitions using Tailwind classes. Instead of using the style prop with Reanimated, you can use className to animate your components. This includes CSS keyframe animations, property transitions, and Reanimated’s entering, exiting, and layout transition animations — all driven by class names.
Uniwind Pro requires Reanimated v4.0.0 or higher for animation support.

How It Works

When you use animation-related classes, Uniwind automatically:
  1. Detects animation/transition properties in your className (animate-*, transition-*, or uw-* classes)
  2. Swaps the native component for its Reanimated equivalent (e.g., ViewAnimated.View)
  3. For animate-* and transition-* classes — applies CSS animations via Reanimated’s CSS animation support
  4. For uw-entering-*, uw-exiting-*, and uw-layout-* classes — builds the corresponding Reanimated animation objects and passes them as entering, exiting, and layout props
No manual setup required - just use the classes and Uniwind handles the rest.

Keyframe Animations

Tailwind Built-in

Built-in Tailwind keyframe animations work out of the box:

Custom Animations

Uniwind ships additional keyframe animations beyond what Tailwind provides. These are looping animations useful for drawing attention to elements or adding visual polish:

Transitions

Animate property changes smoothly when className or state changes:

Transition Classes

Duration

Timing Functions

Delay

Entering & Exiting Animations

Reanimated’s entering and exiting animations let you animate components as they mount and unmount. Uniwind lets you drive these entirely through class names — no imports from react-native-reanimated needed.
No Reanimated imports required. Just add uw-entering-* and uw-exiting-* classes to your className and Uniwind builds the animation objects for you.
Use uw-entering-* to animate a component when it appears, and uw-exiting-* when it disappears:
User-provided entering and exiting props take priority over class names. This means you can use uw-* classes as defaults and override them with props when needed.

Entering Presets

Exiting Presets

Layout Transitions

Layout transitions animate the position and size changes of a component when its siblings are added or removed. They keep list reordering and grid changes looking smooth. Use uw-layout-* classes to apply them:
You can combine layout transitions with entering and exiting animations on the same component. When an item is removed, it plays the exiting animation while its siblings smoothly reposition via the layout transition.

Layout Transition Presets

Grid Example

Layout transitions work well for grid layouts where items shift position:

Animation Configuration

You can fine-tune entering, exiting, and layout animations with modifier classes. These control duration, delay, easing, and spring physics — all from your className. The pattern is uw-{type}-{modifier} where {type} is entering, exiting, or layout.

Duration

Controls how long the animation takes. Accepts preset values or arbitrary integers.

Delay

Adds a delay before the animation starts.

Easing

Sets the timing function for the animation.

Spring Physics

For spring-based animations, enable springify and optionally configure damping, stiffness, and mass. These accept arbitrary numeric values.
Replace {type} with entering, exiting, or layout depending on which animation phase you want to configure. Each phase is configured independently, so you can have a slow entering animation and a fast exiting animation on the same component.

Using Reanimated Directly

If you need more control than class names provide, you can use Reanimated’s Animated.* components directly with Uniwind classes. The entering, exiting, and layout props accept Reanimated animation objects as usual:
You can also mix both approaches. Pass an entering or exiting prop directly to override the class-name-driven animation:

Components Supporting Animations

These components automatically switch to Reanimated versions when animate-*, transition-*, or uw-* animation classes are detected: All of these components accept entering, exiting, and layout props when animation classes are present. You can also pass these props directly without any uw-* classes — the component will be upgraded to its Reanimated version automatically.

Practical Examples

Animated Button

Interactive Card

Disabled State with Transition

Loading Spinner

Animated List with Reordering

Shadow Tree Updates

Learn how Uniwind Pro updates views without re-renders

Theme Transitions

Add smooth animated transitions when switching themes