@dedesfr/prompter 0.8.0 → 0.8.1
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/CHANGELOG.md +29 -0
- package/dist/cli/index.js +1 -1
- package/package.json +1 -1
- package/skills/agents-md-generator/SKILL.md +238 -0
- package/skills/agents-md-generator/assets/agents-md-template.md +81 -0
- package/skills/agents-md-generator/references/best-practices.md +215 -0
- package/skills/code-review/SKILL.md +373 -0
- package/skills/code-review/assets/report-template-agent.md +212 -0
- package/skills/code-review/assets/report-template-compact.md +81 -0
- package/skills/code-review/assets/report-template-full.md +264 -0
- package/skills/code-review/assets/report-template-human.md +168 -0
- package/skills/code-review/references/universal-patterns.md +495 -0
- package/skills/meeting-notes/SKILL.md +159 -0
- package/skills/meeting-notes/evals/evals.json +23 -0
- package/skills/project-orchestrator/SKILL.md +394 -0
- package/skills/project-orchestrator/assets/plan-summary-template.md +123 -0
- package/skills/prompter-specs/SKILL.md +115 -0
- package/skills/ui-ux-pro/SKILL.md +348 -0
- package/skills/ui-ux-pro/assets/design-spec-template.md +173 -0
- package/skills/ui-ux-pro/references/component-patterns.md +255 -0
- package/skills/ui-ux-pro/references/design-principles.md +167 -0
- package/src/cli/index.ts +1 -1
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Component Patterns — UI Interaction Best Practices
|
|
2
|
+
|
|
3
|
+
Reference for designing common UI components with proper states, accessibility, and interaction patterns. Load when designing or reviewing specific components.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Buttons
|
|
8
|
+
|
|
9
|
+
### Hierarchy
|
|
10
|
+
|
|
11
|
+
Every interface needs a clear button hierarchy:
|
|
12
|
+
|
|
13
|
+
| Level | Name | Use Case | Visual Treatment |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| 1 | Primary | Main action per section/page | Filled, brand color, high contrast |
|
|
16
|
+
| 2 | Secondary | Supporting actions | Outlined or muted fill |
|
|
17
|
+
| 3 | Tertiary / Ghost | Low-priority actions, cancel | Text-only or very subtle background |
|
|
18
|
+
| 4 | Destructive | Delete, remove, irreversible | Red/danger color, confirm pattern |
|
|
19
|
+
| 5 | Icon-only | Compact actions (close, menu, edit) | Icon with tooltip, adequate touch target |
|
|
20
|
+
|
|
21
|
+
### Required States
|
|
22
|
+
|
|
23
|
+
Every button must handle:
|
|
24
|
+
- **Default** — Resting state
|
|
25
|
+
- **Hover** — Subtle background/shadow change (desktop)
|
|
26
|
+
- **Focus** — Visible ring/outline for keyboard users (2px offset, contrasting color)
|
|
27
|
+
- **Active/Pressed** — Slightly darker, subtle depression
|
|
28
|
+
- **Disabled** — Reduced opacity (0.5-0.6), no pointer events, `aria-disabled`
|
|
29
|
+
- **Loading** — Spinner or dots replacing text, button disabled during action
|
|
30
|
+
|
|
31
|
+
### Sizing
|
|
32
|
+
|
|
33
|
+
| Size | Height | Padding (x) | Font Size | Use Case |
|
|
34
|
+
|---|---|---|---|---|
|
|
35
|
+
| sm | 32px | 12px | 13-14px | Dense UI, table actions, tag actions |
|
|
36
|
+
| md | 40px | 16px | 14-15px | Standard forms, toolbars |
|
|
37
|
+
| lg | 48px | 24px | 16px | Hero CTAs, mobile-first interfaces |
|
|
38
|
+
|
|
39
|
+
### Accessibility
|
|
40
|
+
- Minimum touch target: 44×44px (even if visual size is smaller, pad the clickable area)
|
|
41
|
+
- Always include accessible label (text content or `aria-label` for icon buttons)
|
|
42
|
+
- Don't rely on color alone — icons or text should reinforce meaning
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Forms
|
|
47
|
+
|
|
48
|
+
### Input Fields
|
|
49
|
+
|
|
50
|
+
**Required states:**
|
|
51
|
+
- Default — Clear border, label above
|
|
52
|
+
- Focus — Highlighted border (brand color), optional subtle shadow
|
|
53
|
+
- Filled — Same as default but with content
|
|
54
|
+
- Error — Red/danger border, error message below, `aria-invalid="true"`
|
|
55
|
+
- Disabled — Muted background, reduced opacity
|
|
56
|
+
- Read-only — No border/minimal border, text appears as content
|
|
57
|
+
|
|
58
|
+
**Layout rules:**
|
|
59
|
+
- Label above input (not beside, not as placeholder)
|
|
60
|
+
- Placeholder text is supplementary, never the only label
|
|
61
|
+
- Error messages appear below the input, in context
|
|
62
|
+
- Help text appears below label or below input, not as tooltip
|
|
63
|
+
- Group related fields (name + email, street + city + state)
|
|
64
|
+
|
|
65
|
+
**Sizing:**
|
|
66
|
+
|
|
67
|
+
| Size | Height | Font Size | Use Case |
|
|
68
|
+
|---|---|---|---|
|
|
69
|
+
| sm | 32px | 13-14px | Dense forms, admin panels |
|
|
70
|
+
| md | 40px | 14-15px | Standard forms |
|
|
71
|
+
| lg | 48px | 16px | Landing pages, mobile |
|
|
72
|
+
|
|
73
|
+
### Select / Dropdown
|
|
74
|
+
|
|
75
|
+
- Show current selection in the trigger
|
|
76
|
+
- Keyboard navigation: arrow keys, type-ahead, Enter to select, Escape to close
|
|
77
|
+
- Long lists: include search/filter
|
|
78
|
+
- Multi-select: use checkboxes inside dropdown, show count or tags in trigger
|
|
79
|
+
|
|
80
|
+
### Checkbox & Radio
|
|
81
|
+
|
|
82
|
+
- Minimum 44×44px touch target (including label)
|
|
83
|
+
- Label always to the right of the indicator
|
|
84
|
+
- Checkbox: independent selections (multi-select)
|
|
85
|
+
- Radio: mutually exclusive within a group
|
|
86
|
+
- Indeterminate checkbox state for "select all" with partial selection
|
|
87
|
+
|
|
88
|
+
### Form Validation
|
|
89
|
+
|
|
90
|
+
- **Inline validation**: Validate on blur (not on every keystroke)
|
|
91
|
+
- **Submit validation**: Validate all fields, focus the first error, scroll if needed
|
|
92
|
+
- **Error messaging**: Specific ("Email must include @") not generic ("Invalid input")
|
|
93
|
+
- **Success feedback**: Brief confirmation, then move on — don't celebrate trivial actions
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Cards
|
|
98
|
+
|
|
99
|
+
### When to Use
|
|
100
|
+
- Displaying a collection of items with mixed content (image + text + actions)
|
|
101
|
+
- Content that can be browsed and compared
|
|
102
|
+
- NOT for single content blocks or sequential content (use sections instead)
|
|
103
|
+
|
|
104
|
+
### Anatomy
|
|
105
|
+
1. **Media area** (optional) — Image, video, or illustration at top or left
|
|
106
|
+
2. **Header** — Title, subtitle, metadata
|
|
107
|
+
3. **Body** — Description or summary content
|
|
108
|
+
4. **Footer** (optional) — Actions, tags, or secondary metadata
|
|
109
|
+
|
|
110
|
+
### Interaction Patterns
|
|
111
|
+
- **Clickable card**: Entire card is a link, hover shows elevation change
|
|
112
|
+
- **Card with actions**: Card is not clickable, specific buttons/links inside are
|
|
113
|
+
- **Never both**: Don't make the whole card clickable AND have buttons inside it
|
|
114
|
+
|
|
115
|
+
### States
|
|
116
|
+
- Default, Hover (if clickable), Selected (in a selection context), Loading (skeleton)
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Navigation
|
|
121
|
+
|
|
122
|
+
### Top Navigation (Navbar)
|
|
123
|
+
|
|
124
|
+
- Logo/brand on the left
|
|
125
|
+
- Primary nav items horizontally centered or right-aligned
|
|
126
|
+
- Active page indicator: bold text, underline, or background highlight
|
|
127
|
+
- Mobile: hamburger menu (3 lines) → slide-out or full-screen overlay
|
|
128
|
+
- Sticky/fixed: include subtle shadow or border when scrolled
|
|
129
|
+
- Max 5-7 primary items; overflow into "More" dropdown
|
|
130
|
+
|
|
131
|
+
### Sidebar Navigation
|
|
132
|
+
|
|
133
|
+
- Collapsible for more content space
|
|
134
|
+
- Active item: filled background with brand color, or left border accent
|
|
135
|
+
- Group items with section headers
|
|
136
|
+
- Icons + labels in expanded state, icons-only in collapsed state with tooltips
|
|
137
|
+
- Scroll independently from main content
|
|
138
|
+
|
|
139
|
+
### Breadcrumbs
|
|
140
|
+
|
|
141
|
+
- Show current location in hierarchy
|
|
142
|
+
- Each segment is a link except the current page
|
|
143
|
+
- Separator: `/` or `>` or chevron icon
|
|
144
|
+
- Truncate long paths: show first, `...`, last 2 segments
|
|
145
|
+
|
|
146
|
+
### Tabs
|
|
147
|
+
|
|
148
|
+
- Horizontal for 2-5 options, vertical for 5+ or when labels are long
|
|
149
|
+
- Active tab: bold/colored text + bottom border (horizontal) or left border (vertical)
|
|
150
|
+
- Tab content switches without page reload
|
|
151
|
+
- Keyboard: arrow keys to switch, Tab to enter content area
|
|
152
|
+
- Don't nest tabs within tabs
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Modals & Dialogs
|
|
157
|
+
|
|
158
|
+
### When to Use
|
|
159
|
+
- Confirming destructive actions
|
|
160
|
+
- Short forms that don't warrant a new page (login, quick edit)
|
|
161
|
+
- Displaying focused content that blocks the main flow
|
|
162
|
+
|
|
163
|
+
### When NOT to Use
|
|
164
|
+
- Displaying information that could be inline
|
|
165
|
+
- Long forms or multi-step flows (use a page instead)
|
|
166
|
+
- Welcome messages or tutorials (use onboarding flows)
|
|
167
|
+
|
|
168
|
+
### Anatomy
|
|
169
|
+
- **Overlay/backdrop**: Semi-transparent dark (rgba(0,0,0,0.4-0.6))
|
|
170
|
+
- **Container**: Centered, max-width 480-640px, adequate padding (24-32px)
|
|
171
|
+
- **Header**: Title + close button (X) in top-right
|
|
172
|
+
- **Body**: Content area, scrollable if content overflows
|
|
173
|
+
- **Footer**: Action buttons (primary right, cancel left)
|
|
174
|
+
|
|
175
|
+
### Interaction
|
|
176
|
+
- Escape key closes the modal
|
|
177
|
+
- Clicking backdrop closes (for non-critical modals) or doesn't (for confirmations)
|
|
178
|
+
- Focus trapped inside modal (Tab cycles through modal elements only)
|
|
179
|
+
- Return focus to trigger element on close
|
|
180
|
+
- Prevent body scroll while modal is open
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Tables
|
|
185
|
+
|
|
186
|
+
### Best Practices
|
|
187
|
+
- Align text left, numbers right
|
|
188
|
+
- Header row: bold, subtle background, sticky on scroll
|
|
189
|
+
- Zebra striping OR subtle horizontal borders (not both)
|
|
190
|
+
- Minimum row height: 48px for touch, 36px for dense desktop
|
|
191
|
+
- Sortable columns: show sort indicator (arrow up/down)
|
|
192
|
+
- Pagination or virtual scroll for large datasets
|
|
193
|
+
|
|
194
|
+
### Responsive
|
|
195
|
+
- Priority columns stay visible, secondary columns hide on mobile
|
|
196
|
+
- Alternative: card-based layout on mobile instead of table
|
|
197
|
+
- Horizontal scroll as a last resort (wrap in a scroll container with shadow indicators)
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Feedback & Status
|
|
202
|
+
|
|
203
|
+
### Toast / Snackbar
|
|
204
|
+
- Brief messages (1-2 lines), auto-dismiss after 4-6 seconds
|
|
205
|
+
- Position: bottom-center or top-right
|
|
206
|
+
- Types: success (green), error (red), warning (amber), info (blue/neutral)
|
|
207
|
+
- Include dismiss action and optional undo for destructive actions
|
|
208
|
+
- Stack new toasts, don't replace existing ones
|
|
209
|
+
|
|
210
|
+
### Empty States
|
|
211
|
+
- Illustration or icon (purposeful, not decorative)
|
|
212
|
+
- Clear headline: what this area is for
|
|
213
|
+
- Description: why it's empty
|
|
214
|
+
- CTA: how to populate it
|
|
215
|
+
- Don't just show a blank white space
|
|
216
|
+
|
|
217
|
+
### Loading States
|
|
218
|
+
- **Skeleton screens** (preferred): Gray placeholder shapes matching content layout
|
|
219
|
+
- **Spinner**: Only for short, indeterminate waits (< 3 seconds expected)
|
|
220
|
+
- **Progress bar**: For determinate operations with known duration
|
|
221
|
+
- **Inline loading**: Button spinner, input loading indicator
|
|
222
|
+
|
|
223
|
+
### Error States
|
|
224
|
+
- Page-level: Friendly message + illustration, retry button, link to support
|
|
225
|
+
- Inline: Red border, error text below the field, `aria-invalid`
|
|
226
|
+
- Network: "Something went wrong" with retry, not a technical error dump
|
|
227
|
+
- 404: Helpful redirect suggestions, search, home link
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Accessibility Essentials
|
|
232
|
+
|
|
233
|
+
### Color & Contrast
|
|
234
|
+
- Body text: 4.5:1 contrast ratio minimum (WCAG AA)
|
|
235
|
+
- Large text (18px+ or 14px+ bold): 3:1 minimum
|
|
236
|
+
- Interactive elements: 3:1 against adjacent colors
|
|
237
|
+
- Don't use color as the only indicator — pair with icons, text, or patterns
|
|
238
|
+
|
|
239
|
+
### Keyboard Navigation
|
|
240
|
+
- All interactive elements focusable via Tab
|
|
241
|
+
- Visible focus indicator (not just browser default — design a custom one)
|
|
242
|
+
- Logical tab order matching visual layout
|
|
243
|
+
- Escape closes overlays, Enter activates buttons/links
|
|
244
|
+
|
|
245
|
+
### Screen Readers
|
|
246
|
+
- Meaningful alt text for informational images
|
|
247
|
+
- Empty alt (`alt=""`) for decorative images
|
|
248
|
+
- Proper heading hierarchy (h1 → h2 → h3, no skipping)
|
|
249
|
+
- ARIA labels for icon-only buttons and complex widgets
|
|
250
|
+
- Live regions for dynamic content updates (toast notifications, form errors)
|
|
251
|
+
|
|
252
|
+
### Motion
|
|
253
|
+
- Respect `prefers-reduced-motion` — disable or simplify animations
|
|
254
|
+
- No auto-playing video or audio without user control
|
|
255
|
+
- Avoid rapid flashing (3 flashes per second max)
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Design Principles — Anti-AI Aesthetic & Authentic Design Craft
|
|
2
|
+
|
|
3
|
+
Reference for producing designs that feel human-crafted, intentional, and unique. Load this when implementing designs or reviewing design quality.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Anti-AI-Look Patterns
|
|
8
|
+
|
|
9
|
+
AI-generated designs share recognizable traits. Avoid these to produce authentic work.
|
|
10
|
+
|
|
11
|
+
### Layout Anti-Patterns
|
|
12
|
+
|
|
13
|
+
| AI Trap | Why It Feels Generic | Do Instead |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Perfect 3-column symmetry for everything | Real content isn't symmetric | Vary column widths, use 2-col or asymmetric grids |
|
|
16
|
+
| Every section is full-width hero + centered text | Repetitive rhythm, no visual variety | Mix layout types: sidebar, offset, editorial, split |
|
|
17
|
+
| Giant hero with headline + subtitle + CTA on every page | Cookie-cutter template feel | Match the hero to content importance — some pages don't need one |
|
|
18
|
+
| Everything centered on the page | Monotonous visual flow | Use left-aligned text with intentional center/right accents |
|
|
19
|
+
| Equal spacing everywhere | Flat, robotic rhythm | Vary spacing to create grouping and breathing room |
|
|
20
|
+
| Card grids with identical card sizes | Catalog/stock feel | Vary card sizes, feature one, use masonry or editorial layouts |
|
|
21
|
+
|
|
22
|
+
### Color Anti-Patterns
|
|
23
|
+
|
|
24
|
+
| AI Trap | Why It Feels Generic | Do Instead |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| Blue-to-purple gradient as primary | Overused AI default | Choose a palette rooted in the brand or project's personality |
|
|
27
|
+
| Neon accent on dark background | "Tech startup template" look | Use muted, sophisticated accents — or bold ones with restraint |
|
|
28
|
+
| Using 6+ colors with equal prominence | Visual noise, no hierarchy | 1-2 primary colors, 1 accent, rest neutrals |
|
|
29
|
+
| Gradient backgrounds on every section | Decorative without purpose | Use solid colors; reserve gradients for specific emphasis |
|
|
30
|
+
| Pure black (#000) text on pure white (#fff) | Harsh contrast, screen glare | Use near-black (#1a1a1a–#2d2d2d) on off-white (#f8f8f8–#fafafa) |
|
|
31
|
+
| Colored shadows (purple/blue box-shadows) | Trendy but rarely appropriate | Neutral shadows unless the brand specifically calls for it |
|
|
32
|
+
|
|
33
|
+
### Typography Anti-Patterns
|
|
34
|
+
|
|
35
|
+
| AI Trap | Why It Feels Generic | Do Instead |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| Using Inter/Poppins/Montserrat for everything | Ubiquitous AI defaults | Consider the project's personality — serif for editorial, geometric sans for tech, humanist for approachable |
|
|
38
|
+
| Only 2 sizes: heading and body | Flat hierarchy | Use a proper type scale (e.g., 12/14/16/20/24/32/48) |
|
|
39
|
+
| All text in the same weight | No emphasis, everything competes | Use 2-3 weights (regular, medium, bold) with clear purpose |
|
|
40
|
+
| ALL CAPS EVERYWHERE | Aggressive, hard to read | Reserve caps for small labels, buttons, or overlines |
|
|
41
|
+
| Giant display text with no supporting content | Empty visual calories | Size should match content importance |
|
|
42
|
+
|
|
43
|
+
### Component Anti-Patterns
|
|
44
|
+
|
|
45
|
+
| AI Trap | Why It Feels Generic | Do Instead |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| border-radius: 9999px on everything | Bubbly, toy-like | Choose 1-2 radius values that match the design's tone (4-8px for sharp, 12-16px for soft) |
|
|
48
|
+
| Glassmorphism / frosted glass everywhere | Trend over function | Use glass effects sparingly where depth communication is needed |
|
|
49
|
+
| Drop shadows on everything | Visual heaviness, everything "floats" | Shadow only elements that conceptually need elevation (modals, dropdowns, cards on hover) |
|
|
50
|
+
| Outlined icon + outlined button + outlined card | Everything is a border, nothing has weight | Mix filled and outlined treatments for hierarchy |
|
|
51
|
+
| Decorative blob SVGs or wave dividers | Instant AI template identifier | Use geometric shapes with purpose, or no decoration at all |
|
|
52
|
+
| Stock illustration people with purple skin | Unmistakable AI/startup template | Use photography, custom illustration, or no illustration |
|
|
53
|
+
|
|
54
|
+
### Interaction Anti-Patterns
|
|
55
|
+
|
|
56
|
+
| AI Trap | Why It Feels Generic | Do Instead |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| Everything has a hover scale(1.05) | Bouncy, distracting | Reserve scale for interactive cards; use color/shadow changes for most hover states |
|
|
59
|
+
| 0.3s ease on everything | Sluggish, indiscriminate | Use faster transitions (150-200ms) for small elements, slower (300-400ms) for layout changes |
|
|
60
|
+
| Fade-in-up on scroll for every element | Scroll-jacking, animation fatigue | Animate only key content on first appearance; let secondary content be static |
|
|
61
|
+
| Loading spinners as the only loading state | No context about what's loading | Use skeleton screens, progressive content reveal, or inline loading indicators |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Authentic Design Principles
|
|
66
|
+
|
|
67
|
+
### 1. Content-First Hierarchy
|
|
68
|
+
|
|
69
|
+
Design serves content, not the other way around.
|
|
70
|
+
|
|
71
|
+
- Read the actual content before choosing layout
|
|
72
|
+
- Size elements proportional to their importance
|
|
73
|
+
- Use whitespace to group related content and separate sections
|
|
74
|
+
- Ask: "What should the user see first, second, third?"
|
|
75
|
+
|
|
76
|
+
### 2. Intentional Contrast
|
|
77
|
+
|
|
78
|
+
Every visual difference should communicate something.
|
|
79
|
+
|
|
80
|
+
- **Size contrast** — Headings vs. body, featured vs. standard items
|
|
81
|
+
- **Weight contrast** — Bold labels vs. regular values, strong CTAs vs. subtle links
|
|
82
|
+
- **Color contrast** — Primary actions vs. secondary, active states vs. default
|
|
83
|
+
- **Space contrast** — Tight groups of related items, generous gaps between sections
|
|
84
|
+
- **Density contrast** — Dense data areas vs. breathing hero/summary areas
|
|
85
|
+
|
|
86
|
+
### 3. Systematic but Not Robotic
|
|
87
|
+
|
|
88
|
+
Use systems (type scale, spacing scale, color tokens) but break them intentionally.
|
|
89
|
+
|
|
90
|
+
- Establish a base grid (4px or 8px) but don't snap everything mechanically
|
|
91
|
+
- Use your type scale but occasionally break it for display/hero moments
|
|
92
|
+
- Maintain consistent component patterns but allow contextual variations
|
|
93
|
+
|
|
94
|
+
### 4. Typography Does the Heavy Lifting
|
|
95
|
+
|
|
96
|
+
Most visual hierarchy comes from type, not decoration.
|
|
97
|
+
|
|
98
|
+
- Establish a clear scale: body → subhead → section head → page title → display
|
|
99
|
+
- Use weight and size together: a 14px bold label and a 16px regular body text create clear hierarchy without needing different colors
|
|
100
|
+
- Line-height matters: tighter for headings (1.1-1.3), looser for body (1.5-1.7)
|
|
101
|
+
- Letter-spacing: slightly positive for small caps/labels, zero or negative for large display text
|
|
102
|
+
|
|
103
|
+
### 5. Color as Communication
|
|
104
|
+
|
|
105
|
+
Color should mean something, not just decorate.
|
|
106
|
+
|
|
107
|
+
- **Brand color** — Primary actions, key elements, brand identity
|
|
108
|
+
- **Semantic color** — Success (green), warning (amber), error (red), info (blue)
|
|
109
|
+
- **Neutral palette** — Background, text, borders, dividers (this is 80% of your palette)
|
|
110
|
+
- **Accent** — Sparingly, to draw attention to one thing
|
|
111
|
+
|
|
112
|
+
### 6. Space Creates Meaning
|
|
113
|
+
|
|
114
|
+
Proximity and spacing communicate relationships.
|
|
115
|
+
|
|
116
|
+
- Items close together = related
|
|
117
|
+
- Items far apart = separate concepts
|
|
118
|
+
- Consistent internal padding = belonging to the same container
|
|
119
|
+
- Asymmetric margins = visual rhythm and movement
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Design Quality Checklist
|
|
124
|
+
|
|
125
|
+
Use this to evaluate designs before presenting to the user:
|
|
126
|
+
|
|
127
|
+
### Visual Hierarchy
|
|
128
|
+
- [ ] The most important element is visually dominant
|
|
129
|
+
- [ ] There is a clear reading order (F-pattern or Z-pattern where appropriate)
|
|
130
|
+
- [ ] Headings form a logical scale (not random sizes)
|
|
131
|
+
- [ ] CTAs are visually distinct from surrounding content
|
|
132
|
+
|
|
133
|
+
### Typography
|
|
134
|
+
- [ ] Body text is 16px+ for readability
|
|
135
|
+
- [ ] Line length is 45-75 characters for body text
|
|
136
|
+
- [ ] Heading/body font pairing is intentional
|
|
137
|
+
- [ ] No more than 3 font weights in active use
|
|
138
|
+
|
|
139
|
+
### Color
|
|
140
|
+
- [ ] Palette has 2 or fewer primary/accent colors
|
|
141
|
+
- [ ] Text:background contrast meets WCAG AA (4.5:1 for body, 3:1 for large text)
|
|
142
|
+
- [ ] Color is not the only indicator of state (icons, text, or shape also signal)
|
|
143
|
+
- [ ] Neutral palette has enough range (light bg, medium borders, dark text)
|
|
144
|
+
|
|
145
|
+
### Spacing & Layout
|
|
146
|
+
- [ ] Spacing follows a consistent scale (4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px)
|
|
147
|
+
- [ ] Related elements are grouped with tighter spacing
|
|
148
|
+
- [ ] Sections have comfortable breathing room
|
|
149
|
+
- [ ] Layout works at mobile, tablet, and desktop widths
|
|
150
|
+
|
|
151
|
+
### Components
|
|
152
|
+
- [ ] Interactive elements have visible hover/focus states
|
|
153
|
+
- [ ] Buttons have clear hierarchy (primary, secondary, tertiary/ghost)
|
|
154
|
+
- [ ] Form inputs have labels, placeholders are not used as labels
|
|
155
|
+
- [ ] Empty states, loading states, and error states are designed
|
|
156
|
+
|
|
157
|
+
### Interaction
|
|
158
|
+
- [ ] Transitions are fast (150-200ms) and purposeful
|
|
159
|
+
- [ ] Hover states indicate interactivity without being distracting
|
|
160
|
+
- [ ] Focus indicators are visible for keyboard navigation
|
|
161
|
+
- [ ] Animations don't block user interaction
|
|
162
|
+
|
|
163
|
+
### Authenticity
|
|
164
|
+
- [ ] Design doesn't match common template/AI patterns listed above
|
|
165
|
+
- [ ] Layout has visual variety (not repeating the same section format)
|
|
166
|
+
- [ ] Decoration (if any) serves a purpose
|
|
167
|
+
- [ ] The design reflects the project's unique personality
|