Animations
Because RNWeb doesn't support the React Native LayoutAnimation API we need to use other methods for animating our components around the screen. A good alternative is the CSS Transitions API.
What can it do?
With CSS Animations in React Native (for web) we can create awesome effects with the components on the screen. When you define (at minimum) a component's animationDuration
style property, then any state change that effects that component's style will create an implicit interpolation between the old value and the new one.
The API
The duration to wait before executing the transition associated with a new style value. The value is defined as a string
with the suffix "s" for seconds or "ms" milliseconds.
Type: string | string[]
string | string[]
Default: '0s'
'0s'
Conversion
// CSS
- animation-delay: 650ms;
// React Native
+ animationDelay: "650ms",
The direction value dictates if an animation should be played forwards, backwards or in alternate cycles.
Type: string | string[]
string | string[]
Default: 'normal'
'normal'
Values: 'alternate' | 'alternate-reverse' | 'normal' | 'reverse'
'alternate' | 'alternate-reverse' | 'normal' | 'reverse'
Conversion
// CSS
- animation-direction: alternate-reverse;
// React Native
+ animationDirection: "alternate-reverse",
The duration or durations of the animations after the animationDelay
has finished. The value is defined as a string
with the suffix "s" for seconds or "ms" milliseconds.
Type: string | string[]
string | string[]
Default: '0s'
'0s'
Conversion
// CSS
- animation-duration: 10s;
// React Native
+ animationDuration: "10s",
The animationFillMode
CSS property sets how a CSS animation applies styles to its target before and after its execution.
Type: string | string[]
string | string[]
Default: 'forwards'
'forwards'
Values: 'none' | 'forwards' | 'backwards' | 'both'
'none' | 'forwards' | 'backwards' | 'both'
Conversion
// CSS
- animation-fill-mode: none;
// React Native
+ animationFillMode: "none",
The animationIterationCount
CSS property sets the number of times an animation cycle should be played before stopping.
If multiple values are specified, each time the animation is played the next value in the list is used, cycling back to the first value after the last one is used.
Type: number | 'infinite' | Array<number, 'infinite'>
number | 'infinite' | Array<number, 'infinite'>
Default: 1
1
Values: <number> | 'infinite'
<number> | 'infinite'
Conversion
// CSS
- animation-iteration-count: 2;
// React Native
+ animationIterationCount: 2,
Used to control the intermediate steps in an animation sequence by defining styles for keyframes (or waypoints) along the animation sequence. This gives more control over the intermediate steps of the animation sequence than transitions.
Type: string | Object | Array<string, Object>
string | Object | Array<string, Object>
Conversion
// CSS
- @keyframes demo {
- 0% { backgroundColor: "blue"; }
- 100% { backgroundColor: "red"; }
- }
- animation-name: demo;
// React Native
+ const demo = {
+ '0%': { backgroundColor: "blue" },
+ '100%': { backgroundColor: "red" },
+ }
+ animationKeyframes: demo,
The animationPlayState
CSS property sets whether an animation is running or paused.
Resuming a paused animation will start the animation from where it left off at the time it was paused, rather than starting over from the beginning of the animation sequence.
Type: string | string[]
string | string[]
Default: 'running'
'running'
Values: 'paused' | 'running'
'paused' | 'running'
Conversion
// CSS
- animation-play-state: running;
// React Native
+ animationPlayState: "running",
The animationTimingFunction
CSS property sets how an animation progresses through the duration of each cycle.
Type: string | string[]
string | string[]
Default: 'normal'
'normal'
Values: "linear" | "ease" | "ease-in" | "ease-out" | "ease-in-out" | "step-start" | "step-end" | "steps(int,start|end)" | "cubic-bezier(n,n,n,n)"
Conversion
// CSS
- animation-timing-function: ease-in;
// React Native
+ animationTimingFunction: "ease-in",
Last updated
Was this helpful?