picasso-skill 1.1.0 → 1.3.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 +89 -49
- package/agents/picasso.md +629 -0
- package/bin/install.mjs +54 -24
- package/package.json +2 -1
- package/skills/picasso/references/accessibility-wcag.md +245 -0
- package/skills/picasso/references/anti-patterns.md +138 -49
- package/skills/picasso/references/color-and-contrast.md +251 -2
- package/skills/picasso/references/conversion-design.md +193 -0
- package/skills/picasso/references/data-visualization.md +226 -0
- package/skills/picasso/references/modern-css-performance.md +361 -0
- package/skills/picasso/references/performance-optimization.md +746 -0
- package/skills/picasso/references/style-presets.md +502 -0
- package/skills/picasso/references/typography.md +206 -2
- package/skills/picasso/references/ux-psychology.md +235 -0
- package/skills/picasso/references/ux-writing.md +513 -0
- package/skills/picasso/references/accessibility.md +0 -172
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
5. OpenType Features
|
|
9
9
|
6. Pixel and Display Fonts
|
|
10
10
|
7. Web Font Loading
|
|
11
|
-
8.
|
|
11
|
+
8. Curated Font Pairings
|
|
12
|
+
9. Variable Fonts
|
|
13
|
+
10. Common Mistakes
|
|
12
14
|
|
|
13
15
|
---
|
|
14
16
|
|
|
@@ -157,7 +159,209 @@ Self-host when possible. CDN fonts introduce a third-party dependency and a DNS
|
|
|
157
159
|
|
|
158
160
|
---
|
|
159
161
|
|
|
160
|
-
## 8.
|
|
162
|
+
## 8. Curated Font Pairings
|
|
163
|
+
|
|
164
|
+
Twelve tested pairings using 2025-2026 trending typefaces. Each listing includes the source, ideal use case, and the CSS declaration with proper fallbacks.
|
|
165
|
+
|
|
166
|
+
### 8.1 Clash Display + Satoshi
|
|
167
|
+
- **Source**: Fontshare (free)
|
|
168
|
+
- **Use case**: SaaS landing pages, startup marketing sites
|
|
169
|
+
- **CSS**:
|
|
170
|
+
```css
|
|
171
|
+
--font-display: 'Clash Display', 'Arial Black', sans-serif;
|
|
172
|
+
--font-body: 'Satoshi', 'Helvetica Neue', Helvetica, sans-serif;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 8.2 Cabinet Grotesk + General Sans
|
|
176
|
+
- **Source**: Fontshare (free)
|
|
177
|
+
- **Use case**: Creative agencies, portfolio sites, design tools
|
|
178
|
+
- **CSS**:
|
|
179
|
+
```css
|
|
180
|
+
--font-display: 'Cabinet Grotesk', 'Trebuchet MS', sans-serif;
|
|
181
|
+
--font-body: 'General Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### 8.3 Cal Sans + Geist Sans
|
|
185
|
+
- **Source**: Cal Sans from cal.com (free, OFL). Geist via `npm i geist`.
|
|
186
|
+
- **Use case**: Developer tools, open-source project sites, technical SaaS
|
|
187
|
+
- **CSS**:
|
|
188
|
+
```css
|
|
189
|
+
--font-display: 'Cal Sans', 'Arial Black', sans-serif;
|
|
190
|
+
--font-body: 'Geist', system-ui, -apple-system, sans-serif;
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 8.4 Instrument Serif + Instrument Sans
|
|
194
|
+
- **Source**: Google Fonts (free)
|
|
195
|
+
- **Use case**: Editorial, content platforms, long-form reading, magazines
|
|
196
|
+
- **CSS**:
|
|
197
|
+
```css
|
|
198
|
+
--font-display: 'Instrument Serif', Georgia, 'Times New Roman', serif;
|
|
199
|
+
--font-body: 'Instrument Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 8.5 Clash Display + DM Sans
|
|
203
|
+
- **Source**: Clash Display from Fontshare. DM Sans from Google Fonts.
|
|
204
|
+
- **Use case**: Fintech dashboards, professional SaaS, enterprise tools
|
|
205
|
+
- **CSS**:
|
|
206
|
+
```css
|
|
207
|
+
--font-display: 'Clash Display', 'Arial Black', sans-serif;
|
|
208
|
+
--font-body: 'DM Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### 8.6 Plus Jakarta Sans + Plus Jakarta Sans
|
|
212
|
+
- **Source**: Google Fonts (free)
|
|
213
|
+
- **Use case**: Clean SaaS apps, admin panels, health and wellness platforms. Use weight contrast (700+ for headings, 400-500 for body) instead of two families.
|
|
214
|
+
- **CSS**:
|
|
215
|
+
```css
|
|
216
|
+
--font-display: 'Plus Jakarta Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
217
|
+
--font-body: 'Plus Jakarta Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 8.7 Satoshi + Outfit
|
|
221
|
+
- **Source**: Satoshi from Fontshare. Outfit from Google Fonts.
|
|
222
|
+
- **Use case**: Consumer apps, onboarding flows, friendly dashboards
|
|
223
|
+
- **CSS**:
|
|
224
|
+
```css
|
|
225
|
+
--font-display: 'Satoshi', 'Helvetica Neue', Helvetica, sans-serif;
|
|
226
|
+
--font-body: 'Outfit', 'Segoe UI', sans-serif;
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 8.8 Cabinet Grotesk + DM Sans
|
|
230
|
+
- **Source**: Cabinet Grotesk from Fontshare. DM Sans from Google Fonts.
|
|
231
|
+
- **Use case**: E-commerce, product marketing, brand-heavy pages
|
|
232
|
+
- **CSS**:
|
|
233
|
+
```css
|
|
234
|
+
--font-display: 'Cabinet Grotesk', 'Trebuchet MS', sans-serif;
|
|
235
|
+
--font-body: 'DM Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 8.9 Instrument Serif + General Sans
|
|
239
|
+
- **Source**: Instrument Serif from Google Fonts. General Sans from Fontshare.
|
|
240
|
+
- **Use case**: Luxury, editorial commerce, lifestyle brands
|
|
241
|
+
- **CSS**:
|
|
242
|
+
```css
|
|
243
|
+
--font-display: 'Instrument Serif', Georgia, 'Times New Roman', serif;
|
|
244
|
+
--font-body: 'General Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 8.10 Geist Sans + Geist Mono
|
|
248
|
+
- **Source**: `npm i geist` (free, Vercel)
|
|
249
|
+
- **Use case**: Developer platforms, CLI tools, documentation sites, code-heavy interfaces
|
|
250
|
+
- **CSS**:
|
|
251
|
+
```css
|
|
252
|
+
--font-body: 'Geist', system-ui, -apple-system, sans-serif;
|
|
253
|
+
--font-mono: 'Geist Mono', 'Cascadia Code', 'Fira Code', monospace;
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### 8.11 Clash Display + JetBrains Mono (accent)
|
|
257
|
+
- **Source**: Clash Display from Fontshare. JetBrains Mono from Google Fonts or jetbrains.com.
|
|
258
|
+
- **Use case**: Technical marketing, API product pages, developer-facing landing pages
|
|
259
|
+
- **CSS**:
|
|
260
|
+
```css
|
|
261
|
+
--font-display: 'Clash Display', 'Arial Black', sans-serif;
|
|
262
|
+
--font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
|
|
263
|
+
--font-body: 'Satoshi', 'Helvetica Neue', Helvetica, sans-serif;
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### 8.12 General Sans + Commit Mono
|
|
267
|
+
- **Source**: General Sans from Fontshare. Commit Mono from commitmono.com (free).
|
|
268
|
+
- **Use case**: Data-heavy dashboards, analytics platforms, dev tools with mixed prose and code
|
|
269
|
+
- **CSS**:
|
|
270
|
+
```css
|
|
271
|
+
--font-body: 'General Sans', 'Helvetica Neue', Helvetica, sans-serif;
|
|
272
|
+
--font-mono: 'Commit Mono', 'Berkeley Mono', 'SF Mono', monospace;
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Monospace Quick Reference
|
|
276
|
+
| Font | Source | Ligatures | Notes |
|
|
277
|
+
|---|---|---|---|
|
|
278
|
+
| Geist Mono | npm i geist | No | Clean, pairs with Geist Sans |
|
|
279
|
+
| JetBrains Mono | Google Fonts / jetbrains.com | Yes | Best ligature set, great for code blocks |
|
|
280
|
+
| Berkeley Mono | berkeleygraphics.com (paid) | No | Premium feel, excellent for terminals and data |
|
|
281
|
+
| Commit Mono | commitmono.com | No | Neutral, smart kerning, variable font |
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## 9. Variable Fonts
|
|
286
|
+
|
|
287
|
+
### What They Are
|
|
288
|
+
Variable fonts pack an entire family (all weights, widths, italics, optical sizes) into a single file. Instead of loading separate files for Regular, Medium, Bold, and Black, you load one `.woff2` that contains a continuous range of values along design axes.
|
|
289
|
+
|
|
290
|
+
### Core Axes
|
|
291
|
+
| Axis | Tag | Range (typical) | Description |
|
|
292
|
+
|---|---|---|---|
|
|
293
|
+
| Weight | wght | 100-900 | Thin to Black |
|
|
294
|
+
| Width | wdth | 75-125 | Condensed to Expanded |
|
|
295
|
+
| Italic | ital | 0-1 | Upright to Italic |
|
|
296
|
+
| Slant | slnt | -12 to 0 | Oblique angle |
|
|
297
|
+
| Optical Size | opsz | 8-144 | Adjust for text size |
|
|
298
|
+
|
|
299
|
+
### Basic Usage
|
|
300
|
+
```css
|
|
301
|
+
@font-face {
|
|
302
|
+
font-family: 'Satoshi';
|
|
303
|
+
src: url('/fonts/Satoshi-Variable.woff2') format('woff2-variations');
|
|
304
|
+
font-weight: 100 900;
|
|
305
|
+
font-display: swap;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
h1 { font-weight: 750; } /* fractional weights */
|
|
309
|
+
body { font-weight: 420; } /* precise control */
|
|
310
|
+
caption { font-weight: 350; } /* lighter than regular */
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Weight Animation on Hover
|
|
314
|
+
```css
|
|
315
|
+
.nav-link {
|
|
316
|
+
font-weight: 400;
|
|
317
|
+
font-variation-settings: 'wght' 400;
|
|
318
|
+
transition: font-variation-settings 0.2s ease;
|
|
319
|
+
}
|
|
320
|
+
.nav-link:hover {
|
|
321
|
+
font-variation-settings: 'wght' 650;
|
|
322
|
+
}
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
Use `font-variation-settings` for animation because `font-weight` transitions are not smooth in all browsers. The `font-variation-settings` property animates along the continuous axis.
|
|
326
|
+
|
|
327
|
+
### Width Animation
|
|
328
|
+
```css
|
|
329
|
+
.expandable-label {
|
|
330
|
+
font-variation-settings: 'wdth' 90;
|
|
331
|
+
transition: font-variation-settings 0.3s ease;
|
|
332
|
+
}
|
|
333
|
+
.expandable-label:hover {
|
|
334
|
+
font-variation-settings: 'wdth' 110;
|
|
335
|
+
}
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### Custom Axes
|
|
339
|
+
Some variable fonts include custom axes (always uppercase tags). Example with Recursive:
|
|
340
|
+
```css
|
|
341
|
+
.code-block {
|
|
342
|
+
font-family: 'Recursive', monospace;
|
|
343
|
+
font-variation-settings: 'MONO' 1, 'CASL' 0, 'wght' 400;
|
|
344
|
+
}
|
|
345
|
+
.code-comment {
|
|
346
|
+
font-variation-settings: 'MONO' 1, 'CASL' 1, 'wght' 300, 'slnt' -12;
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Recommended Variable Fonts
|
|
351
|
+
| Font | Axes | Source | Notes |
|
|
352
|
+
|---|---|---|---|
|
|
353
|
+
| Satoshi Variable | wght (300-900) | Fontshare | Best all-around variable sans for UI |
|
|
354
|
+
| General Sans Variable | wght (200-700) | Fontshare | Wide weight range, clean geometry |
|
|
355
|
+
| Plus Jakarta Sans | wght (200-800) | Google Fonts | Full variable support, friendly geometry |
|
|
356
|
+
| Instrument Sans | wght (400-700) | Google Fonts | Pairs with Instrument Serif variable |
|
|
357
|
+
| Commit Mono | wght (400-700) | commitmono.com | Monospace with smart kerning axis |
|
|
358
|
+
|
|
359
|
+
### Performance Benefit
|
|
360
|
+
A single variable font file (typically 50-120KB for Latin subset) replaces 4-8 static files (each 15-40KB). This reduces HTTP requests and total download size, especially when using more than 3 weights.
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 10. Common Mistakes
|
|
161
365
|
|
|
162
366
|
- Using more than 3 font families on a page
|
|
163
367
|
- Setting body text below 16px on desktop or 14px on mobile
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# UX Psychology & Cognitive Design Reference
|
|
2
|
+
|
|
3
|
+
## 1. Gestalt Principles Applied to UI
|
|
4
|
+
|
|
5
|
+
### Proximity
|
|
6
|
+
Elements near each other are perceived as related. Spacing is the primary grouping mechanism.
|
|
7
|
+
|
|
8
|
+
```css
|
|
9
|
+
.form-group { margin-bottom: 32px; } /* between groups */
|
|
10
|
+
.form-group input { margin-bottom: 8px; } /* within a group */
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Rule:** Inner spacing (within a group) should be at most half of outer spacing (between groups). A 2:1 or 3:1 ratio is safest.
|
|
14
|
+
|
|
15
|
+
### Similarity
|
|
16
|
+
Elements that look alike are perceived as belonging together. Use shared color, size, shape, or weight.
|
|
17
|
+
|
|
18
|
+
**Rule:** Keep a maximum of 3 distinct visual "families" of interactive elements per screen.
|
|
19
|
+
|
|
20
|
+
### Closure
|
|
21
|
+
The brain fills in gaps to see complete shapes. Use this for progress indicators, icon design, and loading states.
|
|
22
|
+
|
|
23
|
+
### Continuity
|
|
24
|
+
The eye follows smooth lines and curves. Align elements along a clear axis.
|
|
25
|
+
|
|
26
|
+
**Rule:** Use a strict column grid. Every element edge should snap to a grid line. Misaligned elements break continuity and create visual friction.
|
|
27
|
+
|
|
28
|
+
### Figure-Ground
|
|
29
|
+
Users must instantly distinguish foreground content from background. Contrast, elevation, and blur create separation.
|
|
30
|
+
|
|
31
|
+
```css
|
|
32
|
+
.modal-backdrop { background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }
|
|
33
|
+
.modal { background: #fff; border-radius: 12px; box-shadow: 0 24px 48px rgba(0,0,0,0.16); }
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Rule:** Overlays need a minimum contrast shift of 40% luminance between foreground and background.
|
|
37
|
+
|
|
38
|
+
### Common Region
|
|
39
|
+
Borders or background fills create perceived groups, even without proximity.
|
|
40
|
+
|
|
41
|
+
**Rule:** Cards and sections should use either a border OR a fill, rarely both. Doubling cues wastes visual weight.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 2. Cognitive Laws
|
|
46
|
+
|
|
47
|
+
### Fitts's Law -- Target Sizing & Placement
|
|
48
|
+
|
|
49
|
+
Time to reach a target = f(distance, size). Larger and closer targets are faster to hit.
|
|
50
|
+
|
|
51
|
+
| Context | Minimum Target Size |
|
|
52
|
+
|---------|-------------------|
|
|
53
|
+
| Touch (mobile) | 48 x 48 dp |
|
|
54
|
+
| Touch (iOS) | 44 x 44 pt |
|
|
55
|
+
| WCAG 2.5.5 | 44 x 44 CSS px |
|
|
56
|
+
| Desktop click | 32 x 32 px |
|
|
57
|
+
| Spacing between targets | >= 8px gap |
|
|
58
|
+
|
|
59
|
+
**Rules:**
|
|
60
|
+
- Primary actions go in bottom-right (desktop) or bottom-center (mobile) where the thumb rests.
|
|
61
|
+
- Destructive actions go far from confirm buttons to prevent accidental taps.
|
|
62
|
+
- Edge-anchored targets (menus flush to screen edges) have effectively infinite size on one axis.
|
|
63
|
+
|
|
64
|
+
### Hick's Law -- Reducing Choices
|
|
65
|
+
|
|
66
|
+
Decision time increases logarithmically with the number of options.
|
|
67
|
+
|
|
68
|
+
**Rules:**
|
|
69
|
+
- Limit primary navigation items to 5-7.
|
|
70
|
+
- For longer lists, chunk into categories.
|
|
71
|
+
- Highlight a recommended/default option to collapse the decision tree.
|
|
72
|
+
- Use progressive disclosure to defer secondary options.
|
|
73
|
+
|
|
74
|
+
### Miller's Law -- Chunking
|
|
75
|
+
|
|
76
|
+
Working memory holds roughly 7 +/- 2 items. Group information into digestible chunks.
|
|
77
|
+
|
|
78
|
+
**Rules:**
|
|
79
|
+
- Phone numbers: `(555) 123-4567` not `5551234567`.
|
|
80
|
+
- Credit card fields: 4 groups of 4 digits.
|
|
81
|
+
- Break long forms into multi-step wizards with 3-5 fields per step.
|
|
82
|
+
- Dashboard metrics: group into cards of 3-4 related KPIs.
|
|
83
|
+
|
|
84
|
+
### Jakob's Law -- Convention Over Invention
|
|
85
|
+
|
|
86
|
+
Users spend most of their time on other sites. Match existing mental models.
|
|
87
|
+
|
|
88
|
+
**Conventions:**
|
|
89
|
+
- Logo top-left, linking to home.
|
|
90
|
+
- Primary navigation horizontal at top or vertical at left.
|
|
91
|
+
- Search bar top-center or top-right.
|
|
92
|
+
- Shopping cart icon top-right with badge count.
|
|
93
|
+
- Underlined blue text = link.
|
|
94
|
+
- Forms: labels above inputs, submit button bottom-right.
|
|
95
|
+
|
|
96
|
+
### Doherty Threshold -- Response Time
|
|
97
|
+
|
|
98
|
+
Productivity soars when system response is under 400ms.
|
|
99
|
+
|
|
100
|
+
| Response Time | User Perception | UI Treatment |
|
|
101
|
+
|--------------|----------------|--------------|
|
|
102
|
+
| < 100ms | Instantaneous | No feedback needed |
|
|
103
|
+
| 100-400ms | Slight delay | Subtle state change |
|
|
104
|
+
| 400ms-1s | Noticeable | Show spinner |
|
|
105
|
+
| 1-5s | Waiting | Skeleton screen / progress bar |
|
|
106
|
+
| > 5s | Frustrated | Progress % and time estimate |
|
|
107
|
+
|
|
108
|
+
**Rules:**
|
|
109
|
+
- Optimistic UI updates for actions under 1s.
|
|
110
|
+
- Skeleton screens always beat loading spinners for perceived performance.
|
|
111
|
+
- Animate transitions at 200-300ms; under 100ms feels jumpy, over 500ms feels sluggish.
|
|
112
|
+
|
|
113
|
+
### Peak-End Rule
|
|
114
|
+
|
|
115
|
+
People judge an experience by its most intense moment (peak) and its final moment (end).
|
|
116
|
+
|
|
117
|
+
**Rules:**
|
|
118
|
+
- End flows with a moment of delight: confetti on signup completion, a clear success state with next steps.
|
|
119
|
+
- Eliminate negative peaks: never show an error without a recovery path.
|
|
120
|
+
- Onboarding should front-load a quick win within the first 60 seconds.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 3. Visual Scanning Patterns
|
|
125
|
+
|
|
126
|
+
### F-Pattern (Text-Heavy Pages)
|
|
127
|
+
Users scan horizontally across the top, shorter horizontal sweep partway down, then vertically down the left edge.
|
|
128
|
+
|
|
129
|
+
**Design responses:**
|
|
130
|
+
- Put critical information in the first two paragraphs.
|
|
131
|
+
- Start headings and bullet points with information-carrying words (front-load keywords).
|
|
132
|
+
- Use bold for scannable anchor phrases.
|
|
133
|
+
- Break walls of text with subheadings every 3-5 paragraphs.
|
|
134
|
+
|
|
135
|
+
### Z-Pattern (Sparse / Marketing Pages)
|
|
136
|
+
Users scan top-left to top-right, diagonal to bottom-left, then across to bottom-right.
|
|
137
|
+
|
|
138
|
+
**Design responses:**
|
|
139
|
+
- Logo/brand mark: top-left.
|
|
140
|
+
- Navigation/CTA: top-right.
|
|
141
|
+
- Hero content/value prop: center (the diagonal).
|
|
142
|
+
- Primary CTA button: bottom-right.
|
|
143
|
+
|
|
144
|
+
### Layer-Cake Pattern
|
|
145
|
+
Users scan only headings and subheadings, skipping body text entirely. Headings must be self-sufficient.
|
|
146
|
+
|
|
147
|
+
### Serial Position Effect
|
|
148
|
+
Users remember the first and last items in a list best.
|
|
149
|
+
|
|
150
|
+
**Rule:** Put the most important nav items first and last. Bury less critical items in the middle.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 4. Decision Architecture
|
|
155
|
+
|
|
156
|
+
### Progressive Disclosure
|
|
157
|
+
Show only what is needed at each step; reveal complexity on demand.
|
|
158
|
+
|
|
159
|
+
**Implementation patterns:**
|
|
160
|
+
- Accordion sections for secondary settings.
|
|
161
|
+
- "Show advanced options" toggle.
|
|
162
|
+
- Multi-step forms with 3-5 fields per step.
|
|
163
|
+
- Tooltip/popover for contextual help vs. inline text.
|
|
164
|
+
|
|
165
|
+
**Rule:** Primary display should cover 80% of user needs. The remaining 20% is disclosed progressively.
|
|
166
|
+
|
|
167
|
+
### Default Bias
|
|
168
|
+
Users overwhelmingly accept pre-set defaults. Use this ethically.
|
|
169
|
+
|
|
170
|
+
**Rules:**
|
|
171
|
+
- Pre-select the most common/safest option.
|
|
172
|
+
- Toggle switches should default to the privacy-respecting state.
|
|
173
|
+
- Pre-fill forms with smart defaults (country from IP, timezone from browser).
|
|
174
|
+
|
|
175
|
+
### Anchoring
|
|
176
|
+
The first piece of information presented becomes the reference point for all subsequent judgments.
|
|
177
|
+
|
|
178
|
+
**Rules:**
|
|
179
|
+
- Show the higher-priced plan first in pricing tables.
|
|
180
|
+
- Display original price before discount to establish anchor.
|
|
181
|
+
- Show "most popular" labels on the plan you want users to choose.
|
|
182
|
+
|
|
183
|
+
### Social Proof Placement
|
|
184
|
+
Place social proof adjacent to decision points, not buried in separate sections.
|
|
185
|
+
|
|
186
|
+
**Rules:**
|
|
187
|
+
- Testimonials directly below or beside pricing CTAs.
|
|
188
|
+
- User counts near signup forms.
|
|
189
|
+
- Trust badges next to checkout buttons.
|
|
190
|
+
- Star ratings visible without scrolling on product cards.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 5. Emotional Design
|
|
195
|
+
|
|
196
|
+
### Color & Emotion
|
|
197
|
+
|
|
198
|
+
| Emotion | Color Family | Usage |
|
|
199
|
+
|---------|-------------|-------|
|
|
200
|
+
| Trust/Security | Blue | Finance, SaaS, healthcare |
|
|
201
|
+
| Urgency/Error | Red | Alerts, destructive actions, sales |
|
|
202
|
+
| Success/Growth | Green | Confirmations, positive metrics |
|
|
203
|
+
| Warning/Caution | Amber | Non-blocking alerts |
|
|
204
|
+
| Calm/Premium | Neutral + generous whitespace | Luxury, editorial |
|
|
205
|
+
| Energy/Optimism | Yellow/Orange | CTAs, highlights |
|
|
206
|
+
|
|
207
|
+
### Typography & Emotion
|
|
208
|
+
|
|
209
|
+
| Feeling | Typeface Characteristics |
|
|
210
|
+
|---------|------------------------|
|
|
211
|
+
| Trust/Authority | Serif or geometric sans |
|
|
212
|
+
| Modern/Clean | Geometric sans-serif |
|
|
213
|
+
| Friendly/Approachable | Rounded sans-serif |
|
|
214
|
+
| Technical/Precise | Monospace or condensed sans |
|
|
215
|
+
|
|
216
|
+
### Spacing & Calm
|
|
217
|
+
More whitespace = more premium/calm. Dense layouts signal "tool"; spacious layouts signal "product."
|
|
218
|
+
|
|
219
|
+
### Motion & Delight
|
|
220
|
+
Enter transitions should be slightly slower than exit transitions (users need time to register new content). Stagger list item animations by 30-50ms per item, cap total duration at 500ms.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Quick-Reference Cheat Sheet
|
|
225
|
+
|
|
226
|
+
| Principle | Key Number | Action |
|
|
227
|
+
|-----------|-----------|--------|
|
|
228
|
+
| Fitts's Law | 44-48px min | Size touch targets appropriately |
|
|
229
|
+
| Hick's Law | 5-7 max | Limit choices per decision point |
|
|
230
|
+
| Miller's Law | 7 +/- 2 | Chunk information into groups |
|
|
231
|
+
| Doherty Threshold | < 400ms | Keep responses under 400ms |
|
|
232
|
+
| Color ratio | 60-30-10 | Dominant/secondary/accent |
|
|
233
|
+
| F-pattern | top 2 lines | Front-load critical content |
|
|
234
|
+
| Proximity ratio | 2:1 or 3:1 | Inner vs outer spacing |
|
|
235
|
+
| First impression | 50ms | Users judge in 50 milliseconds |
|