Communitygithub.com

EchoteDev/web-motion-ultra

设计、实现并优化流畅的桌面和移动端动画,为新建或现有网页量身定制动效。当需要让页面摆脱静态感、为落地页增添活力,或添加与品牌一致的微交互、展示、视差滚动及滚动编排时使用。不涵盖视频制作或仅添加后端驱动的动态内容。

web-motion-ultra 是什么?

Web Motion Ultra 是一个将静态页面转化为生动体验的 AI 技能,专为创意开发者和动效设计师打造。它强调每一次移动都应引导注意力、传达状态、建立层次或表达品牌,而非在所有地方应用相同的特效。该技能支持 HTML/CSS/vanilla JavaScript 项目,也能与 GSAP/ScrollTrigger、Framer Motion 等主流库集成,并遵循“超高质量标准”——精准编排、持续交互,并验证桌面与移动端质量。运行流程分为概念、系统与动效地图、实现、验证与交付四个阶段,从定义动效概念和标志性时刻开始,到创建集中化的 CSS 令牌和 JavaScript 配置,再到实际编码和浏览器验证。技能还特别关注无障碍性、性能优化(优先使用 transform 和 opacity)、减少动效偏好设置、以及移动端交互(避免依赖悬停)。它不会因为追求华丽特效而影响内容可用性,也不会在缺乏真实代码或 URL 时虚构用户站点。通过精确的动效地图和参数调整(如强度、持续时间、缓动函数),开发者能轻松控制动效的幅度、密度和复杂度,实现从克制到大胆的各种效果。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/EchoteDev/web-motion-ultra/tree/HEAD/skills/web-motion-ultra

在你喜欢的 AI 中提问

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

文档

Web Motion Ultra

通过创意开发者和动效设计师的技艺,将静态页面转化为鲜活的体验。每一次移动都应引导注意力、传达状态、建立层次或表达品牌。围绕内容编排动效,而非在所有地方应用相同的特效。

上下文与范围

从项目和请求中推断模式、目标、受众、受影响的页面、动效特性、强度和所用技术栈。若此类信息已可用,则不要提出问题清单。简要陈述有用的假设;仅在阻碍进展时才提问。

  • 增强(现有站点的默认模式): 保留文案、区块顺序、视觉标识、功能性和信息架构。仅添加动效所需的包装器、属性和局部修改。不要将请求转变为重新设计。
  • 创建: 当请求一个新页面时,将布局与动效共同设计,使用图层、比例对比和层次结构,使其在静止状态下也清晰可辨。
  • 如果没有可用的页面、URL或代码,先定义初步概念,然后请求应用概念所需的材料。不要虚构用户的站点,也不要声称做出了从未发生的更改。
  • 对于URL,使用可用的读取或浏览器工具。仅凭截图无法验证交互和滚动。

尊重现有的技术栈和依赖关系。对于没有约束的新页面,从 HTML、CSS 和 vanilla JavaScript 开始。简单效果使用 CSS 和 IntersectionObserver;复杂的序列、固定和拖拽擦洗使用 GSAP 搭配 ScrollTrigger;当 React 中已使用或被请求时,使用 Motion/Framer Motion。Lenis 是可选的,必须为项目服务,而非作为前提条件。在添加库之前,先在官方文档中验证 API 和版本。使用现有的包管理器或固定版本的 CDN,永远不要使用 latest。

超高质量标准

将“Ultra”理解为精确的编排、持续的交互,以及经过验证的桌面和移动端质量。它不会自动增加强度、效果数量或依赖关系。

在做出更改前,观察页面并识别具体问题:静态的层次结构、缺失的反馈、不一致的时序、跳跃、沉重的滚动,或与触控不兼容的效果。如果动效已存在,记录基线并改进现有系统。保持分析和文档与局部更改成比例。

对于每次实现,请阅读 references/smooth-responsive-motion.md:它定义了编排、中断、输入模型、性能以及验收标准。查阅效果目录以选择视觉语言;质量也取决于状态之间的过渡。

1. 概念

检查结构、内容、主要操作和现有交互。定义:

  • 动效概念:用一句话描述行为,而不仅仅是审美形容词。
  • 标志性时刻:页面或旅程中最令人难忘的效果,具有叙事或实用目的。在操作界面中,这可能是一个微妙的微交互。
  • 支持性效果:为每个区块定义,解释它们帮助用户理解或完成什么。
  • 特性与强度:操作界面和阅读场景采用克制;促销落地页的默认假设为中等;仅在请求一致时使用大胆。强度改变的是幅度、密度和复杂度,而不仅仅是速度。

一次只突出一个视觉主导。对标题、图片、列表和控件采用不同的处理方式,但共享相同的令牌。使用序列、重叠和暂停;大元素可能比小元素花费更长时间。不要延迟 CTA 的可用性,也不要为了模拟质量而强制使用预加载器。

要选择效果,请阅读 references/effect-selection.md。这是一个精选的曲目库,而非需要完成的检查清单。一个站点可以通过响应式交互而显得生动,无需持续的动画。

2. 系统与动效地图

将持续时间、缓动、距离和交错集中到 CSS 令牌和 JavaScript 配置中。可参考以下起始值进行调整:

