跳至主要内容

stylex.keyframes

接收一个关键帧定义,创建一个 @keyframes 规则,并返回关键帧名称。

function keyframes(frames: {[key: string]: RawStyles}): string;

您必须在使用关键帧的同一文件中声明它们。重复声明将在生成的 CSS 输出中进行去重。

使用示例:

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',
},
});

要在单独的文件中声明关键帧,可以使用 defineVars 来保存动画名称

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,
});

然后可以导入这些变量,并像使用 defineVars 创建的其他任何变量一样使用它们。