Animations
Reanimated presets, CSS keyframes, and native scroll-driven animations.
Animations
Nitrowind synthesizes Tailwind utilities for Reanimated entering, exiting, layout, and CSS-keyframe animations.
<View className="entering-fade-in entering-duration-300 layout-springify">
<Text className="animate-wiggle">Animated</Text>
</View>Preset families
entering-*exiting-*layout-**-duration-**-delay-**-ease-**-springify*-damping-**-stiffness-**-mass-*
Built-in CSS animations
Built-in animate-* utilities include:
animate-wiggleanimate-shakeanimate-flashanimate-rubber-bandanimate-swinganimate-tadaanimate-heartbeatanimate-jelloanimate-floatanimate-breatheanimate-tiltanimate-glitch
Install react-native-reanimated before using animation helpers.
Scroll-driven animations
On iOS and Android, a Nitrowind ScrollView can drive CSS keyframes directly
from native scroll position. Give the scroll container a named timeline, then
point any descendant animation at that timeline:
import { ScrollView, View } from '@nitrofoundation/nitrocss/components';
export function Feed() {
return (
<ScrollView className="feed">
<View className="reveal-card" />
</ScrollView>
);
}@keyframes reveal-card {
from {
opacity: 0;
transform: translateY(32px) scale(0.94);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.feed {
scroll-timeline: --feed block;
}
.reveal-card {
animation: reveal-card 1s linear both;
animation-timeline: --feed;
animation-range: 10% 70%;
}The animation is evaluated natively on iOS and Android while the user scrolls;
it does not add a JavaScript onScroll handler or require Reanimated. Both
native drivers support named scroll-timeline sources, anonymous view()
timelines, block, inline, x, and y axes, percentage ranges, the
cover, entry, contain, and exit view phases, and keyframes containing
opacity, translate, scale, and Z rotation. Use Nitrowind's ScrollView as the
timeline source.