跳转到使用指南
apple-design作者 Emil Kowalski

Apple Design Skill.

一个用于 UX 研究的 Claude Code 和 Codex skill:将 Apple 的手势、物理运动与空间层级转译为 Web 设计。

  • UX & Research
  • UI 代码
emilkowalski/skills · skills/apple-design/SKILL.mdSKILL.md
--- name: apple-design description: Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style … --- ## The Core Idea ## 1. Response — kill latency ## 2. Direct manipulation — 1:1 tracking ## 3. Interruptibility — the single most important principle ## 4. Behavior over animation — use springs ## 5. Velocity handoff — the seam between drag and animation
上游文件前置元数据与章节标题,读取于 2026-09-14 · 全文 22,559 字符

01 功能说明

apple-design Skill 在 Claude Code 和 Codex 中的作用

摘要、工作流与产物,均读自该 skill 的 SKILL.md。

来自 SKILL.md读取于 2026-09-14 · 非实际运行记录

以 skill 自身的术语

Apple Design 提炼了 Apple 在 WWDC 上关于界面的分享,主要是 Designing Fluid Interfaces(WWDC 2018),并将其转化为构建流畅、具有物理感的网页 UI 的规则。它面向从事手势驱动界面工作的设计师和开发者:拖拽、滑动、面板(sheets)、弹簧动画、动量、可中断的过渡、半透明材质与深度、排版(视觉尺寸优化、字符间距、行距)以及减弱动效行为。

贯穿始终的原则是:动效应从屏幕上当前的实际值开始,继承用户的速度,向前投射动量,并且在任意时刻都可被抓取和撤销。弹簧动画取代了固定时长的动画,因为它天生可中断且能感知速度,该 skill 最后以 Apple 的八条设计原则作为共同语言收尾。

它产出什么

  • 按压反馈 CSS:在 :active 状态下将控件缩放,并配合 100ms 的 ease-out 过渡。
  • 动效弹簧调用示例,将临界阻尼默认值与动量回弹变体并列展示。
  • 一个 project() 辅助函数,实现动量投射,decelerationRate 默认值为 0.998。
  • 减弱透明度 CSS:将半透明工具栏替换为纯色背景,且不做模糊处理。
查看示例提示词 ↗

工作方式

  1. 01
    在指针按下时响应

    反馈应属于按下的瞬间,而非松开的那一刻:控件被按下的那一刻就应立即高亮,并将输入路径上任何非必要的东西(包括约 300ms 的点击延迟)都视为一种缺陷。

  2. 02
    1:1 跟踪指针

    使用带 capture 的 Pointer Events,这样即使指针离开元素边界,追踪也不会中断;并且要尊重用户抓取的位置,而不是直接吸附到元素中心。

  3. 03
    让动效可被中断

    运动中的元素必须可被抓取并可在飞行途中反向操作;用户不应被迫等待当前动画结束才能重新引导它。

  4. 04
    用弹簧(spring)建模运动

    弹簧通过简单地改变目标来吸收新输入,因此运动保持连续;固定时长的脚本则没有可重新定位的对象。

  5. 05
    交接释放时的速度

    将指针释放时的速度传给弹簧,这样拖拽和动画之间就没有接缝;当 API 需要相对速度时,用剩余距离进行归一化。

  6. 06
    先推算动量,再吸附

    不要直接从手指松开的位置吸附;要像滚动减速那样推算静止位置,并选择离该推算位置最近的吸附目标。

02 找到适合场景

何时使用 apple-design Skill

在 Claude Code 或 Codex 中进行此类 UX 研究时使用 apple-design skill。下面的适用性和限制取自该 skill 自己的文件。

适合场景

  • 构建或评审手势驱动的 UI,例如拖拽、滑动、面板(sheet)、动量效果和可中断的过渡。
  • 处理半透明材质与深度效果,其中导航栏、工具栏和面板作为浮动的功能层。
  • 在尺寸维度上进行字体设计,其中光学尺寸、字符间距(tracking)和行距(leading)必须随尺寸变化。
  • 无障碍适配,将减少动效、减少透明度和增强对比度直接内置在组件中,而不是事后附加。
  • 希望将苹果的设计原则作为明确的共同词汇,用于在讨论决策时使用的团队。

