关于 microinteractions
microinteractions 是用于设计开关、表单和加载状态等细微产品交互的技能。它以触发、规则、反馈及长期行为为框架,并提供诊断方法来评估和改进交互。
主要功能
- 01四部分交互结构
- 02触发与规则设计指导
- 03视觉、声音和触觉反馈
- 04循环、模式与标志性时刻
- 05八项诊断评分
适用场景
- 01设计设置开关
- 02改进表单验证反馈
- 03检查加载或刷新状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ wondelai/ skills --skill microinteractions安装后在 Claude Code 中输入/microinteractions确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/case-studies.mdfeedback-patterns.mdloops-modes.mdrules-and-state.mdsignature-moments.mdtrigger-design.md详细介绍
微交互框架
设计用户每天都会接触的细小、独立的产品体验时刻——切换开关、密码输入框、加载指示器、下拉刷新、点赞按钮。这个框架基于 Dan Saffer 的四部分结构(触发器、规则、反馈、循环与模式),将无形的细节转化为精致体验,让产品从容易被遗忘变得令人喜爱。
核心原则
让用户容忍一款产品与爱上一款产品之间的差别,几乎总在于微交互。 微交互是围绕单一用例构建的独立体验时刻——更改设置、同步数据、选择密码——它小到用户很少会有意识地去想,却能切实感受到。每个微交互都遵循相同的四部分结构:触发器启动微交互,规则决定会发生什么,反馈展示正在发生什么,循环与模式则定义其长期行为。
评分
目标:10/10。 根据微交互通过的 8 项快速诊断检查来评分——score = round(passed / 8 × 10),然后参照以下区间:
- 9-10 = 通过全部 8 项检查:触发器经过精心设计、易于发现且状态清晰;规则简单、可预测;反馈延迟低于 100 ms,且与事件的重要程度相匹配;会随时间演进;没有模式,或模式清晰可见;无需帮助即可学会。
- 5-6 = 通过 4-5 项检查:功能可用,但感觉平庸——例如,虽然有反馈但一概而论,或触发器缺少明确的状态。
- <=3 = 通过 2 项或更少检查:缺少反馈、触发器不可见,或隐藏模式破坏了信任。
始终说明当前评分、未通过的诊断检查,以及每项检查对应的具体改进方案。
微交互结构
设计一流微交互的六个关注领域。若要查看真实模式的完整四部分拆解——表单提交、切换开关、下拉刷新、加载状态和通知,从首次使用到边缘情况,请参阅 references/case-studies.md。
1. 触发器
核心概念: 触发器启动微交互,可以由用户手动触发(点击、单击、滑动、语音命令),也可以由系统触发(时间、位置、传入数据、错误状态)。它是每个微交互的入口。
为何有效: 触发器的显著程度和标签会在用户操作前设定预期——红色按钮上写着“删除”,意味着结果不可逆且影响重大,因此后续反馈会显得顺理成章,而不是出乎意料。
关键要点:
- 触发器必须传达三件事:它确实存在、它的作用,以及它当前所处的状态
- 触发器的显著程度应与操作的重要性相匹配——影响重大的操作需要醒目的触发器
- 将不可见的触发器(手势、摇晃、接近)与可见的替代方式配对,方便用户发现
- 让触发器的各个状态——默认、悬停、激活、禁用、加载——在视觉上有所区别
产品应用:
| 场景 | 应用 | 示例 |
|---|---|---|
| 切换控件 | 具有二元状态的手动触发器 | iOS Wi-Fi 开关:点击即可切换,位置显示状态 |
| 下拉刷新 | 带有可见提示的隐藏手势 | 下拉超过临界点时触发刷新动画 |
| 系统提醒 | 满足条件时触发的系统操作 | 电量低至 20% 时发出低电量通知 |
伦理边界: 切勿将关键触发器藏在手势或不可见交互之后,却不提供可见的替代方式。
参阅:references/trigger-design.md,了解触发器的操作提示、状态、位置和降低触发复杂度的方法。
2. 规则
核心概念: 规则定义微交互触发后会发生什么——事件序列、约束、处理过程和结束方式。用户不会直接看到规则,但规则有问题时,他们能感受得到。
有效原因: 规则塑造用户对交互方式的心智模型。符合预期的一致规则会让交互显得自然;违反预期的规则——例如无法切换的开关、数值突然跳变的滑块——则会破坏信任。
关键见解:
- 先明确微交互的目标,再据此推导规则
- 符合现有的心智模型和平台惯例
- 限制输入以防止错误:限制字符数、设置数值范围、强制规定格式
- 明确处理边缘情况:零值、最大值、重复触发、中断
产品应用:
| 场景 | 应用 | 示例 |
|---|---|---|
| 密码强度 | 规则实时评估输入 | 用户输入时,指示条同步更新;颜色从红色渐变为绿色 |
| 字符计数器 | 规则限制并显示剩余数量 | Twitter/X:计数递减,达到上限时变为红色 |
| 撤销操作 | 规则设置撤销的时间窗口 | Gmail 的“撤销发送”功能可在 30 秒内使用 |
伦理边界: 规则应透明且可预测——绝不要隐藏会操控用户行为的规则,例如让取消订阅比订阅更困难。
参见:references/rules-and-state.md,了解状态管理、约束、错误状态和边缘情况。
3. 反馈
核心概念: 反馈向用户传达规则,回答“现在发生了什么?”——可以通过视觉方式(颜色、动画、移动)、听觉方式(点击声、提示音)或触觉方式(振动)。只显示重要内容:简洁、有意义且与情境相关。
有效原因: 没有反馈,用户就无法判断操作是否生效或系统是否正在运行,因此可能会再次点击、放弃操作,或不信任结果。反馈能将不可见的系统状态转化为用户感知到的响应。
关键见解:
- 反馈必须及时——对于直接操作,响应时间应低于 100 ms
- 使用能传达信息的最不显眼的反馈,并优先为现有元素添加动画(例如按钮本身,而不是单独弹出提示)
- 根据事件的重要程度调整反馈:小操作配小反馈,大结果配大反馈
- 视觉反馈为主;音频和触觉反馈为辅,绝不能作为唯一渠道
- 即使实际等待时间不变,进度指示器也能缩短用户感知到的等待时间
产品应用:
| 场景 | 应用 | 示例 |
|---|---|---|
| 按钮按下 | 点击时显示视觉状态变化 | 按钮下压、颜色变化、文本变为“正在保存……” |
| 表单验证 | 用户输入时显示内联反馈 | 有效的电子邮件字段旁显示绿色对勾 |
| 错误状态 | 在错误来源附近显示与情境相关的错误信息 | 字段边框变红,并显示“密码必须至少包含 8 个字符” |
伦理边界: 反馈必须真实——不要使用虚假的进度条、操控性的倒计时或具有欺骗性的完成百分比。
参见:references/feedback-patterns.md,了解反馈渠道、时机以及如何避免信息过载。
4. 循环与模式
核心概念: 循环是关于时间的元规则——交互在第 100 次使用后会改变吗?会过期吗?会自适应吗?模式则是规则的分支,同一控件会暂时表现不同(编辑模式与查看模式)。
为什么有效: 精心设计的循环能让微交互自然演进,既减少资深用户的操作阻力,又让新用户容易发现功能。适度使用模式,可以让一个控件承担多种用途,同时避免界面杂乱。
关键见解:
- 开放循环会持续运行,直到被明确停止(例如重复响铃的闹钟);封闭循环只运行一次后结束(例如计时器)
- 长期循环会随着时间改变交互:首次使用时显示工具提示;第 50 次则不再显示
- 渐进式精简:随着用户展现出熟练度,逐步移除辅助元素
- 模式有风险——它们违背了“相同行为,相同结果”的原则;应尽量减少模式,并清晰显示当前模式(Caps Lock 指示灯、编辑横幅)
产品应用:
| 场景 | 应用 | 示例 |
|---|---|---|
| 新手引导工具提示 | 使用 N 次后,长期循环会移除提示 | 前 3 次会话显示“向右滑动即可归档”;之后停止显示 |
| 闹钟 | 开放循环会重复运行,直到被禁用 | 每个工作日早上 7 点响铃,直到被关闭 |
| 文本编辑 | 模式:查看与编辑 | 横幅显示“正在编辑”,并提供“完成”按钮以退出 |
道德边界: 循环应当让用户受益,而非让业务受益——绝不能调整循环以增加通知,或让用户越来越难选择退出。
参见:references/loops-modes.md,了解长期循环、模式错误和渐进式复杂化。
5. 标志性时刻
核心概念: 标志性时刻是一种极具辨识度的微交互,能成为产品身份的一部分——例如 Facebook 的点赞、“滑动解锁”以及 Slack 的加载消息。每个产品都应有一两个这样的时刻,但并非每种交互都需要如此。
为什么有效: 标志性时刻能留下情感记忆,让产品显得经过精心设计,而非简单拼凑。用户向他人介绍产品时,最先展示的往往就是这些时刻。
关键见解:
- 将标志性时刻用于高频、醒目的操作,而不是藏在设置深处
- 功能优先,惊喜其次——绝不要为了新奇而牺牲易用性
- 动画、声音和文案是最常用的三种手段
- 与品牌个性保持一致:活泼的品牌应设计活泼的时刻
- 使用移除测试:如果用户不会怀念它,那它只是装饰,而非标志性体验
产品应用:
| 场景 | 应用 | 示例 |
|---|---|---|
| 社交互动 | 对用户参与做出动画反馈 | Facebook 点赞:竖起的大拇指伴随粒子效果动画呈现 |
| 加载状态 | 具有品牌特色的等待体验 | Slack:加载时轮播名言 |
| 完成操作 | 带有庆祝效果的确认反馈 | Stripe 付款:显示带有彩纸效果的动画勾号 |
道德边界: 绝不要用不可跳过的庆祝动画阻挡输入或后续步骤——让用户可以点按跳过彩纸效果并继续操作。
参见:references/signature-moments.md,了解何时值得投入,以及如何让平凡的交互变得令人愉悦。
6. 减少与简化
核心概念: 最好的微交互简单、迅速,几乎不会引起注意。先做减法(减少选项、步骤和决策),再简化剩余部分,直到使用起来毫不费力。
为何有效: 每个选项、字段和决策都会增加认知负担——用户不想配置开关,只想让它正常工作。最优雅的微交互无需配置,只需一个操作,并能立即呈现结果。
关键见解:
- 如果微交互需要说明,就说明它太复杂了
- 用智能默认值移除选项——直接选出最佳选项并采用
- 尽可能将多步骤交互合并为一次操作
- 采用渐进式披露:先展示简单内容,仅在用户提出请求时再呈现复杂内容
- 规则数量应与使用频率相匹配:常用操作需要的规则应更少
产品应用:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 智能默认值 | 无需配置 | 相机应用以拍照模式打开,而非设置页面 |
| 单次操作 | 一次点击替代多步骤流程 | 双击点赞,而不是打开菜单再选择表情 |
| 预判式设计 | 预测并预先填入 | 根据邮政编码自动填入城市和州 |
道德底线:“智能默认值”必须服务于用户,而非企业——绝不能默认勾选营销订阅、付费附加项或数据共享选项。
常见错误
| 错误 | 失败原因 | 修正方法 |
|---|---|---|
| 操作后没有反馈 | 用户无法确认点击是否生效 | 为每个交互元素添加即时的视觉状态变化 |
| 过度设计简单时刻 | 复杂动画会拖慢频繁操作 | 将丰富动画留给不常发生、影响重大的时刻 |
| 忽略边缘情况 | 交互在数值为零、达到最大值或双击时会出错 | 梳理每种状态:空、加载中、部分完成、已完成、错误、禁用 |
| 触发方式不可见 | 用户无法发现相关功能 | 为手势触发方式提供可见的替代选项 |
| 模式错误 | 相同操作会因隐藏状态而产生不同结果 | 让当前模式清晰可见;尽量减少模式 |
| 忽略长循环 | 第 1 天和第 100 天的交互体验完全相同 | 对回访用户采用渐进式减少 |
| 反馈过载 | 每个操作都会触发提示、声音或动画 | 使用足以传达信息的最少反馈 |
| 虚假的进度指示器 | 用户发现进度条造假后会感到受骗 | 使用诚实、确定的进度;进度未知时使用不确定状态的加载动画 |
快速诊断
审查任意微交互:
| 问题 | 如果否 | 行动 |
|---|---|---|
| 是否有清晰、易于发现的触发方式? | 用户无法启动交互 | 添加可见控件或操作提示 |
| 触发方式是否显示当前状态? | 用户无法判断它是开启、关闭还是正在加载 | 为触发方式的每种状态添加明确的视觉区分 |
| 规则是否简单且可预测? | 用户会对发生的事情感到困惑 | 简化规则;遵循平台惯例 |
| 是否有即时反馈? | 用户会怀疑操作是否生效 | 在 100ms 内添加视觉响应 |
| 反馈是否符合事件的重要性? | 小操作显得过于戏剧化,或重大结果显得无足轻重 | 根据事件的重要程度调整反馈 |
| 交互是否会随时间演变? | 高级用户仍会看到新手提示 | 通过长循环逐步减少提示 |
| 交互是否没有不必要的模式? | 用户会在错误模式下执行错误操作 | 移除模式,或让当前模式清晰可见 |
| 首次使用的用户能否在没有帮助的情况下弄清楚? | 交互需要解释 | 简化交互,或通过长循环添加一次性提示 |
延伸阅读
此技能基于 Dan Saffer 关于细节设计的权威指南:
- "Microinteractions: Designing with Details",作者:Dan Saffer
关于作者
Dan Saffer 是一位设计师和设计负责人,曾在 Twitter、Jawbone 和 Smart Design 领导团队。他的著作 Microinteractions 将一套框架系统化,供全球各地的设计团队用来审查、设计和改进那些让产品显得精致鲜活的细节。他还著有 Designing for Interaction 和 Designing Gestural Interfaces。