@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.
Files changed (61) hide show
  1. package/README.md +3 -3
  2. package/manifest.json +43 -22
  3. package/package.json +1 -1
  4. package/scripts/lib/default-skill-floor.js +5 -1
  5. package/scripts/lib/domains.js +2 -2
  6. package/scripts/lib/retired-skills.js +4 -0
  7. package/scripts/rsc.js +1 -1
  8. package/skills/design/SKILL.md +4 -3
  9. package/skills/design/evals/cases.yaml +2 -2
  10. package/skills/ftd/SKILL.md +1 -1
  11. package/skills/react/SKILL.md +2 -1
  12. package/skills/ux/SKILL.md +149 -0
  13. package/skills/ux/THIRD_PARTY.md +32 -0
  14. package/skills/ux/evals/cases.yaml +40 -0
  15. package/skills/ux/references/flows.md +124 -0
  16. package/skills/ux/upstream/UPSTREAM.json +59 -0
  17. package/skills/ux/upstream/ux-designer/GUIDE.md +180 -0
  18. package/skills/ux/upstream/ux-designer/LICENSE +21 -0
  19. package/skills/ux/upstream/ux-designer/references/01-core-principles.md +251 -0
  20. package/skills/ux/upstream/ux-designer/references/02-laws-of-ux.md +330 -0
  21. package/skills/ux/upstream/ux-designer/references/03-accessibility.md +411 -0
  22. package/skills/ux/upstream/ux-designer/references/04-visual-design.md +433 -0
  23. package/skills/ux/upstream/ux-designer/references/05-information-architecture.md +432 -0
  24. package/skills/ux/upstream/ux-designer/references/06-interaction-design.md +495 -0
  25. package/skills/ux/upstream/ux-designer/references/07-forms-and-inputs.md +491 -0
  26. package/skills/ux/upstream/ux-designer/references/08-mobile-ux.md +539 -0
  27. package/skills/ux/upstream/ux-designer/references/09-ux-writing.md +493 -0
  28. package/skills/ux/upstream/ux-designer/references/10-user-research.md +533 -0
  29. package/skills/ux/upstream/ux-designer/references/11-design-systems.md +618 -0
  30. package/skills/ux/upstream/ux-designer/references/12a-presence-awareness.md +395 -0
  31. package/skills/ux/upstream/ux-designer/references/12b-conflict-resolution-sync.md +420 -0
  32. package/skills/ux/upstream/ux-designer/references/13a-canvas-navigation.md +388 -0
  33. package/skills/ux/upstream/ux-designer/references/13b-canvas-objects-performance.md +559 -0
  34. package/skills/ux/upstream/ux-designer/references/14-ai-ux-patterns.md +511 -0
  35. package/skills/ux/upstream/ux-designer/references/15-ethical-design.md +419 -0
  36. package/skills/ux/upstream/ux-designer/references/16-onboarding.md +430 -0
  37. package/skills/ux/upstream/ux-designer/references/17-notifications.md +461 -0
  38. package/skills/ux/upstream/ux-designer/references/18-data-visualization.md +453 -0
  39. package/skills/ux/upstream/ux-designer/references/19-search-ux.md +479 -0
  40. package/skills/ux/upstream/ux-designer/references/20-emotional-design.md +382 -0
  41. package/skills/ux/upstream/ux-designer/references/21-data-tables.md +629 -0
  42. package/skills/ux/upstream/ux-designer/references/22-performance-ux.md +626 -0
  43. package/skills/ux/upstream/ux-designer/references/23-internationalization.md +347 -0
  44. package/skills/ux/upstream/ux-designer/references/24-voice-and-multimodal.md +308 -0
  45. package/skills/ux/upstream/ux-designer/references/25a-barcode-camera-scanning.md +342 -0
  46. package/skills/ux/upstream/ux-designer/references/25b-barcode-scanner-workflows.md +412 -0
  47. package/skills/ux/upstream/ux-designer/references/25c-barcode-display.md +277 -0
  48. package/skills/ux/upstream/ux-usability-foundations/GUIDE.md +285 -0
  49. package/skills/ux/upstream/ux-usability-foundations/LICENSE +21 -0
  50. package/skills/ux/upstream/ux-usability-foundations/references/anti-patterns.md +267 -0
  51. package/skills/ux/upstream/ux-usability-foundations/references/checklists.md +130 -0
  52. package/skills/ux/upstream/ux-usability-foundations/references/decision-prompts.md +340 -0
  53. package/skills/ux/upstream/ux-usability-foundations/references/principle-cards.md +449 -0
  54. package/skills/worktrees/SKILL.md +19 -5
  55. package/targets/branch-guard.mjs +59 -4
  56. package/targets/clone-bootstrap.mjs +1 -1
  57. package/targets/session-memory-adapter.mjs +2 -2
  58. package/targets/team-safe-start.mjs +1 -0
  59. package/targets/worktree-reaper.mjs +14 -1
  60. package/skills/ui-engineering/SKILL.md +0 -113
  61. package/skills/ui-engineering/evals/cases.yaml +0 -38