了解边界

  • 预先编排或固定时长的动画,一旦用户可以触碰该元素,该 skill 就会排除这种方式。
  • 只报告最终手势状态的识别器,因为它们丢弃了反馈所依赖的连续追踪数据。
  • 占用固定条带的不透明外框,而不是让内容在半透明层下滚动。
  • 将确认框作为默认习惯使用;该文件只将其保留给真正具有破坏性、不可逆的操作。

需要提供的信息

  • 手势代码及其指针历史请带上 Pointer Events 的实现,因为该 skill 期望有 setPointerCapture 以及一份简短的速度/位置历史,而不仅仅是当前点。
  • 能重新定位速度的弹簧库Web 端的映射通过 Motion / Framer Motion 完成,该库必须能在重新定位时保留速度;并非所有弹簧实现都能做到这一点。
  • 你希望被评审的半透明外框工具栏、导航栏和面板以半透明层构建,使用 backdrop-filter 模糊和半透明背景,内容在其下方滚动。

03 Skill 内部

apple-design Skill 赋予 Claude Code 和 Codex 的规则

SKILL.md 为 Agent 设定的 8 条具体指令、默认值与限制——文件中真正改变结果的部分。

  1. 默认使用临界阻尼弹簧

    大多数 UI 应以阻尼系数 1.0 起步,使其无过冲地平稳停止;只有当手势本身带有动量时,例如轻扫或拖拽释放,才添加弹性效果,阻尼系数约为 0.8。

  2. 从当前呈现值开始动画

    中断时,读取元素当前屏幕上的实时 transform,并从该处开始新动画;若从逻辑值或目标值开始,会产生明显的跳跃。

  3. 不要用 CSS transition 驱动手势

    CSS transition 和 @keyframes 无法在运动过程中被平滑抓取和反转,因此手势驱动的动效必须由 spring 库处理。

  4. 将二维运动拆分为两个 spring

    运行独立的 X 轴和 Y 轴 spring,而不是在二维距离上使用单一 spring,因为当两轴速度不同步时会发生偏移。

  5. 使用 Apple 的投影公式,而非教科书公式

    物理教科书中的 v²/(2·decel) 并非 Apple 实际采用的公式;正常滚动手感请使用 decelerationRate 为 0.998 的指数衰减形式,若想更利落则用 0.99。

  6. 在反转过程中融合速度

    在手势反转的瞬间用一个动画替换另一个动画会造成速度断裂,如同撞上一堵墙;应选择能够根据当前速度重新定位目标的 spring 库。

  7. 绝不叠加浅色半透明表面

    材质的厚重程度体现了层级:较重的材质用于分隔结构性区域,较轻的材质用于突出可交互元素,因此不要让浅色半透明图层相互叠加。

  8. 绝不用同一个字距值适配所有尺寸

    字母间距(letter-spacing)是与尺寸相关的:大号展示文字需要负向字距,小号文字则需要略微正向的字距,因此固定的字距值在某些尺寸下必然是错的。

04 投入使用

在 Claude Code 或 Codex 中安装 apple-design

一条 npx skills add 命令,然后在你的 Agent 中执行第一个任务和对结果的清单检查。

将 apple-design 添加到 Claude Code、Codex 或你的 Agent

在你的项目中运行;安装程序会询问要把它添加到哪个 Agent。

Terminal
npx skills add https://github.com/emilkowalski/skills --skill apple-design

用于 skills/apple-design/SKILL.md 的通用 skills CLI 形式;具体仓库可能记录其自身路径。

给 Skill 第一个 UX 研究任务

按 skill 自身的术语撰写;把括号中的部分换成你的内容。