令牌起始值用途
micro150–250 毫秒控件和链接反馈
standard400–700 毫秒展示和局部过渡
hero800–1200 毫秒非阻塞主序列
ease-outcubic-bezier(0.16, 1, 0.3, 1)柔和进入
ease-in-outcubic-bezier(0.65, 0, 0.35, 1)状态转换
stagger60–120 毫秒相关元素之间的节奏
distance16–48 像素有约束的位移,移动端减少

当库期望不同格式时,使用等效的缓动函数:不要将 CSS 字符串传递给不接受它的 API。linear 适用于持续循环、与滚动相关的进度和匀速运动。避免普遍使用弹跳和弹性缓动。限制长交错序列以及单个动画的总持续时间。

根据工作规模准备动效地图:

区块/元素目的触发条件效果/属性持续时间或滚动范围缓动延迟/交错移动端/触控减少动效

对于交互式效果,还需指定中断、反转、重复输入行为以及最终静止状态。使用相同的视觉意图定义单独的桌面和触控配置文件;仅凭屏幕宽度无法决定输入或设备性能。

对于擦洗(scrubbing),描述滚动范围和任何平滑处理,而不是发明一个固定的时间持续时间。为每个效果提供一个缩减版本或完全静态状态。

3. 实现

当请求代码更改时,在同一任务中从概念推进到实现。各个阶段用于组织工作,不需要中间批准。仅在用户明确请求检查点时,才在阶段之间停止;在询问继续之前,先呈现该阶段的具体结果。如果只请求概念或动效地图,则尊重该范围。

阅读 references/implementation-and-qa.md 以了解初始化、无障碍性、清理和实用检查。应用以下约束:

  • 即使没有 JavaScript、缺少依赖项或在初始化错误后,基本内容和操作必须保持可见和可用。仅靠早期的 .js 类并不能保证这一点。
  • 优先使用 transform 和 opacity;仔细评估 clip-path、滤镜、渐变和大面积内容。在没有测量的情况下不要承诺 60 fps。避免交替进行布局读取和写入。
  • 对于手风琴和其他必要的尺寸变化,选择语义化、可测量的解决方案。不要仅仅为了遵守完全禁止 height 的规则而使用 scaleY 扭曲文本。
  • 为媒体内容预留空间,并通过包装或合成保留现有的变换。不要引入布局偏移或意外的水平溢出。
  • 保留原生滚动、锚点、历史记录、键盘访问、焦点和缩放。没有滚动劫持;平滑滚动和固定必须保留用户控制。
  • 在触控/移动端上减少或禁用视差、倾斜、自定义光标和高代价图形。操作不能依赖悬停。
  • 对于 prefers-reduced-motion: reduce,移除大位移、视差、空间擦洗、叙事性固定和非必要的循环。在适当之处使用即时状态或短淡入淡出。同时要尊重会话期间偏好的变化。
  • 无故意闪烁。对于与其他内容一起自动移动超过五秒的内容,提供暂停/停止/隐藏功能或使其保持静态。仅靠减少动效的支持不能替代该控制。
  • 将文本拆分为单词或行时,保留语义。不要对屏幕阅读器隐藏交互式元素或可聚焦控件的祖先。

对于 vanilla 项目,在需要时使用 motion.css 和 motion.js。在框架中,遵循现有的模块、组件和生命周期约定。公开用于强度、时间、距离、交错和可选功能的集中配置;不要为尚未实现的效果添加开关。

使用声明式属性以简化复用,例如 data-reveal="mask"、data-stagger="80"(毫秒)和 data-parallax="0.15"(因子)。定义所支持属性的单位和含义。当局部 CSS 过渡足够时,不要构建通用引擎。

仅为实际存在的效果分离初始化器,例如 initHero、initReveals 和 initParallax。每个初始化都必须是可丢弃的;在导航或重新挂载后,避免重复的观察器、监听器、计时器和触发器。在 React 中,使用生命周期和清理,而不要直接修改 React 管理的 DOM 来拆分文本。

当你有访问权限时,交付集成到项目文件中的完整代码。不要仅仅粘贴片段并使实现未完成。除非被请求,否则不要发布或部署站点。

4. 验证与交付

当浏览器可用时,验证初始和最终动画状态、移动端、触控/键盘、窗口缩放、减少动效、禁用 JavaScript 以及依赖项失败。运行相关的项目检查。对代表性的交互进行性能分析,识别高开销效果。

在交付之前,应用平滑动效参考中的验收标准。如果某个效果难以达成,首先降低渲染成本、并发性,然后降低幅度或复杂度;减速并不能修复掉帧问题。纠正观察到的实际问题并执行有针对性的重新检查。

报告实际验证了哪些内容,以及哪些内容尚未验证。不要将代码审查与浏览器测试混淆。在得出结论前先纠正观察到的实际问题。

根据请求的规模进行交付,并包括:

  • 概念、标志性时刻和简明的动效地图。
  • 已实现的更改和文件链接;仅在无法直接编辑文件时提供每个文件的完整代码。
  • QA 结果、权衡以及相关的剩余假设。
  • 用于使结果更克制或更大胆的具体参数。

不要为每个阶段重复空白的章节或审批问题。

相关技能