@ericrisco/rsc 3.3.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/manifest.json +43 -22
- package/package.json +1 -1
- package/scripts/lib/default-skill-floor.js +5 -1
- package/scripts/lib/domains.js +2 -2
- package/scripts/lib/retired-skills.js +4 -0
- package/scripts/rsc.js +1 -1
- package/skills/design/SKILL.md +4 -3
- package/skills/design/evals/cases.yaml +2 -2
- package/skills/ftd/SKILL.md +1 -1
- package/skills/react/SKILL.md +2 -1
- package/skills/ux/SKILL.md +149 -0
- package/skills/ux/THIRD_PARTY.md +32 -0
- package/skills/ux/evals/cases.yaml +40 -0
- package/skills/ux/references/flows.md +124 -0
- package/skills/ux/upstream/UPSTREAM.json +59 -0
- package/skills/ux/upstream/ux-designer/GUIDE.md +180 -0
- package/skills/ux/upstream/ux-designer/LICENSE +21 -0
- package/skills/ux/upstream/ux-designer/references/01-core-principles.md +251 -0
- package/skills/ux/upstream/ux-designer/references/02-laws-of-ux.md +330 -0
- package/skills/ux/upstream/ux-designer/references/03-accessibility.md +411 -0
- package/skills/ux/upstream/ux-designer/references/04-visual-design.md +433 -0
- package/skills/ux/upstream/ux-designer/references/05-information-architecture.md +432 -0
- package/skills/ux/upstream/ux-designer/references/06-interaction-design.md +495 -0
- package/skills/ux/upstream/ux-designer/references/07-forms-and-inputs.md +491 -0
- package/skills/ux/upstream/ux-designer/references/08-mobile-ux.md +539 -0
- package/skills/ux/upstream/ux-designer/references/09-ux-writing.md +493 -0
- package/skills/ux/upstream/ux-designer/references/10-user-research.md +533 -0
- package/skills/ux/upstream/ux-designer/references/11-design-systems.md +618 -0
- package/skills/ux/upstream/ux-designer/references/12a-presence-awareness.md +395 -0
- package/skills/ux/upstream/ux-designer/references/12b-conflict-resolution-sync.md +420 -0
- package/skills/ux/upstream/ux-designer/references/13a-canvas-navigation.md +388 -0
- package/skills/ux/upstream/ux-designer/references/13b-canvas-objects-performance.md +559 -0
- package/skills/ux/upstream/ux-designer/references/14-ai-ux-patterns.md +511 -0
- package/skills/ux/upstream/ux-designer/references/15-ethical-design.md +419 -0
- package/skills/ux/upstream/ux-designer/references/16-onboarding.md +430 -0
- package/skills/ux/upstream/ux-designer/references/17-notifications.md +461 -0
- package/skills/ux/upstream/ux-designer/references/18-data-visualization.md +453 -0
- package/skills/ux/upstream/ux-designer/references/19-search-ux.md +479 -0
- package/skills/ux/upstream/ux-designer/references/20-emotional-design.md +382 -0
- package/skills/ux/upstream/ux-designer/references/21-data-tables.md +629 -0
- package/skills/ux/upstream/ux-designer/references/22-performance-ux.md +626 -0
- package/skills/ux/upstream/ux-designer/references/23-internationalization.md +347 -0
- package/skills/ux/upstream/ux-designer/references/24-voice-and-multimodal.md +308 -0
- package/skills/ux/upstream/ux-designer/references/25a-barcode-camera-scanning.md +342 -0
- package/skills/ux/upstream/ux-designer/references/25b-barcode-scanner-workflows.md +412 -0
- package/skills/ux/upstream/ux-designer/references/25c-barcode-display.md +277 -0
- package/skills/ux/upstream/ux-usability-foundations/GUIDE.md +285 -0
- package/skills/ux/upstream/ux-usability-foundations/LICENSE +21 -0
- package/skills/ux/upstream/ux-usability-foundations/references/anti-patterns.md +267 -0
- package/skills/ux/upstream/ux-usability-foundations/references/checklists.md +130 -0
- package/skills/ux/upstream/ux-usability-foundations/references/decision-prompts.md +340 -0
- package/skills/ux/upstream/ux-usability-foundations/references/principle-cards.md +449 -0
- package/skills/worktrees/SKILL.md +19 -5
- package/targets/branch-guard.mjs +59 -4
- package/targets/clone-bootstrap.mjs +1 -1
- package/targets/session-memory-adapter.mjs +2 -2
- package/targets/team-safe-start.mjs +1 -0
- package/targets/worktree-reaper.mjs +14 -1
- package/skills/ui-engineering/SKILL.md +0 -113
- package/skills/ui-engineering/evals/cases.yaml +0 -38
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# Laws of UX
|
|
2
|
+
|
|
3
|
+
Psychological principles that inform user experience design, collected and popularized by Jon Yablonski.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Contents
|
|
8
|
+
|
|
9
|
+
- Fitts's Law
|
|
10
|
+
- Hick's Law (Hick-Hyman Law)
|
|
11
|
+
- Miller's Law
|
|
12
|
+
- Jakob's Law
|
|
13
|
+
- Peak-End Rule
|
|
14
|
+
- Tesler's Law (Law of Conservation of Complexity)
|
|
15
|
+
- Gestalt Principles
|
|
16
|
+
- Additional Important Laws
|
|
17
|
+
- Sources
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Fitts's Law
|
|
22
|
+
|
|
23
|
+
> The time to acquire a target is a function of the distance to and size of the target.
|
|
24
|
+
|
|
25
|
+
**Formulated by:** Paul Fitts (1954)
|
|
26
|
+
|
|
27
|
+
### Key Implications
|
|
28
|
+
|
|
29
|
+
1. **Make important targets large** - Buttons, links, and interactive elements should be big enough to click/tap easily
|
|
30
|
+
2. **Reduce distance to targets** - Place frequently used actions near common cursor/finger positions
|
|
31
|
+
3. **Use screen edges and corners** - These are effectively infinite in size (cursor stops at edge)
|
|
32
|
+
|
|
33
|
+
### Application in UX
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Good:
|
|
37
|
+
- Large, prominent CTAs
|
|
38
|
+
- Sticky navigation bars
|
|
39
|
+
- Context menus near cursor
|
|
40
|
+
- Floating action buttons on mobile
|
|
41
|
+
|
|
42
|
+
Avoid:
|
|
43
|
+
- Tiny click targets
|
|
44
|
+
- Important actions far from content
|
|
45
|
+
- Small close buttons on modals
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Minimum Target Sizes
|
|
49
|
+
- **Touch (mobile):** 44×44px (Apple) / 48×48dp (Material Design)
|
|
50
|
+
- **Mouse (desktop):** 24×24px minimum, 44×44px recommended
|
|
51
|
+
- **Spacing between targets:** 8px minimum
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Hick's Law (Hick-Hyman Law)
|
|
56
|
+
|
|
57
|
+
> The time it takes to make a decision increases with the number and complexity of choices.
|
|
58
|
+
|
|
59
|
+
**Formulated by:** William Edmund Hick & Ray Hyman (1952)
|
|
60
|
+
|
|
61
|
+
### Key Implications
|
|
62
|
+
|
|
63
|
+
1. **Limit choices** - Fewer options = faster decisions
|
|
64
|
+
2. **Group and categorize** - Break complex choices into simpler steps
|
|
65
|
+
3. **Highlight recommendations** - Guide users toward optimal choices
|
|
66
|
+
4. **Progressive disclosure** - Show only necessary options initially
|
|
67
|
+
|
|
68
|
+
### Application in UX
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Good:
|
|
72
|
+
- "Top 10" lists on Netflix
|
|
73
|
+
- 3-4 pricing tiers
|
|
74
|
+
- Stepped forms/wizards
|
|
75
|
+
- Clear default selections
|
|
76
|
+
|
|
77
|
+
Avoid:
|
|
78
|
+
- Overwhelming dropdown menus
|
|
79
|
+
- Too many navigation items
|
|
80
|
+
- Endless feature lists
|
|
81
|
+
- Choice paralysis situations
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### The Magic Number
|
|
85
|
+
There is no magic number. Menus are *scanned*, not memorized, so Miller's 7±2 does not apply to them (a common misreading). Keep top-level navigation small enough to scan at a glance — typically 5-7 items on desktop, 3-5 in a mobile bottom bar — and let card sorting and analytics decide the rest.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Miller's Law
|
|
90
|
+
|
|
91
|
+
> The average person can only keep about 7 (±2) items in their working memory.
|
|
92
|
+
|
|
93
|
+
**Formulated by:** George A. Miller (1956)
|
|
94
|
+
|
|
95
|
+
**Modern correction:** Later research (Cowan, 2001) puts working-memory capacity closer to **4±1 chunks**. Use this law to justify *chunking* and *not forcing recall*; do not use it to cap menu or list lengths — anything visible on screen is recognition, not recall.
|
|
96
|
+
|
|
97
|
+
### Key Implications
|
|
98
|
+
|
|
99
|
+
1. **Chunk information** - Group related items into meaningful units
|
|
100
|
+
2. **Limit simultaneous elements** - Don't overwhelm working memory
|
|
101
|
+
3. **Use recognizable patterns** - Familiar structures reduce memory load
|
|
102
|
+
4. **Provide external memory aids** - Let the interface remember for users
|
|
103
|
+
|
|
104
|
+
### Application in UX
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Good:
|
|
108
|
+
- Phone numbers: (555) 123-4567
|
|
109
|
+
- Credit cards: 1234 5678 9012 3456
|
|
110
|
+
- Step indicators: Step 2 of 4
|
|
111
|
+
- Breadcrumb navigation
|
|
112
|
+
|
|
113
|
+
Avoid:
|
|
114
|
+
- Long strings of numbers/codes
|
|
115
|
+
- Too many form fields visible at once
|
|
116
|
+
- Complex multi-step processes without progress indication
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Jakob's Law
|
|
122
|
+
|
|
123
|
+
> Users spend most of their time on other sites. This means that users prefer your site to work the same way as all the other sites they already know.
|
|
124
|
+
|
|
125
|
+
**Named after:** Jakob Nielsen
|
|
126
|
+
|
|
127
|
+
### Key Implications
|
|
128
|
+
|
|
129
|
+
1. **Follow conventions** - Use established patterns users expect
|
|
130
|
+
2. **Don't reinvent the wheel** - Standard UI patterns exist for good reason
|
|
131
|
+
3. **Meet expectations** - Cart icon, hamburger menu, search bar placement
|
|
132
|
+
4. **Innovate carefully** - Novel interactions require learning investment
|
|
133
|
+
|
|
134
|
+
### Application in UX
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Conventional Patterns:
|
|
138
|
+
- Logo in top-left links to home
|
|
139
|
+
- Shopping cart in top-right
|
|
140
|
+
- Search bar in header
|
|
141
|
+
- Footer contains legal/contact links
|
|
142
|
+
- Underlined text = hyperlink
|
|
143
|
+
- Blue links (or clearly styled alternatives)
|
|
144
|
+
|
|
145
|
+
Risky Innovations:
|
|
146
|
+
- Non-standard navigation placement
|
|
147
|
+
- Unusual scroll behaviors
|
|
148
|
+
- Custom cursor styles
|
|
149
|
+
- Non-standard form controls
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Peak-End Rule
|
|
155
|
+
|
|
156
|
+
> People judge an experience largely based on how they felt at its most intense point (peak) and at its end, rather than based on the sum of every moment.
|
|
157
|
+
|
|
158
|
+
**Formulated by:** Daniel Kahneman
|
|
159
|
+
|
|
160
|
+
### Key Implications
|
|
161
|
+
|
|
162
|
+
1. **Design memorable moments** - Create positive peaks in the experience
|
|
163
|
+
2. **End on a high note** - Final impressions disproportionately matter
|
|
164
|
+
3. **Manage low points** - Minimize negative peaks in user journeys
|
|
165
|
+
4. **Focus on key moments** - Not every interaction needs equal polish
|
|
166
|
+
|
|
167
|
+
### Application in UX
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Positive Peaks:
|
|
171
|
+
- Delightful animations on success
|
|
172
|
+
- Personalized welcome messages
|
|
173
|
+
- Achievement celebrations
|
|
174
|
+
- Surprise and delight moments
|
|
175
|
+
|
|
176
|
+
Strong Endings:
|
|
177
|
+
- Clear confirmation of completed tasks
|
|
178
|
+
- Helpful "what's next" suggestions
|
|
179
|
+
- Thank you messages
|
|
180
|
+
- Easy save/export of results
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Tesler's Law (Law of Conservation of Complexity)
|
|
186
|
+
|
|
187
|
+
> For any system there is a certain amount of complexity which cannot be reduced. The question is: who deals with it—the user or the designer?
|
|
188
|
+
|
|
189
|
+
**Formulated by:** Larry Tesler
|
|
190
|
+
|
|
191
|
+
### Key Implications
|
|
192
|
+
|
|
193
|
+
1. **Absorb complexity** - Move complexity from users to the system
|
|
194
|
+
2. **Don't oversimplify** - Some complexity is inherent and necessary
|
|
195
|
+
3. **Smart defaults** - Handle common cases automatically
|
|
196
|
+
4. **Progressive disclosure** - Hide complexity until needed
|
|
197
|
+
|
|
198
|
+
### Application in UX
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
System absorbs complexity:
|
|
202
|
+
- Auto-detecting location
|
|
203
|
+
- Pre-filling forms with known data
|
|
204
|
+
- Smart suggestions and autocomplete
|
|
205
|
+
- Automatic formatting (dates, phone numbers)
|
|
206
|
+
- Intelligent defaults
|
|
207
|
+
|
|
208
|
+
Don't remove necessary complexity:
|
|
209
|
+
- Tax filing requires certain information
|
|
210
|
+
- Medical forms need complete details
|
|
211
|
+
- Security requires authentication steps
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Gestalt Principles
|
|
217
|
+
|
|
218
|
+
Principles of visual perception that explain how humans group visual elements.
|
|
219
|
+
|
|
220
|
+
### Proximity
|
|
221
|
+
Elements close together are perceived as related.
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
Use for:
|
|
225
|
+
- Grouping form fields
|
|
226
|
+
- Organizing navigation
|
|
227
|
+
- Creating visual sections
|
|
228
|
+
- Associating labels with inputs
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Similarity
|
|
232
|
+
Elements that look similar are perceived as related.
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
Use for:
|
|
236
|
+
- Consistent button styles
|
|
237
|
+
- Icon families
|
|
238
|
+
- Color coding categories
|
|
239
|
+
- Typography indicating function
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Continuity
|
|
243
|
+
Elements arranged in a line or curve are perceived as related.
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
Use for:
|
|
247
|
+
- Progress indicators
|
|
248
|
+
- Timelines
|
|
249
|
+
- Navigation flows
|
|
250
|
+
- Reading direction
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Closure
|
|
254
|
+
The mind fills in missing information to complete shapes.
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
Use for:
|
|
258
|
+
- Minimalist icons
|
|
259
|
+
- Loading indicators
|
|
260
|
+
- Implied boundaries
|
|
261
|
+
- Logo design
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Common Region
|
|
265
|
+
Elements within a boundary are perceived as grouped.
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
Use for:
|
|
269
|
+
- Card designs
|
|
270
|
+
- Form sections
|
|
271
|
+
- Modal dialogs
|
|
272
|
+
- Feature groupings
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Figure-Ground
|
|
276
|
+
The mind separates foreground from background.
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
Use for:
|
|
280
|
+
- Modal overlays
|
|
281
|
+
- Focus states
|
|
282
|
+
- Dropdown menus
|
|
283
|
+
- Image/text relationships
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Additional Important Laws
|
|
289
|
+
|
|
290
|
+
### Aesthetic-Usability Effect
|
|
291
|
+
Users often perceive aesthetically pleasing designs as more usable, even when they're not.
|
|
292
|
+
|
|
293
|
+
### Doherty Threshold
|
|
294
|
+
Productivity increases when computer and user interact at a pace (< 400ms) that ensures neither has to wait on the other.
|
|
295
|
+
|
|
296
|
+
### Law of Common Region
|
|
297
|
+
Elements tend to be perceived as groups if they share an enclosed area.
|
|
298
|
+
|
|
299
|
+
### Law of Prägnanz
|
|
300
|
+
People interpret ambiguous images as simple and complete.
|
|
301
|
+
|
|
302
|
+
### Mere Exposure Effect
|
|
303
|
+
The more exposure people have to something, the more they prefer it.
|
|
304
|
+
|
|
305
|
+
### Occam's Razor
|
|
306
|
+
Among competing hypotheses, the one with the fewest assumptions should be selected.
|
|
307
|
+
|
|
308
|
+
### Pareto Principle (80/20 Rule)
|
|
309
|
+
Roughly 80% of effects come from 20% of causes. Focus on the vital few features/screens.
|
|
310
|
+
|
|
311
|
+
### Postel's Law
|
|
312
|
+
Be liberal in what you accept and conservative in what you send.
|
|
313
|
+
|
|
314
|
+
### Serial Position Effect
|
|
315
|
+
Users best remember the first and last items in a series.
|
|
316
|
+
|
|
317
|
+
### Von Restorff Effect (Isolation Effect)
|
|
318
|
+
Items that stand out are more likely to be remembered.
|
|
319
|
+
|
|
320
|
+
### Zeigarnik Effect
|
|
321
|
+
People remember uncompleted tasks better than completed ones.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Sources
|
|
326
|
+
|
|
327
|
+
- Yablonski, J. (2020). "Laws of UX: Using Psychology to Design Better Products & Services"
|
|
328
|
+
- [lawsofux.com](https://lawsofux.com/)
|
|
329
|
+
- Nielsen Norman Group research
|
|
330
|
+
- Kahneman, D. (2011). "Thinking, Fast and Slow"
|