agentic-team-templates 0.16.0 → 0.17.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/package.json +1 -1
- package/src/index.js +9 -0
- package/src/index.test.js +1 -0
- package/templates/ux-designer/.cursorrules/accessibility.md +214 -0
- package/templates/ux-designer/.cursorrules/emotional-design.md +217 -0
- package/templates/ux-designer/.cursorrules/handoff.md +251 -0
- package/templates/ux-designer/.cursorrules/information-architecture.md +193 -0
- package/templates/ux-designer/.cursorrules/interaction-design.md +221 -0
- package/templates/ux-designer/.cursorrules/overview.md +110 -0
- package/templates/ux-designer/.cursorrules/research.md +181 -0
- package/templates/ux-designer/.cursorrules/visual-design.md +191 -0
- package/templates/ux-designer/CLAUDE.md +124 -0
|
@@ -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
|
+
```
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Interaction Design
|
|
2
|
+
|
|
3
|
+
Designing how users interact with interfaces — controls, feedback, transitions, and behavior.
|
|
4
|
+
|
|
5
|
+
## Core Principle
|
|
6
|
+
|
|
7
|
+
**Every interaction should feel inevitable.** When a user taps, clicks, or swipes, the response should be exactly what they expected. Surprise is the enemy of usability.
|
|
8
|
+
|
|
9
|
+
## Don Norman's Design Principles
|
|
10
|
+
|
|
11
|
+
Six fundamental principles from *The Design of Everyday Things*:
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
1. Visibility — Can users see what actions are available?
|
|
15
|
+
2. Feedback — Does the system respond to every user action?
|
|
16
|
+
3. Constraints — Does the design prevent errors?
|
|
17
|
+
4. Mapping — Do controls relate naturally to their effects?
|
|
18
|
+
5. Consistency — Do similar things work the same way?
|
|
19
|
+
6. Affordance — Does the element suggest how to interact with it?
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Application
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
Visibility:
|
|
26
|
+
✅ Primary actions are visible buttons, not hidden in menus
|
|
27
|
+
❌ Key features accessible only through right-click or gestures
|
|
28
|
+
|
|
29
|
+
Feedback:
|
|
30
|
+
✅ Button changes state on press; loading spinner appears immediately
|
|
31
|
+
❌ User clicks "Save" and nothing visibly happens for 3 seconds
|
|
32
|
+
|
|
33
|
+
Constraints:
|
|
34
|
+
✅ Date picker prevents selecting impossible dates
|
|
35
|
+
❌ Free text field for dates with no validation until submission
|
|
36
|
+
|
|
37
|
+
Mapping:
|
|
38
|
+
✅ Volume slider moves left-to-right for quieter-to-louder
|
|
39
|
+
❌ Toggle labeled "Enable" that turns things off when activated
|
|
40
|
+
|
|
41
|
+
Consistency:
|
|
42
|
+
✅ "Delete" always requires confirmation, everywhere
|
|
43
|
+
❌ Delete confirms in Settings but is instant in the dashboard
|
|
44
|
+
|
|
45
|
+
Affordance:
|
|
46
|
+
✅ Buttons look clickable (raised, colored, labeled)
|
|
47
|
+
❌ Flat text that is secretly a link with no visual indicator
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Fitts's Law
|
|
51
|
+
|
|
52
|
+
The time to reach a target is proportional to the distance and inversely proportional to the target size.
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
Application:
|
|
56
|
+
- Make primary action targets large (minimum 44x44px touch, 24x24px cursor)
|
|
57
|
+
- Place frequently-used actions close to the user's current focus
|
|
58
|
+
- Corners and edges of the screen are effectively infinite in size (use them)
|
|
59
|
+
- Reduce the distance between related sequential actions
|
|
60
|
+
|
|
61
|
+
Examples:
|
|
62
|
+
✅ Submit button directly below the last form field
|
|
63
|
+
❌ Submit button at the top of the page, far from the form
|
|
64
|
+
✅ "Confirm" dialog button near the action that triggered it
|
|
65
|
+
❌ Confirmation modal that appears at the center regardless of trigger location
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Hick's Law
|
|
69
|
+
|
|
70
|
+
Decision time increases logarithmically with the number of choices.
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
Application:
|
|
74
|
+
- Limit choices to 5-7 options per decision
|
|
75
|
+
- Use smart defaults to eliminate unnecessary decisions
|
|
76
|
+
- Group and categorize when many options are unavoidable
|
|
77
|
+
- Progressive disclosure: show essentials first, details on demand
|
|
78
|
+
- Recommend the best option clearly
|
|
79
|
+
|
|
80
|
+
Examples:
|
|
81
|
+
✅ Pricing page with 3 plans, one highlighted as "Most Popular"
|
|
82
|
+
❌ Pricing page with 12 plans and a comparison matrix
|
|
83
|
+
✅ Smart default selected in a dropdown
|
|
84
|
+
❌ Empty dropdown requiring the user to scroll through 100 options
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Jakob's Law
|
|
88
|
+
|
|
89
|
+
Users spend most of their time on other sites/apps. They expect yours to work the same way.
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
Application:
|
|
93
|
+
- Follow platform conventions (iOS, Android, Web)
|
|
94
|
+
- Use standard interaction patterns (pull-to-refresh, swipe-to-delete)
|
|
95
|
+
- Place navigation where users expect it
|
|
96
|
+
- Don't reinvent standard components for novelty's sake
|
|
97
|
+
|
|
98
|
+
When to break convention:
|
|
99
|
+
- Only when user testing proves the new pattern is measurably better
|
|
100
|
+
- AND the learning cost is low enough to justify the improvement
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Interaction Patterns
|
|
104
|
+
|
|
105
|
+
### Forms
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
Rules:
|
|
109
|
+
- One column layout (users read forms top-to-bottom)
|
|
110
|
+
- Labels above fields (not inline placeholders as labels)
|
|
111
|
+
- Mark optional fields, not required (most fields should be required)
|
|
112
|
+
- Inline validation on blur, not on keystroke
|
|
113
|
+
- Group related fields with clear section headings
|
|
114
|
+
- Smart defaults reduce effort
|
|
115
|
+
- Autofocus the first field
|
|
116
|
+
- Tab order follows visual order
|
|
117
|
+
|
|
118
|
+
Error handling:
|
|
119
|
+
- Show errors inline next to the offending field
|
|
120
|
+
- Use plain language: "Enter a valid email" not "Error 422"
|
|
121
|
+
- Preserve user input on error (never clear the form)
|
|
122
|
+
- Scroll to first error and focus it
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Buttons and CTAs
|
|
126
|
+
|
|
127
|
+
```markdown
|
|
128
|
+
Hierarchy:
|
|
129
|
+
- Primary: One per screen/section. High contrast, filled.
|
|
130
|
+
- Secondary: Supporting actions. Outlined or lower contrast.
|
|
131
|
+
- Tertiary: Minimal actions. Text-only or links.
|
|
132
|
+
- Destructive: Red or distinct treatment. Always requires confirmation.
|
|
133
|
+
|
|
134
|
+
Labels:
|
|
135
|
+
- Use verbs: "Save Changes", "Send Invite", "Delete Account"
|
|
136
|
+
- Be specific: "Create Project" > "Submit" > "OK"
|
|
137
|
+
- Match the action to the outcome: "Place Order" not "Continue"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### States
|
|
141
|
+
|
|
142
|
+
Every interactive element must define all possible states:
|
|
143
|
+
|
|
144
|
+
```markdown
|
|
145
|
+
States:
|
|
146
|
+
- Default — Resting state
|
|
147
|
+
- Hover — Cursor over (desktop only)
|
|
148
|
+
- Focus — Keyboard navigation highlight (mandatory for accessibility)
|
|
149
|
+
- Active/Pressed — During interaction
|
|
150
|
+
- Disabled — Cannot interact (must explain why)
|
|
151
|
+
- Loading — Waiting for response
|
|
152
|
+
- Error — Something went wrong
|
|
153
|
+
- Success — Action completed
|
|
154
|
+
- Empty — No content to display
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Microinteractions (Dan Saffer)
|
|
158
|
+
|
|
159
|
+
Small, contained product moments that accomplish a single task.
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
Structure:
|
|
163
|
+
1. Trigger — What initiates the interaction (user action or system event)
|
|
164
|
+
2. Rules — What happens when triggered
|
|
165
|
+
3. Feedback — How the user knows what happened
|
|
166
|
+
4. Loops & Modes — What changes over time or repeated use
|
|
167
|
+
|
|
168
|
+
Examples:
|
|
169
|
+
- Pull-to-refresh: Trigger → animation → content update → settle
|
|
170
|
+
- Like button: Tap → heart animation → count increment → color change
|
|
171
|
+
- Form submission: Click → button loading state → success message → redirect
|
|
172
|
+
|
|
173
|
+
Rules:
|
|
174
|
+
- Keep them fast (< 300ms for direct manipulation)
|
|
175
|
+
- Make them skippable (animation shouldn't block workflow)
|
|
176
|
+
- Degrade gracefully (functionality works even if animation fails)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Animation and Motion
|
|
180
|
+
|
|
181
|
+
```markdown
|
|
182
|
+
Purpose of motion:
|
|
183
|
+
- Provide feedback (button pressed, item added)
|
|
184
|
+
- Show relationships (element came from here, goes to there)
|
|
185
|
+
- Direct attention (notification appeared)
|
|
186
|
+
- Communicate state change (loading → loaded)
|
|
187
|
+
|
|
188
|
+
Principles:
|
|
189
|
+
- Motion should have purpose — never purely decorative
|
|
190
|
+
- Duration: 100-300ms for micro, 300-500ms for macro transitions
|
|
191
|
+
- Easing: ease-out for entrances, ease-in for exits, ease-in-out for movement
|
|
192
|
+
- Respect prefers-reduced-motion media query (mandatory)
|
|
193
|
+
- Stagger animations for groups (40-80ms offset per item)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Navigation Interactions
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
Page transitions:
|
|
200
|
+
- Forward navigation: slide left / fade in
|
|
201
|
+
- Backward navigation: slide right / fade in
|
|
202
|
+
- Modal opening: scale up from trigger or fade in
|
|
203
|
+
- Modal closing: reverse of opening
|
|
204
|
+
|
|
205
|
+
Tab/section switching:
|
|
206
|
+
- Instant swap (no transition) or quick crossfade (150ms)
|
|
207
|
+
- Never animate content the user is trying to read
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Anti-Patterns
|
|
211
|
+
|
|
212
|
+
```markdown
|
|
213
|
+
- Modal abuse: Using modals for content that should be a page
|
|
214
|
+
- Double-click traps: Actions that fire twice on double-click
|
|
215
|
+
- Invisible scrolling: Content below the fold with no scroll indicator
|
|
216
|
+
- Disabled without explanation: Grayed-out buttons with no tooltip or message
|
|
217
|
+
- Hover-dependent UI: Features only accessible on hover (fails on touch)
|
|
218
|
+
- Infinite scroll without position: No way to return to a specific item
|
|
219
|
+
- Auto-advancing carousels: Users can't read at carousel speed
|
|
220
|
+
- Dark patterns: Trick questions, hidden costs, forced continuity, misdirection
|
|
221
|
+
```
|