stylex.keyframes
Takes a keyframes definition, creates a @keyframes
rule, and returns the
keyframe name.
function keyframes(frames: {[key: string]: RawStyles}): string;
You must declare your keyframes in the same file as where you use them. Duplicate declarations will be deduplicated in the generated CSS output.
Example use:
import * as stylex from '@stylexjs/stylex';
const pulse = stylex.keyframes({
'0%': {transform: 'scale(1)'},
'50%': {transform: 'scale(1.1)'},
'100%': {transform: 'scale(1)'},
});
const styles = stylex.create({
pulse: {
animationName: pulse,
animationDuration: '1s',
animationIterationCount: 'infinite',
},
});
To declare keyframes in a separate file, you can use defineVars
to hold
animation names:
animations.stylex.js
import * as stylex from '@stylexjs/stylex';
const pulse = stylex.keyframes({
'0%': {transform: 'scale(1)'},
'50%': {transform: 'scale(1.1)'},
'100%': {transform: 'scale(1)'},
});
const fadeIn = stylex.keyframes({
'0%': {opacity: 0},
'100%': {opacity: 1},
});
const fadeOut = stylex.keyframes({
'0%': {opacity: 1},
'100%': {opacity: 0},
});
export const animations = stylex.defineVars({
pulse,
fadeIn,
fadeOut,
});
These variables can then be imported and used like any other variables created with defineVars.