@cssints/motion

中文文档
0.35.1发布于 2026/11/07MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 7855

Csints 的动画预设: 淡出、 滑出、 缩放和模糊的内核, 与密钥框架( ) 相比, 并带有偏好- 减小- 移动

中文使用文档
文档目录3 节
  1. 规则
  2. 限制
  3. 贷项

@cssints/运动

动画预设 点缀: 淡出、滑出、缩放和模糊, 以一个链式成员的身份进出 cssints/plugin scope()以可调和的方式 尾风-运动 财务报告和审定财务报表 尾风动物: 预设只设置自定义属性,以及 一个内核结束 keyframes() 运行他们。 没有运行时间.

import { cn, hover } from "cssints" with { type: "cssints" };
import { motion } from "@cssints/motion" with { type: "cssints" };

export const toast = motion()
  .preset("slide-in-up")
  .duration("500ms")
  .delay("100ms")
  .easing("linear");
export const leave = motion().preset("fade-out");
export const slow = cn(motion().preset("scale-in"), hover(motion().duration("1s")));
@layer _.k {
  @keyframes kf-7f473efd {
    from {
      opacity: var(--motion-o);
      translate: var(--motion-x) var(--motion-y);
      scale: var(--motion-s);
      filter: blur(var(--motion-b));
    }
  }
  @keyframes kf-eaeb1c11 {
    to {
      opacity: var(--motion-o);
      translate: var(--motion-x) var(--motion-y);
      scale: var(--motion-s);
      filter: blur(var(--motion-b));
    }
  }
  @keyframes kf-4f766ef7 {
    from {
      opacity: var(--motion-o);
    }
  }
  @keyframes kf-9b622913 {
    to {
      opacity: var(--motion-o);
    }
  }
  ._motion-core {
    animation: var(--motion-n) var(--motion-d) var(--motion-e) var(--motion-l) both;
    --motion-in: kf-7f473efd;
    --motion-out: kf-eaeb1c11;
    --motion-ri: kf-4f766ef7;
    --motion-ro: kf-9b622913;
    --motion-n: none;
    --motion-r: none;
    --motion-d: 300ms;
    --motion-l: 0s;
    --motion-e: ease-out;
    --motion-o: 1;
    --motion-x: 0;
    --motion-y: 0;
    --motion-s: 1;
    --motion-b: 0;
  }
  @media (prefers-reduced-motion: reduce) {
    ._motion-core {
      animation-name: var(--motion-r);
    }
  }
}
@layer _.a {
  ._13945js {
    --motion-n: var(--motion-in);
  }
  ._jddydc {
    --motion-r: var(--motion-ri);
  }
  ._knj5bv {
    --motion-o: 0;
  }
  ._1a9p5a9 {
    --motion-y: 25%;
  }
  ._46hkr9 {
    --motion-d: 500ms;
  }
  /* ... */
}

规则

  • 方法,每一次,任何顺序,所有可选: preset(name), (中文(简体) ), duration(<time [0s,∞]>) (300毫秒), delay(<time>) (0s), (单位:千美元), easing(<easing-function>) (单位:千美元)ease-out) (中文(简体) ). 每一类都是设定定制属性的,所以 方法在条件下发挥作用(hover(motion().duration("1s"))) (中文(简体) ).
  • 预设数字 : fade-in, (中文(简体) ), fade-out, (中文(简体) ), slide-in-up, (中文(简体) ), slide-in-down, (中文(简体) ), slide-in-left, (中文(简体) ), slide-in-right, (中文(简体) ), slide-out-up, (中文(简体) ), slide-out-down, (中文(简体) ), slide-out-left, (中文(简体) ), slide-out-right, (中文(简体) ), scale-in, (中文(简体) ), scale-out, (中文(简体) ), blur-in, (中文(简体) ), blur-out,每个变相;a 滑动 25% 的框, 缩放开始( 或结束) 0. 5, 模糊 5px (尾风- 运动的中等大小) . -in 从这些值到元素本身, -out 从它自己到那些, 并持有结束(both) (中文(简体) ). slide-in-up - 逐步到位; slide-out-up 移动起来.
  • 关键框架 四岁 keyframes():进出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出 他们 读取 --motion-*,所以所有预设都共享. 内核为样式并命名于 --motion-in, (中文(简体) ), --motion-out, (中文(简体) ), --motion-ri 财务报告和审定财务报表 --motion-ro (单位:千美元)vars()),将他们的规则放在工作表中 1个(--motion-n: var(--motion-in)) (中文(简体) ).
  • 减少运动. 下 prefers-reduced-motion: reduce 内核运行不透明唯一的密钥框架:幻灯片、缩放或 模糊变成同一时间的淡出 animationend 仍然开火.
  • 没有遗产. 内核重排每个 --motion-* 所以另一部电影里面的动画 是从它自己开始的 预设,不是其父母的.
  • 冲突. motion() 设置动画: a cn() 握着它,一个 animation* 属性是一个构建错误, 来源于内核: cssints: motion: kernel core sets animation, animation-name (this style also sets animation-duration)。 。 。 .
  • 错误 语法,在类型和建设时间: motion.preset: unexpected "spin" in "spin", expected fade-in | ..., (中文(简体) ), motion.duration: unexpected "-1s" in "-1s", expected <time [0s,∞]>。 。 。 .
  • 对于其他成员. presets (按名称排列的表格), PresetName, (中文(简体) ), motionKeyframes, (中文(简体) ), motionVars (习惯 属性键框,按预设字段表示: motionVars.y 实值 --motion-y和 motionScope (其内核) core)是导出的,所以一个建立在这些预设上的成员会重新使用它们,而从来不写 --motion-* 名称.

限制

  • 每个元素一个预设: preset() 用于一次,而预设不会堆叠(每张幻灯片、缩放和模糊已淡出).
  • 关键框架 translate, (中文(简体) ), scale 财务报告和审定财务报表 filter: 在动画中(和之后) -out (一) 替换 元素本身; transform 无人知晓.
  • 没有循环预设(脉冲,自旋,回弹),没有弹簧松动,没有每个预设大小.
cd packages/motion && bun run test   # fixtures through the engine (output, conflicts, errors); bun run typecheck for the type test

贷项

设计( 只设置自定义属性的预设, 一个内核 over) keyframes()),预设名称和 中等尺寸(25%、0.5%、5px) 尾风-运动 (麻省理工学院,伦博) (有限)和 尾风动物 (麻省理工学院,杰米·凯尔). 没有代码 复制.

版本与发布记录

@cssints/motion 共发布 43 个版本,首次发布于 2026/10/11;过去 12 个月发布了 43 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.35.1latest2026/11/073 天前
0.35.02026/11/073 天前
0.34.02026/11/073 天前
0.33.02026/11/046 天前
0.32.02026/11/046 天前
0.31.02026/11/047 天前

关于 @cssints/motion 的常见问题

@cssints/motion 是什么?

Csints 的动画预设: 淡出、 滑出、 缩放和模糊的内核, 与密钥框架( ) 相比, 并带有偏好- 减小- 移动

如何安装 @cssints/motion?

在项目目录运行 npm install @cssints/motion,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:cssints(^0.35.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cssints/motion 支持 TypeScript 吗?

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

@cssints/motion 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cssints/motion 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cssints/motion 可以商用吗?

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

@cssints/motion 的下载量有多少?

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

@cssints/motion 还在维护吗?

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