start-vibing 4.1.0 → 4.1.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/package.json +1 -1
- package/template/.claude/CLAUDE.md +86 -20
- package/template/.claude/agents/sd-audit.md +197 -0
- package/template/.claude/agents/sd-fix-verify-semantic.md +112 -0
- package/template/.claude/agents/sd-fix-verify-technical.md +36 -0
- package/template/.claude/agents/sd-fix.md +194 -0
- package/template/.claude/agents/sd-research.md +61 -0
- package/template/.claude/agents/sd-synthesis.md +74 -0
- package/template/.claude/commands/super-design.md +15 -0
- package/template/.claude/hooks/super-design-session-start.sh +4 -0
- package/template/.claude/settings.json +14 -0
- package/template/.claude/skills/codebase-knowledge/SKILL.md +145 -0
- package/template/.claude/skills/codebase-knowledge/TEMPLATE.md +35 -0
- package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +93 -0
- package/template/.claude/skills/composition-patterns/SKILL.md +89 -0
- package/template/.claude/skills/docs-tracker/SKILL.md +239 -0
- package/template/.claude/skills/mcp-builder/SKILL.md +236 -0
- package/template/.claude/skills/quality-gate/scripts/check-all.sh +83 -0
- package/template/.claude/skills/react-best-practices/SKILL.md +146 -0
- package/template/.claude/skills/security-scan/reference/owasp-top-10.md +257 -0
- package/template/.claude/skills/security-scan/scripts/scan.py +190 -0
- package/template/.claude/skills/super-design/README.md +37 -0
- package/template/.claude/skills/super-design/SKILL.md +105 -0
- package/template/.claude/skills/super-design/hooks/guard-paths.py +35 -0
- package/template/.claude/skills/super-design/hooks/post-edit-lint.py +57 -0
- package/template/.claude/skills/super-design/references/audit-methodology.md +513 -0
- package/template/.claude/skills/super-design/references/change-detection-playbook.md +1432 -0
- package/template/.claude/skills/super-design/references/design-theory.md +706 -0
- package/template/.claude/skills/super-design/references/fix-agent-playbook.md +118 -0
- package/template/.claude/skills/super-design/references/market-research-playbook.md +773 -0
- package/template/.claude/skills/super-design/references/playwright-mcp-reference.md +1057 -0
- package/template/.claude/skills/super-design/references/skills-subagents-reference.md +784 -0
- package/template/.claude/skills/super-design/references/superpowers-and-distribution.md +136 -0
- package/template/.claude/skills/super-design/scripts/detect-changes.sh +61 -0
- package/template/.claude/skills/super-design/scripts/diff-tokens.sh +13 -0
- package/template/.claude/skills/super-design/scripts/discover-routes.sh +45 -0
- package/template/.claude/skills/super-design/scripts/extract-tokens.mjs +41 -0
- package/template/.claude/skills/super-design/scripts/hash-pages.sh +42 -0
- package/template/.claude/skills/super-design/scripts/validate-state.sh +15 -0
- package/template/.claude/skills/super-design/scripts/verify-audit.sh +19 -0
- package/template/.claude/skills/super-design/templates/audit-state.schema.json +57 -0
- package/template/.claude/skills/super-design/templates/findings.schema.json +57 -0
- package/template/.claude/skills/super-design/templates/fix-history.md.tpl +26 -0
- package/template/.claude/skills/super-design/templates/overview.md.tpl +52 -0
- package/template/.claude/skills/test-coverage/reference/playwright-patterns.md +260 -0
- package/template/.claude/skills/test-coverage/scripts/coverage-check.sh +52 -0
- package/template/.claude/skills/typeui-ant/SKILL.md +133 -0
- package/template/.claude/skills/typeui-application/SKILL.md +128 -0
- package/template/.claude/skills/typeui-artistic/SKILL.md +133 -0
- package/template/.claude/skills/typeui-bento/SKILL.md +127 -0
- package/template/.claude/skills/typeui-bold/SKILL.md +127 -0
- package/template/.claude/skills/typeui-clean/SKILL.md +128 -0
- package/template/.claude/skills/typeui-dashboard/SKILL.md +133 -0
- package/template/.claude/skills/typeui-doodle/SKILL.md +142 -0
- package/template/.claude/skills/typeui-dramatic/SKILL.md +127 -0
- package/template/.claude/skills/typeui-enterprise/SKILL.md +132 -0
- package/template/.claude/skills/typeui-neobrutalism/SKILL.md +127 -0
- package/template/.claude/skills/typeui-paper/SKILL.md +127 -0
- package/template/.claude/skills/ui-ux-audit/QUICK-START.md +450 -0
- package/template/.claude/skills/ui-ux-audit/README.md +470 -0
- package/template/.claude/skills/ui-ux-audit/templates/audit-report.md +591 -0
- package/template/.claude/skills/ui-ux-audit/templates/competitor-analysis.md +363 -0
- package/template/.claude/skills/ui-ux-audit/templates/component-spec.md +491 -0
- package/template/.claude/skills/ui-ux-audit/templates/improvement-recommendation.md +450 -0
- package/template/.claude/skills/web-design-guidelines/SKILL.md +39 -0
- package/template/.claude/skills/webapp-testing/SKILL.md +96 -0
- package/template/.claude/skills/workflow-state/workflow-state.json +77 -0
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
# Component Specification: [Component Name]
|
|
2
|
+
|
|
3
|
+
**Date:** YYYY-MM-DD
|
|
4
|
+
**Author:** [Agent name]
|
|
5
|
+
**Status:** [Draft/Review/Approved/Implemented]
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
### Purpose
|
|
12
|
+
|
|
13
|
+
[What problem does this component solve?]
|
|
14
|
+
|
|
15
|
+
### Context
|
|
16
|
+
|
|
17
|
+
[Where and when is this component used?]
|
|
18
|
+
|
|
19
|
+
### User Stories
|
|
20
|
+
|
|
21
|
+
1. As a [user type], I need to [action] so that [benefit]
|
|
22
|
+
2. As a [user type], I need to [action] so that [benefit]
|
|
23
|
+
3. As a [user type], I need to [action] so that [benefit]
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Visual Design
|
|
28
|
+
|
|
29
|
+
### Desktop (1280px+)
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
[ASCII mockup or description]
|
|
33
|
+
┌─────────────────────────────────────┐
|
|
34
|
+
│ [Component layout] │
|
|
35
|
+
│ ┌──────┐ ┌───────────────────┐ │
|
|
36
|
+
│ │ Icon │ │ Content │ │
|
|
37
|
+
│ └──────┘ │ │ │
|
|
38
|
+
│ └───────────────────┘ │
|
|
39
|
+
└─────────────────────────────────────┘
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Dimensions:**
|
|
43
|
+
|
|
44
|
+
- Width: [value]
|
|
45
|
+
- Height: [value]
|
|
46
|
+
- Padding: [value]
|
|
47
|
+
- Margin: [value]
|
|
48
|
+
|
|
49
|
+
### Mobile (375px+)
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
[ASCII mockup or description]
|
|
53
|
+
┌───────────────┐
|
|
54
|
+
│ [Component] │
|
|
55
|
+
│ [Stacked] │
|
|
56
|
+
│ [Layout] │
|
|
57
|
+
└───────────────┘
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Dimensions:**
|
|
61
|
+
|
|
62
|
+
- Width: [value]
|
|
63
|
+
- Height: [value]
|
|
64
|
+
- Padding: [value]
|
|
65
|
+
- Margin: [value]
|
|
66
|
+
|
|
67
|
+
### Responsive Breakpoints
|
|
68
|
+
|
|
69
|
+
| Breakpoint | Width | Layout Changes |
|
|
70
|
+
| ---------- | -------- | -------------- |
|
|
71
|
+
| Mobile | < 640px | [Description] |
|
|
72
|
+
| Tablet | 640-1024 | [Description] |
|
|
73
|
+
| Desktop | > 1024px | [Description] |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Component API
|
|
78
|
+
|
|
79
|
+
### Props
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
interface [ComponentName]Props {
|
|
83
|
+
// Required props
|
|
84
|
+
[propName]: [type]; // [Description]
|
|
85
|
+
|
|
86
|
+
// Optional props
|
|
87
|
+
[propName]?: [type]; // [Description]
|
|
88
|
+
|
|
89
|
+
// Event handlers
|
|
90
|
+
on[Event]?: (data: [type]) => void; // [Description]
|
|
91
|
+
|
|
92
|
+
// Styling
|
|
93
|
+
className?: string; // Additional CSS classes
|
|
94
|
+
style?: React.CSSProperties; // Inline styles
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Example Usage
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
import { [ComponentName] } from '@/components/[path]';
|
|
102
|
+
|
|
103
|
+
export default function Example() {
|
|
104
|
+
const handle[Event] = (data: [type]) => {
|
|
105
|
+
// Event handler logic
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
<[ComponentName]
|
|
110
|
+
[prop]="[value]"
|
|
111
|
+
on[Event]={handle[Event]}
|
|
112
|
+
className="[additional classes]"
|
|
113
|
+
/>
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## States & Variants
|
|
121
|
+
|
|
122
|
+
### Default State
|
|
123
|
+
|
|
124
|
+
[Description and visual representation]
|
|
125
|
+
|
|
126
|
+
**Styling:**
|
|
127
|
+
|
|
128
|
+
```css
|
|
129
|
+
/* Key classes or styles */
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Hover State
|
|
133
|
+
|
|
134
|
+
[Description and visual representation]
|
|
135
|
+
|
|
136
|
+
**Styling:**
|
|
137
|
+
|
|
138
|
+
```css
|
|
139
|
+
/* Key classes or styles */
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Active/Focus State
|
|
143
|
+
|
|
144
|
+
[Description and visual representation]
|
|
145
|
+
|
|
146
|
+
**Styling:**
|
|
147
|
+
|
|
148
|
+
```css
|
|
149
|
+
/* Key classes or styles */
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Disabled State
|
|
153
|
+
|
|
154
|
+
[Description and visual representation]
|
|
155
|
+
|
|
156
|
+
**Styling:**
|
|
157
|
+
|
|
158
|
+
```css
|
|
159
|
+
/* Key classes or styles */
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Loading State
|
|
163
|
+
|
|
164
|
+
[Description and visual representation]
|
|
165
|
+
|
|
166
|
+
**Styling:**
|
|
167
|
+
|
|
168
|
+
```css
|
|
169
|
+
/* Key classes or styles */
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Error State
|
|
173
|
+
|
|
174
|
+
[Description and visual representation]
|
|
175
|
+
|
|
176
|
+
**Styling:**
|
|
177
|
+
|
|
178
|
+
```css
|
|
179
|
+
/* Key classes or styles */
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Variants
|
|
183
|
+
|
|
184
|
+
| Variant Name | Description | Use Case |
|
|
185
|
+
| ------------ | -------------------- | ------------- |
|
|
186
|
+
| [name] | [Visual description] | [When to use] |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Behavior
|
|
191
|
+
|
|
192
|
+
### Interactions
|
|
193
|
+
|
|
194
|
+
1. **[Interaction 1]**
|
|
195
|
+
- Trigger: [What user does]
|
|
196
|
+
- Response: [What component does]
|
|
197
|
+
- Animation: [If applicable]
|
|
198
|
+
|
|
199
|
+
2. **[Interaction 2]**
|
|
200
|
+
- Trigger: [What user does]
|
|
201
|
+
- Response: [What component does]
|
|
202
|
+
- Animation: [If applicable]
|
|
203
|
+
|
|
204
|
+
### Animations
|
|
205
|
+
|
|
206
|
+
| Animation | Trigger | Duration | Easing |
|
|
207
|
+
| --------- | ------- | -------- | ----------------- |
|
|
208
|
+
| [name] | [When] | [Time] | [Easing function] |
|
|
209
|
+
|
|
210
|
+
### Keyboard Navigation
|
|
211
|
+
|
|
212
|
+
| Key | Action |
|
|
213
|
+
| ---------- | -------------- |
|
|
214
|
+
| Tab | [What happens] |
|
|
215
|
+
| Shift+Tab | [What happens] |
|
|
216
|
+
| Enter | [What happens] |
|
|
217
|
+
| Space | [What happens] |
|
|
218
|
+
| Escape | [What happens] |
|
|
219
|
+
| Arrow keys | [What happens] |
|
|
220
|
+
|
|
221
|
+
### Touch Gestures
|
|
222
|
+
|
|
223
|
+
| Gesture | Action |
|
|
224
|
+
| ---------- | -------------- |
|
|
225
|
+
| Tap | [What happens] |
|
|
226
|
+
| Long press | [What happens] |
|
|
227
|
+
| Swipe | [What happens] |
|
|
228
|
+
| Pinch | [What happens] |
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Design Tokens
|
|
233
|
+
|
|
234
|
+
### Colors
|
|
235
|
+
|
|
236
|
+
```css
|
|
237
|
+
/* Component-specific colors */
|
|
238
|
+
--component-bg: [value];
|
|
239
|
+
--component-text: [value];
|
|
240
|
+
--component-border: [value];
|
|
241
|
+
--component-hover: [value];
|
|
242
|
+
--component-active: [value];
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**From Design System:**
|
|
246
|
+
|
|
247
|
+
- Primary: `hsl(var(--primary))`
|
|
248
|
+
- Secondary: `hsl(var(--secondary))`
|
|
249
|
+
- [etc]
|
|
250
|
+
|
|
251
|
+
### Typography
|
|
252
|
+
|
|
253
|
+
```css
|
|
254
|
+
/* Text styles */
|
|
255
|
+
--component-font-size: [value];
|
|
256
|
+
--component-font-weight: [value];
|
|
257
|
+
--component-line-height: [value];
|
|
258
|
+
--component-letter-spacing: [value];
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Spacing
|
|
262
|
+
|
|
263
|
+
```css
|
|
264
|
+
/* Internal spacing */
|
|
265
|
+
--component-padding-x: [value];
|
|
266
|
+
--component-padding-y: [value];
|
|
267
|
+
--component-gap: [value];
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Border & Shadow
|
|
271
|
+
|
|
272
|
+
```css
|
|
273
|
+
/* Visual effects */
|
|
274
|
+
--component-border-radius: [value];
|
|
275
|
+
--component-border-width: [value];
|
|
276
|
+
--component-shadow: [value];
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Accessibility
|
|
282
|
+
|
|
283
|
+
### WCAG Compliance
|
|
284
|
+
|
|
285
|
+
- [ ] **Contrast:** Meets 4.5:1 ratio for text
|
|
286
|
+
- [ ] **Touch Targets:** Minimum 44x44px
|
|
287
|
+
- [ ] **Keyboard:** Full keyboard navigation
|
|
288
|
+
- [ ] **Focus:** Visible focus indicator
|
|
289
|
+
- [ ] **Labels:** All elements properly labeled
|
|
290
|
+
- [ ] **ARIA:** Appropriate ARIA attributes
|
|
291
|
+
- [ ] **Screen Reader:** Tested with screen reader
|
|
292
|
+
|
|
293
|
+
### ARIA Attributes
|
|
294
|
+
|
|
295
|
+
```tsx
|
|
296
|
+
<[ComponentName]
|
|
297
|
+
role="[role]"
|
|
298
|
+
aria-label="[label]"
|
|
299
|
+
aria-labelledby="[id]"
|
|
300
|
+
aria-describedby="[id]"
|
|
301
|
+
aria-expanded="[boolean]"
|
|
302
|
+
aria-controls="[id]"
|
|
303
|
+
aria-live="[off|polite|assertive]"
|
|
304
|
+
/>
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Screen Reader Announcements
|
|
308
|
+
|
|
309
|
+
| Event | Announcement |
|
|
310
|
+
| ------- | --------------------------- |
|
|
311
|
+
| [Event] | "[What screen reader says]" |
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## Performance
|
|
316
|
+
|
|
317
|
+
### Loading Strategy
|
|
318
|
+
|
|
319
|
+
- [ ] Lazy loaded
|
|
320
|
+
- [ ] Code split
|
|
321
|
+
- [ ] Preloaded
|
|
322
|
+
- [ ] Eagerly loaded
|
|
323
|
+
|
|
324
|
+
**Rationale:** [Why this strategy?]
|
|
325
|
+
|
|
326
|
+
### Bundle Size
|
|
327
|
+
|
|
328
|
+
- Estimated: [size] KB
|
|
329
|
+
- With dependencies: [size] KB
|
|
330
|
+
|
|
331
|
+
### Optimization
|
|
332
|
+
|
|
333
|
+
- [ ] Memoized with React.memo
|
|
334
|
+
- [ ] Uses useCallback for handlers
|
|
335
|
+
- [ ] Uses useMemo for computed values
|
|
336
|
+
- [ ] Debounced/throttled where needed
|
|
337
|
+
- [ ] Virtualized if list/grid
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Dependencies
|
|
342
|
+
|
|
343
|
+
### External Libraries
|
|
344
|
+
|
|
345
|
+
| Library | Version | Purpose |
|
|
346
|
+
| ------- | ------- | ----------------- |
|
|
347
|
+
| [name] | [ver] | [Why it's needed] |
|
|
348
|
+
|
|
349
|
+
### Internal Dependencies
|
|
350
|
+
|
|
351
|
+
| Component/Hook | Purpose |
|
|
352
|
+
| -------------- | ----------------- |
|
|
353
|
+
| [name] | [Why it's needed] |
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## File Structure
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
components/[feature]/[ComponentName]/
|
|
361
|
+
├── [ComponentName].tsx # Main component
|
|
362
|
+
├── [ComponentName]Skeleton.tsx # Loading skeleton
|
|
363
|
+
├── [ComponentName].test.tsx # Unit tests
|
|
364
|
+
├── [ComponentName].stories.tsx # Storybook stories (if used)
|
|
365
|
+
└── index.ts # Barrel export
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Testing
|
|
371
|
+
|
|
372
|
+
### Unit Tests
|
|
373
|
+
|
|
374
|
+
```typescript
|
|
375
|
+
describe('[ComponentName]', () => {
|
|
376
|
+
it('should render with default props', () => {
|
|
377
|
+
// Test
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
it('should handle [interaction]', () => {
|
|
381
|
+
// Test
|
|
382
|
+
});
|
|
383
|
+
|
|
384
|
+
it('should be accessible', () => {
|
|
385
|
+
// Test
|
|
386
|
+
});
|
|
387
|
+
});
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### E2E Test Scenarios
|
|
391
|
+
|
|
392
|
+
1. [Scenario 1 - description]
|
|
393
|
+
2. [Scenario 2 - description]
|
|
394
|
+
3. [Scenario 3 - description]
|
|
395
|
+
|
|
396
|
+
### Visual Regression
|
|
397
|
+
|
|
398
|
+
- [ ] Desktop viewport
|
|
399
|
+
- [ ] Mobile viewport
|
|
400
|
+
- [ ] Dark mode
|
|
401
|
+
- [ ] Light mode
|
|
402
|
+
- [ ] Hover states
|
|
403
|
+
- [ ] Focus states
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## Edge Cases
|
|
408
|
+
|
|
409
|
+
### Data Edge Cases
|
|
410
|
+
|
|
411
|
+
| Case | Handling Strategy |
|
|
412
|
+
| -------------- | ----------------- |
|
|
413
|
+
| Empty data | [How to handle] |
|
|
414
|
+
| Very long text | [How to handle] |
|
|
415
|
+
| Special chars | [How to handle] |
|
|
416
|
+
| Null/undefined | [How to handle] |
|
|
417
|
+
|
|
418
|
+
### UI Edge Cases
|
|
419
|
+
|
|
420
|
+
| Case | Handling Strategy |
|
|
421
|
+
| --------------- | ----------------- |
|
|
422
|
+
| Narrow viewport | [How to handle] |
|
|
423
|
+
| Wide viewport | [How to handle] |
|
|
424
|
+
| High zoom | [How to handle] |
|
|
425
|
+
| Slow network | [How to handle] |
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Related Components
|
|
430
|
+
|
|
431
|
+
| Component | Relationship |
|
|
432
|
+
| --------- | ----------------- |
|
|
433
|
+
| [name] | [How they relate] |
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Migration Guide
|
|
438
|
+
|
|
439
|
+
### From Previous Version
|
|
440
|
+
|
|
441
|
+
[If this replaces an existing component]
|
|
442
|
+
|
|
443
|
+
**Breaking Changes:**
|
|
444
|
+
|
|
445
|
+
1. [Change 1]
|
|
446
|
+
2. [Change 2]
|
|
447
|
+
|
|
448
|
+
**Migration Steps:**
|
|
449
|
+
|
|
450
|
+
1. [Step 1]
|
|
451
|
+
2. [Step 2]
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Future Enhancements
|
|
456
|
+
|
|
457
|
+
### Planned Features
|
|
458
|
+
|
|
459
|
+
- [ ] [Feature 1]
|
|
460
|
+
- [ ] [Feature 2]
|
|
461
|
+
- [ ] [Feature 3]
|
|
462
|
+
|
|
463
|
+
### Potential Improvements
|
|
464
|
+
|
|
465
|
+
- [ ] [Improvement 1]
|
|
466
|
+
- [ ] [Improvement 2]
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
## References
|
|
471
|
+
|
|
472
|
+
### Design Inspiration
|
|
473
|
+
|
|
474
|
+
- [Link to design]
|
|
475
|
+
- [Link to similar component]
|
|
476
|
+
|
|
477
|
+
### Documentation
|
|
478
|
+
|
|
479
|
+
- [Link to Radix UI docs if using]
|
|
480
|
+
- [Link to related article]
|
|
481
|
+
|
|
482
|
+
### Research
|
|
483
|
+
|
|
484
|
+
- [Link to competitor analysis]
|
|
485
|
+
- [Link to user research]
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
**Specification Version:** 1.0.0
|
|
490
|
+
**Last Updated:** YYYY-MM-DD
|
|
491
|
+
**Status:** [Draft/Review/Approved/Implemented]
|