@douyinfe/semi-animation-react

中文文档
2.105.0发布于 2026/11/12MITTypeScriptESM + CJS近 30 天下载 8.4万

motion library for semi-ui-react

原始使用文档
文档目录5 节
  1. Install
  2. Usage
  3. Transition Component
  4. Props
  5. config

React animation library based on @douyinfe/semi-animation.

The transition animation effects of all components in @douyinfe/semi-ui are implemented based on this animation library, such as: Modal, Tooltip, Collapse and other component content display and exit effects.

Install

npm install @douyinfe/semi-animation-react

Usage

Transition Component

It is used to realize the animation effect of the component [show and exit]. Examples are as follows:

import { Transition } from "@douyinfe/semi-animation-react";
import { useState } from "react";

export default function App() {
  const [visible, setVisible] = useState(false);
  return (
    <div className="App">
      <Transition
        state={visible ? "enter" : "leave"}
        from={{ opacity: 0, scale: 0}}
        enter={{ opacity: 1, scale: 1 }}
        leave={{ opacity: 0, scale: 0 }}
      >
        {({ scale, opacity }: any) => (
          <h2 style={{transform: `scale(${scale})`, opacity}}>
            Toggle to see some animation happen!
          </h2>
        )}
      </Transition>

      <button onClick={() => {
        setVisible((state) => !state)
      }}>toggle</button>
    </div>
  );
}

Props

NameTypeRequiredDefaultDescription
fromObjectYInitial state
enterObjectYShow the end state of the animation, but also the initial state of the exit animation
leaveObjectYExit the termination state of the animation
stateEnum 'enter', 'leave'N''Current state
willEnterFunctionN()=> {}The callback function before the enter animation starts
didEnterFunctionN()=> {}The callback function before the animation ends
willLeaveFunctionN()=> {}The callback function before the exit animation starts
didLeaveFunctionN()=> {}The callback function before the exit animation ends
onStartFunctionN()=> {}The callback function before animation starts,including enter and exit
onRestFunctionN()=> {}The callback function before animation ends,including enter and exit
configConfigTypeN{}Additional animation parameters

config

NameTypeDefaultDescription
durationNumber1000Animation duration.If this parameter is passed in, the easing function of the animation will use easing or linear function,unit: ms
easingFunction|StringEasing function for animation. If duration is not passed, the spring easing function is used by default. If the duration parameter is passed in, the linear easing function will be used by default.For example, incoming "cubic-bezier(.17,.67,.83,.67)" will cause the animation frame update performed according to this easing function
tensionNumber170Tension, used for spring easing function
frictionNumber14Friction, used for spring easing function

版本与发布记录

@douyinfe/semi-animation-react 共发布 592 个版本,首次发布于 2021/10/25;过去 12 个月发布了 67 个版本。

版本发布日期距今
2.105.0latest2026/11/121 天前
2.104.02026/10/091 个月前
2.103.02026/09/012 个月前
2.102.02026/07/313 个月前
2.38.4-alpha.2-3117-31202026/07/293 个月前
2.101.12026/07/203 个月前

其他发布通道:next → 2.1.0-next.1,2.18.1-alpha.0 → 2.18.1-alpha.0,test → 2.38.3-alpha.4,patch-table → 2.38.3-alpha.2-patch-table,patch-tooltip → 2.70.1-alpha.1-patch-tooltip,2.58.0-hotfix-aria → 2.58.0-hotfix-aria。

关于 @douyinfe/semi-animation-react 的常见问题

@douyinfe/semi-animation-react 是什么?

motion library for semi-ui-react

如何安装 @douyinfe/semi-animation-react?

在项目目录运行 npm install @douyinfe/semi-animation-react,或使用 pnpm add / yarn add / bun add。

@douyinfe/semi-animation-react 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@douyinfe/semi-animation-react 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@douyinfe/semi-animation-react 可以商用吗?

@douyinfe/semi-animation-react 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@douyinfe/semi-animation-react 的下载量有多少?

根据 npm 官方下载统计,@douyinfe/semi-animation-react 在 2026/10/13 – 2026/11/11 这 30 天内被下载 84,424 次,日均约 2,814 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@douyinfe/semi-animation-react 还在维护吗?

最新版本 2.105.0 发布于 2026/11/12(1 天前);至今共发布 592 个版本,其中过去 12 个月发布了 67 个;首次发布于 2021/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。