关于 ux-notifications-and-toasts
ux-notifications-and-toasts 是用于根据紧急程度、场景和用户需求选择通知形式的生成式设计技能。它涵盖频率管理、简洁文案、用户控制,以及推送和个性化策略的权衡。
主要功能
- 01按紧急程度选择通知类型
- 02频率管理与通知归组规则
- 03简洁且可执行的文案建议
- 04静音与退出控制
- 05推送策略权衡指导
- 06交由注意力与无障碍审查
适用场景
- 01为应用更新选择通知形式
- 02减少重复通知造成的疲劳
- 03设计推送授权与静音控制
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ uxcel-lab/ product-skills --skill ux-notifications-and-toasts安装后在 Claude Code 中输入/ux-notifications-and-toasts确认已加载。
详细介绍
通知与 Toast 技能
此技能的工作方式(请先阅读)
这是一项生成式技能。默认的失败模式包括:紧急程度膨胀(所有内容都变成警报;成功消息也会打断用户)、频率滥用(针对同一事件反复提醒,直到用户关闭所有通知),以及不尊重注意力(非通知内容也显示徽标,提醒却毫无价值)。通知会占用用户的注意力——类型必须与消息的实际紧急程度相符,而且系统必须始终值得用户留意。本技能会把关以下事项:
- 确定紧急程度、用户当下的状态和渠道——这些因素决定通知类型。
- 应用始终适用的核心原则——类型与紧急程度匹配、控制频率、内容简洁、用户可控。
- 呈现提升互动的手段(推送策略、个性化、富媒体)及其权衡——这属于与暗黑模式相邻的领域。
随后,将验证工作交给 ux-heuristics-audit、ux-accessibility-audit、ux-aesthetics-audit、ux-microcopy-audit 和 ux-dark-patterns-audit。
步骤 0 — 设计前先了解背景
如果信息未知,请先询问;如果不等待答复而继续,请说明所作假设:
- 消息实际上有多紧急? 需要立刻采取行动(付款失败)→ 持续显示的警报。很快会有用(存储空间即将用尽)→ 警告。仅供知悉(已保存、已发送)→ 短暂显示的 snackbar/toast。只是“有新内容”→ 徽标。务必实事求是——紧急程度膨胀是问题的根源。
- 用户在哪里? 正在应用中并处于活跃状态 → 不要打断:增加徽标计数或将更新内联显示。用户不在应用中 → 推送(前提是用户已选择接收)。用户正在处理任务 → 暂存,稍后再通知。
- 通知服务于谁的目标? 只服务于业务目标的通知(催促用户重新互动)会损害信任。如果用户不会因此感谢你,就应重新考虑。
- 平台——Android 的 toast/snackbar 与 iOS 的使用惯例不同;推送字符限制(标题约 39 字符/正文约 150 字符)。
始终适用的核心原则(几乎适用于所有情况)
类型应与紧急程度匹配
- 徽标——图标右上角的圆点(或计数),仅用于未读通知——绝不用来显示分数、天气或营销内容。采用圆点形状和惯常位置;查看后消失。
- 状态徽标——一目了然地显示状态(在线、进行中、已完成)——仅用于提供信息,不用于提醒。
- 横幅——临时显示在顶部或底部,用于值得用户留意的事件(新消息预览);不会阻断操作。
- Snackbar——在屏幕底部、当前操作的上下文中显示确认信息,通常带有一项操作(“消息已发送” + 撤销)。绝不遮挡 FAB 或重要控件。
- Toast——低优先级的系统消息;无法关闭,也可以堆叠显示——请谨慎使用。
- 警报——持续显示,直到问题解决;用于需要用户关注的情况。成功 = 绿色 + 勾号,自动消失;信息 = ℹ;警告 = 提醒用户及时采取行动;错误 = 红色 + 感叹号,需要立即处理。 不要把信息提示伪装成警告。
- 推送——可触达不在应用中的用户;这是代价最高、需要用户选择接收且最容易失去用户信任的渠道(见把关表格)。
控制频率
- 一个事件,只发一条通知。 同一条未读消息不要重复提醒;应将相关通知分组。
- 前台宽限原则: 应用处于打开状态时,更新徽标或将内容插入当前视图——不要向已经看着屏幕的用户发送系统通知。
- 针对具体情境并因人而异,胜过广撒网: 做好细分,结合用户的实际使用历程(即将达到使用上限、用户正在使用的功能),绝不要群发。
内容
- 简洁易读: 标题简短、清晰传达消息,使用浅白语言,避免术语。推送:标题约 39 字符,正文约 150 字符——越短越好。
- 尽可能提供可执行操作: 例如 snackbar 中的“撤销”,以及无需打开应用即可解决问题的推送操作。
用户控制权(不可妥协)
- 便于静音或关闭——既能全局设置,也能按类型设置,并提供频率选项。能够调整通知的用户会选择保留通知;无法调整的用户会关闭通知(甚至卸载应用)。
- 退出接收流程中不得责备或羞辱用户。
依赖上下文的决策(展示出来,不要自动应用)
| 决策 | 适用情况 | 避免/调整的情况 | 默认建议 |
|---|---|---|---|
| 是否发送推送通知 | 时效性强且对用户有价值的更新(订单已发货、收到消息) | 重新互动式催促、泛泛的促销——这是促使用户退订的最快方式 | 优先发送事务性通知;只有在用户明确且细分地选择加入后,才发送促销通知 |
| 推送选择加入提示 | 用户已有心理准备,处于相关的流程节点,并且已说明其价值 | 首次启动时直接弹出系统对话框 | 先铺垫,再在适当的场景中询问(权限模式见 ux-modals-and-dialogs) |
| 个性化 | 姓名、过往行为、偏好——能显著提高互动度 | 令人毛骨悚然的精准细节;使用用户没想到你会使用的数据 | 根据应用内行为进行个性化;保持透明 |
| 富媒体(图像/GIF) | 视觉内容能提供真实信息(商品图片、配送照片) | 让简单消息变得臃肿的装饰内容 | 以文本为主;仅在媒体内容能提供信息时使用 |
| 基于位置(地理围栏) | 确有情境价值(登机口变更、用户附近的门店且有进行中的订单) | 带有监视意味的营销推送 | 严格把关;需获得明确许可,并体现显而易见的价值 |
| 时间优化 | 在用户活跃时段、按其所在时区发送 | 为点击率而非实用性进行优化(晚上 11 点发送“我们想你了”) | 根据用户行为选择发送时间,并限制发送频率 |
| 徽标计数与圆点 | 对可计数的未读项目(收件箱)显示计数 | 计数不断累积并引发焦虑 | 用圆点表示“有新内容”;在数字有帮助时显示计数 |
| 性能监控 | 跟踪打开率/点击率 以及 退订/静音情况,将其视为疲劳信号 | 用户退订率不断攀升,却只庆祝打开率 | 将退订率视为首要健康指标 |
验证结果(编排)
交接时需使用每个审查维度可安装技能的
name。仅在已安装相应技能时调用;如果未安装,本技能本身已包含这些规则——无需因此停下,直接继续。
生成或修订后,应将结果交由审查维度检查,而不是直接宣布完成。这些都是候选审查维度——具体处理方式由 docs/orchestration-policy.md 决定,也可以将整个内容交给 ux-design-review 处理。这里,heuristics、microcopy 和 dark-patterns 属于 A 级(自动运行);accessibility、aesthetics 和 mobile-responsiveness 属于 B 级(可选)——如果已有设计系统,则不运行 aesthetics,且 accessibility 的审查范围会缩小为使用方式;mobile-responsiveness 仅适用于移动端。如果用户调用此技能是为了处理某个具体事项,应尊重其范围。
ux-heuristics-audit(A 级) — 确保系统状态清晰可见且不造成干扰、紧迫程度与呈现方式相匹配,并保障用户的控制权与自主选择权。ux-accessibility-audit(B 级——可选;在设计系统下缩小范围) — 通过颜色加图标标示紧迫程度(绝不能只用颜色)、屏幕阅读器对临时消息的播报,以及足以读完内容的 Snackbar 显示时长。ux-aesthetics-audit(B 级——可选;在设计系统下不运行) — 克制地设计提醒样式,避免徽标/横幅在界面中过于杂乱。ux-microcopy-audit(A 级) — 检查标题/正文是否简洁、语言是否通俗、行动号召动词是否恰当,以及退订措辞是否清晰。ux-dark-patterns-audit(A 级) — 待处理事项指出,此技能关注的是尊重用户注意力:人为制造紧迫感、反复催促、将静音设置藏起来,以及用愧疚感迫使用户退订。ux-mobile-responsiveness-audit(B 级——可选;仅适用于移动端) — 在移动端场景中检查 Snackbar/FAB 布局,以及推送通知在不同操作系统上的呈现效果。
如果审查发现冲突(例如互动度目标与通知疲劳之间的冲突),应回归主要任务来解决:通知系统只有在用户信任它时才有效——应优先保护这种信任,而不是追求任何单次营销活动的效果。
常见的正确与错误做法
| ❌ 错误做法 | ✅ 正确做法 |
|---|---|
| 将每条消息都设计成紧急提醒 | 根据实际紧急程度选择类型;大多数消息应保持低调 |
| 每小时对同一条未读消息重复提醒 | 一件事只通知一次;其余内容合并处理 |
| 用户正在使用应用时发送系统通知 | 增加徽标计数或在应用内插入提示 |
| 徽标计数显示天气信息 | 徽标仅用于显示未读通知 |
| 成功弹窗打断操作流程 | 使用自动消失的 Snackbar/成功提示 |
| Snackbar 遮挡 FAB | 将 Snackbar 显示在所有内容上方,并避开控件 |
| 首次启动时弹出推送权限对话框 | 先做好准备,在合适的情境下说明价值后再请求权限 |
| 晚上 11 点发送“我们想你了 😢” | 根据时区和行为发送对用户有价值的提醒 |
| 静音选项藏在四层页面之下 | 按类型提供控制选项,并让全局关闭变得简单 |
| 用 150 个字符的行话 | 用约 39 个字符的标题传达消息 |
| 未经检查就发布 | 交由启发式评估、无障碍性、审美、微文案和暗黑模式检查 |