关于 swiftui-animation-match
这项 SwiftUI 技能帮助团队为具体交互选择动画方案,先检查系统自带动效,再查阅精选示例。它强调按应用需求调整方案,并在运行中验证动效。
主要功能
- 01按交互场景匹配动效
- 02优先检查系统动画
- 03检索精选 SwiftUI 示例
- 04调整方案而非直接粘贴
- 05在 Preview 或 Simulator 中验证
- 06考虑 Reduce Motion
适用场景
- 01为保存操作选择反馈动效
- 02设计加载与进度状态
- 03规划卡片或开关动效
- 04判断是否需要自定义动画
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rayfernando1337/ rayfernando-skills --skill swiftui-animation-match安装后在 Claude Code 中输入/swiftui-animation-match确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/adding-a-source.mdcatalog-shubham0812-swiftui-animations.mdmatching-playbook.mdsources.md详细介绍
匹配 SwiftUI 动画
使用此技能,将模糊的交互愿望(“保存时应该更有满足感”“这个列表加载时很无聊”)转化为具体、经过验证的 SwiftUI 动画模式,或者有意识地决定使用系统已有的效果。
此技能用于匹配,而非堆砌代码片段。它的价值在于判断:先明确交互时刻,检查操作系统免费提供了什么,然后才从整理好的资料中寻找值得加入的自定义动效。动画能增添活力,让产品显得更有人情味;如果平台本身已有出色表现,却强行加入动画,体验反而会变差。
第一步
- 明确时刻。将需求转化为:用户在做什么、应该有什么感受,以及这种情况会发生得多频繁?阅读 references/matching-playbook.md —— 其中包含时刻分类和优先使用系统效果的检查清单。
- 决定使用系统效果还是自定义效果。如果系统提供的交互效果已能满足需求(Liquid Glass 界面元素、
.symbolEffect、弹簧动画、.contentTransition、缩放导航转场、.sensoryFeedback),优先使用,然后到此为止。 - 如果自定义动效确实值得加入,按交互模式和关键词搜索目录(见下文),而不是按动画名称搜索。
- 改编,不要直接照搬。每个目录条目都包含移植说明,每个目录末尾都有移植检查清单(需要替换的依赖、需要现代化的旧模式、减少动态效果)。
- 观察实际动效并进行验证。在预览或 Simulator 中构建并观看;仅凭代码无法判断动效效果。如果应用仓库有构建/测试技能(例如
bootstrap-ios),请使用它们。
目录
仅加载所需的目录;条目按交互时刻分组,并附有关键词、准确的来源路径、技术摘要和移植说明。
| 目录 | 内容 |
|---|---|
| catalog-shubham0812-swiftui-animations.md | 30 种 SwiftUI 动画 + 7 种 Metal 着色器:加载动画、进度、操作反馈、切换、卡片组、文本主视觉、输入界面元素、揭示效果、着色器效果 |
包含固定提交版本和许可证的来源索引位于 references/sources.md。
模式选择器
| 产品需求…… | 查看 |
|---|---|
| 精心设计的无确定时长等待效果 | 目录:等待状态 |
| 显示实际百分比的进度 | 目录:显示实际百分比的进度 |
| 点击后确认、庆祝或完成异步工作 | 目录:操作反馈和确认 |
| 有个性的开关或模式切换 | 目录:有辨识度的切换和开关 |
| 通过手势浏览卡片、卡片组或轮播内容 | 目录:卡片和手势浏览 |
| 主标题或引导流程时刻 | 目录:文本和主视觉时刻 |
| 令人愉悦的编辑器/输入界面元素 | 目录:输入界面元素 |
| 解锁、揭示效果或品牌彩蛋 | 目录:揭示效果和品牌惊喜 |
| 销毁、错误或高端图片效果 | 目录:Metal 着色器效果 |
| 规划时想知道“哪种动画适合 X?” | 先看 matching-playbook.md,再看目录 |
| 为此技能添加新的动画仓库 | adding-a-source.md |
克制原则
- 每个屏幕只设一个标志性动效时刻。其他内容保持安静。
- 交互频率决定动效强度:高频交互应采用微妙、短暂的动效(或系统默认效果);罕见时刻则可以更具戏剧性。
- 不要重新设计已有出色动画效果的系统界面元素(标签栏、工具栏、工作表、Liquid Glass 表面)。自定义动效应应用于内容,而不是平台界面元素。
- 遵循“减少动态效果”设置,提供交叉淡化或减弱版效果。
- 整个应用保持统一的动效语言:弹簧手感一致、时长尺度一致。将目录条目原样移植到风格沉静的应用中会显得格格不入,除非先调整曲线以符合应用风格。
适配原则
这些目录展示的是来自真实代码仓库的可运行代码,其中也包含较早的代码。保留关键几何逻辑(形状、修剪窗口、偏移计算、着色器内核),并更新其基础实现:
- 定时器状态机 ->
.phaseAnimator、.keyframeAnimator、withAnimation完成处理程序或Task.sleep。 - UIKit 触觉反馈封装 ->
.sensoryFeedback。 - 硬编码的屏幕边界 ->
GeometryReader/ 容器尺寸调整。 - 演示用颜色、字体和资源 -> 应用的设计令牌。
- 由定时器驱动的虚假进度 -> 真实的异步工作。
扩展此技能
此技能旨在持续扩展:每新增一个动画仓库,就添加一个遵循相同条目格式的目录参考文件,并在 sources.md 和上方的目录表中登记。可重复使用的操作流程——包括如何在大型仓库中分派多个并行读取任务,以及精确的条目模板——见 references/adding-a-source.md。
评论
支持 Markdown