Overview
Uniwind Pro integrates seamlessly withreact-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:- Detects animation/transition properties in your
className(animate-*,transition-*, oruw-*classes) - Swaps the native component for its Reanimated equivalent (e.g.,
View→Animated.View) - For
animate-*andtransition-*classes — applies CSS animations via Reanimated’s CSS animation support - For
uw-entering-*,uw-exiting-*, anduw-layout-*classes — builds the corresponding Reanimated animation objects and passes them asentering,exiting, andlayoutprops
Keyframe Animations
Tailwind Built-in
Built-in Tailwind keyframe animations work out of the box:| Class | Description |
|---|---|
animate-spin | 360° rotation loop |
animate-bounce | Vertical bounce effect |
animate-pulse | Opacity fade in/out |
animate-ping | Scale up + fade out |
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:| Class | Description |
|---|---|
animate-wiggle | Rotational wiggle |
animate-shake | Horizontal shake |
animate-flash | Opacity flash on/off |
animate-rubber-band | Elastic scale stretch |
animate-swing | Pendulum swing |
animate-tada | Scale + rotate attention seeker |
animate-heartbeat | Double-pulse heartbeat |
animate-jello | Rotational jello wobble |
animate-float | Gentle vertical float |
animate-breathe | Subtle breathing scale |
animate-tilt | Alternating tilt rotation |
animate-glitch | Rapid horizontal jitter |
Transitions
Animate property changes smoothly whenclassName or state changes:
Transition Classes
| Class | Properties Animated |
|---|---|
transition-none | No transition |
transition-all | All properties |
transition-colors | Background, border, text colors |
transition-opacity | Opacity |
transition-shadow | Box shadow |
transition-transform | Transform (scale, rotate, translate) |
Duration
| Class | Duration |
|---|---|
duration-75 | 75ms |
duration-100 | 100ms |
duration-150 | 150ms |
duration-200 | 200ms |
duration-300 | 300ms |
duration-500 | 500ms |
duration-700 | 700ms |
duration-1000 | 1000ms |
Timing Functions
| Class | Easing |
|---|---|
ease-linear | Linear |
ease-in | Ease in |
ease-out | Ease out |
ease-in-out | Ease in-out |
Delay
| Class | Delay |
|---|---|
delay-75 | 75ms |
delay-100 | 100ms |
delay-150 | 150ms |
delay-200 | 200ms |
delay-300 | 300ms |
delay-500 | 500ms |
delay-700 | 700ms |
delay-1000 | 1000ms |
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 fromreact-native-reanimated needed.
Use uw-entering-* to animate a component when it appears, and uw-exiting-* when it disappears:
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
Fade
Fade
| Class | Animation |
|---|---|
uw-entering-fade-in | Fade in |
uw-entering-fade-in-right | Fade in from the right |
uw-entering-fade-in-left | Fade in from the left |
uw-entering-fade-in-up | Fade in from below |
uw-entering-fade-in-down | Fade in from above |
Slide
Slide
| Class | Animation |
|---|---|
uw-entering-slide-in-right | Slide in from the right |
uw-entering-slide-in-left | Slide in from the left |
uw-entering-slide-in-up | Slide in from below |
uw-entering-slide-in-down | Slide in from above |
Zoom
Zoom
| Class | Animation |
|---|---|
uw-entering-zoom-in | Zoom in from center |
uw-entering-zoom-in-rotate | Zoom in with rotation |
uw-entering-zoom-in-left | Zoom in from the left |
uw-entering-zoom-in-right | Zoom in from the right |
uw-entering-zoom-in-up | Zoom in from below |
uw-entering-zoom-in-down | Zoom in from above |
uw-entering-zoom-in-easy-up | Smooth zoom in from below |
uw-entering-zoom-in-easy-down | Smooth zoom in from above |
Bounce
Bounce
| Class | Animation |
|---|---|
uw-entering-bounce-in | Bounce in from center |
uw-entering-bounce-in-down | Bounce in from above |
uw-entering-bounce-in-up | Bounce in from below |
uw-entering-bounce-in-left | Bounce in from the left |
uw-entering-bounce-in-right | Bounce in from the right |
Flip
Flip
| Class | Animation |
|---|---|
uw-entering-flip-in-x-up | Flip in on X axis from top |
uw-entering-flip-in-x-down | Flip in on X axis from bottom |
uw-entering-flip-in-y-left | Flip in on Y axis from left |
uw-entering-flip-in-y-right | Flip in on Y axis from right |
uw-entering-flip-in-easy-x | Simple flip in on X axis |
uw-entering-flip-in-easy-y | Simple flip in on Y axis |
Stretch
Stretch
| Class | Animation |
|---|---|
uw-entering-stretch-in-x | Stretch in horizontally |
uw-entering-stretch-in-y | Stretch in vertically |
Rotate
Rotate
| Class | Animation |
|---|---|
uw-entering-rotate-in-down-left | Rotate in from bottom-left |
uw-entering-rotate-in-down-right | Rotate in from bottom-right |
uw-entering-rotate-in-up-left | Rotate in from top-left |
uw-entering-rotate-in-up-right | Rotate in from top-right |
Other
Other
| Class | Animation |
|---|---|
uw-entering-roll-in-left | Roll in from the left |
uw-entering-roll-in-right | Roll in from the right |
uw-entering-pinwheel-in | Pinwheel spin in |
uw-entering-light-speed-in-right | Light speed in from right |
uw-entering-light-speed-in-left | Light speed in from left |
Exiting Presets
Fade
Fade
| Class | Animation |
|---|---|
uw-exiting-fade-out | Fade out |
uw-exiting-fade-out-right | Fade out to the right |
uw-exiting-fade-out-left | Fade out to the left |
uw-exiting-fade-out-up | Fade out upward |
uw-exiting-fade-out-down | Fade out downward |
Slide
Slide
| Class | Animation |
|---|---|
uw-exiting-slide-out-right | Slide out to the right |
uw-exiting-slide-out-left | Slide out to the left |
uw-exiting-slide-out-up | Slide out upward |
uw-exiting-slide-out-down | Slide out downward |
Zoom
Zoom
| Class | Animation |
|---|---|
uw-exiting-zoom-out | Zoom out to center |
uw-exiting-zoom-out-rotate | Zoom out with rotation |
uw-exiting-zoom-out-left | Zoom out to the left |
uw-exiting-zoom-out-right | Zoom out to the right |
uw-exiting-zoom-out-up | Zoom out upward |
uw-exiting-zoom-out-down | Zoom out downward |
uw-exiting-zoom-out-easy-up | Smooth zoom out upward |
uw-exiting-zoom-out-easy-down | Smooth zoom out downward |
Bounce
Bounce
| Class | Animation |
|---|---|
uw-exiting-bounce-out | Bounce out from center |
uw-exiting-bounce-out-down | Bounce out downward |
uw-exiting-bounce-out-up | Bounce out upward |
uw-exiting-bounce-out-left | Bounce out to the left |
uw-exiting-bounce-out-right | Bounce out to the right |
Flip
Flip
| Class | Animation |
|---|---|
uw-exiting-flip-out-x-up | Flip out on X axis upward |
uw-exiting-flip-out-x-down | Flip out on X axis downward |
uw-exiting-flip-out-y-left | Flip out on Y axis to left |
uw-exiting-flip-out-y-right | Flip out on Y axis to right |
uw-exiting-flip-out-easy-x | Simple flip out on X axis |
uw-exiting-flip-out-easy-y | Simple flip out on Y axis |
Stretch
Stretch
| Class | Animation |
|---|---|
uw-exiting-stretch-out-x | Stretch out horizontally |
uw-exiting-stretch-out-y | Stretch out vertically |
Rotate
Rotate
| Class | Animation |
|---|---|
uw-exiting-rotate-out-down-left | Rotate out to bottom-left |
uw-exiting-rotate-out-down-right | Rotate out to bottom-right |
uw-exiting-rotate-out-up-left | Rotate out to top-left |
uw-exiting-rotate-out-up-right | Rotate out to top-right |
Other
Other
| Class | Animation |
|---|---|
uw-exiting-roll-out-left | Roll out to the left |
uw-exiting-roll-out-right | Roll out to the right |
uw-exiting-pinwheel-out | Pinwheel spin out |
uw-exiting-light-speed-out-right | Light speed out to right |
uw-exiting-light-speed-out-left | Light speed out to left |
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. Useuw-layout-* classes to apply them:
Layout Transition Presets
| Class | Description |
|---|---|
uw-layout-linear-transition | Smooth linear repositioning |
uw-layout-fading-transition | Fade during repositioning |
uw-layout-jumping-transition | Bouncy jump to new position |
uw-layout-curved-transition | Curved path repositioning |
uw-layout-sequenced-transition | Sequenced repositioning |
uw-layout-entry-exit-transition | Combined entry/exit during layout |
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 yourclassName.
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.| Class | Duration |
|---|---|
uw-{type}-duration-75 | 75ms |
uw-{type}-duration-100 | 100ms |
uw-{type}-duration-150 | 150ms |
uw-{type}-duration-200 | 200ms |
uw-{type}-duration-300 | 300ms |
uw-{type}-duration-500 | 500ms |
uw-{type}-duration-700 | 700ms |
uw-{type}-duration-1000 | 1000ms |
uw-{type}-duration-{value} | Arbitrary value in ms |
Delay
Adds a delay before the animation starts.| Class | Delay |
|---|---|
uw-{type}-delay-75 | 75ms |
uw-{type}-delay-100 | 100ms |
uw-{type}-delay-150 | 150ms |
uw-{type}-delay-200 | 200ms |
uw-{type}-delay-300 | 300ms |
uw-{type}-delay-500 | 500ms |
uw-{type}-delay-700 | 700ms |
uw-{type}-delay-1000 | 1000ms |
uw-{type}-delay-{value} | Arbitrary value in ms |
Easing
Sets the timing function for the animation.| Class | Easing |
|---|---|
uw-{type}-ease-linear | Linear |
uw-{type}-ease-in | Ease in (accelerating) |
uw-{type}-ease-out | Ease out (decelerating) |
uw-{type}-ease-in-out | Ease in-out (both) |
uw-{type}-ease-bounce | Bounce easing |
Spring Physics
For spring-based animations, enable springify and optionally configure damping, stiffness, and mass. These accept arbitrary numeric values.| Class | Description |
|---|---|
uw-{type}-springify | Enable spring physics |
uw-{type}-damping-{value} | Spring damping (lower = more oscillation) |
uw-{type}-stiffness-{value} | Spring stiffness (higher = snappier) |
uw-{type}-mass-{value} | Spring mass (higher = slower) |
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’sAnimated.* components directly with Uniwind classes. The entering, exiting, and layout props accept Reanimated animation objects as usual:
entering or exiting prop directly to override the class-name-driven animation:
Components Supporting Animations
These components automatically switch to Reanimated versions whenanimate-*, transition-*, or uw-* animation classes are detected:
| Component | Animated Version |
|---|---|
View | Animated.View |
Text | Animated.Text |
Image | Animated.Image |
ImageBackground | Animated.ImageBackground |
ScrollView | Animated.ScrollView |
FlatList | Animated.FlatList |
TextInput | Animated.TextInput |
Pressable | Animated.Pressable |
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
Related
Shadow Tree Updates
Learn how Uniwind Pro updates views without re-renders
Theme Transitions
Add smooth animated transitions when switching themes