ZeroTool Workbench

Cubic Bezier 曲线生成器

CSS cubic-bezier() 缓动曲线可视化编辑器。拖拽控制点、实时动画预览、一键导出 CSS / SCSS / Tailwind 代码。免费、纯浏览器运行。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册

拖拽两个实心圆点,数值实时更新。

毫秒
transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);

什么时候需要自定义 cubic-bezier

linear / ease / ease-in / ease-out / ease-in-out 这五个关键字够日常用。你需要自定义 cubic-bezier 的时候通常是:

  • 设计系统已有明确的运动语言 —— Material Design 标准曲线 (0.4, 0, 0.2, 1)、iOS 自然缓动、Tailwind 的 ease-in-out
  • 动画需要 overshoot 或 anticipation —— modal 弹出、抽屉拖拽、按钮按下回弹。
  • 要让 Figma / After Effects 的曲线和上线代码视觉完全一致。

一眼读懂曲线

X 轴是归一化的时间(起点 0,终点 1);Y 轴是动画进度。对角直线就是 linear。曲线鼓在对角线下方代表先快后慢(带 ease-in-out 感),鼓在上方代表初速很快然后减速(带 ease-out 感)。当曲线下探低于 0 或高出 1,就出现「弹簧」效果 —— 适合点缀型 UI,但功能性流程里用多了反而打断节奏。

常用缓动配方

使用场景推荐曲线原因
页面/区块入场cubic-bezier(0, 0, 0.2, 1)(decelerate)开头快、收尾柔,让用户能接住终态。
页面/区块离场cubic-bezier(0.4, 0, 1, 1)(accelerate)开头慢、离开快,下一屏感觉更利索。
通用过渡cubic-bezier(0.4, 0, 0.2, 1)(Material 标准)对称、中性,适合 hover、focus、小幅位移。
俏皮弹出cubic-bezier(0.68, -0.55, 0.265, 1.55)(back ease)带预拉和过冲,徽章、Toast、提醒类很好用。
拖拽跟手cubic-bezier(0.25, 0.46, 0.45, 0.94)平滑减速,接近物理惯性。

隐私说明

编辑器完全在你的浏览器里运行,曲线求值、动画预览、复制操作都在本地完成。任何控制点、时长、生成的 CSS 都不会上传。

相关工具

FAQ

什么是 cubic-bezier 缓动函数?

CSS cubic-bezier(x1, y1, x2, y2) 用四个数定义一条把「时间进度(0 到 1)」映射到「动画进度(0 到 1)」的曲线,曲线两端固定在 (0, 0) 和 (1, 1),你能调的是中间两个控制点 P1 和 P2。P1.x 与 P2.x 必须落在 [0, 1] 区间内;P1.y 与 P2.y 允许超出 0-1,用来表达 overshoot(过冲)与 anticipation(预拉)。

和 ease、ease-in、ease-out 这些关键字有什么区别?

CSS 关键字其实是 cubic-bezier 的几个固定别名。ease 等价于 cubic-bezier(0.25, 0.1, 0.25, 1),ease-in-out 等价于 cubic-bezier(0.42, 0, 0.58, 1)。它们一共只有四种形状。自定义曲线让你能精确匹配设计系统标准(Material / iOS / Tailwind)、为某条特定动效细调手感,并在 CSS、SCSS、Tailwind 配置之间复用同一组数值。

为什么 P1.y 或 P2.y 可以超出 0-1 范围?

Y 值小于 0 表示 anticipation(元素先反方向「拉一下」再开始动),大于 1 表示 overshoot(先冲过终点再回弹)。经典回弹曲线 cubic-bezier(0.68, -0.55, 0.265, 1.55) 同时使用了两种效果。X 轴代表时间,必须保持在 [0, 1] 区间,否则不是合法的 CSS timing function。

Tailwind CSS 里怎么用?

在 tailwind.config.js 的 theme.extend.transitionTimingFunction 加一条命名 entry,例如 smooth-out: 'cubic-bezier(0.4, 0, 0.2, 1)',之后就能用 ease-smooth-out 这个工具类。本工具的 Tailwind 输出模式会直接把这段代码片段生成给你。

我的曲线设置会被保存吗?

控制点位置、预览时长和输出格式会通过 ZeroTool 全站持久化层保存到当前设备的 localStorage,不会上传任何数据。点页面上的 Clear 按钮可以一键复位回默认 ease-in-out。