Communitygithub.com

sukirman1901/motion

按系列/模式实现有目的的 UI 动效——外壳默认(淡入、抽屉、按压)加上营销词汇(揭示、滚动、文本、轮播、首屏等)。根据命名模式手工编写 CSS/Motion/GSAP 代码。适用于动画请求、着陆页、跑马灯、视差、文本揭示和轻量默认动效场景(非仅 token 调整)。

motion 是什么?

Motion 是一个专注于为 UI 添加有意义的动效的 AI 代理技能,它强调动效应揭示层级和提供反馈,而非纯装饰。该技能提供 12 个系列、144 个模式的完整动效目录,适用于产品外壳和营销两种场景,并提倡手写 CSS/Motion/GSAP 代码而非依赖第三方库。它严格限制了每视口的动效预算(≤2-3 个),并要求强制处理 `prefers-reduced-motion` 以保障无障碍性。该技能支持 Claude Code、Cursor 等 AI 代理平台,用户只需通过命名系列(如“微交互”、“悬停”)和模式(如“淡入向上”、“抽屉滑动”)即可精确控制动效产出。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sukirman1901/frontend-expert/tree/HEAD/skills/motion

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

motion 是做什么的?

概述

Motion 用于阐明层级和反馈——而非装饰。请按名称选择系列/模式,然后手工编写(CSS / Motion / GSAP)。不要默认使用第三方注册表安装。

完整目录:references/motion-families.md(12 个系列 · 144 个模式)。

使用场景

  • 微交互(悬停、聚焦、按压)
  • 进入/退出或布局过渡(区块切换、抽屉、模态框)
  • 滚动关联、文本、轮播、首屏或其他命名模式
  • 默认(轻量): 应用外壳 / 仪表盘 / 多区块 /ui —— 区块淡入 + 抽屉滑动 + 平滑滚动(除非用户禁止)

跳过场景

  • 仅静态 token/颜色调整
  • 用户要求零动效 / “tanpa animasi”
  • 检查/解释现有动效 → 转至 motion-inspection

偏好减少动效的用户仍需状态变化和可用的即时/不透明度回退;可跳过空间/装饰效果,但不能跳过交互契约。

车道

车道用途默认值
产品 / 外壳应用外壳、设置、仪表盘fade-up / page-crossfade、drawer-slide、press-scale、lift-hover
营销 / 表现性着陆页、活动页从目录中选取 1–2 个系列 + 1–2 个模式 —— 每视口动效预算 2–3 个

系列用途(快速参考)

系列适用场景不适用场景
微交互切换、Toast、点赞、进度条首屏 / 滚动故事
悬停与交互抬起、按压、磁性、倾斜页面进入
基于滚动粘性、水平滚动、滚动缩放仅按钮级微交互
揭示与擦除进入淡入、分割、遮罩、抽屉仅使用无限循环作为唯一动效
文本动效文字揭示、打字机、跑马灯表单 / 密集设置
轮播与连续流跑马灯、胶片条、吸附单个 CTA 焦点页面
网格动效Bento、翻转网格、重排单按钮外壳
聚焦与强调中心舞台、调暗兄弟元素全页噪音
堆叠与散落牌组、扇形、滑动牌组管理后台表格
首屏区块动效视差 / 浮动设备 / 极光应用外壳(最多 1 个标志性效果)
变形与变换共享元素、FAB 变形每一个导航
3D 与透视轨道、翻页封面流默认产品 UI

工作流程

  1. 车道 —— 产品外壳 vs 营销
  2. 系列 —— 匹配用途(最多 2 个系列)
  3. 模式 —— 从 motion-families.md 中命名 1–2 个;阅读定义 + 手工编写提示
  4. 契约 + 实现 —— 记录触发条件/状态标识、属性、中断、输入替代方案和偏好减少动效的终点的(motion.md)。优先使用 transform/opacity;当需要揭示或变形时,使用有边界的测量尺寸/布局。
  5. 预算 —— 每视口 ≤2–3 个有意的动效
  6. 无障碍 —— prefers-reduced-motion: reduce(不透明度/即时回退);永远不要仅靠动效传递含义
  7. 报告 —— 约定:Motion: light shell | families: Hover+Reveal | patterns: lift-hover, fade-up;区分源/状态检查与实际目标回放和性能测量。

外壳默认(产品)

  • 区块进入:fade-up 约 250–300ms
  • 移动端抽屉:drawer-slide + 背景遮罩淡入
  • 控件:press-scale (0.96)
  • scroll-behavior: smooth(在偏好减少动效下禁用)

平滑滚动并不等于允许自动滚动传入数据。产品状态配方在 references/motion.md 中规定了图表更新、披露和流跟随;向上滚动的用户保持控制权。

严格规则

  • 手工编写基于模式名称——注册表安装不是默认方案
  • 不要在一个视口内叠加首屏 + 3D + 文本 + 聚焦 + 轮播
  • 营销:最多一个首屏标志性模式

检查清单

  • 已选择车道(产品 vs 营销)
  • 系列用途与要求匹配(≤2 个系列)
  • 已列出命名模式(视口中 ≤2–3 个动效)
  • 已根据定义手工编写(非注册表作为答案)
  • 已处理 prefers-reduced-motion
  • 已检查快速反向、嵌套动效、聚焦/键盘和手势取消(如适用);最终数据/状态保持真实
  • 无布局抖动 / 装饰性垃圾
  • 已填写约定 Motion 行

深度资料

  • 词汇:references/motion-families.md
  • 配方:references/motion.md
  • 微工艺重叠:polish
  • 演示外壳:本地 test/ 沙箱(可选;不发布)

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能