Files
workbuddy_skills/open-design/craft/laws-of-ux.md
T
admin 5afeb6b78a ④段整套同步(六节 + P/S/F/J + 模板)+ open-design 移到技能根
一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
  · 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
    跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
  · 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
  · 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
    横向流程图每步写清页面/功能/操作/完成判据。
  · 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
  · 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
  · 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。

二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
  「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
  同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
  当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。

三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
2026-10-15 21:17:28 +08:00

297 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Laws of UX craft rules
Universal cognitive, perceptual, and behavioral heuristics that decide
what a UI composes — how many pricing tiers fit on a screen, where a
primary action anchors in scanning order, when a progress indicator
earns its place, why a settings list needs grouping. The active
`DESIGN.md` decides brand visual language; the existing craft files
decide rendering rules (color, typography, motion, states, ARIA, RTL,
forms); this file decides composition rules grounded in named research.
> Distilled from primary sources: Hick (1952) + Hyman (1953), Miller
> (1956) for chunking / `7±2` channel capacity, Cowan (2001) for the
> modern ~4 working-memory bound, Fitts (1954), Wertheimer (1923) for
> proximity / similarity / Prägnanz, Palmer (1992) for Common Region,
> Palmer & Rock (1994) for Uniform Connectedness, Kahneman /
> Fredrickson / Schreiber / Redelmeier (1993) for Peak-End, Zeigarnik
> (1927), Csíkszentmihályi (1975), Hull (1932), von Restorff (1933),
> Broadbent (1958), Sweller (1988), Postel (RFC 760, 1980), Carroll &
> Rosson (1987), Tversky & Kahneman (1974) for Anchoring, Kurosu &
> Kashimura (1995), Iyengar & Lepper (2000), Toffler (1970), Pareto
> (c.1906) / Juran (*Quality Control Handbook*, 1951), Ebbinghaus
> (1885), Ockham (14th c.), Tesler at Apple (1980s), Nielsen (2000),
> Norman *POET* (1988), Parkinson (1955).
## Prior art and scope
Existing public catalogs of UX heuristics (Yablonski's lawsofux.com,
NN/g's 10 usability heuristics, Material 3 motion + interaction
guidance, Apple HIG, Baymard Institute checkout research) inventory the
laws but rarely tie each one to a concrete code-gen directive. This
file does the translation: every entry ends with one actionable move
for an HTML / Tailwind / React-emitting agent. Sibling craft files
(`accessibility-baseline.md`, `state-coverage.md`, `typography.md`,
`anti-ai-slop.md`, `color.md`, `animation-discipline.md`,
`form-validation.md`) own the auto-checked rules; this file names the
underlying law and surfaces the folklore. Out of scope: Weber-Fechner
psychophysics and Signal Detection Theory — both apply to UI but the
prompt-emission directives are too narrow to earn a slot here. Add
later if a skill needs them.
The rules below are guidance, not auto-checked. Reviewers and the agent
apply them; the linter does not. Where a law has a sibling rule already
auto-checked elsewhere — touch-target floor in
`accessibility-baseline.md`, the 300 ms / 2 s / 10 s / 30 s / 60 s
loading thresholds in `state-coverage.md`, ALL CAPS letter-spacing in
`typography.md`, the indigo / gradient / emoji-icon list in
`anti-ai-slop.md` — the entry below cross-references rather than
duplicates.
## Perception and visual grouping
Five Gestalt laws plus three attention-and-recognition laws govern how
the eye groups elements before the brain reads them.
- **Law of Proximity** (Wertheimer, 1923). Objects near each other read
as a group. Cheapest grouping signal — cheaper than borders or shared
color. Apply variable vertical rhythm: 8–12 px within a group,
32–48 px between groups. Uniform spacing reads as nothing being
grouped.
- **Law of Similarity** (Wertheimer, 1923). Visually similar elements
read as a group. Equivalent affordances must share treatment — every
list row identical class set, every secondary button identical, every
destructive action identical. Visible deviation is reserved for the
one item meant to draw attention (the recommended pricing tier, the
selected nav item).
- **Law of Common Region** (Palmer, 1992). A shared bounded area binds
enclosed elements. Use enclosure when proximity is not enough — and
reserve it. Concrete numbers: padding ≥16 px inside the region,
distinct surface (border + tinted background, or card chrome at
≥1 px hairline). A page where every section is bordered destroys the
signal.
- **Law of Prägnanz / Good Figure** (Wertheimer, 1923). The eye
resolves complex layouts into the simplest underlying form. Designs
that align with a clear underlying grid (12-column, F-pattern,
4-quadrant) feel inevitable; ornate breaks that add nothing semantic
feel arbitrary.
- **Law of Uniform Connectedness** (Palmer & Rock, 1994). The
strongest grouping signal in the Gestalt hierarchy: connected lines,
shared toolbars, or bracketing containers tie items together more
strongly than proximity or similarity. Use for wizard steps,
comparison sets, and explicit navigation flows.
- **Selective Attention** (Broadbent, *Perception and Communication*,
1958). Cognitive bandwidth is finite. Users filter aggressively and
ignore anything that looks irrelevant to their goal — banner blindness
comes from this. Reserve the strongest visual contrast for the single
goal-relevant action; let supporting content recede in weight.
- **Von Restorff Effect** (von Restorff, 1933). The item that differs
from a uniform field is the one most likely to be remembered. Make
the recommended pricing tier, the active nav item, the warning state
visually distinct. Pair contrast with a non-color signal (icon, text
label, position) — `accessibility-baseline.md` rules out color-alone
signaling.
- **Aesthetic-Usability Effect** (Kurosu & Kashimura, Hitachi Design
Center, 1995). Visual polish biases perceived usability. Refined
typography, generous whitespace, and a calm palette earn the benefit
of the doubt for minor friction. Never substitutes for measurable
usability or for `state-coverage.md`'s required-states rule.
## Decision-making
Six laws govern how fast and how well users decide when an interface
offers a choice.
- **Hick's Law** (Hick, 1952; Hyman, 1953 replication). Decision time
grows roughly log(n+1) with the number of equivalent options. Cap any
single decision-screen to 3–5 visible primary options; collapse the
rest behind a "More" / progressive disclosure pattern; visually
distinguish the recommended choice. Aggressive truncation that hides
the path forward is the opposite failure mode — surface the full
option set, just don't render every option at the same visual weight.
- **Choice Overload** (Iyengar & Lepper, *Journal of Personality and
Social Psychology*, 2000; framing dates to Toffler, *Future Shock*,
1970). Too many roughly-equivalent options stall or abandon the
decision. Pricing pages: 3–4 tiers, exactly one marked recommended.
Product grids: 6–9 hero cards above the fold. Settings panels: ≤5
named groups. Never emit a flat wall of equivalents.
- **Anchoring** (Tversky & Kahneman, *Science* 185:1124–1131, 1974).
The first number a user sees re-weights every subsequent number.
Place the recommended pricing tier where it anchors the comparison;
render yearly-billing savings as concrete dollar deltas, not just
percentage badges; pre-select the safer default in radio groups.
Visual weight matches intended decision weight.
- **Pareto Principle / 80-20** (Pareto, c.1906; Juran, *Quality Control
Handbook*, 1951 — popularized the management-application framing). A
small share of features drives most of the value. Identify the 2–3 actions
that drive the dominant journey for the target persona; emphasize
those visually; demote the long tail to overflow menus, footer
surfaces, or settings.
- **Tesler's Law / Conservation of Complexity** (Tesler, Apple, 1980s).
Every product has an irreducible amount of complexity. The design
choice is *where* it lives — engineering team, interface, user — not
whether to eliminate it. When complexity reaches the user, surface
contextual guidance (tooltips, smart defaults, inline empty-state
coaching, progressive disclosure) at the exact step where it
surfaces. Hiding it is not the same as removing it.
- **Occam's Razor** (Ockham, 14th c.). Among options that explain the
data equally well, prefer the one with the fewest assumptions. Specify
a minimal element inventory; forbid decorative chrome that doesn't
serve a stated user task. The law constrains assumptions, not feature
count — a "minimum viable" framing misreads it.
## Memory and learning
Five laws cover how working memory handles information density and
what the user retains afterward.
- **Miller's Law and Chunking** (Miller, *The Magical Number Seven,
Plus or Minus Two*, *Psychological Review*, 1956 — channel capacity /
`7±2` and chunking; Cowan, *Behavioral and Brain Sciences* 24:1, 2001
for the modern ~4-item working-memory bound). Working memory holds
about four items reliably and up to seven for short-term recall. Each
slot can hold a *larger familiar unit*, constrained by the user's
domain knowledge — chunking does not let you pack arbitrary content
into a single slot. Often misread as a rule about menu length;
Miller's paper is about chunks. Group related fields with clear
section headings, dividers, or card containers. A settings page with
sections "Account / Notifications / Privacy / Billing / Danger zone"
beats one flat list of 30 toggles.
- **Working Memory** (Baddeley & Hitch, 1974; lineage to Atkinson &
Shiffrin, 1968). Items decay in seconds without rehearsal. Recognition
beats recall: persisting prior context across screens, marking visited
elements, and surfacing comparison views beats forcing the user to
memorize. On dashboards specifically: sticky filter chips, last-N
selections persisted, breadcrumbs that include applied filters.
- **Serial Position Effect** (Ebbinghaus, *Über das Gedächtnis*, 1885).
Recall favors the extremes — primacy at the start, recency at the
end — while middle items fade. Anchor the most important nav items at
the leftmost and rightmost positions of a horizontal menu; cluster
utilities in the middle.
- **Peak-End Rule** (Kahneman, Fredrickson, Schreiber, Redelmeier,
*Psychological Science*, 1993). Memory of an experience is dominated
by the emotional peak and the ending, not the average. Stage a
high-effort celebratory success state; let intermediate steps stay
calm. Mediocre middles matter less than a strong close. The peak
belongs at the *end* of a flow, not as arbitrary mid-flow motion —
`animation-discipline.md` rejects motion that performs (rather than
confirms) a state change.
- **Zeigarnik Effect** (Zeigarnik, *Über das Behalten erledigter und
unerledigter Handlungen*, 1927). Uncompleted tasks create cognitive
tension that pulls the user back. Visible progress ("3 of 5 steps",
greyed-out next sections) converts that tension into completion
pressure. Reserve for genuinely beneficial flows like onboarding;
applying the same lever to streaks, daily-quest counters, or notification-
reduction nags is a dark pattern.
## Interaction and motor
Five laws cover how fast and how accurately users can act on the UI.
- **Fitts's Law** (Fitts, *Journal of Experimental Psychology*, 1954).
Time to acquire a target depends on its distance and size — bigger
and closer is faster. Spacing between adjacent hit zones matters as
much as size. Pair with `accessibility-baseline.md`'s 24 × 24 CSS px
AA touch-target floor; on mobile, place high-frequency controls in
the natural thumb arc.
- **Doherty Threshold** (Doherty & Thadani, *IBM Systems Journal*,
1982). Sub-second feedback keeps users in flow; latency above ~1 s
breaks attention. The implementable directive lives in
`state-coverage.md`'s loading-threshold table (no indicator under
300 ms; skeleton 300 ms – 2 s; labelled spinner 2 – 10 s; determinate
bar with cancel 10 – 60 s; stop and offer error/retry past 60 s).
This entry exists to name the underlying law and flag its folklore
(the 400 ms number doesn't appear in the 1982 paper — see
`animation-discipline.md` for the 400 ms folklore trace).
- **Flow** (Csíkszentmihályi, *Beyond Boredom and Anxiety*, 1975). Flow
sits in the balance between challenge and skill — too hard breeds
frustration, too easy breeds boredom. Continuous feedback and a clear
sense of control keep the user inside the state. System friction and
latency are the fastest ways to break it.
- **Goal-Gradient Effect** (Hull, *Psychological Review*, 1932; Kivetz,
Urminsky, Zheng, 2006 for the punch-card replication). Motivation to
finish rises as the goal gets closer. Multi-step flows render with a
prominent progress indicator that reflects *real* endowed progress —
show completed prerequisites when they truly exist (saved profile,
imported team, prior survey answer). When no real prerequisite
exists, render the current step honestly as `1 of N` with the
empty/current-step state clearly marked. Hull's hypothesis is
descriptive; treating it as license for fabricated progress, streak
dark patterns, or loyalty-program quota inflation is a misread.
- **Postel's Law / Robustness Principle** (Postel, RFC 760, 1980). "Be
liberal in what you accept, conservative in what you send." Take
input in whatever shape users naturally give it (phone numbers with
or without dashes, dates in mixed formats, percentages with or
without `%`); normalize internally to a canonical form; emit one
consistent format on output. The error-timing and ARIA-wiring half
lives in `form-validation.md`; the input-tolerance half is the
directive above. RFC 9413 (Thomson, IAB, 2023; built on the earlier
`draft-iab-protocol-maintenance`) retracts the maxim for protocol
design citing security surface; the UX-input application stands.
## Behavior and expectation
Five laws cover what users predict and how that prediction interacts
with the rendered surface.
- **Jakob's Law** (Nielsen, Nielsen Norman Group, 2000). Users spend
most of their time on other sites and expect yours to work the same.
Reuse category convention — nav placement, cart icon, settings gear,
primary CTA in the upper right of a SaaS landing — so the user spends
zero cycles relearning interaction grammar. Novelty must earn its
keep against the convention's ROI; "innovate everywhere" is the
opposite failure mode.
- **Mental Model** (Craik, *The Nature of Explanation*, 1943; Norman,
*POET / The Psychology of Everyday Things*, 1988). Every user
arrives with a prior built from competitor products and the physical
world. When the prediction holds, the product feels intuitive; when
it breaks, friction shows up as confusion, not curiosity. When the
brief names a reference product, anchor explicitly — capture the
reference in the prompt and the agent inherits a transferable
interaction grammar.
- **Paradox of the Active User** (Carroll & Rosson, in *Interfacing
Thought: Cognitive Aspects of Human-Computer Interaction*, MIT Press,
1987, pp. 80–111). Users skip the manual and start using the
software immediately, even when reading it would speed them up. Bake
guidance into the surface itself — empty-state coaching, inline
tooltips, contextual hints — at the action point.
- **Parkinson's Law** (Parkinson, *The Economist*, 1955). Work expands
to fill the time allotted to it. Loose interfaces let users dawdle;
cut friction and pre-fill what you can — autofill, smart defaults,
saved state — so a checkout finishes faster than the user expected.
Beating anticipated duration becomes the felt win.
- **Cognitive Load** (Sweller, *Cognitive Science*, 1988). Total
mental effort splits into intrinsic (the task's inherent difficulty)
and extraneous (poor layout, jargon, inconsistent patterns, visual
noise). Designers can't reduce intrinsic load; they own extraneous
fully. The visual-restraint directives (single accent in `color.md`,
three-weight typography rhythm in `typography.md`, P0 anti-default
list in `anti-ai-slop.md`) already constrain extraneous load; this
entry exists to name the cognitive cost the sibling rules reduce.
## Common mistakes (lint these)
Folklore corrections that don't survive a primary-source check, in the
same vein as the busts already documented in `animation-discipline.md`
and `accessibility-baseline.md`. The first three are attribution
corrections (year / venue / institution) the body entries already
applied — restated here so a reviewer reading just this section sees
them. The remainder are folklore not addressed in the body.
- "Anchoring effect = Tversky & Kahneman 1972." Wrong year. The
*Science* paper introducing the anchoring framing is 1974; the 1972
paper is "Subjective probability: A judgment of representativeness"
(different work).
- "Tesler's Law was developed at Xerox PARC." Tesler left PARC for
Apple in 1980; the Conservation-of-Complexity formulation traces to
his Apple years.
- "Paradox of the Active User was a CACM article." It's a chapter in
Carroll's *Interfacing Thought* (MIT Press, 1987), not CACM.
- "Selective Attention = solved by red dots and badges." Repeated
attention-grabbers train banner blindness. Reserve the strongest
contrast for one goal-relevant action per surface.
- "Fitts's Law alone is enough for touch targets." Fitts gives the
speed-accuracy tradeoff. WCAG 2.2 SC 2.5.8 sets the AA floor at
24 × 24 CSS px (`accessibility-baseline.md`); iOS HIG suggests
44 × 44 pt; Material 3 suggests 48 × 48 dp. Fitts plus the
platform floor — never just Fitts.