用途
design-ux 用于对交互式 UI 做 UX / 可用性审计(启发式评估),关注的是界面是否好用,而不仅是视觉打磨。当 UI「感觉不对劲」「难用」「难以学习」、需要一段说明文字才能使用,或在发布交互式工具 / 编辑器 / 应用之前,可以加载本技能。
可用性不等于美观:design-system / design-spatial 负责让界面看起来正确,本技能检查的是首次使用者能否在无人指导的情况下完成任务。
核心机制
规则 0 — 全新视角,评估渲染后的产物(继承自 design-spatial §1)
不要自我评分——构建者会为自己的 UI 找理由。应将真实 UI 以默认首次加载状态渲染(而不是手工摆拍的截图),抓取主任务的交互轨迹,并由一个没有参与构建的独立评判者(子代理 / VLM)来评分。一份描述性的修改列表不是审计——审计是全新评判者在真实界面上寻找问题。
流程
- 说出该 UI 存在的目标主任务(例如「裁剪片段并设置速度,然后导出」)。审计是相对这些任务而言,而非抽象的漂亮程度。
- 渲染默认状态 + 跟踪任务。截取首次加载 UI(宽屏和窄屏——来自 design-spatial §2 的溢出关卡)。然后实际执行主任务并截取每一步。
- 对产物逐条为每个启发式规则打分:通过 / 违反、严重程度(阻塞 / 主要 / 次要)、具体定位的问题、以及具体修复方案。由独立评判者执行。
- 排优先级:阻塞 → 主要 → 次要;将触及同一表面的修复聚为一组。
- 修复后重新渲染并重新评分。未对新产物重新审计前,不得声称已修复(verify-outputs 规则)。
启发式规则(Nielsen 十大,1994)+ 交互补充项
| # | 启发式(Nielsen) | 在此 UI 中检查什么 |
|---|---|---|
| 1 | 系统状态可见性 | 每个操作都有可见反馈;当前状态 / 选中项 / 模式始终可读;慢操作有进度提示。 |
| 2 | 贴合真实世界 | 使用已知隐喻与惯例(如 NLE:片段、修剪手柄、播放头),而非用户必须学习的自定义手势。 |
| 3 | 用户控制与自由 | 撤销 / 重做、取消、从任意状态清晰退出;默认可逆。 |
| 4 | 一致性与标准 | 相同事物外观 / 行为一致;遵循平台惯例(⌘Z、Delete、拖拽移动)。 |
| 5 | 错误预防 | 让非法状态不可能发生;破坏性操作需确认或可轻松撤销。 |
| 6 | 识别优于回忆 | 选项 / 可供性可见——无需记忆。说明文字墙是此规则失败的体现:如果必须用文字解释滚动缩放 / 拖拽边缘 / 双击,说明可供性缺失。 |
| 7 | 灵活与高效 | 默认值照顾新手;为专家提供快捷键 / 加速器;在未配置任何内容时有合理的首次运行体验。 |
| 8 | 美观与极简 | 信号优于装饰;没有无关元素竞争;主操作表面承载最多视觉重量。 |
| 9 | 识别 / 诊断 / 从错误中恢复 | 使用平实语言的错误提示(而非原始 stderr),并给出出路。 |
| 10 | 帮助与文档 | 若 1–9 成立则很少需要;面向任务、在上下文中,而非页面顶部的说教。 |
交互补充项(组合使用,不重复陈述)
- 别让我思考(Krug):可供性一目了然;UI 能自我教学。出现说明段落 ⇒ 可供性欠债(对应第 6 条)。
- 费茨 / 移动时间(design-spatial §3):控件位于任务结束时光标所在处附近。选中对象的属性应紧邻该对象(停靠面板 / 弹出层),而非远端的面板——每次编辑不应是一次往返。
- 手势可发现性:任何非显而易见的手势(滚轮、边缘拖拽、双击)都需要可见的可供性(手柄、悬停提示、图标),否则对大多数用户而言它不存在。
- 视觉重量匹配(design-spatial):用户操作的表面(时间线、画布、编辑器)应是视觉主角——而非大块被动预览下方的一条细带。
- 渐进式披露(design-thinking UX):先呈现要点;高级功能按需展开。但披露不等于隐藏主工具。
- 工具提示时机:一组工具提示中第一个应延迟(约 300–700ms 悬停意图),以免光标扫过控件时闪烁提示;一旦有一个已打开,同组其余应立即显示(不再逐个重新延迟),便于用户扫描整排。每次悬停都触发是噪音;每个相邻控件都重新延迟则显得迟滞。
- 滚动位置恢复:后退 / 前进应把用户带回原处,而非顶部——从详情页返回后丢失位置是一种静默且反复出现的损耗。浏览器默认会这样做;问题出在手动滚动重置或客户端路由遗忘了位置。
- 提交幂等性:变更类操作携带幂等键,使双击、重试或网络不稳定时的重发不会造成重复效果(重复扣费、重复发帖)。与「请求进行中禁用提交 + 加载指示器」配套——幂等键是服务端保证,禁用是客户端礼貌。
(工具提示 / 滚动恢复 / 幂等性来自 Web Interface Guidelines,vercel-labs/web-interface-guidelines @ 4e799d4,2026-04-06。)
输出格式
一张评分表——启发式 | 问题(已定位)| 严重程度 | 修复——随后是一份按优先级排序的修复清单(阻塞项优先)。严重程度:阻塞 = 无法完成任务 / 主动误导;主要 = 拖慢或造成困惑;次要 = 打磨。
与 design 其余部分的关系
- design-spatial 负责先渲染再评判机制 + 费茨 / 移动时间 + 溢出关卡;本技能将该视角专门应用于可用性,并增加启发式记分卡。
- design-thinking 负责 UX 原则(目标 / 任务、信息架构、反馈、无障碍、渐进式披露);本技能将其转化为可评分的审计 + 修复循环。
- 在宣布交互式 UI「完成」之前,应进行可用性审计——与视觉评判并列,而非取而代之。
示例
用户请求:
使用 @design-ux 审查此界面,找出影响最大的设计问题,并提出可直接实施的改进。
限制
- 仅当任务与其上游来源和本地项目上下文明确匹配时使用本技能。
- 应用更改前,请验证命令、生成的代码、依赖项、凭据及外部服务行为。
- 不要将示例视为环境特定测试、安全审查或对破坏性 / 高成本操作的用户批准的替代品。