agentic-team-templates 0.16.0 → 0.18.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 +30 -24
- package/package.json +1 -1
- package/src/index.js +221 -123
- package/src/index.test.js +138 -66
- package/templates/ux-designer/.cursor/rules/accessibility.md +214 -0
- package/templates/ux-designer/.cursor/rules/emotional-design.md +217 -0
- package/templates/ux-designer/.cursor/rules/handoff.md +251 -0
- package/templates/ux-designer/.cursor/rules/information-architecture.md +193 -0
- package/templates/ux-designer/.cursor/rules/interaction-design.md +221 -0
- package/templates/ux-designer/.cursor/rules/overview.md +110 -0
- package/templates/ux-designer/.cursor/rules/research.md +181 -0
- package/templates/ux-designer/.cursor/rules/visual-design.md +191 -0
- package/templates/ux-designer/CLAUDE.md +124 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/defi-patterns.md +0 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/gas-optimization.md +0 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/security.md +0 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/smart-contracts.md +0 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/blockchain/{.cursorrules → .cursor/rules}/web3-integration.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/architecture.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/arguments.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/distribution.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/cli-tools/{.cursorrules → .cursor/rules}/user-experience.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/concurrency.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/memory-and-ownership.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/modern-cpp.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/cpp-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/aspnet-core.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/async-patterns.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/dependency-injection.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/language-features.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/csharp-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/data-modeling.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/data-quality.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/pipeline-design.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/security.md +0 -0
- /package/templates/data-engineering/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/capacity-planning.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/change-management.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/chaos-engineering.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/disaster-recovery.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/incident-management.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/observability.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/postmortems.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/runbooks.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/slo-sli.md +0 -0
- /package/templates/devops-sre/{.cursorrules → .cursor/rules}/toil-reduction.md +0 -0
- /package/templates/documentation/{.cursorrules → .cursor/rules}/adr.md +0 -0
- /package/templates/documentation/{.cursorrules → .cursor/rules}/api-documentation.md +0 -0
- /package/templates/documentation/{.cursorrules → .cursor/rules}/code-comments.md +0 -0
- /package/templates/documentation/{.cursorrules → .cursor/rules}/maintenance.md +0 -0
- /package/templates/documentation/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/documentation/{.cursorrules → .cursor/rules}/readme-standards.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/accessibility.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/assessment.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/curriculum.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/engagement.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/instructional-design.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/educator/{.cursorrules → .cursor/rules}/retention.md +0 -0
- /package/templates/fullstack/{.cursorrules → .cursor/rules}/api-contracts.md +0 -0
- /package/templates/fullstack/{.cursorrules → .cursor/rules}/architecture.md +0 -0
- /package/templates/fullstack/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/fullstack/{.cursorrules → .cursor/rules}/shared-types.md +0 -0
- /package/templates/fullstack/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/concurrency.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/interfaces-and-types.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/production-patterns.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/stdlib-and-tooling.md +0 -0
- /package/templates/golang-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/concurrency.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/modern-java.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/persistence.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/spring-boot.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/java-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/language-deep-dive.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/node-patterns.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/react-patterns.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/javascript-expert/{.cursorrules → .cursor/rules}/typescript-deep-dive.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/coroutines.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/frameworks.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/language-features.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/kotlin-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/data-engineering.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/deployment.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/model-development.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/monitoring.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/security.md +0 -0
- /package/templates/ml-ai/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/mobile/{.cursorrules → .cursor/rules}/navigation.md +0 -0
- /package/templates/mobile/{.cursorrules → .cursor/rules}/offline-first.md +0 -0
- /package/templates/mobile/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/mobile/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/mobile/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/ci-cd.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/developer-experience.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/infrastructure-as-code.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/kubernetes.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/observability.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/security.md +0 -0
- /package/templates/platform-engineering/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/product-manager/{.cursorrules → .cursor/rules}/communication.md +0 -0
- /package/templates/product-manager/{.cursorrules → .cursor/rules}/discovery.md +0 -0
- /package/templates/product-manager/{.cursorrules → .cursor/rules}/metrics.md +0 -0
- /package/templates/product-manager/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/product-manager/{.cursorrules → .cursor/rules}/prioritization.md +0 -0
- /package/templates/product-manager/{.cursorrules → .cursor/rules}/requirements.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/async-python.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/patterns-and-idioms.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/type-system.md +0 -0
- /package/templates/python-expert/{.cursorrules → .cursor/rules}/web-and-apis.md +0 -0
- /package/templates/qa-engineering/{.cursorrules → .cursor/rules}/automation.md +0 -0
- /package/templates/qa-engineering/{.cursorrules → .cursor/rules}/metrics.md +0 -0
- /package/templates/qa-engineering/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/qa-engineering/{.cursorrules → .cursor/rules}/quality-gates.md +0 -0
- /package/templates/qa-engineering/{.cursorrules → .cursor/rules}/test-design.md +0 -0
- /package/templates/qa-engineering/{.cursorrules → .cursor/rules}/test-strategy.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/concurrency.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/ecosystem-and-tooling.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/ownership-and-borrowing.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/performance-and-unsafe.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/rust-expert/{.cursorrules → .cursor/rules}/traits-and-generics.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/concurrency.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/language-features.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/swiftui.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/swift-expert/{.cursorrules → .cursor/rules}/tooling.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/advanced-techniques.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/ci-cd-integration.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/performance-testing.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/quality-metrics.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/reliability.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/tdd-methodology.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/test-data.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/test-design.md +0 -0
- /package/templates/testing/{.cursorrules → .cursor/rules}/test-types.md +0 -0
- /package/templates/utility-agent/{.cursorrules → .cursor/rules}/action-control.md +0 -0
- /package/templates/utility-agent/{.cursorrules → .cursor/rules}/context-management.md +0 -0
- /package/templates/utility-agent/{.cursorrules → .cursor/rules}/hallucination-prevention.md +0 -0
- /package/templates/utility-agent/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/utility-agent/{.cursorrules → .cursor/rules}/token-optimization.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/api-design.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/authentication.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/database-patterns.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/error-handling.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/security.md +0 -0
- /package/templates/web-backend/{.cursorrules → .cursor/rules}/testing.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/accessibility.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/component-patterns.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/overview.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/performance.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/state-management.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/styling.md +0 -0
- /package/templates/web-frontend/{.cursorrules → .cursor/rules}/testing.md +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Emotional Design
|
|
2
|
+
|
|
3
|
+
Designing experiences that create positive emotional connections, build trust, and drive engagement through psychology and behavioral science.
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
**Eliminate frustration first, then add delight.** You cannot create positive emotions on top of a frustrating foundation. Fix the pain points before polishing the surface.
|
|
8
|
+
|
|
9
|
+
## Norman's Three Levels of Emotional Design
|
|
10
|
+
|
|
11
|
+
From Don Norman's *Emotional Design*:
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
1. Visceral Level — Immediate, instinctive reaction
|
|
15
|
+
- First impression, visual appeal, aesthetic quality
|
|
16
|
+
- "This looks professional/trustworthy/beautiful"
|
|
17
|
+
- Driven by: color, typography, imagery, spacing, polish
|
|
18
|
+
|
|
19
|
+
2. Behavioral Level — Experience during use
|
|
20
|
+
- Usability, effectiveness, efficiency, pleasure of use
|
|
21
|
+
- "This is easy to use and works exactly how I expected"
|
|
22
|
+
- Driven by: interaction design, performance, reliability, feedback
|
|
23
|
+
|
|
24
|
+
3. Reflective Level — Meaning and memory after use
|
|
25
|
+
- Self-image, personal meaning, overall satisfaction
|
|
26
|
+
- "I feel smart/productive/capable using this"
|
|
27
|
+
- Driven by: brand perception, social proof, accomplishment, identity
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Application Priority
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
Always in this order:
|
|
34
|
+
1. Behavioral — If it doesn't work well, nothing else matters
|
|
35
|
+
2. Visceral — First impressions determine whether users try it at all
|
|
36
|
+
3. Reflective — Long-term satisfaction drives retention and advocacy
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Dopamine and Reward Patterns (Ethical Application)
|
|
40
|
+
|
|
41
|
+
Understanding reward-driven behavior to create engaging experiences without manipulation.
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
Ethical reward patterns:
|
|
45
|
+
- Variable rewards: Personalized content feeds, curated recommendations
|
|
46
|
+
✅ Showing relevant content the user will genuinely value
|
|
47
|
+
❌ Infinite scroll designed to hijack attention
|
|
48
|
+
|
|
49
|
+
- Achievement: Progress bars, completion badges, skill milestones
|
|
50
|
+
✅ Celebrating genuine accomplishment (course completed, goal reached)
|
|
51
|
+
❌ Fake achievements designed to manufacture engagement
|
|
52
|
+
|
|
53
|
+
- Social validation: Meaningful feedback from peers
|
|
54
|
+
✅ Showing who benefited from a contribution
|
|
55
|
+
❌ Vanity metrics designed to create comparison anxiety
|
|
56
|
+
|
|
57
|
+
Ethical boundary:
|
|
58
|
+
Ask: "Would users feel good about this if they understood exactly how it works?"
|
|
59
|
+
If yes → proceed. If no → redesign.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Trust Building
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
Trust signals:
|
|
66
|
+
- Transparency: Show what data you collect, why, and how it's used
|
|
67
|
+
- Consistency: Predictable behavior across all interactions
|
|
68
|
+
- Competence: Polish, performance, and reliability signal quality
|
|
69
|
+
- Security indicators: HTTPS, secure payment icons, privacy badges
|
|
70
|
+
- Social proof: Real testimonials, usage stats, recognizable clients
|
|
71
|
+
- Error handling: Graceful failures with honest communication
|
|
72
|
+
|
|
73
|
+
Trust breakers:
|
|
74
|
+
- Hidden fees or surprise costs
|
|
75
|
+
- Manipulative urgency ("Only 2 left!")
|
|
76
|
+
- Bait-and-switch (promising one thing, delivering another)
|
|
77
|
+
- Data collection without clear consent
|
|
78
|
+
- Broken promises (features that don't work as advertised)
|
|
79
|
+
- Inconsistent behavior between screens or sessions
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Frustration Reduction
|
|
83
|
+
|
|
84
|
+
The highest-impact emotional design work is removing negative experiences.
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
Common frustration sources and fixes:
|
|
88
|
+
|
|
89
|
+
1. Unexpected data loss
|
|
90
|
+
→ Auto-save continuously; confirm before destructive actions
|
|
91
|
+
|
|
92
|
+
2. Unclear errors
|
|
93
|
+
→ Plain language errors with specific recovery steps
|
|
94
|
+
|
|
95
|
+
3. Long wait times
|
|
96
|
+
→ Skeleton screens, progress indicators, optimistic UI
|
|
97
|
+
|
|
98
|
+
4. Dead ends
|
|
99
|
+
→ Always provide a next action; never leave users stranded
|
|
100
|
+
|
|
101
|
+
5. Forced repetition
|
|
102
|
+
→ Remember user preferences; pre-fill known information
|
|
103
|
+
|
|
104
|
+
6. Hidden functionality
|
|
105
|
+
→ Make discoverable; use progressive disclosure, not hiding
|
|
106
|
+
|
|
107
|
+
7. Inconsistent behavior
|
|
108
|
+
→ Same action produces same result everywhere
|
|
109
|
+
|
|
110
|
+
8. Interrupted flow
|
|
111
|
+
→ Minimize modals, alerts, and interruptions during tasks
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Peak-End Rule (Daniel Kahneman)
|
|
115
|
+
|
|
116
|
+
People judge experiences based on the peak (most intense moment) and the end (final moment), not the average.
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
Application:
|
|
120
|
+
- Design peak moments: Celebrate accomplishments, surprise with delight
|
|
121
|
+
- Protect the ending: The last interaction shapes overall memory
|
|
122
|
+
- Avoid negative peaks: A single terrible moment defines the whole experience
|
|
123
|
+
|
|
124
|
+
Examples:
|
|
125
|
+
✅ Onboarding ends with a personalized welcome and clear first action
|
|
126
|
+
❌ Onboarding ends with a generic dashboard and no guidance
|
|
127
|
+
|
|
128
|
+
✅ Checkout ends with confirmation, estimated delivery, and a thank-you
|
|
129
|
+
❌ Checkout ends with an order number and nothing else
|
|
130
|
+
|
|
131
|
+
✅ Error recovery ends with success confirmation and encouragement
|
|
132
|
+
❌ Error recovery ends by silently returning to a generic page
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Aesthetic-Usability Effect
|
|
136
|
+
|
|
137
|
+
Users perceive aesthetically pleasing designs as more usable, even when they're not.
|
|
138
|
+
|
|
139
|
+
```markdown
|
|
140
|
+
Application:
|
|
141
|
+
- Visual polish creates a forgiveness buffer for minor usability issues
|
|
142
|
+
- But it cannot compensate for fundamentally broken interactions
|
|
143
|
+
- Invest in visual quality after behavioral quality is solid
|
|
144
|
+
- Polish is not optional — it affects perceived trustworthiness and competence
|
|
145
|
+
|
|
146
|
+
Warning:
|
|
147
|
+
- Don't use aesthetics to mask usability problems
|
|
148
|
+
- Beautiful and broken is worse than plain and functional
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Micro-Delight
|
|
152
|
+
|
|
153
|
+
Small, unexpected positive moments that create emotional connection.
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
Examples:
|
|
157
|
+
- Confetti animation on milestone completion
|
|
158
|
+
- Witty empty states: "No messages yet. Enjoy the silence."
|
|
159
|
+
- Personalized greetings based on time of day
|
|
160
|
+
- Smooth, satisfying animations for common actions
|
|
161
|
+
- Easter eggs for power users
|
|
162
|
+
|
|
163
|
+
Rules:
|
|
164
|
+
- Delight should never interfere with task completion
|
|
165
|
+
- Respect prefers-reduced-motion for animation-based delight
|
|
166
|
+
- Don't repeat the same delight too often (it becomes noise)
|
|
167
|
+
- Delight should feel authentic to the brand voice
|
|
168
|
+
- Never use delight during error or frustration states
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Dark Pattern Avoidance
|
|
172
|
+
|
|
173
|
+
Designing ethically means actively choosing not to manipulate users.
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
Dark patterns to reject:
|
|
177
|
+
- Confirmshaming: "No thanks, I don't want to save money"
|
|
178
|
+
- Hidden costs: Fees revealed only at checkout
|
|
179
|
+
- Trick questions: Double negatives in opt-out checkboxes
|
|
180
|
+
- Forced continuity: Hard-to-cancel subscriptions
|
|
181
|
+
- Disguised ads: Ads styled as content or navigation
|
|
182
|
+
- Friend spam: Importing contacts without explicit consent
|
|
183
|
+
- Roach motel: Easy to sign up, impossible to delete account
|
|
184
|
+
- Misdirection: Visual design that draws attention away from what matters
|
|
185
|
+
- Privacy zuckering: Confusing settings that maximize data collection
|
|
186
|
+
|
|
187
|
+
Ethical test:
|
|
188
|
+
"If I explained this exact flow to a journalist, would I be proud?"
|
|
189
|
+
If yes → ship it. If no → redesign it.
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Onboarding Emotional Arc
|
|
193
|
+
|
|
194
|
+
```markdown
|
|
195
|
+
Ideal emotional progression:
|
|
196
|
+
1. Curiosity (landing page) → "This looks like it could solve my problem"
|
|
197
|
+
2. Confidence (sign up) → "This was easy, no surprises"
|
|
198
|
+
3. Competence (first action) → "I did it! This works!"
|
|
199
|
+
4. Investment (customization) → "This is starting to feel like mine"
|
|
200
|
+
5. Achievement (first milestone) → "I'm making real progress"
|
|
201
|
+
|
|
202
|
+
Each stage should have:
|
|
203
|
+
- Clear, achievable next action
|
|
204
|
+
- Immediate positive feedback
|
|
205
|
+
- Zero unnecessary friction
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Anti-Patterns
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
- Delight without function: Animation and personality over usability
|
|
212
|
+
- Emotional manipulation: Guilt, shame, or fear to drive action
|
|
213
|
+
- Ignoring negative emotions: Focusing on delight while users are frustrated
|
|
214
|
+
- Tone-deaf celebration: Congratulating users for mundane tasks
|
|
215
|
+
- Forced fun: Gamification that feels patronizing or irrelevant
|
|
216
|
+
- Copy-and-paste personality: Brand voice that feels generic or insincere
|
|
217
|
+
```
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Design Handoff
|
|
2
|
+
|
|
3
|
+
Bridging design and development through clear specifications, shared language, and measurable quality standards.
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
**Handoff is not a moment — it is a continuous conversation.** Designers and developers should collaborate from the start, not pass artifacts over a wall.
|
|
8
|
+
|
|
9
|
+
## Nielsen's 10 Usability Heuristics
|
|
10
|
+
|
|
11
|
+
The standard evaluation framework for interface usability:
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
1. Visibility of System Status
|
|
15
|
+
- Always keep users informed about what's happening
|
|
16
|
+
- Progress bars, loading states, status indicators
|
|
17
|
+
|
|
18
|
+
2. Match Between System and Real World
|
|
19
|
+
- Use language and concepts familiar to the user
|
|
20
|
+
- Follow real-world conventions; information appears in natural order
|
|
21
|
+
|
|
22
|
+
3. User Control and Freedom
|
|
23
|
+
- Support undo and redo
|
|
24
|
+
- Provide clearly marked "emergency exits"
|
|
25
|
+
|
|
26
|
+
4. Consistency and Standards
|
|
27
|
+
- Follow platform conventions
|
|
28
|
+
- Same words/actions mean the same things everywhere
|
|
29
|
+
|
|
30
|
+
5. Error Prevention
|
|
31
|
+
- Prevent errors before they occur
|
|
32
|
+
- Confirmation dialogs for destructive actions
|
|
33
|
+
- Constraints that eliminate impossible states
|
|
34
|
+
|
|
35
|
+
6. Recognition Rather Than Recall
|
|
36
|
+
- Make options visible; minimize memory load
|
|
37
|
+
- Instructions visible or easily retrievable
|
|
38
|
+
|
|
39
|
+
7. Flexibility and Efficiency of Use
|
|
40
|
+
- Accelerators for expert users (shortcuts, bulk actions)
|
|
41
|
+
- Customizable frequent actions
|
|
42
|
+
|
|
43
|
+
8. Aesthetic and Minimalist Design
|
|
44
|
+
- No irrelevant or rarely needed information
|
|
45
|
+
- Every element competes for attention — earn its place
|
|
46
|
+
|
|
47
|
+
9. Help Users Recognize, Diagnose, and Recover From Errors
|
|
48
|
+
- Plain language error messages (no codes)
|
|
49
|
+
- Precisely indicate the problem
|
|
50
|
+
- Suggest a solution
|
|
51
|
+
|
|
52
|
+
10. Help and Documentation
|
|
53
|
+
- Searchable, task-focused
|
|
54
|
+
- Concrete steps to follow
|
|
55
|
+
- Keep it concise
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Specification Standards
|
|
59
|
+
|
|
60
|
+
What every design handoff must include:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
Layout:
|
|
64
|
+
- Responsive behavior at all breakpoints (mobile, tablet, desktop)
|
|
65
|
+
- Spacing values using design tokens (not arbitrary pixel values)
|
|
66
|
+
- Grid alignment and column usage
|
|
67
|
+
- Max-width and min-width constraints
|
|
68
|
+
|
|
69
|
+
Typography:
|
|
70
|
+
- Font family, weight, size, line-height, letter-spacing (as tokens)
|
|
71
|
+
- Heading hierarchy applied correctly
|
|
72
|
+
- Truncation behavior for long content
|
|
73
|
+
|
|
74
|
+
Color:
|
|
75
|
+
- All colors referenced as design tokens
|
|
76
|
+
- Light and dark mode specifications
|
|
77
|
+
- Contrast ratios documented for key combinations
|
|
78
|
+
|
|
79
|
+
Components:
|
|
80
|
+
- All states specified (default, hover, focus, active, disabled, error, loading, empty)
|
|
81
|
+
- Interaction behavior described (what happens on click, focus, blur)
|
|
82
|
+
- Animation/transition specifications (duration, easing, trigger)
|
|
83
|
+
- Responsive adaptations per breakpoint
|
|
84
|
+
|
|
85
|
+
Content:
|
|
86
|
+
- Real content examples (not lorem ipsum for final specs)
|
|
87
|
+
- Character limits and truncation rules
|
|
88
|
+
- Empty state designs
|
|
89
|
+
- Error message copy
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Design Annotations
|
|
93
|
+
|
|
94
|
+
Mark up designs with implementation context:
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
Annotation types:
|
|
98
|
+
- Spacing callouts: Token names and values for margins/padding
|
|
99
|
+
- Interaction notes: "On hover, show tooltip after 500ms delay"
|
|
100
|
+
- Responsive notes: "Stack columns below 768px"
|
|
101
|
+
- Accessibility notes: "aria-label='Close dialog'", "Focus trap in modal"
|
|
102
|
+
- Animation notes: "Fade in 200ms ease-out on mount"
|
|
103
|
+
- Edge cases: "Truncate with ellipsis after 2 lines"
|
|
104
|
+
- Conditional logic: "Show only when user has admin role"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Prototyping
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
Fidelity levels:
|
|
111
|
+
- Low-fi (paper/wireframe): Validate layout and flow
|
|
112
|
+
- Mid-fi (grayscale interactive): Validate interaction patterns
|
|
113
|
+
- High-fi (visual + interactive): Validate look, feel, and motion
|
|
114
|
+
- Code prototype: Validate feasibility and performance
|
|
115
|
+
|
|
116
|
+
When to use each:
|
|
117
|
+
- Exploring ideas → low-fi (fast, disposable)
|
|
118
|
+
- User testing navigation → mid-fi (enough to test, not enough to distract)
|
|
119
|
+
- Stakeholder sign-off → high-fi (shows the real vision)
|
|
120
|
+
- Complex interactions → code prototype (some things can't be faked)
|
|
121
|
+
|
|
122
|
+
Tools don't matter — outcomes do. Use whatever gets answers fastest.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Design QA
|
|
126
|
+
|
|
127
|
+
Review implemented designs against specifications:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
Checklist:
|
|
131
|
+
- [ ] Layout matches spec at all breakpoints
|
|
132
|
+
- [ ] Spacing uses correct design tokens
|
|
133
|
+
- [ ] Typography matches spec (font, size, weight, line-height)
|
|
134
|
+
- [ ] Colors match spec and meet contrast requirements
|
|
135
|
+
- [ ] All interaction states implemented (hover, focus, active, disabled, error, loading, empty)
|
|
136
|
+
- [ ] Animations match spec (duration, easing, trigger)
|
|
137
|
+
- [ ] Keyboard navigation works correctly
|
|
138
|
+
- [ ] Screen reader announces elements correctly
|
|
139
|
+
- [ ] Focus order matches visual order
|
|
140
|
+
- [ ] Error states display correctly with appropriate messages
|
|
141
|
+
- [ ] Empty states display correctly
|
|
142
|
+
- [ ] Content truncation works as specified
|
|
143
|
+
- [ ] Responsive behavior matches spec at all breakpoints
|
|
144
|
+
- [ ] Dark mode (if applicable) matches spec
|
|
145
|
+
|
|
146
|
+
Process:
|
|
147
|
+
1. Designer reviews implementation in staging environment
|
|
148
|
+
2. File issues with screenshots showing expected vs. actual
|
|
149
|
+
3. Prioritize: functional issues > accessibility issues > visual polish
|
|
150
|
+
4. Re-review after fixes
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## UX Metrics
|
|
154
|
+
|
|
155
|
+
Measure what matters to validate design decisions:
|
|
156
|
+
|
|
157
|
+
### Task-Level Metrics
|
|
158
|
+
|
|
159
|
+
```markdown
|
|
160
|
+
- Task success rate: % of users who complete the task correctly
|
|
161
|
+
Target: > 90% for critical flows, > 80% for secondary flows
|
|
162
|
+
|
|
163
|
+
- Time on task: How long it takes to complete a task
|
|
164
|
+
Compare against baseline; aim for continuous reduction
|
|
165
|
+
|
|
166
|
+
- Error rate: Number of errors per task attempt
|
|
167
|
+
Track by type (slips vs. mistakes) to inform different fixes
|
|
168
|
+
|
|
169
|
+
- Task abandonment: % of users who start but don't finish
|
|
170
|
+
Identify where in the flow they drop off
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Experience Metrics
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
- System Usability Scale (SUS):
|
|
177
|
+
10-question standardized questionnaire
|
|
178
|
+
Score: 0-100. Above 68 = above average. Above 80 = good. Above 90 = excellent.
|
|
179
|
+
|
|
180
|
+
- Customer Satisfaction (CSAT): Post-interaction rating
|
|
181
|
+
"How satisfied were you with this experience?" (1-5 scale)
|
|
182
|
+
|
|
183
|
+
- Net Promoter Score (NPS): Loyalty indicator
|
|
184
|
+
"How likely are you to recommend this?" (0-10)
|
|
185
|
+
Promoters (9-10) - Detractors (0-6) = NPS
|
|
186
|
+
|
|
187
|
+
- Customer Effort Score (CES): Ease of use
|
|
188
|
+
"How easy was it to complete your task?" (1-7)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Behavioral Metrics
|
|
192
|
+
|
|
193
|
+
```markdown
|
|
194
|
+
- Feature adoption rate: % of users who use a feature within first 30 days
|
|
195
|
+
- Retention: % of users who return after day 1, 7, 30
|
|
196
|
+
- Funnel completion: % conversion through multi-step flows
|
|
197
|
+
- Rage clicks: Repeated rapid clicks on the same element (indicates frustration)
|
|
198
|
+
- Dead clicks: Clicks on non-interactive elements (indicates confusion)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Usability Testing
|
|
202
|
+
|
|
203
|
+
```markdown
|
|
204
|
+
Moderated testing:
|
|
205
|
+
- 5 users per round (catches ~85% of usability issues)
|
|
206
|
+
- Think-aloud protocol: users narrate their thought process
|
|
207
|
+
- Task-based: give users realistic goals, not instructions
|
|
208
|
+
- Observe behavior, not opinions
|
|
209
|
+
- Record sessions for team review
|
|
210
|
+
|
|
211
|
+
Unmoderated testing:
|
|
212
|
+
- Larger sample size (20-50 users)
|
|
213
|
+
- Task-based with screen recording
|
|
214
|
+
- Useful for quantitative validation
|
|
215
|
+
- Less nuance than moderated sessions
|
|
216
|
+
|
|
217
|
+
Testing frequency:
|
|
218
|
+
- Minimum: Every sprint or every 2 weeks
|
|
219
|
+
- Ideal: Weekly lightweight tests on current work
|
|
220
|
+
- Before launch: Full usability test on complete flow
|
|
221
|
+
- After launch: Ongoing with analytics + periodic interviews
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Collaboration Practices
|
|
225
|
+
|
|
226
|
+
```markdown
|
|
227
|
+
Design-dev sync:
|
|
228
|
+
- Weekly design review with developers during design phase
|
|
229
|
+
- Pair on complex interactions (designer + developer together)
|
|
230
|
+
- Shared language through design tokens and component names
|
|
231
|
+
- Developers review prototypes before final spec
|
|
232
|
+
|
|
233
|
+
Documentation:
|
|
234
|
+
- Living design system documentation (not static PDFs)
|
|
235
|
+
- Decision log: why design choices were made (not just what)
|
|
236
|
+
- Changelog for design system updates
|
|
237
|
+
- Migration guides when components change
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Anti-Patterns
|
|
241
|
+
|
|
242
|
+
```markdown
|
|
243
|
+
- Wall-of-specs handoff: Dumping a 50-page document without conversation
|
|
244
|
+
- Pixel perfection over functionality: Debating 1px while ignoring broken flows
|
|
245
|
+
- Designing in isolation: Creating specs without developer input on feasibility
|
|
246
|
+
- Missing states: Only designing the happy path, leaving error/empty/loading to developers
|
|
247
|
+
- Lorem ipsum in final specs: Real content reveals design issues placeholder text hides
|
|
248
|
+
- No design QA: Assuming implementation matches spec without verification
|
|
249
|
+
- Vanity metrics: Tracking page views instead of task success
|
|
250
|
+
- Testing after launch only: Discovering usability issues when it's expensive to fix them
|
|
251
|
+
```
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Information Architecture
|
|
2
|
+
|
|
3
|
+
Organizing, structuring, and labeling content so users can find what they need and understand where they are.
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
**If users can't find it, it doesn't exist.** The best content in the world is worthless behind poor navigation, ambiguous labels, or buried hierarchies.
|
|
8
|
+
|
|
9
|
+
## Foundational Concepts (Rosenfeld & Morville)
|
|
10
|
+
|
|
11
|
+
Information architecture addresses four core systems:
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
1. Organization Systems — How content is grouped and categorized
|
|
15
|
+
2. Labeling Systems — How content is named and described
|
|
16
|
+
3. Navigation Systems — How users move through content
|
|
17
|
+
4. Search Systems — How users query and filter content
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Mental Models (Indi Young)
|
|
21
|
+
|
|
22
|
+
Design information structures that match how users think, not how the organization is structured.
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
Rule: Users don't care about your org chart.
|
|
26
|
+
|
|
27
|
+
Process:
|
|
28
|
+
1. Interview users about their tasks and thought processes
|
|
29
|
+
2. Map their mental model of the domain
|
|
30
|
+
3. Identify gaps between their model and your structure
|
|
31
|
+
4. Align your IA to their model, not the other way around
|
|
32
|
+
|
|
33
|
+
Example:
|
|
34
|
+
Internal structure: Products → Enterprise → SMB → Consumer
|
|
35
|
+
User mental model: "I need a tool that does X for a team of Y"
|
|
36
|
+
→ Organize by use case and team size, not by business segment
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Miller's Law
|
|
40
|
+
|
|
41
|
+
Users can hold approximately 4 items (revised from 7 +/- 2) in working memory at once.
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
Application:
|
|
45
|
+
- Limit primary navigation to 4-7 items
|
|
46
|
+
- Chunk related content into meaningful groups
|
|
47
|
+
- Use progressive disclosure to manage complexity
|
|
48
|
+
- Avoid menus deeper than 3 levels
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Card Sorting
|
|
52
|
+
|
|
53
|
+
Discover how users naturally group and label content.
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
Open Card Sort:
|
|
57
|
+
- Give users content cards with no predefined categories
|
|
58
|
+
- They create and name their own groups
|
|
59
|
+
- Use when building IA from scratch
|
|
60
|
+
- Minimum 15 participants for reliable patterns
|
|
61
|
+
|
|
62
|
+
Closed Card Sort:
|
|
63
|
+
- Provide predefined categories
|
|
64
|
+
- Users sort content into those categories
|
|
65
|
+
- Use to validate an existing IA structure
|
|
66
|
+
- Identify content that users can't confidently place
|
|
67
|
+
|
|
68
|
+
Hybrid Card Sort:
|
|
69
|
+
- Provide some categories, allow users to create new ones
|
|
70
|
+
- Best of both worlds for iterative refinement
|
|
71
|
+
|
|
72
|
+
Analysis:
|
|
73
|
+
- Look for agreement rates > 60% for confident groupings
|
|
74
|
+
- Items with low agreement need relabeling or restructuring
|
|
75
|
+
- Dendrogram analysis reveals natural clusters
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Tree Testing
|
|
79
|
+
|
|
80
|
+
Validate whether users can find items in a proposed hierarchy without visual design influence.
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
Process:
|
|
84
|
+
1. Create a text-only tree of your proposed navigation
|
|
85
|
+
2. Give users tasks: "Where would you find X?"
|
|
86
|
+
3. Measure success rate, directness, and time to complete
|
|
87
|
+
|
|
88
|
+
Metrics:
|
|
89
|
+
- Task success rate > 80% = strong IA
|
|
90
|
+
- Directness score > 70% = clear paths (users didn't backtrack)
|
|
91
|
+
- First-click correctness > 60% = good top-level labeling
|
|
92
|
+
|
|
93
|
+
Rules:
|
|
94
|
+
- Test before visual design (eliminates bias from layout/color)
|
|
95
|
+
- 50+ participants for statistical reliability
|
|
96
|
+
- Test with realistic tasks, not "find the About page"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Navigation Patterns
|
|
100
|
+
|
|
101
|
+
### Primary Navigation
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
Types:
|
|
105
|
+
- Top bar: Best for 4-7 top-level items (web)
|
|
106
|
+
- Sidebar: Best for 8+ items or deep hierarchies (apps, dashboards)
|
|
107
|
+
- Bottom tab bar: Best for 3-5 core actions (mobile)
|
|
108
|
+
- Hamburger menu: Last resort — hides everything, reduces discoverability
|
|
109
|
+
|
|
110
|
+
Rules:
|
|
111
|
+
- Current location must always be visible
|
|
112
|
+
- Navigation labels should be nouns (what it is), not verbs (what you do)
|
|
113
|
+
- Icon + label > icon alone (icons are ambiguous without labels)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Breadcrumbs
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
Use when:
|
|
120
|
+
- Hierarchy is 3+ levels deep
|
|
121
|
+
- Users may land on deep pages from search
|
|
122
|
+
- Users need to understand their location in context
|
|
123
|
+
|
|
124
|
+
Don't use when:
|
|
125
|
+
- Navigation is flat (1-2 levels)
|
|
126
|
+
- Site is task-based rather than content-based
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Search
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
Search is not a replacement for good navigation — it's a supplement.
|
|
133
|
+
|
|
134
|
+
Requirements:
|
|
135
|
+
- Autocomplete suggestions after 2+ characters
|
|
136
|
+
- Fuzzy matching for typos
|
|
137
|
+
- Recent searches for returning users
|
|
138
|
+
- Scoped search within current section
|
|
139
|
+
- Clear indication of result count and relevance
|
|
140
|
+
- Empty state with helpful suggestions
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Sitemaps and User Flows
|
|
144
|
+
|
|
145
|
+
### Sitemaps
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
Purpose: Document the complete content structure
|
|
149
|
+
Format: Hierarchical tree diagram
|
|
150
|
+
|
|
151
|
+
Rules:
|
|
152
|
+
- Include every page/screen
|
|
153
|
+
- Label with user-facing names (not internal codenames)
|
|
154
|
+
- Mark authenticated vs. public areas
|
|
155
|
+
- Version and date every sitemap
|
|
156
|
+
- Update when IA changes
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### User Flows
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
Purpose: Document paths users take to complete tasks
|
|
163
|
+
Format: Flowchart with decision points
|
|
164
|
+
|
|
165
|
+
Rules:
|
|
166
|
+
- Start with the user's goal, not your homepage
|
|
167
|
+
- Include error paths and edge cases
|
|
168
|
+
- Mark decision points clearly
|
|
169
|
+
- Note where users enter from (deep links, search, referrals)
|
|
170
|
+
- Validate flows against analytics data
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Labeling
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
Rules:
|
|
177
|
+
- Use the user's language, not internal jargon
|
|
178
|
+
- Be specific: "Order History" > "History"
|
|
179
|
+
- Be consistent: Don't call it "Settings" in one place and "Preferences" in another
|
|
180
|
+
- Test labels with tree testing or first-click testing
|
|
181
|
+
- Avoid clever or branded terms for navigation (users don't know your brand vocabulary)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Anti-Patterns
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
- Org-chart navigation: Structuring IA to match internal departments
|
|
188
|
+
- Jargon labels: Using internal terminology users don't recognize
|
|
189
|
+
- Deep nesting: Burying content 4+ levels deep
|
|
190
|
+
- Orphan pages: Content reachable only through search, not navigation
|
|
191
|
+
- Mega-menu overload: Dumping every link into a massive dropdown
|
|
192
|
+
- Mystery meat navigation: Icons without labels, hover-only reveals
|
|
193
|
+
```
|