Ready-to-use CSS Animation presets for React Native Reanimated
Tip
Since version 4.0, React Native Reanimated comes with a native support for CSS Animations and Transitions. Read the full announcement to learn more.
yarn add react-native-reanimated@next yarn add react-native-css-animations
Add spin
style object to an Animated
component add a linear spinning animation. Great for loaders.
import { spin } from 'react-native-css-animations';
import Animated from 'react-native-reanimated';
function App() {
return <Animated.View style={[styles.spinner, spin]} />;
}
Add ping
style object to an Animated
component to make the element scale and fade. Great for attention grabbing elements like notifications.
import { ping } from 'react-native-css-animations';
import Animated from 'react-native-reanimated';
function App() {
return <Animated.View style={[styles.notification, ping]} />;
}
Add pulse
style object to an Animated
component to make it fade in and out. Great for skeleton loaders.
import { pulse } from 'react-native-css-animations';
import Animated from 'react-native-reanimated';
function App() {
return <Animated.View style={[styles.skeleton, pulse]} />;
}
Add bounce
style object to an Animated
component to make it bounce up and down. Great for scroll down indicators.
import { bounce } from 'react-native-css-animations';
import Animated from 'react-native-reanimated';
function App() {
return <Animated.View style={[styles.arrow, bounce]} />;
}
Add shimmer
style object to an Animated
component to make it animate from left to right indefinitely. Great for shimmer loading effect.
Note
The example video on the right uses @react-native-masked-view/masked-view
and expo-linear-gradient
, and thus doesn't work on the Web.
import { shimmer } from 'react-native-css-animations';
import Animated from 'react-native-reanimated';
function App() {
return <Animated.View style={[styles.gradient, shimmer]} />;
}
The following animations are also available in a form of React Native components.
import {
Spin,
Ping,
Pulse,
Bounce,
Shimmer,
} from 'react-native-css-animations';
function App() {
return (
<Bounce>
<ArrowIcon />
</Bounce>
);
}
You can customize the animation style objects by overriding the styles like so:
import { shimmer } from 'react-native-css-animations';
import Animated from 'react-native-reanimated';
function App() {
return <Animated.View
style={[
styles.gradient,
shimmer,
+ {
+ animationName: {
+ to: { transform: [{ translateX: '100%' }] },
+ },
+ },
]}
>
}
- The examples and animations were adopted from Tailwind CSS.