@@ -0,0 +1,382 @@
1
+ # Emotional Design & Trust
2
+
3
+ Emotional design goes beyond usability to create meaningful, trustworthy, and delightful experiences. This reference covers Don Norman's three levels of design, trust-building patterns, microinteraction delight, error empathy, and brand personality in UI.
4
+
5
+ ---
6
+
7
+ ## Contents
8
+
9
+ - Don Norman's Three Levels of Design
10
+ - Building Trust
11
+ - Delight Through Microinteractions
12
+ - Error Empathy
13
+ - Brand Personality in UI
14
+ - Key Metrics
15
+ - Anti-Patterns
16
+ - Sources
17
+
18
+ ---
19
+
20
+ ## Don Norman's Three Levels of Design
21
+
22
+ ### 1. Visceral Level — "I want it"
23
+ The immediate, instinctive reaction to appearance before any interaction.
24
+
25
+ **Design for first impressions:**
26
+ - Clean, polished visual design creates instant credibility
27
+ - Color, imagery, and typography set emotional tone
28
+ - Animation and motion create sense of quality
29
+ - Professional aesthetic increases perceived trustworthiness
30
+
31
+ **Implementation:**
32
+ ```
33
+ First 50ms: User forms aesthetic impression
34
+ First 3s: User decides to stay or leave
35
+ First 30s: User evaluates overall credibility
36
+
37
+ Priority:
38
+ 1. Visual cleanliness (whitespace, alignment)
39
+ 2. Professional typography
40
+ 3. High-quality imagery
41
+ 4. Consistent color palette
42
+ 5. Smooth loading experience (skeleton screens, not spinners)
43
+ ```
44
+
45
+ ### 2. Behavioral Level — "I can use it"
46
+ The experience of using the product — functionality, usability, and feel.
47
+
48
+ **Design for confidence:**
49
+ - Predictable, responsive interactions build trust
50
+ - Clear feedback on every action
51
+ - Forgiving design that handles mistakes gracefully
52
+ - Performance that matches expectations
53
+
54
+ **Implementation:**
55
+ ```
56
+ Every interaction should feel:
57
+ ✅ Responsive — Feedback within 100ms
58
+ ✅ Predictable — Consistent behavior across contexts
59
+ ✅ Forgiving — Easy to undo, hard to make irreversible errors
60
+ ✅ Efficient — Minimum steps to accomplish goals
61
+ ✅ Clear — No ambiguity about what happened or what to do next
62
+ ```
63
+
64
+ ### 3. Reflective Level — "I love it"
65
+ The conscious assessment — does this product reflect my identity and values?
66
+
67
+ **Design for meaning:**
68
+ - Brand storytelling through design decisions
69
+ - Personalization that feels thoughtful, not creepy
70
+ - Social proof and community belonging
71
+ - Sustainable and ethical design choices
72
+
73
+ **Implementation:**
74
+ ```
75
+ Reflective design elements:
76
+ - "About" pages that share mission and values
77
+ - Sustainability indicators (carbon-neutral badge, etc.)
78
+ - Customization that lets users express identity
79
+ - Community features that create belonging
80
+ - Transparent business practices visible in UI
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Building Trust
86
+
87
+ ### Trust Signals by Context
88
+
89
+ | Context | Trust Signals |
90
+ |---------|--------------|
91
+ | **E-commerce** | Secure checkout badge, return policy, real reviews, price guarantee |
92
+ | **SaaS** | Uptime status, security certifications, data location, customer logos |
93
+ | **Healthcare** | Credentials display, HIPAA badge, privacy assurance, medical review |
94
+ | **Financial** | Encryption indicators, regulatory compliance, insurance/FDIC badges |
95
+ | **Social** | Verification badges, community guidelines, moderation transparency |
96
+
97
+ ### Social Proof Patterns
98
+
99
+ ```
100
+ Customer logos (B2B):
101
+ ┌──────────────────────────────────────────┐
102
+ │ Trusted by 10,000+ teams including: │
103
+ │ [Logo] [Logo] [Logo] [Logo] [Logo] │
104
+ └──────────────────────────────────────────┘
105
+
106
+ Testimonials:
107
+ ┌──────────────────────────────────────────┐
108
+ │ ⭐⭐⭐⭐⭐ │
109
+ │ "This tool transformed our workflow." │
110
+ │ — Alex Chen, CTO at Acme Inc │
111
+ │ [photo] │
112
+ └──────────────────────────────────────────┘
113
+
114
+ Activity indicators:
115
+ ┌──────────────────────────────────────────┐
116
+ │ 🟢 1,234 people using this right now │
117
+ │ 📊 50,000+ projects created this month │
118
+ └──────────────────────────────────────────┘
119
+
120
+ Reviews:
121
+ ┌──────────────────────────────────────────┐
122
+ │ 4.8/5 ⭐⭐⭐⭐⭐ (2,341 reviews) │
123
+ │ ████████████████████░ 5★ (1,890) │
124
+ │ ████░░░░░░░░░░░░░░░░ 4★ (312) │
125
+ │ █░░░░░░░░░░░░░░░░░░░ 3★ (89) │
126
+ │ ░░░░░░░░░░░░░░░░░░░░ 2★ (31) │
127
+ │ ░░░░░░░░░░░░░░░░░░░░ 1★ (19) │
128
+ └──────────────────────────────────────────┘
129
+ ```
130
+
131
+ **Best practices:**
132
+ - Use real names, photos, and company names (not "User123")
133
+ - Show negative reviews too — 4.8 stars is more credible than 5.0
134
+ - Include specific details ("saved 40% on costs" > "great product")
135
+ - Verified purchase/user badges
136
+ - Recent reviews weighted more heavily in display
137
+
138
+ ### Security Indicators
139
+
140
+ ```
141
+ Checkout:
142
+ ┌──────────────────────────────────────────┐
143
+ │ 🔒 Secure checkout │
144
+ │ Your payment info is encrypted │
145
+ │ │
146
+ │ Card: [ ] │
147
+ │ │
148
+ │ [Pay $42.00] │
149
+ │ │
150
+ │ [🔒 SSL] [PCI DSS] [Visa] [Mastercard]│
151
+ └──────────────────────────────────────────┘
152
+ ```
153
+
154
+ - Lock icon near sensitive input fields
155
+ - "Secure" or "encrypted" labels during data entry
156
+ - Security certification badges (SSL, PCI, SOC 2)
157
+ - Payment provider logos (Stripe, PayPal)
158
+ - Don't overdo it — too many badges reduces credibility
159
+
160
+ ### Transparent Pricing
161
+
162
+ - Show all costs upfront (no hidden fees)
163
+ - Clear feature comparison between plans
164
+ - "No credit card required" for free trials
165
+ - Money-back guarantee prominently displayed
166
+ - Annual vs. monthly pricing clearly compared
167
+
168
+ ---
169
+
170
+ ## Delight Through Microinteractions
171
+
172
+ ### When to Add Delight
173
+
174
+ ```
175
+ Good moments for delight:
176
+ ✅ Task completion (confetti on milestone)
177
+ ✅ First-time achievement (badge unlock)
178
+ ✅ Loading waits (playful animation)
179
+ ✅ Empty states (friendly illustration)
180
+ ✅ Easter eggs (hidden surprises for power users)
181
+
182
+ Bad moments for delight:
183
+ ❌ During errors (not the time for jokes)
184
+ ❌ In critical workflows (checkout, payment)
185
+ ❌ Repeated actions (animation fatigue)
186
+ ❌ When it slows the user down
187
+ ```
188
+
189
+ ### Celebration Animations
190
+
191
+ ```
192
+ Achievement unlocked:
193
+ ┌──────────────────────────────────────────┐
194
+ │ │
195
+ │ 🎉 Congratulations! │
196
+ │ │
197
+ │ You completed your first project │
198
+ │ │
199
+ │ [🏆 View Badge] │
200
+ │ │
201
+ └──────────────────────────────────────────┘
202
+ + confetti particle animation (1.5s)
203
+ + Scale-up entrance (300ms, ease-out)
204
+ + Respect prefers-reduced-motion
205
+ ```
206
+
207
+ - Use sparingly — delight loses effect through repetition
208
+ - Always respect `prefers-reduced-motion`
209
+ - Keep animations short (< 2 seconds)
210
+ - Make them dismissible (click anywhere to close)
211
+ - Tie to meaningful achievements, not trivial actions
212
+
213
+ ### Personality in Details
214
+
215
+ ```
216
+ Pull-to-refresh: Custom animation matching brand
217
+ Loading state: Playful tip or quote instead of generic spinner
218
+ 404 page: Illustrated, on-brand, with helpful navigation
219
+ Empty inbox: "All caught up! 🎉" instead of "No messages"
220
+ Hover states: Subtle, satisfying micro-animations
221
+ Sound design: Optional, subtle interaction sounds
222
+ ```
223
+
224
+ ### Easter Eggs
225
+
226
+ - Hidden features discovered through exploration (Konami code, etc.)
227
+ - Fun but never affect core functionality
228
+ - Discoverable through word-of-mouth and community
229
+ - Must not interfere with accessibility or usability
230
+
231
+ ---
232
+
233
+ ## Error Empathy
234
+
235
+ ### Blame-Free Language
236
+
237
+ ```
238
+ ❌ "Error 403: Forbidden. You do not have permission."
239
+ ❌ "Invalid input. Try again."
240
+ ❌ "You entered an incorrect password."
241
+
242
+ ✅ "You don't have access to this page. Contact your admin for access."
243
+ ✅ "That didn't match what we expected. Here's what we're looking for..."
244
+ ✅ "That password doesn't match our records. Reset your password?"
245
+ ```
246
+
247
+ **Principles:**
248
+ - Never blame the user ("you failed", "invalid", "wrong")
249
+ - Explain what happened in plain language
250
+ - Suggest a clear next step
251
+ - Use "we" language ("We couldn't process..." not "You failed to...")
252
+ - Maintain the same brand voice even in errors
253
+
254
+ ### Error Recovery Assistance
255
+
256
+ ```
257
+ ┌──────────────────────────────────────────┐
258
+ │ ⚠️ We couldn't save your changes │
259
+ │ │
260
+ │ Your internet connection was lost. │
261
+ │ Your changes are saved locally and │
262
+ │ will sync when you're back online. │
263
+ │ │
264
+ │ [Try again now] [Work offline] │
265
+ └──────────────────────────────────────────┘
266
+ ```
267
+
268
+ - Preserve user's work (never lose data due to errors)
269
+ - Offer specific recovery actions
270
+ - Auto-retry where appropriate (with indication)
271
+ - Provide alternative paths ("Save locally", "Try different method")
272
+ - Show progress recovery: "You were on step 3 of 5. Continue?"
273
+
274
+ ### 404 / Error Pages
275
+
276
+ ```
277
+ ┌──────────────────────────────────────────┐
278
+ │ │
279
+ │ 🗺️ Page Not Found │
280
+ │ │
281
+ │ We couldn't find what you're looking │
282
+ │ for. It may have been moved or │
283
+ │ removed. │
284
+ │ │
285
+ │ [Go to Homepage] [Search] │
286
+ │ │
287
+ │ Popular pages: │
288
+ │ • Dashboard │
289
+ │ • Documentation │
290
+ │ • Support │
291
+ │ │
292
+ └──────────────────────────────────────────┘
293
+ ```
294
+
295
+ - On-brand illustration (not generic)
296
+ - Clear explanation without technical jargon (no "404" as primary message)
297
+ - Navigation options (home, search, popular pages)
298
+ - Report option if user expects the page to exist
299
+
300
+ ---
301
+
302
+ ## Brand Personality in UI
303
+
304
+ ### Voice Consistency
305
+
306
+ | Brand Trait | UI Voice Examples |
307
+ |-------------|-------------------|
308
+ | **Professional** | "Your report is ready for download." |
309
+ | **Friendly** | "All done! Your report is ready." |
310
+ | **Playful** | "Ta-da! Fresh report, hot off the press." |
311
+ | **Technical** | "Report generated. 42 pages, 3.2MB." |
312
+
313
+ **Voice should be consistent across:**
314
+ - Button labels and CTAs
315
+ - Error messages and empty states
316
+ - Onboarding copy and tooltips
317
+ - Email notifications
318
+ - Loading and success messages
319
+
320
+ ### Illustration Style
321
+
322
+ ```
323
+ Consistent illustration system:
324
+ ├── Same color palette as brand
325
+ ├── Consistent line weight and style
326
+ ├── Diverse, inclusive character representation
327
+ ├── Used at key moments (empty states, onboarding, errors)
328
+ └── Not overused (illustration fatigue)
329
+
330
+ Usage:
331
+ ✅ Empty states, error pages, onboarding, feature highlights
332
+ ❌ Every single screen, decorative-only placements
333
+ ```
334
+
335
+ ### Animation Character
336
+
337
+ - Motion should match brand energy (corporate = subtle, consumer = playful)
338
+ - Consistent easing curves across all animations
339
+ - Interaction sounds (if any) match brand tone
340
+ - Loading animations can carry brand personality
341
+ - All motion must respect `prefers-reduced-motion`
342
+
343
+ ---
344
+
345
+ ## Key Metrics
346
+
347
+ | Metric | Target | Context |
348
+ |--------|--------|---------|
349
+ | Net Promoter Score (NPS) | > 50 | User sentiment |
350
+ | Customer satisfaction (CSAT) | > 4.2/5 | Post-interaction rating |
351
+ | Trust score | > 80% | Survey: "I trust this product" |
352
+ | Error recovery rate | > 85% | Users who recover from errors |
353
+ | Brand recognition | Track | Consistent design = recall |
354
+ | Return visitor rate | > 40% | Users who come back voluntarily |
355
+ | Support ticket rate | < 2% | Low = fewer frustrations |
356
+
357
+ ---
358
+
359
+ ## Anti-Patterns
360
+
361
+ 1. **Forced delight** — Animation or personality where users expect efficiency
362
+ 2. **Inconsistent voice** — Professional in one area, casual in another
363
+ 3. **Trust badge overload** — 15 security badges that look like spam
364
+ 4. **Fake social proof** — Made-up testimonials or inflated numbers
365
+ 5. **Error blame** — "You did something wrong" instead of helping
366
+ 6. **Animation fatigue** — Same celebration on every save
367
+ 7. **Dark delight** — Using personality to distract from deceptive patterns
368
+ 8. **Ignoring negative emotions** — Only designing for happy paths
369
+ 9. **Generic stock imagery** — Breaking brand consistency with off-brand photos
370
+ 10. **Humor in critical moments** — Jokes during payment failures or data loss
371
+
372
+ ---
373
+
374
+ ## Sources
375
+
376
+ - Norman, D. (2004). "Emotional Design: Why We Love (or Hate) Everyday Things"
377
+ - Walter, A. (2011). "Designing for Emotion" — A Book Apart
378
+ - [Nielsen Norman Group: Trust in UX](https://www.nngroup.com/topic/trust/) — Trust research
379
+ - [Baymard Institute: Trust & Credibility](https://baymard.com/blog/categories/trust) — E-commerce trust
380
+ - [Lottie Animations](https://lottiefiles.com/) — Microinteraction library
381
+ - [Laws of UX: Peak-End Rule](https://lawsofux.com/peak-end-rule/) — Emotional experience design
382
+ - [Material Design: Motion](https://m3.material.io/styles/motion/overview) — Animation personality