Starter prompt
I'm building a bottom sheet in [React] that users drag down to dismiss. It currently uses a CSS transition, so a flick snaps from wherever I released and the sheet can't be grabbed again while it's closing. Rework it with Pointer Events and a spring so it tracks the finger 1:1, hands off the release velocity, and projects momentum to pick the snap point.

来源:依据 SKILL.md,按 skill 自身的术语撰写。

检查首次结果

SKILL.md 本身如何描述正确的结果:

  • 在关闭动画进行过程中再次抓取该元素,确认它会跟随手指移动,而不是先完成原有的关闭动作。
  • 反转手势,观察是否出现速度断裂,这意味着速度未在重新定位过程中被正确融合。
  • 在真实场景中让真实用户测试,因为在开发者自己的机器上很难准确判断动效效果。
  • 以慢动作或逐帧方式回放动效,因为许多有趣的缺陷在正常速度下是不可见的。
  • 确认落点来自预测的终点,而不是释放时的位置。
  • 检查降低透明度的变体:半透明表面应变得更磨砂或更实,背景不透明度应提高、模糊应减少。

在 OpenDesign 中,通过其 SKILL.md 链接导入 apple-design:Plugins → Add → Skill → Import from link,然后在顶部栏中选择它。

05 开源、可追溯

来源、许可与验证

本页面事实的来源,以及最后检查时间。

Repository
github.com/emilkowalski/skills 分支 main
Skill 文件
skills/apple-design/SKILL.md 在验证时记录的内容校验和;提交 d23d7f8
License
MIT 来自 LICENSE。
仓库星标数
37,516 GitHub 快照拍摄于 2026-09-14,针对整个 emilkowalski/skills 仓库,该仓库在此目录中包含 9 个 skills。不是 apple-design 的评分或使用计数。
已由 OpenDesign 验证
2026-09-14 已检查源文件、路径、许可文本和 star 数量。未内置在 OpenDesign 主程序(检查日期 2026-08-28);本页面未记录实际运行。

SKILL.md 内部

  1. 1. 响应——消除延迟在指针按下时立即响应,审查每一处延迟,在整个交互过程中保持持续的反馈。
  2. 2. 直接操作——1:1 跟随让内容紧贴指针,遵守抓取偏移量,保留一段短暂的速度历史记录。
  3. 3. 可中断性——最重要的单一原则永不锁定输入,从呈现值开始动画,在反转时混合速度,拆分二维弹簧。
  4. 4. 行为优先于动画——使用弹簧阻尼比和响应取代物理参数;默认阻尼为 1.0,只有在表现动量时才使用弹跳。
  5. 5. 速度交接——拖拽与动画之间的接缝将释放速度传入弹簧,必要时按剩余距离进行归一化
Skill 自身的描述
「Apple 的界面设计和流畅、物理化动效方法,转译至 Web。在构建或审查手势驱动 UI、弹性动画、拖动 / 滑动 / 弹出层交互、动量与可中断过渡、半透明材质与深度、字体(视觉尺寸、字距、行距)、减弱动效,或 Apple 风格界面背后的设计基础(反馈、空间一致性、克制)时使用。」

来自 SKILL.md 的 front-matter 描述。完整文件约 22,559 字符。在 GitHub 上阅读完整文件。

Apple Design

在真实的 UX 研究任务中运行 apple-design。

下载 OpenDesign,从 SKILL.md 链接导入 apple-design,粘贴上方提示词,并在结果前阅读计划。

终端
npx skills add https://github.com/emilkowalski/skills --skill apple-design

OpenDesign 桌面客户端

一套设计系统,让每一次创作都保持品牌一致

在完整的 Vibe Design Workspace 中,用同一套品牌规则生成网页、PPT、可交互原型、数据看板、图像与 HTML 视频。连接本地 Codex、Claude Code、Cursor 等编程助手,即可免费创作。

  • 覆盖网页、PPT、原型、数据看板、图像与视频
  • 140+ 设计系统,以及完整模板与技能库
  • 连接本地 Codex 与 21+ 款编程助手 · 免费使用
免费下载

支持 macOS 与 Windows