全新升级 · 120fps GPU 加速

 Web

一个开源动画库,将 JavaScript 的强大能力与浏览器原生 API 结合, 为 React、JavaScript 和 Vue 提供生产就绪的动画解决方案。

探索演示npm install motion
8M+
NPM 月下载量
25K+
GitHub Stars
330+
官方示例
120fps
动画帧率

受到全球领先团队和产品的信赖

Framer
Cursor
Linear
Figma
Sanity
Clerk
Liveblocks
Bolt.new
Framer
Cursor
Linear
Figma
Sanity
Clerk
Liveblocks
Bolt.new
核心特性

为什么选择 Motion

专为现代 Web 开发设计的动画解决方案,让你的界面焕发生机

混合引擎

将 JavaScript 的强大能力与浏览器原生 API 结合,实现 120fps、GPU 加速的丝滑动画。

简洁的 API

提供对 React、JavaScript 和 Vue 的一流支持,极简的声明式 API 让你专注创意。

生产就绪

使用 TypeScript 编写,拥有完善的测试套件,支持按需引入(tree-shaking),体积小巧。

弹簧动画

真实的物理弹簧系统,让动画拥有自然的惯性和弹性,告别生硬的线性动画。

手势交互

内置拖拽、悬停、点击、缩放等手势识别,让交互体验更加丰富生动。

滚动联动

滚动驱动的时间轴动画,视差效果、元素跟随滚动,打造沉浸式叙事体验。

交互演示

Motion 的 强大表现力

亲自体验以下演示,感受 Motion 在各类场景下的动画魅力

弹簧物理

真实的物理弹簧动画

按住我体验弹簧效果

自由拖拽

带约束的拖拽系统

在框内自由拖拽

布局动画

自动布局过渡

1
2
3
4

滚动联动

拖拽视差效果

1
2
3
4
5
6
7
8
水平拖拽浏览更多

复合手势

组合手势识别

悬停 · 拖拽 · 双击
代码示例

极简的 声明式 API

几行代码即可实现复杂的动画效果,让开发变得简单而优雅

import { motion } from "motion/react"

export default function App() {
  return (
    <motion.div
      initial={{ opacity: 0, scale: 0.8 }}
      animate={{ opacity: 1, scale: 1 }}
      whileHover={{ scale: 1.05 }}
      whileTap={{ scale: 0.95 }}
      transition={{
        type: "spring",
        stiffness: 300,
        damping: 20
      }}
    >
      让元素动起来
    </motion.div>
  )
}
跨平台支持

一套 API, 多端通用

无论你使用 React、Vue 还是原生 JavaScript,Motion 都能无缝集成

React

声明式组件动画,支持服务端渲染

import { motion } from "motion/react" <motion.div animate={{ x: 100 }} />

JavaScript

纯 JavaScript 驱动,框架无关的解决方案

import { animate } from "motion" animate("#box", { x: 100 })

Vue

响应式组件动画,完美融入 Vue 生态

import { motion } from "motion-v" <motion.div :animate="{ x: 100 }" />

准备好让你的界面
活起来了吗?

加入数万开发者的行列,使用 Motion 构建下一代 Web 体验。 开源免费,即刻开始。

330+
官方示例
100+
分步教程
120fps
GPU 加速
MIT
开源许可