Communitygithub.com

guycoful/web-animation-recipes

从30个配方中挑选并构建一个适用于网站的交互式网页动画。询问应用位置(首屏、滚动、卡片、表单、控件、导航、产品展示、光标伴侣)以及匹配的动画类型,然后构建它。适用于当有人想要惊艳效果、微交互、3D首屏、滚动过渡或动画组件时。

web-animation-recipes 是什么?

该技能帮助用户从30个预定义的动画配方中选择并构建网页动画。它首先询问动画在网站上的应用位置(如首屏、滚动交互、卡片、表单、按钮、导航、产品展示或光标跟随效果),然后根据位置提供匹配的动画选项。用户选择后,技能会引导回答几个关键问题(技术栈、内容、浏览器兼容性),最后根据 `recipes.md` 的详细规格从零开始构建实现。该技能支持多种技术栈(如纯HTML/CSS/JS、React、Next.js、Webflow等),并强调使用最简工具(优先CSS,其次Canvas,最后WebGL),同时暴露“调优按钮”以便无需修改代码即可调整参数。它还会检查无障碍性(`prefers-reduced-motion`)、性能(60fps目标、IntersectionObserver优化)、移动端适配和备用方案(对Chrome专属动画),确保生成的生产级代码稳健且可维护。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/guycoful/web-animation-recipes-skill/tree/HEAD/skills/web-animation-recipes

在你喜欢的 AI 中提问

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

文档

网站动画:选择与构建

该技能帮助从30个配方中选择网站动画并构建它。文件夹中的文件:

  • placements.md:网站上的8个位置,以及每个位置适合的动画。
  • recipes.md:30个动画中每一个的构建规格。

第一步:询问应用位置

当技能加载时,首先用用户的语言提出这个问题,并附带编号列表。在得到答案之前不要开始编写代码。

“你希望动画应用在网站的哪个位置?”

  1. 着陆页首屏(Hero)区域
  2. 滚动切换或屏幕切换
  3. 卡片和功能网格
  4. 表单、输入字段和一次性密码
  5. 按钮、开关和进度指示器
  6. 导航和菜单
  7. 产品或应用展示(手机样机、轮播)
  8. 在整个页面中跟随光标的人物或效果

如果用户已经在请求中提到了位置,则跳转到第二步并说明理解了哪个位置。

第二步:询问动画类型

阅读 placements.md 并仅显示所选位置的选项,以编号列表形式呈现。每个选项包括:名称、一句用用户语言描述所见内容的句子,以及复杂程度。要求用户选择一个数字,或描述两个选项的组合。

如果用户不确定,根据已知信息(业务类型、受众、用户愿意维护的复杂程度)推荐一个选项并一句话说明理由。

第三步:构建前的三个简短问题

在一条消息中询问:

  1. 构建平台:纯HTML/CSS/JS、React、Next.js、Webflow、WordPress还是其他?
  2. 内容:标题、文本、图片、品牌颜色、Logo。如果没有,则使用占位内容并标记。
  3. 网站是否必须在所有浏览器和移动设备上运行?标记为“实验性”的动画依赖于仅Chrome可用的API。

第四步:构建

  1. 打开 recipes.md,找到所选配方并阅读完整规格。
  2. 根据规格和用户内容从零开始构建实现。
  3. 选择实现效果的最简单工具:优先CSS,其次Canvas,最后WebGL。仅在需要真实深度、光照或着色器时使用Three.js或R3F。
  4. 将配方中的“调优按钮”作为文件顶部的变量或小面板(例如lil-gui或Leva)暴露,以便无需接触代码即可进行调优。
  5. 对于标记为仅Chrome的配方:构建备用方案,例如将HTML捕获为纹理或简单CSS版本。运行时检测特性支持,而不是根据User Agent判断。

第五步:交付前检查

逐一检查以下项目并向用户报告哪些已检查、哪些未检查:

  1. prefers-reduced-motion:在此设置下动画停止或替换为静态版本。
  2. 性能:目标为普通电脑上达到60fps。当组件不可见时(IntersectionObserver)以及标签页隐藏时停止循环。将 devicePixelRatio 限制为2。
  3. 移动端:使用触摸代替hover,在低端设备上使用更轻量或静态版本。
  4. 无障碍:文本保持为真实HTML,对屏幕阅读器和搜索引擎可访问。隐藏内容的效果不应阻止阅读。
  5. 如果未在浏览器中运行代码,则明确说明。

相关技能