design-everyday-things by wondelai/skills
npx skills add https://github.com/wondelai/skills --skill design-everyday-things创建直观、可发现且易于理解的产品的核心设计原则。"用户体验圣经"——适用于实体产品、软件以及任何人为设计的系统。
好的设计实际上比糟糕的设计更难被注意到,部分原因在于好的设计如此贴合我们的需求,以至于设计本身变得无形。 当某物运作良好时,我们视其为理所当然。当它出现故障时,我们责怪自己——但问题几乎总是出在设计上。
基础: 设计必须弥合人们想要做什么与产品允许他们做什么之间的差距。最好的设计是可发现的(你能弄清楚该做什么)且易于理解的(你能弄清楚发生了什么)。
目标:10/10。 在评审或创建设计时,根据可发现性、可理解性和错误预防能力进行 0-10 分评分。10/10 意味着用户无需说明就能弄清楚该做什么,理解发生了什么,并能轻松从错误中恢复。始终提供当前分数以及达到 10/10 的改进建议。
与产品的每次交互都需要跨越两大鸿沟:
用户 产品
│ │
├──── 执行鸿沟 ────────────────→│
│ "我如何做我想做的事?" │
│ │
│←──── 评估鸿沟 ──────────────┤
│ "发生了什么?成功了吗?" │
用户想要做什么与产品允许他们做什么之间的差距。
用户会问的问题:
弥合策略:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
产品做了什么与用户理解发生了什么之间的差距。
用户会问的问题:
弥合策略:
设计目标: 使两大鸿沟尽可能变窄。理想的设计无需跨越鸿沟——行动和理解是即时的。
参见:references/two-gulfs.md 获取鸿沟分析练习。
定义: 用户能否弄清楚有哪些可能的操作以及如何执行它们?
可发现性的五个组成部分:
(以下将详细说明每一项)
测试: 让一个新用户面对你的产品。他们能在 10 秒内弄清楚该做什么吗?如果不能,可发现性就存在问题。
反面模式: "用户手册里有说明。" 如果用户需要手册,设计就失败了。
定义: 对象的属性与代理(用户)的能力之间的关系,决定了对象如何被使用。
关键见解: 可供性无论是否被感知都存在。一扇门可供推开,无论你是否知道要推它。重要的是被感知的可供性。
类型:
| 类型 | 定义 | 示例 |
|---|---|---|
| 真实可供性 | 物理能力存在 | 按钮可供按压 |
| 感知可供性 | 用户相信能力存在 | 凸起区域看起来可点击 |
| 隐藏可供性 | 能力存在但不明显 | 右键上下文菜单 |
| 虚假可供性 | 看起来可供操作但实际不行 | 看起来可点击的装饰性元素 |
| 反可供性 | 阻止操作 | 阻挡移动的障碍物 |
数字应用:
| 元素 | 可供性 | 如何示意 |
|---|---|---|
| 按钮 | 可供点击/轻触 | 凸起、着色、阴影、悬停状态 |
| 文本字段 | 可供文本输入 | 边框、占位符文本、标签 |
| 链接 | 可供导航 | 颜色、下划线、光标变化 |
| 滑块 | 可供拖拽 | 手柄、轨道、视觉范围 |
| 滚动区域 | 可供滚动 | 滚动条、边缘淡出、部分内容显示 |
常见失败:
参见:references/affordances.md 获取可供性设计模式。
定义: 传达操作应在何处进行的信号。
关键见解: 可供性决定了什么是可能的。可视化符号传达了在哪里以及如何操作。
如果可供性是你可以做什么,那么可视化符号向你展示如何去做。
类型:
| 类型 | 定义 | 示例 |
|---|---|---|
| 刻意符号 | 为传达信息而设计 | 门上的"推"标签、占位符文本 |
| 偶然符号 | 无意但提供信息 | 草地上被踩出的小路(人们常走这里) |
| 社会符号 | 他人的行为 | 排队的人群指示入口处 |
数字符号:
| 符号 | 传达的信息 | 示例 |
|---|---|---|
| 光标变化 | 这是可交互的 | 指针在链接上变为手形 |
| 悬停状态 | 此元素对交互有响应 | 按钮悬停时颜色变化 |
| 占位符文本 | 在此处输入什么 | "输入您的邮箱..." |
| 图标 | 元素的功能 | 放大镜 = 搜索 |
| 标签 | 此控件的功能 | "提交"、"取消"、"下一步" |
| 颜色 | 状态或类别 | 红色 = 错误,绿色 = 成功 |
| 位置 | 关系和层级 | 关闭按钮在右上角 |
设计规则: 如有疑问,添加一个可视化符号。过度沟通总比让用户猜测要好。
参见:references/signifiers.md 获取符号模式和示例。
定义: 控件与其效果之间的关系。
自然映射: 控件的空间布局与被控制对象的布局相匹配。
示例:
| 映射质量 | 示例 | 为何有效/失败 |
|---|---|---|
| 自然 | 方向盘转动汽车方向 | 直接的空间对应关系 |
| 自然 | 音量滑块(向上 = 更大声) | 符合心智模型 |
| 差 | 电灯开关面板(哪个开关对应哪盏灯?) | 无空间对应关系 |
| 差 | 炉灶控制旋钮排成一排(哪个旋钮对应哪个炉头?) | 布局不匹配 |
数字映射原则:
映射技术:
| 技术 | 工作原理 | 示例 |
|---|---|---|
| 邻近性 | 控件靠近目标 | 编辑按钮紧邻内容 |
| 空间性 | 布局反映真实世界 | 地图控件匹配指南针方向 |
| 文化性 | 遵循惯例 | 红色 = 停止/危险,绿色 = 通行/安全 |
| 顺序性 | 遵循自然顺序 | 步骤 1, 2, 3 从左到右(或从上到下) |
参见:references/mappings.md 获取映射分析练习。
定义: 限制可能的操作以防止错误。
四种约束类型:
| 类型 | 机制 | 示例 |
|---|---|---|
| 物理约束 | 形状/尺寸防止错误操作 | USB 插头只能单向插入(USB-C 可双向) |
| 文化约束 | 社会规范指导行为 | 红色表示停止,绿色表示通行 |
| 语义约束 | 含义限制选项 | 后视镜只能朝后才有意义 |
| 逻辑约束 | 逻辑限制选择 | 只剩一个孔适合最后一颗螺丝(排除法) |
数字约束:
| 约束类型 | 实现方式 | 示例 |
|---|---|---|
| 输入验证 | 限制可输入的内容 | 日期选择器 vs. 自由文本 |
| 禁用状态 | 将不可用选项置灰 | 表单无效时"提交"按钮禁用 |
| 渐进式披露 | 仅在相关时显示选项 | 选择"购买"后显示支付字段 |
| 强制顺序 | 步骤必须按顺序完成 | 向导/步骤器,锁定后续步骤 |
| 撤销/重做 | 允许撤销操作 | Gmail 的"撤销发送" |
约束的力量: 你添加的每一个约束,都意味着用户可能犯的错误减少一个。
设计规则: 让错误操作变得不可能,而不是惩罚用户进行错误操作。
参见:references/constraints.md 获取约束设计模式。
定义: 将操作结果传达给用户。
反馈必须是:
反馈类型:
| 类型 | 使用时机 | 示例 |
|---|---|---|
| 视觉反馈 | 大多数操作 | 按钮按压动画、颜色变化、勾选标记 |
| 听觉反馈 | 重要事件、确认 | 成功提示音、错误声音、通知音 |
| 触觉反馈 | 触摸设备、确认 | 按键振动、力反馈 |
| 进度反馈 | 长时间操作 | 进度条、旋转指示器、骨架屏 |
数字反馈模式:
| 情境 | 需要的反馈 | 示例 |
|---|---|---|
| 按钮点击 | 视觉状态变化 | 按钮凹陷、颜色变化 |
| 表单提交 | 成功/错误信息 | "已保存!"提示或内联错误信息 |
| 加载中 | 进度指示器 | 旋转指示器、骨架屏、百分比 |
| 错误 | 出了什么问题 + 如何修复 | "邮箱格式无效。请检查格式。" |
| 悬停 | 交互元素指示器 | 背景颜色变化、下划线 |
| 拖拽 | 对象跟随光标 | 元素随鼠标移动 |
常见失败:
响应时间指南:
10秒:用户离开(显示百分比,允许后台操作)
参见:references/feedback.md 获取反馈设计模式。
定义: 用户关于产品如何工作的心智模型。
三种模型:
| 模型 | 持有者 | 描述 |
|---|---|---|
| 设计模型 | 设计师 | 设计师认为它如何工作 |
| 用户模型 | 用户 | 用户认为它如何工作 |
| 系统映像 | 产品 | 产品实际传达的信息 |
目标: 用户模型应与设计模型匹配。系统映像是桥梁。
当模型匹配时:
当模型不匹配时:
示例:恒温器
构建正确的概念模型:
参见:references/conceptual-models.md 获取模型设计框架。
诺曼的关键见解:不存在所谓的"人为错误"。只有糟糕的设计。
当某人犯错时,寻找设计缺陷,而不是人的缺陷。
失误: 意图正确,行动错误
| 失误类型 | 原因 | 示例 | 设计修复 |
|---|---|---|---|
| 行动失误 | 对正确目标采取错误行动 | 点击"删除"而非"编辑" | 将破坏性操作分开 |
| 记忆失误 | 忘记序列中的步骤 | 写完"附件已附"后忘记附件 | Gmail 的附件提醒 |
| 模式错误 | 行动正确,但模式错误 | 在 Caps Lock 模式下输入 | 清晰显示模式状态 |
| 捕获错误 | 熟悉行动覆盖了预期行动 | 自动驾驶到旧办公室 | 在决策点进行打断 |
误解: 意图错误,执行正确
| 误解类型 | 原因 | 示例 | 设计修复 |
|---|---|---|---|
| 基于规则的误解 | 应用了错误的规则 | 在错误情况下使用公式 | 提供上下文、确认 |
| 基于知识的误解 | 心智模型不完整/错误 | 误解系统工作原理 | 更好的概念模型 |
| 记忆失误 | 忘记目标或计划 | 忘记为什么打开冰箱 | 提供提醒、历史记录 |
错误预防:
错误恢复:
错误信息检查清单:
参见:references/human-error.md 获取错误预防模式。
诺曼关于人类如何与产品交互的模型:
1. 目标 → "我想调节温度"
2. 计划 → "我要使用恒温器"
3. 明确 → "我要按向上箭头"
4. 执行 → (按下按钮)
─── 执行鸿沟 ───
5. 感知 → (看到显示变化)
6. 解释 → "数字上升了"
7. 比较 → "这是我想要的吗?"
─── 评估鸿沟 ───
设计启示:
作为评估工具使用: 为任何交互遍历每个阶段。用户在哪个阶段卡住了?
参见:references/seven-stages.md 获取分阶段分析。
诺曼的设计流程:
观察 → 创意生成 → 原型制作 → 测试 → (迭代)
关键原则: 设计流程是迭代的。你将经历多个周期,每次根据所学知识改进设计。
| 错误 | 为何失败 | 修复方法 |
|---|---|---|
| 没有可视化符号 | 用户找不到功能 | 为每个交互元素添加视觉提示 |
| 没有反馈 | 用户不知道操作是否成功 | 在 0.1 秒内响应每个操作 |
| 责怪用户 | 忽视设计缺陷 | 为每个"用户错误"寻找设计原因 |
| 功能蔓延 | 复杂性压倒一切 | 应用约束、渐进式披露 |
| 不一致 | 破坏概念模型 | 相同操作 = 相同结果,处处如此 |
| 忽视上下文 | 为理想条件设计 | 观察真实使用环境 |
审计任何设计:
| 问题 | 如果答案为否 | 行动 |
|---|---|---|
| 用户能弄清楚该做什么吗? | 可发现性差 | 添加可视化符号,改进可供性 |
| 用户理解发生了什么吗? | 评估鸿沟过宽 | 添加反馈,显示系统状态 |
| 用户能从错误中恢复吗? | 无容错性 | 添加撤销、确认、清晰的信息 |
| 控件布局与输出匹配吗? | 映射差 | 重新组织控件以匹配空间布局 |
| 不可能/不相关的选项被隐藏了吗? | 缺少约束 | 禁用、隐藏或移除无效选项 |
此技能基于唐·诺曼的基本设计原则。获取完整框架:
唐·诺曼,博士 是尼尔森诺曼集团的联合创始人,加州大学圣地亚哥分校设计实验室主任。他在 1990 年代于苹果公司任职期间创造了"用户体验"一词。《日常事物设计》(最初于 1988 年以"The Psychology of Everyday Things"出版)被认为是有史以来最具影响力的设计书籍,几乎是全球所有设计课程的必读书目。诺曼曾担任苹果公司先进技术副总裁,并在西北大学、加州大学圣地亚哥分校和 KAIST(韩国)担任教授。
每周安装量
281
代码库
GitHub 星标数
260
首次出现
2026年2月10日
安全审计
安装于
opencode261
gemini-cli257
codex257
github-copilot254
cursor251
kimi-cli250
Foundational design principles for creating products that are intuitive, discoverable, and understandable. The "bible of UX" — applicable to physical products, software, and any human-designed system.
Good design is actually a lot harder to notice than poor design, in part because good designs fit our needs so well that the design is invisible. When something works well, we take it for granted. When it fails, we blame ourselves — but the fault is almost always in the design.
The foundation: Design must bridge the gap between what people want to do and what the product allows them to do. The best designs are discoverable (you can figure out what to do) and understandable (you can figure out what happened).
Goal: 10/10. When reviewing or creating designs, rate 0-10 based on discoverability, understandability, and error prevention. A 10/10 means users can figure out what to do without instructions, understand what happened, and recover from errors easily. Always provide current score and improvements to reach 10/10.
Every interaction with a product requires bridging two gulfs:
USER PRODUCT
│ │
├──── Gulf of Execution ────────────────→│
│ "How do I do what I want?" │
│ │
│←──── Gulf of Evaluation ──────────────┤
│ "What happened? Did it work?" │
The gap between what users want to do and what the product lets them do.
Questions users ask:
Bridging strategies:
The gap between what the product did and what users understand happened.
Questions users ask:
Bridging strategies:
Design goal: Make both gulfs as narrow as possible. The ideal design requires zero bridging — action and understanding are immediate.
See: references/two-gulfs.md for gulf analysis exercises.
Definition: Can users figure out what actions are possible and how to perform them?
Five components of discoverability:
(Each detailed below)
Test: Put a new user in front of your product. Can they figure out what to do within 10 seconds? If not, discoverability is broken.
Anti-pattern: "The user manual explains it." If users need a manual, the design failed.
Definition: The relationship between the properties of an object and the capabilities of the agent (user) that determine how the object could be used.
Key insight: Affordances exist whether or not they are perceived. A door affords pushing whether or not you know to push it. What matters is perceived affordance.
Types:
| Type | Definition | Example |
|---|---|---|
| Real affordance | Physical capability exists | A button affords pressing |
| Perceived affordance | User believes capability exists | A raised area looks clickable |
| Hidden affordance | Capability exists but isn't obvious | Right-click context menu |
| False affordance | Appears to afford action but doesn't | A decorative element that looks clickable |
| Anti-affordance | Prevents action | A barrier that blocks movement |
Digital applications:
| Element | Affordance | How to Signal |
|---|---|---|
| Button | Affords clicking/tapping | Raised, colored, shadow, hover state |
| Text field | Affords text input | Border, placeholder text, label |
| Link | Affords navigation | Color, underline, cursor change |
| Slider | Affords dragging | Handle, track, visual range |
| Scroll area | Affords scrolling | Scroll bar, fade at edge, partial content |
Common failures:
See: references/affordances.md for affordance design patterns.
Definition: Signals that communicate where the action should take place.
Key insight: Affordances determine what's possible. Signifiers communicate where and how.
If affordances are what you CAN do, signifiers show you HOW to do it.
Types:
| Type | Definition | Example |
|---|---|---|
| Deliberate signifier | Designed to communicate | "Push" label on door, placeholder text |
| Accidental signifier | Unintentional but informative | Worn path in grass (people walk here) |
| Social signifier | Other people's behavior | Line of people indicates entrance |
Digital signifiers:
| Signifier | What It Communicates | Example |
|---|---|---|
| Cursor change | This is interactive | Pointer → hand on links |
| Hover state | This responds to interaction | Button color change on hover |
| Placeholder text | What to type here | "Enter your email..." |
| Icons | Function of the element | Magnifying glass = search |
| Labels | What this control does | "Submit", "Cancel", "Next" |
| Color | Status or category | Red = error, green = success |
| Position | Relationship and hierarchy | Close button in top-right corner |
Design rule: When in doubt, add a signifier. It's better to over-communicate than to leave users guessing.
See: references/signifiers.md for signifier patterns and examples.
Definition: The relationship between controls and their effects.
Natural mapping: When the spatial layout of controls matches the layout of the thing being controlled.
Examples:
| Mapping Quality | Example | Why It Works/Fails |
|---|---|---|
| Natural | Steering wheel turns car direction | Direct spatial correspondence |
| Natural | Volume slider (up = louder) | Matches mental model |
| Poor | Light switch panel (which switch = which light?) | No spatial correspondence |
| Poor | Stovetop controls in a row (which knob = which burner?) | Layout doesn't match |
Digital mapping principles:
Mapping techniques:
| Technique | How It Works | Example |
|---|---|---|
| Proximity | Control near target | Edit button next to content |
| Spatial | Layout mirrors real world | Map controls match compass directions |
| Cultural | Follows conventions | Red = stop/danger, green = go/safe |
| Sequential | Follows natural order | Steps 1, 2, 3 from left to right (or top to bottom) |
See: references/mappings.md for mapping analysis exercises.
Definition: Limiting the possible actions to prevent errors.
Four types of constraints:
| Type | Mechanism | Example |
|---|---|---|
| Physical | Shape/size prevents wrong action | USB plug only fits one way (USB-C both ways) |
| Cultural | Social norms guide behavior | Red means stop, green means go |
| Semantic | Meaning restricts options | A rearview mirror only makes sense facing backward |
| Logical | Logic limits choices | Only one hole left for last screw (process of elimination) |
Digital constraints:
| Constraint Type | Implementation | Example |
|---|---|---|
| Input validation | Restrict what can be entered | Date picker vs. free text |
| Disabled states | Gray out unavailable options | "Submit" disabled until form valid |
| Progressive disclosure | Show options only when relevant | Payment fields after selecting "Buy" |
| Forced sequence | Steps must be completed in order | Wizard/stepper with locked steps |
| Undo/redo | Allow reversal | Gmail "Undo send" |
The power of constraints: Every constraint you add is one less error the user can make.
Design rule: Make it impossible to do the wrong thing, rather than punishing users for doing the wrong thing.
See: references/constraints.md for constraint design patterns.
Definition: Communicating the results of an action back to the user.
Feedback must be:
Types of feedback:
| Type | When to Use | Example |
|---|---|---|
| Visual | Most actions | Button press animation, color change, checkmark |
| Auditory | Important events, confirmations | Success chime, error sound, notification |
| Haptic | Touch devices, confirmation | Vibration on key press, force feedback |
| Progress | Long operations | Progress bar, spinner, skeleton screen |
Digital feedback patterns:
| Situation | Feedback Needed | Example |
|---|---|---|
| Button click | Visual state change | Button depresses, color changes |
| Form submission | Success/error message | "Saved!" toast or inline error |
| Loading | Progress indicator | Spinner, skeleton screen, percentage |
| Error | What went wrong + how to fix | "Invalid email. Please check format." |
| Hover | Interactive element indicator | Background color change, underline |
| Drag | Object follows cursor | Element moves with mouse |
Common failures:
Response time guidelines:
10s: User leaves (show percentage, allow background)
See: references/feedback.md for feedback design patterns.
Definition: The user's mental model of how a product works.
Three models:
| Model | Held By | Description |
|---|---|---|
| Design model | Designer | How the designer thinks it works |
| User's model | User | How the user thinks it works |
| System image | Product | What the product actually communicates |
Goal: User's model should match the design model. The system image is the bridge.
When models match:
When models mismatch:
Example: Thermostat
Building correct conceptual models:
See: references/conceptual-models.md for model design frameworks.
Norman's key insight: There is no such thing as "human error." There is only bad design.
When someone makes an error, look for the design flaw, not the person's flaw.
Slips: Correct intention, wrong action
| Slip Type | Cause | Example | Design Fix |
|---|---|---|---|
| Action slip | Wrong action on right target | Click "Delete" instead of "Edit" | Separate destructive actions |
| Memory lapse | Forget step in sequence | Forget attachment after writing "attached" | Gmail's attachment reminder |
| Mode error | Right action, wrong mode | Type in caps lock | Show mode state clearly |
| Capture error | Familiar action overrides intended | Drive to old office on autopilot | Interruptions at decision points |
Mistakes: Wrong intention, executed correctly
| Mistake Type | Cause | Example | Design Fix |
|---|---|---|---|
| Rule-based | Apply wrong rule | Use formula for wrong situation | Provide context, confirm |
| Knowledge-based | Incomplete/wrong mental model | Misunderstand how system works | Better conceptual model |
| Memory lapse | Forget goal or plan | Forget why you opened the fridge | Provide reminders, history |
Error prevention:
Error recovery:
Error message checklist:
See: references/human-error.md for error prevention patterns.
Norman's model for how humans interact with products:
1. GOAL → "I want to adjust the temperature"
2. PLAN → "I'll use the thermostat"
3. SPECIFY → "I'll press the up arrow"
4. PERFORM → (presses button)
─── Gulf of Execution ───
5. PERCEIVE → (sees display change)
6. INTERPRET → "The number went up"
7. COMPARE → "Is this what I wanted?"
─── Gulf of Evaluation ───
Design implications:
Use as evaluation tool: Walk through each stage for any interaction. Where does the user get stuck?
See: references/seven-stages.md for stage-by-stage analysis.
Norman's design process:
Observation → Idea Generation → Prototyping → Testing → (iterate)
Key principle: The design process is iterative. You'll go through multiple cycles, each time refining the design based on what you learn.
| Mistake | Why It Fails | Fix |
|---|---|---|
| No signifiers | Users can't find features | Add visual cues for every interactive element |
| No feedback | Users don't know if action worked | Respond to every action within 0.1s |
| Blaming users | Ignores design flaws | Look for design cause of every "user error" |
| Feature creep | Complexity overwhelms | Apply constraints, progressive disclosure |
| Inconsistency | Breaks conceptual model | Same action = same result everywhere |
| Ignoring context | Designed for ideal conditions | Observe real usage environments |
Audit any design:
| Question | If No | Action |
|---|---|---|
| Can users figure out what to do? | Poor discoverability | Add signifiers, improve affordances |
| Do users understand what happened? | Gulf of evaluation too wide | Add feedback, show system state |
| Can users recover from errors? | No error tolerance | Add undo, confirmation, clear messages |
| Does the control layout match the output? | Poor mapping | Reorganize controls to match spatial layout |
| Are impossible/irrelevant options hidden? | Missing constraints | Disable, hide, or remove invalid options |
This skill is based on Don Norman's foundational design principles. For the complete framework:
Don Norman, PhD is co-founder of the Nielsen Norman Group and director of The Design Lab at UC San Diego. He coined the term "user experience" while at Apple in the 1990s. The Design of Everyday Things (originally published in 1988 as "The Psychology of Everyday Things") is considered the most influential design book ever written and is required reading in virtually every design program worldwide. Norman has served as VP of Advanced Technology at Apple and has been a professor at Northwestern, UC San Diego, and KAIST (Korea).
Weekly Installs
281
Repository
GitHub Stars
260
First Seen
Feb 10, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode261
gemini-cli257
codex257
github-copilot254
cursor251
kimi-cli250
前端设计技能指南:避免AI垃圾美学,打造独特生产级界面
36,100 周安装