@hegemonart/get-design-done 1.18.0 → 1.19.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/.claude-plugin/marketplace.json +11 -5
- package/.claude-plugin/plugin.json +10 -4
- package/CHANGELOG.md +27 -0
- package/README.md +7 -0
- package/agents/design-auditor.md +5 -0
- package/agents/design-context-builder.md +6 -1
- package/agents/design-executor.md +1 -1
- package/agents/design-pattern-mapper.md +1 -0
- package/agents/design-phase-researcher.md +1 -1
- package/package.json +9 -3
- package/reference/data-visualization.md +333 -0
- package/reference/form-patterns.md +245 -0
- package/reference/information-architecture.md +255 -0
- package/reference/onboarding-progressive-disclosure.md +250 -0
- package/reference/platforms.md +346 -0
- package/reference/registry.json +402 -360
- package/reference/rtl-cjk-cultural.md +353 -0
- package/reference/user-research.md +360 -0
package/reference/registry.json
CHANGED
|
@@ -4,51 +4,16 @@
|
|
|
4
4
|
"generated_at": "2026-04-24T00:00:00.000Z",
|
|
5
5
|
"entries": [
|
|
6
6
|
{
|
|
7
|
-
"name": "
|
|
8
|
-
"path": "reference/
|
|
9
|
-
"type": "
|
|
10
|
-
"
|
|
11
|
-
"description": "L0 aggregator \u2014 imports meta-rules first and exposes Framework Identity + Ordering Convention + Pre-Warming"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"name": "meta-rules",
|
|
15
|
-
"path": "reference/meta-rules.md",
|
|
16
|
-
"type": "meta-rules",
|
|
17
|
-
"tier": "L0",
|
|
18
|
-
"description": "Framework-invariant rules: Required Reading Discipline, Writes Protocol, Deviation Handling, Completion Markers, Context-Exhaustion & Budget awareness"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"name": "cycle-handoff-preamble",
|
|
22
|
-
"path": "reference/cycle-handoff-preamble.md",
|
|
23
|
-
"type": "preamble",
|
|
24
|
-
"description": "Framing prose for archived cycle material \u2014 read as reference, not as current request"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"name": "retrieval-contract",
|
|
28
|
-
"path": "reference/retrieval-contract.md",
|
|
29
|
-
"type": "preamble",
|
|
30
|
-
"description": "3-layer search \u2192 metadata \u2192 full-doc protocol with per-row token-cost labels"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"name": "heuristics",
|
|
34
|
-
"path": "reference/heuristics.md",
|
|
35
|
-
"type": "heuristic",
|
|
36
|
-
"tier": "L2",
|
|
37
|
-
"description": "NNG heuristics + GDD-specific rubrics used by auditor / verifier"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"name": "anti-patterns",
|
|
41
|
-
"path": "reference/anti-patterns.md",
|
|
42
|
-
"type": "heuristic",
|
|
43
|
-
"tier": "L2",
|
|
44
|
-
"description": "Catalog of design anti-patterns surfaced during audit"
|
|
7
|
+
"name": "DEPRECATIONS",
|
|
8
|
+
"path": "reference/DEPRECATIONS.md",
|
|
9
|
+
"type": "schema",
|
|
10
|
+
"description": "Deprecation records and redirect mappings"
|
|
45
11
|
},
|
|
46
12
|
{
|
|
47
|
-
"name": "
|
|
48
|
-
"path": "reference/
|
|
49
|
-
"type": "
|
|
50
|
-
"
|
|
51
|
-
"description": "Per-category gate checklists"
|
|
13
|
+
"name": "STATE-TEMPLATE",
|
|
14
|
+
"path": "reference/STATE-TEMPLATE.md",
|
|
15
|
+
"type": "schema",
|
|
16
|
+
"description": "Template for .design/STATE.md scaffolded by /gdd:scan"
|
|
52
17
|
},
|
|
53
18
|
{
|
|
54
19
|
"name": "accessibility",
|
|
@@ -57,28 +22,17 @@
|
|
|
57
22
|
"description": "WCAG + focus + keyboard-nav heuristics referenced by a11y-mapper"
|
|
58
23
|
},
|
|
59
24
|
{
|
|
60
|
-
"name": "
|
|
61
|
-
"path": "reference/
|
|
62
|
-
"type": "
|
|
63
|
-
"description": "
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"name": "parallelism-rules",
|
|
67
|
-
"path": "reference/parallelism-rules.md",
|
|
68
|
-
"type": "heuristic",
|
|
69
|
-
"description": "Rules for serial/parallel agent dispatch and Touches conflict detection"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"name": "priority-matrix",
|
|
73
|
-
"path": "reference/priority-matrix.md",
|
|
74
|
-
"type": "heuristic",
|
|
75
|
-
"description": "Severity \u00d7 Effort priority-score formula used by gap prioritizers"
|
|
25
|
+
"name": "ai-native-tool-interface",
|
|
26
|
+
"path": "reference/ai-native-tool-interface.md",
|
|
27
|
+
"type": "surfaces",
|
|
28
|
+
"description": "AI-native tool interface contract used across connections"
|
|
76
29
|
},
|
|
77
30
|
{
|
|
78
|
-
"name": "
|
|
79
|
-
"path": "reference/
|
|
31
|
+
"name": "anti-patterns",
|
|
32
|
+
"path": "reference/anti-patterns.md",
|
|
80
33
|
"type": "heuristic",
|
|
81
|
-
"
|
|
34
|
+
"tier": "L2",
|
|
35
|
+
"description": "Catalog of design anti-patterns surfaced during audit"
|
|
82
36
|
},
|
|
83
37
|
{
|
|
84
38
|
"name": "audit-scoring",
|
|
@@ -86,12 +40,6 @@
|
|
|
86
40
|
"type": "output-contract",
|
|
87
41
|
"description": "6-pillar + 7-category audit score rubric and output schema"
|
|
88
42
|
},
|
|
89
|
-
{
|
|
90
|
-
"name": "review-format",
|
|
91
|
-
"path": "reference/review-format.md",
|
|
92
|
-
"type": "output-contract",
|
|
93
|
-
"description": "Format of code-review output documents"
|
|
94
|
-
},
|
|
95
43
|
{
|
|
96
44
|
"name": "authority-feeds",
|
|
97
45
|
"path": "reference/authority-feeds.md",
|
|
@@ -99,229 +47,227 @@
|
|
|
99
47
|
"description": "Whitelist of design-authority feed sources for the watcher"
|
|
100
48
|
},
|
|
101
49
|
{
|
|
102
|
-
"name": "
|
|
103
|
-
"path": "reference/
|
|
104
|
-
"type": "
|
|
105
|
-
"description": "
|
|
50
|
+
"name": "brand-voice",
|
|
51
|
+
"path": "reference/brand-voice.md",
|
|
52
|
+
"type": "heuristic",
|
|
53
|
+
"description": "Voice axes, archetypes, tone-by-context, industry-context palettes"
|
|
106
54
|
},
|
|
107
55
|
{
|
|
108
|
-
"name": "
|
|
109
|
-
"path": "reference/
|
|
56
|
+
"name": "checklists",
|
|
57
|
+
"path": "reference/checklists.md",
|
|
110
58
|
"type": "heuristic",
|
|
111
|
-
"
|
|
59
|
+
"tier": "L2",
|
|
60
|
+
"description": "Per-category gate checklists"
|
|
112
61
|
},
|
|
113
62
|
{
|
|
114
|
-
"name": "
|
|
115
|
-
"path": "reference/
|
|
116
|
-
"type": "
|
|
117
|
-
"description": "
|
|
63
|
+
"name": "component-accordion",
|
|
64
|
+
"path": "reference/components/accordion.md",
|
|
65
|
+
"type": "component-spec",
|
|
66
|
+
"description": "Accordion component spec — h2–h6 header, aria-expanded on trigger, CSS grid height animation"
|
|
118
67
|
},
|
|
119
68
|
{
|
|
120
|
-
"name": "
|
|
121
|
-
"path": "reference/
|
|
122
|
-
"type": "
|
|
123
|
-
"description": "
|
|
69
|
+
"name": "component-alert",
|
|
70
|
+
"path": "reference/components/alert.md",
|
|
71
|
+
"type": "component-spec",
|
|
72
|
+
"description": "Alert spec — info/success/warning/error variants, role=alert vs role=status, icon reinforces variant"
|
|
124
73
|
},
|
|
125
74
|
{
|
|
126
|
-
"name": "
|
|
127
|
-
"path": "reference/
|
|
128
|
-
"type": "
|
|
129
|
-
"description": "
|
|
75
|
+
"name": "component-badge",
|
|
76
|
+
"path": "reference/components/badge.md",
|
|
77
|
+
"type": "component-spec",
|
|
78
|
+
"description": "Badge spec — count/dot/icon variants, 99+ overflow, aria-label on parent element"
|
|
130
79
|
},
|
|
131
80
|
{
|
|
132
|
-
"name": "
|
|
133
|
-
"path": "reference/
|
|
134
|
-
"type": "
|
|
135
|
-
"description": "
|
|
81
|
+
"name": "component-breadcrumbs",
|
|
82
|
+
"path": "reference/components/breadcrumbs.md",
|
|
83
|
+
"type": "component-spec",
|
|
84
|
+
"description": "Breadcrumbs spec — aria-current=page on last item, aria-hidden separators, ol not ul"
|
|
136
85
|
},
|
|
137
86
|
{
|
|
138
|
-
"name": "
|
|
139
|
-
"path": "reference/
|
|
140
|
-
"type": "
|
|
141
|
-
"description": "
|
|
87
|
+
"name": "component-button",
|
|
88
|
+
"path": "reference/components/button.md",
|
|
89
|
+
"type": "component-spec",
|
|
90
|
+
"description": "Button component spec — primary/secondary/ghost/destructive/icon-only; WAI-ARIA Enter/Space contract"
|
|
142
91
|
},
|
|
143
92
|
{
|
|
144
|
-
"name": "
|
|
145
|
-
"path": "reference/
|
|
146
|
-
"type": "
|
|
147
|
-
"description": "
|
|
93
|
+
"name": "component-card",
|
|
94
|
+
"path": "reference/components/card.md",
|
|
95
|
+
"type": "component-spec",
|
|
96
|
+
"description": "Card component spec — stretched-link pattern, article semantics, nested interactive anti-pattern"
|
|
148
97
|
},
|
|
149
98
|
{
|
|
150
|
-
"name": "
|
|
151
|
-
"path": "reference/
|
|
152
|
-
"type": "
|
|
153
|
-
"description": "
|
|
99
|
+
"name": "component-checkbox",
|
|
100
|
+
"path": "reference/components/checkbox.md",
|
|
101
|
+
"type": "component-spec",
|
|
102
|
+
"description": "Checkbox component spec — fieldset+legend, indeterminate state, aria-checked=mixed"
|
|
154
103
|
},
|
|
155
104
|
{
|
|
156
|
-
"name": "
|
|
157
|
-
"path": "reference/
|
|
158
|
-
"type": "
|
|
159
|
-
"description": "
|
|
105
|
+
"name": "component-chip",
|
|
106
|
+
"path": "reference/components/chip.md",
|
|
107
|
+
"type": "component-spec",
|
|
108
|
+
"description": "Chip spec — filter/input/suggestion/display variants, aria-pressed on toggle, independent remove aria-label"
|
|
160
109
|
},
|
|
161
110
|
{
|
|
162
|
-
"name": "
|
|
163
|
-
"path": "reference/
|
|
164
|
-
"type": "
|
|
165
|
-
"description": "
|
|
111
|
+
"name": "component-command-palette",
|
|
112
|
+
"path": "reference/components/command-palette.md",
|
|
113
|
+
"type": "component-spec",
|
|
114
|
+
"description": "Command-palette spec — role=dialog + aria-modal, focus trap, role=combobox + aria-controls, Cmd/Ctrl+K"
|
|
166
115
|
},
|
|
167
116
|
{
|
|
168
|
-
"name": "
|
|
169
|
-
"path": "reference/
|
|
170
|
-
"type": "
|
|
171
|
-
"description": "
|
|
117
|
+
"name": "component-date-picker",
|
|
118
|
+
"path": "reference/components/date-picker.md",
|
|
119
|
+
"type": "component-spec",
|
|
120
|
+
"description": "Date-picker spec — input + range, calendar role=dialog, day gridcell+button, native mobile fallback"
|
|
172
121
|
},
|
|
173
122
|
{
|
|
174
|
-
"name": "
|
|
175
|
-
"path": "reference/
|
|
176
|
-
"type": "
|
|
177
|
-
"description": "
|
|
123
|
+
"name": "component-drawer",
|
|
124
|
+
"path": "reference/components/drawer.md",
|
|
125
|
+
"type": "component-spec",
|
|
126
|
+
"description": "Drawer component spec — focus trap, swipe-to-close, nav vs content role distinction"
|
|
178
127
|
},
|
|
179
128
|
{
|
|
180
|
-
"name": "
|
|
181
|
-
"path": "reference/
|
|
182
|
-
"type": "
|
|
183
|
-
"description": "
|
|
129
|
+
"name": "component-file-upload",
|
|
130
|
+
"path": "reference/components/file-upload.md",
|
|
131
|
+
"type": "component-spec",
|
|
132
|
+
"description": "File-upload spec — drop-zone + picker, input[type=file] never display:none, remove aria-label"
|
|
184
133
|
},
|
|
185
134
|
{
|
|
186
|
-
"name": "
|
|
187
|
-
"path": "reference/
|
|
188
|
-
"type": "
|
|
189
|
-
"description": "
|
|
135
|
+
"name": "component-input",
|
|
136
|
+
"path": "reference/components/input.md",
|
|
137
|
+
"type": "component-spec",
|
|
138
|
+
"description": "Input component spec — placeholder-as-label anti-pattern, aria-describedby error linking"
|
|
190
139
|
},
|
|
191
140
|
{
|
|
192
|
-
"name": "
|
|
193
|
-
"path": "reference/
|
|
194
|
-
"type": "
|
|
195
|
-
"description": "
|
|
141
|
+
"name": "component-label",
|
|
142
|
+
"path": "reference/components/label.md",
|
|
143
|
+
"type": "component-spec",
|
|
144
|
+
"description": "Label component spec — 4 association methods, .sr-only pattern, legend for groups"
|
|
196
145
|
},
|
|
197
146
|
{
|
|
198
|
-
"name": "
|
|
199
|
-
"path": "reference/
|
|
200
|
-
"type": "
|
|
201
|
-
"description": "
|
|
147
|
+
"name": "component-link",
|
|
148
|
+
"path": "reference/components/link.md",
|
|
149
|
+
"type": "component-spec",
|
|
150
|
+
"description": "Link component spec — a[href] vs button boundary, WCAG 1.4.1 underline, rel=noopener"
|
|
202
151
|
},
|
|
203
152
|
{
|
|
204
|
-
"name": "
|
|
205
|
-
"path": "reference/
|
|
206
|
-
"type": "
|
|
207
|
-
"description": "
|
|
153
|
+
"name": "component-list",
|
|
154
|
+
"path": "reference/components/list.md",
|
|
155
|
+
"type": "component-spec",
|
|
156
|
+
"description": "List spec — display (ul/li) vs interactive (role=listbox + role=option), virtualise >100 items"
|
|
208
157
|
},
|
|
209
158
|
{
|
|
210
|
-
"name": "
|
|
211
|
-
"path": "reference/
|
|
212
|
-
"type": "
|
|
213
|
-
"description": "
|
|
159
|
+
"name": "component-menu",
|
|
160
|
+
"path": "reference/components/menu.md",
|
|
161
|
+
"type": "component-spec",
|
|
162
|
+
"description": "Menu spec — role=menu + role=menuitem, arrow-key nav, click-only open, sub-menu ArrowRight"
|
|
214
163
|
},
|
|
215
164
|
{
|
|
216
|
-
"name": "
|
|
217
|
-
"path": "reference/
|
|
218
|
-
"type": "
|
|
219
|
-
"description": "
|
|
165
|
+
"name": "component-modal-dialog",
|
|
166
|
+
"path": "reference/components/modal-dialog.md",
|
|
167
|
+
"type": "component-spec",
|
|
168
|
+
"description": "Modal dialog spec — focus trap, Escape contract, aria-modal, aria-labelledby, scroll-lock"
|
|
220
169
|
},
|
|
221
170
|
{
|
|
222
|
-
"name": "
|
|
223
|
-
"path": "reference/
|
|
224
|
-
"type": "
|
|
225
|
-
"description": "
|
|
171
|
+
"name": "component-navbar",
|
|
172
|
+
"path": "reference/components/navbar.md",
|
|
173
|
+
"type": "component-spec",
|
|
174
|
+
"description": "Navbar spec — role=banner + role=navigation, skip link, aria-current=page, hamburger aria-expanded"
|
|
226
175
|
},
|
|
227
176
|
{
|
|
228
|
-
"name": "
|
|
229
|
-
"path": "reference/
|
|
230
|
-
"type": "
|
|
231
|
-
"description": "
|
|
177
|
+
"name": "component-pagination",
|
|
178
|
+
"path": "reference/components/pagination.md",
|
|
179
|
+
"type": "component-spec",
|
|
180
|
+
"description": "Pagination spec — aria-label=Pagination, aria-current=page, per-page select with visible label"
|
|
232
181
|
},
|
|
233
182
|
{
|
|
234
|
-
"name": "
|
|
235
|
-
"path": "reference/
|
|
236
|
-
"type": "
|
|
237
|
-
"description": "
|
|
183
|
+
"name": "component-popover",
|
|
184
|
+
"path": "reference/components/popover.md",
|
|
185
|
+
"type": "component-spec",
|
|
186
|
+
"description": "Popover spec — Floating UI middlewares, non-modal, aria-expanded+aria-controls"
|
|
238
187
|
},
|
|
239
188
|
{
|
|
240
|
-
"name": "
|
|
241
|
-
"path": "reference/
|
|
242
|
-
"type": "
|
|
243
|
-
"description": "
|
|
189
|
+
"name": "component-progress",
|
|
190
|
+
"path": "reference/components/progress.md",
|
|
191
|
+
"type": "component-spec",
|
|
192
|
+
"description": "Progress spec — determinate (aria-valuenow) vs indeterminate (aria-valuetext), linear + circular"
|
|
244
193
|
},
|
|
245
194
|
{
|
|
246
|
-
"name": "
|
|
247
|
-
"path": "reference/
|
|
248
|
-
"type": "
|
|
249
|
-
"description": "
|
|
195
|
+
"name": "component-radio",
|
|
196
|
+
"path": "reference/components/radio.md",
|
|
197
|
+
"type": "component-spec",
|
|
198
|
+
"description": "Radio component spec — arrow-key auto-advance, Tab-as-group-unit, single-radio anti-pattern"
|
|
250
199
|
},
|
|
251
200
|
{
|
|
252
|
-
"name": "
|
|
253
|
-
"path": "reference/
|
|
254
|
-
"type": "
|
|
255
|
-
"description": "
|
|
201
|
+
"name": "component-rich-text-editor",
|
|
202
|
+
"path": "reference/components/rich-text-editor.md",
|
|
203
|
+
"type": "component-spec",
|
|
204
|
+
"description": "Rich-text editor spec — contenteditable + role=textbox, toolbar role=toolbar, aria-pressed on toggles"
|
|
256
205
|
},
|
|
257
206
|
{
|
|
258
|
-
"name": "
|
|
259
|
-
"path": "reference/
|
|
260
|
-
"type": "
|
|
261
|
-
"description": "
|
|
207
|
+
"name": "component-select-combobox",
|
|
208
|
+
"path": "reference/components/select-combobox.md",
|
|
209
|
+
"type": "component-spec",
|
|
210
|
+
"description": "Select/combobox spec — WAI-ARIA listbox + combobox contracts, aria-activedescendant"
|
|
262
211
|
},
|
|
263
212
|
{
|
|
264
|
-
"name": "
|
|
265
|
-
"path": "reference/
|
|
266
|
-
"type": "
|
|
267
|
-
"
|
|
268
|
-
"description": "Variable font axes, font-display trade-offs, WOFF2 subsetting, FOIT/FOUT, fallback metric overrides, GRAD axis for dark mode, system font stacks (REF-14)"
|
|
213
|
+
"name": "component-sidebar",
|
|
214
|
+
"path": "reference/components/sidebar.md",
|
|
215
|
+
"type": "component-spec",
|
|
216
|
+
"description": "Sidebar spec — aria-label=Secondary, icon+label vs icon-only collapsed, settings-nav + dashboard-nav variants"
|
|
269
217
|
},
|
|
270
218
|
{
|
|
271
|
-
"name": "
|
|
272
|
-
"path": "reference/
|
|
273
|
-
"type": "
|
|
274
|
-
"
|
|
275
|
-
"description": "WebP/AVIF/JPEG-XL matrix, srcset+sizes math, art direction, LQIP/BlurHash, lazy-loading, fetchpriority, CDN transforms, image budget enforcement (REF-15)"
|
|
219
|
+
"name": "component-skeleton",
|
|
220
|
+
"path": "reference/components/skeleton.md",
|
|
221
|
+
"type": "component-spec",
|
|
222
|
+
"description": "Skeleton spec — content-mirror layout, shimmer animation, aria-hidden on elements, aria-busy on container"
|
|
276
223
|
},
|
|
277
224
|
{
|
|
278
|
-
"name": "
|
|
279
|
-
"path": "reference/
|
|
280
|
-
"type": "
|
|
281
|
-
"
|
|
282
|
-
"description": "CSS Grid templates, subgrid, container queries, fluid clamp() typography, intrinsic sizing, logical properties, safe-area insets, anchor positioning (REF-16)"
|
|
225
|
+
"name": "component-slider",
|
|
226
|
+
"path": "reference/components/slider.md",
|
|
227
|
+
"type": "component-spec",
|
|
228
|
+
"description": "Slider spec — role=slider + aria-valuenow/min/max/valuetext, 44px thumb touch target, Page Up/Down ±10%"
|
|
283
229
|
},
|
|
284
230
|
{
|
|
285
|
-
"name": "
|
|
286
|
-
"path": "reference/
|
|
287
|
-
"type": "
|
|
288
|
-
"
|
|
289
|
-
"description": "Advanced motion: spring physics, FLIP, scroll-driven, View Transitions API, gesture/drag mechanics, clip-path animations, blur crossfades, WAAPI, Framer Motion hardware-accel gotcha, motion cohesion (REF-17)"
|
|
231
|
+
"name": "component-stepper",
|
|
232
|
+
"path": "reference/components/stepper.md",
|
|
233
|
+
"type": "component-spec",
|
|
234
|
+
"description": "Stepper spec — role=list (not role=tablist), aria-current=step, wizard/onboarding/checkout flow context"
|
|
290
235
|
},
|
|
291
236
|
{
|
|
292
|
-
"name": "
|
|
293
|
-
"path": "reference/
|
|
294
|
-
"type": "
|
|
295
|
-
"
|
|
296
|
-
"description": "12 canonical easing presets from RN MIT upstream — linear/quad/cubic/poly/sin/circle/exp/elastic/back/bounce/bezier + in/out/inOut wrappers; --ease-* token catalog; 60fps settle-times (MOT-01)"
|
|
237
|
+
"name": "component-switch",
|
|
238
|
+
"path": "reference/components/switch.md",
|
|
239
|
+
"type": "component-spec",
|
|
240
|
+
"description": "Switch component spec — role=switch, spring thumb, pill track, immediate-action rule"
|
|
297
241
|
},
|
|
298
242
|
{
|
|
299
|
-
"name": "
|
|
300
|
-
"path": "reference/
|
|
301
|
-
"type": "
|
|
302
|
-
"
|
|
303
|
-
"description": "Input→output range mapping + 4 extrapolation modes (extend|identity|clamp|wrap); taxonomy of progress/scroll/gesture/time-linked animations (MOT-02)"
|
|
243
|
+
"name": "component-table",
|
|
244
|
+
"path": "reference/components/table.md",
|
|
245
|
+
"type": "component-spec",
|
|
246
|
+
"description": "Table spec — scope=col on th, aria-sort, aria-selected on rows, role=grid vs role=table, virtualise >200"
|
|
304
247
|
},
|
|
305
248
|
{
|
|
306
|
-
"name": "
|
|
307
|
-
"path": "reference/
|
|
308
|
-
"type": "
|
|
309
|
-
"
|
|
310
|
-
"description": "Spring stiffness/damping/mass triad + 4 canonical presets (gentle/wobbly/stiff/slow) with 60fps settle-times; Framer Motion + React Spring syntax; CSS linear() approximation (MOT-05)"
|
|
249
|
+
"name": "component-tabs",
|
|
250
|
+
"path": "reference/components/tabs.md",
|
|
251
|
+
"type": "component-spec",
|
|
252
|
+
"description": "Tabs component spec — roving tabindex, arrow-key nav, automatic vs manual activation"
|
|
311
253
|
},
|
|
312
254
|
{
|
|
313
|
-
"name": "
|
|
314
|
-
"path": "reference/
|
|
315
|
-
"type": "
|
|
316
|
-
"
|
|
317
|
-
"description": "8 controlled transition families from hyperframes Apache-2.0: 3d, blur, cover, destruction, dissolve, distortion, grid, light — each with definition, canonical examples, when-to-use (MOT-03)"
|
|
255
|
+
"name": "component-toast",
|
|
256
|
+
"path": "reference/components/toast.md",
|
|
257
|
+
"type": "component-spec",
|
|
258
|
+
"description": "Toast spec — role=status vs role=alert, 4–8s auto-dismiss, stacking, UUPM dashboard context"
|
|
318
259
|
},
|
|
319
260
|
{
|
|
320
|
-
"name": "
|
|
321
|
-
"path": "reference/
|
|
322
|
-
"type": "
|
|
323
|
-
"
|
|
324
|
-
|
|
261
|
+
"name": "component-tooltip",
|
|
262
|
+
"path": "reference/components/tooltip.md",
|
|
263
|
+
"type": "component-spec",
|
|
264
|
+
"description": "Tooltip spec — no interactive content, hover+focus trigger, 300ms delay, aria-describedby"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"name": "component-tree",
|
|
268
|
+
"path": "reference/components/tree.md",
|
|
269
|
+
"type": "component-spec",
|
|
270
|
+
"description": "Tree spec — role=tree + role=treeitem + role=group, aria-expanded, aria-level, aria-busy lazy-load"
|
|
325
271
|
},
|
|
326
272
|
{
|
|
327
273
|
"name": "components-README",
|
|
@@ -336,214 +282,310 @@
|
|
|
336
282
|
"description": "Locked 12-section spec shape for component benchmarks (Purpose → Failing example)"
|
|
337
283
|
},
|
|
338
284
|
{
|
|
339
|
-
"name": "
|
|
340
|
-
"path": "reference/
|
|
341
|
-
"type": "
|
|
342
|
-
"description": "
|
|
285
|
+
"name": "config-schema",
|
|
286
|
+
"path": "reference/config-schema.md",
|
|
287
|
+
"type": "schema",
|
|
288
|
+
"description": "Schema documentation for .design/config.json"
|
|
343
289
|
},
|
|
344
290
|
{
|
|
345
|
-
"name": "
|
|
346
|
-
"path": "reference/
|
|
347
|
-
"type": "
|
|
348
|
-
"
|
|
291
|
+
"name": "css-grid-layout",
|
|
292
|
+
"path": "reference/css-grid-layout.md",
|
|
293
|
+
"type": "layout",
|
|
294
|
+
"phase": 18,
|
|
295
|
+
"description": "CSS Grid templates, subgrid, container queries, fluid clamp() typography, intrinsic sizing, logical properties, safe-area insets, anchor positioning (REF-16)"
|
|
349
296
|
},
|
|
350
297
|
{
|
|
351
|
-
"name": "
|
|
352
|
-
"path": "reference/
|
|
353
|
-
"type": "
|
|
354
|
-
"description": "
|
|
298
|
+
"name": "cycle-handoff-preamble",
|
|
299
|
+
"path": "reference/cycle-handoff-preamble.md",
|
|
300
|
+
"type": "preamble",
|
|
301
|
+
"description": "Framing prose for archived cycle material — read as reference, not as current request"
|
|
355
302
|
},
|
|
356
303
|
{
|
|
357
|
-
"name": "
|
|
358
|
-
"path": "reference/
|
|
359
|
-
"type": "
|
|
360
|
-
"description": "
|
|
304
|
+
"name": "data-visualization",
|
|
305
|
+
"path": "reference/data-visualization.md",
|
|
306
|
+
"type": "heuristic",
|
|
307
|
+
"description": "Chart-choice matrix (25 types), color-blind-safe palettes, axis conventions, dashboard patterns (UUPM MIT)"
|
|
361
308
|
},
|
|
362
309
|
{
|
|
363
|
-
"name": "
|
|
364
|
-
"path": "reference/
|
|
365
|
-
"type": "
|
|
366
|
-
"description": "
|
|
310
|
+
"name": "debugger-philosophy",
|
|
311
|
+
"path": "reference/debugger-philosophy.md",
|
|
312
|
+
"type": "heuristic",
|
|
313
|
+
"description": "Philosophy guide for systematic-debugging agents"
|
|
367
314
|
},
|
|
368
315
|
{
|
|
369
|
-
"name": "
|
|
370
|
-
"path": "reference/
|
|
371
|
-
"type": "
|
|
372
|
-
"description": "
|
|
316
|
+
"name": "design-system-guidance",
|
|
317
|
+
"path": "reference/design-system-guidance.md",
|
|
318
|
+
"type": "heuristic",
|
|
319
|
+
"description": "Token versioning, multi-brand arch, governance, maturity rubric 0-5"
|
|
373
320
|
},
|
|
374
321
|
{
|
|
375
|
-
"name": "
|
|
376
|
-
"path": "reference/
|
|
377
|
-
"type": "
|
|
378
|
-
"description": "
|
|
322
|
+
"name": "design-systems-catalog",
|
|
323
|
+
"path": "reference/design-systems-catalog.md",
|
|
324
|
+
"type": "taxonomy",
|
|
325
|
+
"description": "Quick-reference index of 18 major design systems"
|
|
379
326
|
},
|
|
380
327
|
{
|
|
381
|
-
"name": "
|
|
382
|
-
"path": "reference/
|
|
383
|
-
"type": "
|
|
384
|
-
"description": "
|
|
328
|
+
"name": "figma-sandbox",
|
|
329
|
+
"path": "reference/figma-sandbox.md",
|
|
330
|
+
"type": "defaults",
|
|
331
|
+
"description": "Four Figma plugin-sandbox pitfalls encoded as hard rules"
|
|
385
332
|
},
|
|
386
333
|
{
|
|
387
|
-
"name": "
|
|
388
|
-
"path": "reference/
|
|
389
|
-
"type": "
|
|
390
|
-
"description": "
|
|
334
|
+
"name": "form-patterns",
|
|
335
|
+
"path": "reference/form-patterns.md",
|
|
336
|
+
"type": "heuristic",
|
|
337
|
+
"description": "Label position, inline-validation timing, autocomplete tokens, password UX, CAPTCHA ethics"
|
|
391
338
|
},
|
|
392
339
|
{
|
|
393
|
-
"name": "
|
|
394
|
-
"path": "reference/
|
|
395
|
-
"type": "
|
|
396
|
-
"description": "
|
|
340
|
+
"name": "framer-motion-patterns",
|
|
341
|
+
"path": "reference/framer-motion-patterns.md",
|
|
342
|
+
"type": "heuristic",
|
|
343
|
+
"description": "Framer Motion implementation: spring/tween, AnimatePresence, variants, gestures, a11y"
|
|
397
344
|
},
|
|
398
345
|
{
|
|
399
|
-
"name": "
|
|
400
|
-
"path": "reference/
|
|
401
|
-
"type": "
|
|
402
|
-
"description": "
|
|
346
|
+
"name": "gestalt",
|
|
347
|
+
"path": "reference/gestalt.md",
|
|
348
|
+
"type": "heuristic",
|
|
349
|
+
"description": "8 Gestalt principles with scoring rubrics and grep signatures"
|
|
403
350
|
},
|
|
404
351
|
{
|
|
405
|
-
"name": "
|
|
406
|
-
"path": "reference/
|
|
407
|
-
"type": "
|
|
408
|
-
"description": "
|
|
352
|
+
"name": "google-fonts-data",
|
|
353
|
+
"path": "reference/data/google-fonts.csv",
|
|
354
|
+
"type": "data",
|
|
355
|
+
"description": "Google Fonts catalog (representative sample of 1923-row UUPM data set)"
|
|
409
356
|
},
|
|
410
357
|
{
|
|
411
|
-
"name": "
|
|
412
|
-
"path": "reference/
|
|
413
|
-
"type": "
|
|
414
|
-
"
|
|
358
|
+
"name": "heuristics",
|
|
359
|
+
"path": "reference/heuristics.md",
|
|
360
|
+
"type": "heuristic",
|
|
361
|
+
"tier": "L2",
|
|
362
|
+
"description": "NNG heuristics + GDD-specific rubrics used by auditor / verifier"
|
|
415
363
|
},
|
|
416
364
|
{
|
|
417
|
-
"name": "
|
|
418
|
-
"path": "reference/
|
|
419
|
-
"type": "
|
|
420
|
-
"description": "
|
|
365
|
+
"name": "iconography",
|
|
366
|
+
"path": "reference/iconography.md",
|
|
367
|
+
"type": "heuristic",
|
|
368
|
+
"description": "Icon sizing, metaphors, library catalog, touch targets, animation"
|
|
421
369
|
},
|
|
422
370
|
{
|
|
423
|
-
"name": "
|
|
424
|
-
"path": "reference/
|
|
425
|
-
"type": "
|
|
426
|
-
"
|
|
371
|
+
"name": "image-optimization",
|
|
372
|
+
"path": "reference/image-optimization.md",
|
|
373
|
+
"type": "performance",
|
|
374
|
+
"phase": 18,
|
|
375
|
+
"description": "WebP/AVIF/JPEG-XL matrix, srcset+sizes math, art direction, LQIP/BlurHash, lazy-loading, fetchpriority, CDN transforms, image budget enforcement (REF-15)"
|
|
427
376
|
},
|
|
428
377
|
{
|
|
429
|
-
"name": "
|
|
430
|
-
"path": "reference/
|
|
431
|
-
"type": "
|
|
432
|
-
"description": "
|
|
378
|
+
"name": "information-architecture",
|
|
379
|
+
"path": "reference/information-architecture.md",
|
|
380
|
+
"type": "heuristic",
|
|
381
|
+
"description": "Nav pattern catalog, menu-depth rules, card sort/tree test benchmarks, wayfinding, faceted nav"
|
|
433
382
|
},
|
|
434
383
|
{
|
|
435
|
-
"name": "
|
|
436
|
-
"path": "reference/
|
|
437
|
-
"type": "
|
|
438
|
-
"description": "
|
|
384
|
+
"name": "intel-schema",
|
|
385
|
+
"path": "reference/intel-schema.md",
|
|
386
|
+
"type": "schema",
|
|
387
|
+
"description": "Schema documentation for .design/intel/ files"
|
|
439
388
|
},
|
|
440
389
|
{
|
|
441
|
-
"name": "
|
|
442
|
-
"path": "reference/
|
|
443
|
-
"type": "
|
|
444
|
-
"description": "
|
|
390
|
+
"name": "mcp-budget.default",
|
|
391
|
+
"path": "reference/mcp-budget.default.json",
|
|
392
|
+
"type": "defaults",
|
|
393
|
+
"description": "Default MCP per-task budget (calls + consecutive-timeout thresholds)"
|
|
445
394
|
},
|
|
446
395
|
{
|
|
447
|
-
"name": "
|
|
448
|
-
"path": "reference/
|
|
449
|
-
"type": "
|
|
450
|
-
"
|
|
396
|
+
"name": "meta-rules",
|
|
397
|
+
"path": "reference/meta-rules.md",
|
|
398
|
+
"type": "meta-rules",
|
|
399
|
+
"tier": "L0",
|
|
400
|
+
"description": "Framework-invariant rules: Required Reading Discipline, Writes Protocol, Deviation Handling, Completion Markers, Context-Exhaustion & Budget awareness"
|
|
451
401
|
},
|
|
452
402
|
{
|
|
453
|
-
"name": "
|
|
454
|
-
"path": "reference/
|
|
455
|
-
"type": "
|
|
456
|
-
"description": "
|
|
403
|
+
"name": "model-prices",
|
|
404
|
+
"path": "reference/model-prices.md",
|
|
405
|
+
"type": "data",
|
|
406
|
+
"description": "Anthropic model pricing table used by the telemetry aggregator"
|
|
457
407
|
},
|
|
458
408
|
{
|
|
459
|
-
"name": "
|
|
460
|
-
"path": "reference/
|
|
461
|
-
"type": "
|
|
462
|
-
"description": "
|
|
409
|
+
"name": "model-tiers",
|
|
410
|
+
"path": "reference/model-tiers.md",
|
|
411
|
+
"type": "data",
|
|
412
|
+
"description": "Per-agent default tier map and rationale"
|
|
463
413
|
},
|
|
464
414
|
{
|
|
465
|
-
"name": "
|
|
466
|
-
"path": "reference/
|
|
467
|
-
"type": "
|
|
468
|
-
"description": "
|
|
415
|
+
"name": "motion",
|
|
416
|
+
"path": "reference/motion.md",
|
|
417
|
+
"type": "motion",
|
|
418
|
+
"description": "Motion vocabulary seed (extended in Phase 18)"
|
|
469
419
|
},
|
|
470
420
|
{
|
|
471
|
-
"name": "
|
|
472
|
-
"path": "reference/
|
|
473
|
-
"type": "
|
|
474
|
-
"
|
|
421
|
+
"name": "motion-advanced",
|
|
422
|
+
"path": "reference/motion-advanced.md",
|
|
423
|
+
"type": "motion",
|
|
424
|
+
"phase": 18,
|
|
425
|
+
"description": "Advanced motion: spring physics, FLIP, scroll-driven, View Transitions API, gesture/drag mechanics, clip-path animations, blur crossfades, WAAPI, Framer Motion hardware-accel gotcha, motion cohesion (REF-17)"
|
|
475
426
|
},
|
|
476
427
|
{
|
|
477
|
-
"name": "
|
|
478
|
-
"path": "reference/
|
|
479
|
-
"type": "
|
|
480
|
-
"
|
|
428
|
+
"name": "motion-easings",
|
|
429
|
+
"path": "reference/motion-easings.md",
|
|
430
|
+
"type": "motion",
|
|
431
|
+
"phase": 18,
|
|
432
|
+
"description": "12 canonical easing presets from RN MIT upstream — linear/quad/cubic/poly/sin/circle/exp/elastic/back/bounce/bezier + in/out/inOut wrappers; --ease-* token catalog; 60fps settle-times (MOT-01)"
|
|
481
433
|
},
|
|
482
434
|
{
|
|
483
|
-
"name": "
|
|
484
|
-
"path": "reference/
|
|
485
|
-
"type": "
|
|
486
|
-
"
|
|
435
|
+
"name": "motion-interpolate",
|
|
436
|
+
"path": "reference/motion-interpolate.md",
|
|
437
|
+
"type": "motion",
|
|
438
|
+
"phase": 18,
|
|
439
|
+
"description": "Input→output range mapping + 4 extrapolation modes (extend|identity|clamp|wrap); taxonomy of progress/scroll/gesture/time-linked animations (MOT-02)"
|
|
487
440
|
},
|
|
488
441
|
{
|
|
489
|
-
"name": "
|
|
490
|
-
"path": "reference/
|
|
491
|
-
"type": "
|
|
492
|
-
"
|
|
442
|
+
"name": "motion-map-contract",
|
|
443
|
+
"path": "reference/output-contracts/motion-map.schema.json",
|
|
444
|
+
"type": "output-contract",
|
|
445
|
+
"phase": 18,
|
|
446
|
+
"description": "JSON schema for motion-mapper structured output block — easing, transition_family, duration_class, trigger per animation binding (MOT-04)"
|
|
493
447
|
},
|
|
494
448
|
{
|
|
495
|
-
"name": "
|
|
496
|
-
"path": "reference/
|
|
497
|
-
"type": "
|
|
498
|
-
"
|
|
449
|
+
"name": "motion-spring",
|
|
450
|
+
"path": "reference/motion-spring.md",
|
|
451
|
+
"type": "motion",
|
|
452
|
+
"phase": 18,
|
|
453
|
+
"description": "Spring stiffness/damping/mass triad + 4 canonical presets (gentle/wobbly/stiff/slow) with 60fps settle-times; Framer Motion + React Spring syntax; CSS linear() approximation (MOT-05)"
|
|
499
454
|
},
|
|
500
455
|
{
|
|
501
|
-
"name": "
|
|
502
|
-
"path": "reference/
|
|
503
|
-
"type": "
|
|
504
|
-
"
|
|
456
|
+
"name": "motion-transition-taxonomy",
|
|
457
|
+
"path": "reference/motion-transition-taxonomy.md",
|
|
458
|
+
"type": "motion",
|
|
459
|
+
"phase": 18,
|
|
460
|
+
"description": "8 controlled transition families from hyperframes Apache-2.0: 3d, blur, cover, destruction, dissolve, distortion, grid, light — each with definition, canonical examples, when-to-use (MOT-03)"
|
|
505
461
|
},
|
|
506
462
|
{
|
|
507
|
-
"name": "
|
|
508
|
-
"path": "reference/
|
|
509
|
-
"type": "
|
|
510
|
-
"description": "
|
|
463
|
+
"name": "onboarding-progressive-disclosure",
|
|
464
|
+
"path": "reference/onboarding-progressive-disclosure.md",
|
|
465
|
+
"type": "heuristic",
|
|
466
|
+
"description": "First-run patterns, feature discovery, Aha-moment mapping, onboarding anti-patterns"
|
|
511
467
|
},
|
|
512
468
|
{
|
|
513
|
-
"name": "
|
|
514
|
-
"path": "reference/
|
|
515
|
-
"type": "
|
|
516
|
-
"description": "
|
|
469
|
+
"name": "palette-catalog",
|
|
470
|
+
"path": "reference/palette-catalog.md",
|
|
471
|
+
"type": "palette",
|
|
472
|
+
"description": "40+ industry-vertical color palettes (WCAG verified, UUPM MIT)"
|
|
517
473
|
},
|
|
518
474
|
{
|
|
519
|
-
"name": "
|
|
520
|
-
"path": "reference/
|
|
521
|
-
"type": "
|
|
522
|
-
"description": "
|
|
475
|
+
"name": "palettes-data",
|
|
476
|
+
"path": "reference/data/palettes.csv",
|
|
477
|
+
"type": "data",
|
|
478
|
+
"description": "CSV data sibling for palette-catalog.md"
|
|
523
479
|
},
|
|
524
480
|
{
|
|
525
|
-
"name": "
|
|
526
|
-
"path": "reference/
|
|
527
|
-
"type": "
|
|
528
|
-
"description": "
|
|
481
|
+
"name": "parallelism-rules",
|
|
482
|
+
"path": "reference/parallelism-rules.md",
|
|
483
|
+
"type": "heuristic",
|
|
484
|
+
"description": "Rules for serial/parallel agent dispatch and Touches conflict detection"
|
|
529
485
|
},
|
|
530
486
|
{
|
|
531
|
-
"name": "
|
|
532
|
-
"path": "reference/
|
|
533
|
-
"type": "
|
|
534
|
-
"description": "
|
|
487
|
+
"name": "performance",
|
|
488
|
+
"path": "reference/performance.md",
|
|
489
|
+
"type": "heuristic",
|
|
490
|
+
"description": "Core Web Vitals budgets, JS/font/image budgets, React runtime perf"
|
|
535
491
|
},
|
|
536
492
|
{
|
|
537
|
-
"name": "
|
|
538
|
-
"path": "reference/
|
|
539
|
-
"type": "
|
|
540
|
-
"description": "
|
|
493
|
+
"name": "platforms",
|
|
494
|
+
"path": "reference/platforms.md",
|
|
495
|
+
"type": "heuristic",
|
|
496
|
+
"description": "iOS/Android/web/visionOS/watchOS conventions: nav patterns, safe areas, gestures, native typography, haptics"
|
|
541
497
|
},
|
|
542
498
|
{
|
|
543
|
-
"name": "
|
|
544
|
-
"path": "reference/
|
|
545
|
-
"type": "
|
|
546
|
-
"description": "
|
|
499
|
+
"name": "priority-matrix",
|
|
500
|
+
"path": "reference/priority-matrix.md",
|
|
501
|
+
"type": "heuristic",
|
|
502
|
+
"description": "Severity × Effort priority-score formula used by gap prioritizers"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"name": "project-skills-guide",
|
|
506
|
+
"path": "reference/project-skills-guide.md",
|
|
507
|
+
"type": "heuristic",
|
|
508
|
+
"description": "Guide for authoring project-skill artifacts (sketch/spike wrap-ups)"
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"name": "protected-paths.default",
|
|
512
|
+
"path": "reference/protected-paths.default.json",
|
|
513
|
+
"type": "defaults",
|
|
514
|
+
"description": "Default glob list the plugin refuses to Edit/Write/mutate-via-Bash without override"
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"name": "retrieval-contract",
|
|
518
|
+
"path": "reference/retrieval-contract.md",
|
|
519
|
+
"type": "preamble",
|
|
520
|
+
"description": "3-layer search → metadata → full-doc protocol with per-row token-cost labels"
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"name": "review-format",
|
|
524
|
+
"path": "reference/review-format.md",
|
|
525
|
+
"type": "output-contract",
|
|
526
|
+
"description": "Format of code-review output documents"
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"name": "rtl-cjk-cultural",
|
|
530
|
+
"path": "reference/rtl-cjk-cultural.md",
|
|
531
|
+
"type": "heuristic",
|
|
532
|
+
"description": "RTL mirroring, CJK typography, Arabic/Hebrew/Devanagari, cultural color meanings, inclusive imagery"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"name": "shared-preamble",
|
|
536
|
+
"path": "reference/shared-preamble.md",
|
|
537
|
+
"type": "preamble",
|
|
538
|
+
"tier": "L0",
|
|
539
|
+
"description": "L0 aggregator — imports meta-rules first and exposes Framework Identity + Ordering Convention + Pre-Warming"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"name": "start-interview",
|
|
543
|
+
"path": "reference/start-interview.md",
|
|
544
|
+
"type": "preamble",
|
|
545
|
+
"description": "Locked 5-question interview consumed by /gdd:start (Phase 14.7) — pain, target-area, budget, framework/DS confirmation, Figma/canvas workflow"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"name": "style-vocabulary",
|
|
549
|
+
"path": "reference/style-vocabulary.md",
|
|
550
|
+
"type": "style-vocabulary",
|
|
551
|
+
"description": "67 UI aesthetics with keywords, effects, best-for, era (UUPM MIT)"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "styles-data",
|
|
555
|
+
"path": "reference/data/styles.csv",
|
|
556
|
+
"type": "data",
|
|
557
|
+
"description": "CSV data sibling for style-vocabulary.md"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"name": "surfaces",
|
|
561
|
+
"path": "reference/surfaces.md",
|
|
562
|
+
"type": "surfaces",
|
|
563
|
+
"description": "Concentric radius, optical alignment, 3-layer shadow, image outlines, hit areas"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"name": "typography",
|
|
567
|
+
"path": "reference/typography.md",
|
|
568
|
+
"type": "heuristic",
|
|
569
|
+
"description": "Typography-system heuristics used by visual-hierarchy-mapper"
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
"name": "user-research",
|
|
573
|
+
"path": "reference/user-research.md",
|
|
574
|
+
"type": "heuristic",
|
|
575
|
+
"description": "Research method matrix, A/B testing, synthesis techniques, research ethics"
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"name": "variable-fonts-loading",
|
|
579
|
+
"path": "reference/variable-fonts-loading.md",
|
|
580
|
+
"type": "typography",
|
|
581
|
+
"phase": 18,
|
|
582
|
+
"description": "Variable font axes, font-display trade-offs, WOFF2 subsetting, FOIT/FOUT, fallback metric overrides, GRAD axis for dark mode, system font stacks (REF-14)"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"name": "visual-hierarchy-layout",
|
|
586
|
+
"path": "reference/visual-hierarchy-layout.md",
|
|
587
|
+
"type": "heuristic",
|
|
588
|
+
"description": "Z-order, whitespace, grids, F/Z patterns, 24 landing archetypes"
|
|
547
589
|
}
|
|
548
590
|
]
|
|
549
591
|
}
|