mcpField
S
swiftui-animation-match

swiftui-animation-match

github.com/rayfernando1337设计与 UI129204 次安装14 周前更新
代码仓库

关于 swiftui-animation-match

这项 SwiftUI 技能帮助团队为具体交互选择动画方案,先检查系统自带动效,再查阅精选示例。它强调按应用需求调整方案,并在运行中验证动效。

主要功能

  1. 01按交互场景匹配动效
  2. 02优先检查系统动画
  3. 03检索精选 SwiftUI 示例
  4. 04调整方案而非直接粘贴
  5. 05在 Preview 或 Simulator 中验证
  6. 06考虑 Reduce Motion

适用场景

  1. 01为保存操作选择反馈动效
  2. 02设计加载与进度状态
  3. 03规划卡片或开关动效
  4. 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.md
catalog-shubham0812-swiftui-animations.md
matching-playbook.md
sources.md

详细介绍

匹配 SwiftUI 动画

使用此技能,将模糊的交互愿望(“保存时应该更有满足感”“这个列表加载时很无聊”)转化为具体、经过验证的 SwiftUI 动画模式,或者有意识地决定使用系统已有的效果。

此技能用于匹配,而非堆砌代码片段。它的价值在于判断:先明确交互时刻,检查操作系统免费提供了什么,然后才从整理好的资料中寻找值得加入的自定义动效。动画能增添活力,让产品显得更有人情味;如果平台本身已有出色表现,却强行加入动画,体验反而会变差。

第一步

  1. 明确时刻。将需求转化为:用户在做什么、应该有什么感受,以及这种情况会发生得多频繁?阅读 references/matching-playbook.md —— 其中包含时刻分类和优先使用系统效果的检查清单。
  2. 决定使用系统效果还是自定义效果。如果系统提供的交互效果已能满足需求(Liquid Glass 界面元素、.symbolEffect、弹簧动画、.contentTransition、缩放导航转场、.sensoryFeedback),优先使用,然后到此为止。
  3. 如果自定义动效确实值得加入,按交互模式和关键词搜索目录(见下文),而不是按动画名称搜索。
  4. 改编,不要直接照搬。每个目录条目都包含移植说明,每个目录末尾都有移植检查清单(需要替换的依赖、需要现代化的旧模式、减少动态效果)。
  5. 观察实际动效并进行验证。在预览或 Simulator 中构建并观看;仅凭代码无法判断动效效果。如果应用仓库有构建/测试技能(例如 bootstrap-ios),请使用它们。

目录

仅加载所需的目录;条目按交互时刻分组,并附有关键词、准确的来源路径、技术摘要和移植说明。

目录内容
catalog-shubham0812-swiftui-animations.md30 种 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