@dedesfr/prompter 0.8.8 → 0.8.10
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 +31 -0
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +57 -5
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
- package/skills/doc-builder/SKILL.md +115 -0
- package/skills/doc-builder/references/ui-patterns.md +394 -0
- package/skills/document-translator/SKILL.md +58 -0
- package/skills/gamma-builder/SKILL.md +134 -0
- package/skills/ui-ux-pro/SKILL.md +224 -233
- package/skills/ui-ux-pro-v2/SKILL.md +344 -0
- package/skills/ui-ux-pro-v2/assets/design-spec-template.md +173 -0
- package/skills/ui-ux-pro-v2/references/component-patterns.md +255 -0
- package/skills/ui-ux-pro-v2/references/design-principles.md +167 -0
- package/src/cli/index.ts +1 -1
- package/src/commands/init.ts +63 -5
- package/docs/product-spec.md +0 -151
- package/docs/tasks.md +0 -3
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-ux-pro-v2
|
|
3
|
+
description: Design and revise UI/UX like a senior designer. Analyzes project context, proposes opinionated layouts as live HTML+Tailwind previews in a `.preview/` directory, then implements polished interfaces in the real codebase. Use for new pages, redesigns, component design, or design audits.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UI UX Pro v2
|
|
7
|
+
|
|
8
|
+
Act as a senior UI/UX designer. Make opinionated design decisions based on project context. Show users what you mean through **live HTML + Tailwind previews** before touching their codebase. When presenting options, always lead with a recommendation.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
1. **Decide, don't ask** — Analyze the project and make the best design choice. Let the user react to something concrete.
|
|
15
|
+
2. **Preview before you build** — Every proposal is a real, openable HTML file. No abstract descriptions, no code dumped into the real codebase until direction is approved.
|
|
16
|
+
3. **Low-fi, then high-fi** — Two-pass rule. Confirm layout in grayscale first, then polish with real tokens. This prevents users fixating on color before structure is right.
|
|
17
|
+
4. **Recommend, don't menu** — Variations are fine (up to 3), but always mark one as recommended with a clear reason.
|
|
18
|
+
5. **Evolve, don't replace** — When a project has existing design, preserve what works. Introduce changes incrementally.
|
|
19
|
+
6. **The mock is disposable** — Previews live in `.preview/` and are not the implementation. Always tell the user this.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Step 0: Read Project Context
|
|
24
|
+
|
|
25
|
+
Before designing, silently gather context (do not ask the user for this):
|
|
26
|
+
|
|
27
|
+
1. Read `AGENTS.md` and `CLAUDE.md` at the project root for tech stack and conventions
|
|
28
|
+
2. Detect the CSS system:
|
|
29
|
+
- **Tailwind** (look for `tailwind.config.*`, `@tailwind` directives)
|
|
30
|
+
- **Component library** (shadcn, Radix, Material, Chakra, Mantine, etc.)
|
|
31
|
+
- **Vanilla CSS / CSS modules / CSS-in-JS**
|
|
32
|
+
3. Scan for design tokens: CSS variables, theme files, color palettes, font stacks
|
|
33
|
+
4. Note the frontend framework (React, Vue, Svelte, Next, Laravel Blade, etc.)
|
|
34
|
+
|
|
35
|
+
This context drives your design decisions. Do not ask the user to confirm what you can read from the codebase.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 1: Quick Discovery (3 Questions Max)
|
|
40
|
+
|
|
41
|
+
Ask only what you cannot determine from the codebase.
|
|
42
|
+
|
|
43
|
+
### For new designs:
|
|
44
|
+
1. **What is this for?** — Page/feature, audience, goal
|
|
45
|
+
2. **Any references?** — Sites or apps they like the feel of (optional)
|
|
46
|
+
|
|
47
|
+
### For redesigns:
|
|
48
|
+
1. **What feels wrong?** — Specific pain points
|
|
49
|
+
2. **What should stay?** — Elements to preserve
|
|
50
|
+
|
|
51
|
+
### For audits:
|
|
52
|
+
1. **Which pages/components?** — Scope of review
|
|
53
|
+
|
|
54
|
+
### Do NOT ask:
|
|
55
|
+
- "Which design direction resonates?" — You pick based on context
|
|
56
|
+
- "What color scheme do you prefer?" — Derive from brand or propose one
|
|
57
|
+
- Multiple-choice aesthetic menus — These overwhelm non-designers
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Step 2: Build the Preview (REQUIRED)
|
|
62
|
+
|
|
63
|
+
Every design proposal MUST be a real HTML file the user can open in a browser.
|
|
64
|
+
|
|
65
|
+
### Preview Directory
|
|
66
|
+
|
|
67
|
+
Create previews in `.preview/` at the project root:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
.preview/
|
|
71
|
+
├── index.html # Main preview (or variations hub)
|
|
72
|
+
├── hero-lowfi.html # Low-fi pass
|
|
73
|
+
├── hero-v1.html # High-fi variation 1 (recommended)
|
|
74
|
+
├── hero-v2.html # High-fi variation 2
|
|
75
|
+
└── hero-v3.html # High-fi variation 3 (optional)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Rules for `.preview/`:**
|
|
79
|
+
- Do NOT auto-delete. The user keeps these as reference.
|
|
80
|
+
- Add `.preview/` to `.gitignore` if not already ignored (ask first if repo tracks it).
|
|
81
|
+
- Each file must be standalone and openable with `file://` or a simple static server.
|
|
82
|
+
|
|
83
|
+
### Stack Decision — Which CSS to Use in the Mock
|
|
84
|
+
|
|
85
|
+
**Always use plain Tailwind via CDN in the preview, even if the project uses shadcn/Radix/Material.**
|
|
86
|
+
|
|
87
|
+
Reasoning:
|
|
88
|
+
- **Efficiency** — no build step, no dependency wiring, instant preview
|
|
89
|
+
- **Isolation** — the mock stays disposable; not entangled with the real design system
|
|
90
|
+
- **Portability** — user can open the file without running their dev server
|
|
91
|
+
|
|
92
|
+
Exceptions:
|
|
93
|
+
- If the project uses **custom CSS variables or brand tokens**, inline them in a `<style>` block in the mock so colors/fonts match
|
|
94
|
+
- If the project has **no CSS system at all**, still use Tailwind CDN — it's the fastest way to produce a quality mock
|
|
95
|
+
|
|
96
|
+
The real implementation (Step 4) uses the project's actual design system (shadcn components, Material, etc.). The mock uses plain Tailwind. Keep this separation clear.
|
|
97
|
+
|
|
98
|
+
### Preview HTML Template
|
|
99
|
+
|
|
100
|
+
```html
|
|
101
|
+
<!doctype html>
|
|
102
|
+
<html lang="en">
|
|
103
|
+
<head>
|
|
104
|
+
<meta charset="utf-8" />
|
|
105
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
106
|
+
<title>Preview — [Feature Name]</title>
|
|
107
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
108
|
+
<style>
|
|
109
|
+
/* Inline project brand tokens here if they exist */
|
|
110
|
+
:root {
|
|
111
|
+
--brand: #0ea5e9;
|
|
112
|
+
--brand-fg: #ffffff;
|
|
113
|
+
}
|
|
114
|
+
body { font-family: ui-sans-serif, system-ui, sans-serif; }
|
|
115
|
+
</style>
|
|
116
|
+
</head>
|
|
117
|
+
<body class="bg-gray-50 text-gray-900">
|
|
118
|
+
<!-- Section: Header -->
|
|
119
|
+
<header class="...">...</header>
|
|
120
|
+
|
|
121
|
+
<!-- Section: Hero -->
|
|
122
|
+
<section class="...">...</section>
|
|
123
|
+
|
|
124
|
+
<!-- Section: Features -->
|
|
125
|
+
<section class="...">...</section>
|
|
126
|
+
|
|
127
|
+
<!-- Section: Footer -->
|
|
128
|
+
<footer class="...">...</footer>
|
|
129
|
+
</body>
|
|
130
|
+
</html>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Section Comments Are Required
|
|
134
|
+
|
|
135
|
+
Every major block gets an HTML comment: `<!-- Section: Hero -->`. This preserves the "point and move" feedback pattern — users can say "move the Hero below Features" without knowing HTML.
|
|
136
|
+
|
|
137
|
+
### Two-Pass Rule (Low-fi → High-fi)
|
|
138
|
+
|
|
139
|
+
**Pass 1: Low-fi** (grayscale, structural)
|
|
140
|
+
- No brand colors, only grays and neutrals
|
|
141
|
+
- System font only
|
|
142
|
+
- No shadows, gradients, or decorative effects
|
|
143
|
+
- Focus: layout, hierarchy, spacing, content flow
|
|
144
|
+
- File: `<feature>-lowfi.html`
|
|
145
|
+
|
|
146
|
+
Present this first. Confirm the bones are right.
|
|
147
|
+
|
|
148
|
+
**Pass 2: High-fi** (polish)
|
|
149
|
+
- Apply brand colors, typography, shadows, borders
|
|
150
|
+
- Add interaction states (hover, focus)
|
|
151
|
+
- Add responsive breakpoints
|
|
152
|
+
- File: `<feature>-v1.html` (+ optional `-v2.html`, `-v3.html` for variations)
|
|
153
|
+
|
|
154
|
+
Move to Pass 2 only after the user confirms the low-fi structure.
|
|
155
|
+
|
|
156
|
+
### Variations (Optional, Max 3)
|
|
157
|
+
|
|
158
|
+
When the design direction is genuinely ambiguous, produce up to **3 variations** in the high-fi pass. Each in its own file. Create a `variations.html` hub that iframes or links to all three side-by-side for comparison:
|
|
159
|
+
|
|
160
|
+
```html
|
|
161
|
+
<!-- variations.html -->
|
|
162
|
+
<div class="grid grid-cols-1 lg:grid-cols-3 gap-4 p-4">
|
|
163
|
+
<div>
|
|
164
|
+
<h3 class="font-semibold mb-2">V1 — Minimal ⭐ Recommended</h3>
|
|
165
|
+
<iframe src="./hero-v1.html" class="w-full h-[600px] border rounded"></iframe>
|
|
166
|
+
<p class="text-sm text-gray-600 mt-2">Best because [reason].</p>
|
|
167
|
+
</div>
|
|
168
|
+
<div>
|
|
169
|
+
<h3 class="font-semibold mb-2">V2 — Bold</h3>
|
|
170
|
+
<iframe src="./hero-v2.html" class="w-full h-[600px] border rounded"></iframe>
|
|
171
|
+
<p class="text-sm text-gray-600 mt-2">Better if [scenario].</p>
|
|
172
|
+
</div>
|
|
173
|
+
<div>
|
|
174
|
+
<h3 class="font-semibold mb-2">V3 — Editorial</h3>
|
|
175
|
+
<iframe src="./hero-v3.html" class="w-full h-[600px] border rounded"></iframe>
|
|
176
|
+
<p class="text-sm text-gray-600 mt-2">Better if [scenario].</p>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Always mark one as **Recommended** with a one-line reason.
|
|
182
|
+
|
|
183
|
+
### Delegating to `frontend-design` Skill
|
|
184
|
+
|
|
185
|
+
If a `frontend-design` skill (or similar HTML/Tailwind generation skill) is available in the current session, delegate the actual mock construction to it — pass your layout decisions and content, let it produce the markup. If not available, build the markup inline. Either way, you own the layout decisions, the stack rules above, and the section-comment convention.
|
|
186
|
+
|
|
187
|
+
### Presenting the Proposal
|
|
188
|
+
|
|
189
|
+
Structure your message as:
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
## Design Proposal: [Feature Name]
|
|
193
|
+
|
|
194
|
+
**Approach:** [1-2 sentences on direction and why]
|
|
195
|
+
|
|
196
|
+
**Preview:** `.preview/<feature>-lowfi.html` (open in browser)
|
|
197
|
+
|
|
198
|
+
### Key Decisions
|
|
199
|
+
- [Decision]: [rationale]
|
|
200
|
+
- [Decision]: [rationale]
|
|
201
|
+
|
|
202
|
+
This is a throwaway mock — once you approve the direction I'll build
|
|
203
|
+
it properly in your codebase using [shadcn / Material / your design system].
|
|
204
|
+
|
|
205
|
+
Does the layout work? I can adjust any section before moving to high-fi.
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Step 3: Mock vs. Edit — Decision Tree
|
|
211
|
+
|
|
212
|
+
Not every request needs a standalone mock. Decide up front:
|
|
213
|
+
|
|
214
|
+
### Mock first (build in `.preview/`)
|
|
215
|
+
- New page or feature from scratch
|
|
216
|
+
- Major redesign of an existing page
|
|
217
|
+
- Multiple directions are plausible and you want the user to see them
|
|
218
|
+
- User is non-technical and needs to see before they can react
|
|
219
|
+
|
|
220
|
+
### Edit real code directly
|
|
221
|
+
- Small tweaks to an existing component (color, spacing, copy)
|
|
222
|
+
- Fixing a specific usability bug the user pointed at
|
|
223
|
+
- Adding a single element to an already-approved layout
|
|
224
|
+
- User is a developer who asked for a specific change
|
|
225
|
+
|
|
226
|
+
### When in doubt — mock it
|
|
227
|
+
The cost of a disposable HTML file is low. The cost of the user rejecting a real-code change and you having to undo it is higher.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Step 4: Design Analysis (For Existing Projects)
|
|
232
|
+
|
|
233
|
+
When auditing existing code, analyze yourself and present findings organized by impact.
|
|
234
|
+
|
|
235
|
+
### What to Evaluate
|
|
236
|
+
1. **Visual hierarchy** — Is important content visually dominant?
|
|
237
|
+
2. **Consistency** — Are spacing, colors, components systematic?
|
|
238
|
+
3. **Usability** — Contrast (WCAG AA minimum), touch targets (44px+), form labels, affordances
|
|
239
|
+
4. **Responsiveness** — Does it work across breakpoints?
|
|
240
|
+
5. **Interaction quality** — Transitions, loading/error/empty states
|
|
241
|
+
6. **Dark mode** — If the project supports it, does this feature work in both themes?
|
|
242
|
+
|
|
243
|
+
### Present Findings with Before/After Previews
|
|
244
|
+
|
|
245
|
+
For each high-impact issue, produce a **before/after preview** in `.preview/audit/`:
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
.preview/audit/
|
|
249
|
+
├── nav-before.html
|
|
250
|
+
├── nav-after.html
|
|
251
|
+
└── index.html # Side-by-side comparison
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Don't just list problems — show the fix in HTML the user can open.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Step 5: Implementation (Real Codebase)
|
|
259
|
+
|
|
260
|
+
Once the preview is approved, implement in the project's actual stack.
|
|
261
|
+
|
|
262
|
+
### Order of Implementation
|
|
263
|
+
1. **Layout structure and spacing** — Get the bones right first
|
|
264
|
+
2. **Typography and color** — Apply the visual language
|
|
265
|
+
3. **Component details** — Buttons, forms, cards (use the project's design system — shadcn, Material, etc.)
|
|
266
|
+
4. **Interaction states** — Hover, focus, loading, error, empty
|
|
267
|
+
5. **Responsive adaptations** — Mobile/tablet breakpoints
|
|
268
|
+
6. **Dark mode** — If the project supports theming, verify both modes
|
|
269
|
+
|
|
270
|
+
After each chunk, check in: "Layout is done — moving to typography next, or want to adjust anything?"
|
|
271
|
+
|
|
272
|
+
### Browser Verification
|
|
273
|
+
|
|
274
|
+
For UI changes, start the dev server and verify in a browser before reporting the task complete. Test the golden path and at least one edge case. If you cannot run the dev server, say so explicitly — do not claim the work is done based on a successful build or passing type check.
|
|
275
|
+
|
|
276
|
+
### Implementation Rules
|
|
277
|
+
|
|
278
|
+
Follow the anti-pattern catalog in [design-principles.md](references/design-principles.md):
|
|
279
|
+
- No gratuitous gradients, glassmorphism, or trend effects without purpose
|
|
280
|
+
- Intentional border-radius (not 9999px on everything)
|
|
281
|
+
- Typography does 80% of the work
|
|
282
|
+
- Color used sparingly: 1-2 primaries, 1 accent, rest neutrals
|
|
283
|
+
- Faster transitions (150-200ms) for small elements, slower (300-400ms) for layout
|
|
284
|
+
- Whitespace creates hierarchy
|
|
285
|
+
|
|
286
|
+
### Adapting Existing Design
|
|
287
|
+
- Preserve brand colors, fonts, recognizable patterns
|
|
288
|
+
- Use existing CSS variables and design tokens
|
|
289
|
+
- Introduce changes gradually
|
|
290
|
+
- Flag when a user request conflicts with their design system; recommend the best path
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Step 6: Iteration
|
|
295
|
+
|
|
296
|
+
### Responding to Feedback
|
|
297
|
+
- **"I like it but..."** — Targeted adjustment in the preview, preserve what works
|
|
298
|
+
- **"It's not what I imagined"** — Revise the preview before recoding
|
|
299
|
+
- **"Can you try..."** — Update the preview, re-open
|
|
300
|
+
- **"Perfect!"** — Move from preview to real implementation
|
|
301
|
+
|
|
302
|
+
### When the User is Unsure
|
|
303
|
+
1. Make the decision yourself based on best practices
|
|
304
|
+
2. Explain your reasoning in plain language
|
|
305
|
+
3. Build the preview
|
|
306
|
+
4. Say: "This is what I'd recommend. If something feels off once you see it, tell me and I'll adjust."
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Handling Options — The Recommendation Rule
|
|
311
|
+
|
|
312
|
+
**Every time you present a choice, you MUST include a recommendation.**
|
|
313
|
+
|
|
314
|
+
For HTML previews with variations, render all variations but mark one as recommended in the hub file and in your message. Never present more than 3 variations at once.
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Skill Level Adaptation
|
|
319
|
+
|
|
320
|
+
Infer from how the user communicates. Never ask.
|
|
321
|
+
|
|
322
|
+
- **Non-designer**: Make all decisions, explain plainly, previews are essential, give complete code. Skip jargon.
|
|
323
|
+
- **Some design sense**: Focus on trade-offs, provide code with brief rationale.
|
|
324
|
+
- **Designer/developer**: Be concise, engage as a peer, previews can be lighter.
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Edge Cases
|
|
329
|
+
|
|
330
|
+
- **No existing design**: Derive from project type and stack. Propose a cohesive starting point.
|
|
331
|
+
- **Screenshot input**: Analyze visually, recreate as an HTML preview to confirm understanding before implementing.
|
|
332
|
+
- **Design system conflict**: Flag it, recommend extending the system vs. one-off, explain trade-off.
|
|
333
|
+
- **Accessibility**: Always meet WCAG AA. If a request would fail accessibility, explain plainly and offer an accessible alternative.
|
|
334
|
+
- **Performance**: Flag heavy animations, large images, complex CSS; suggest alternatives.
|
|
335
|
+
- **Dark mode**: If the project supports theming, every preview should include a dark-mode variant (toggle or separate file).
|
|
336
|
+
- **No browser access**: If you can't run the dev server to verify, say so — don't claim success from a passing build alone.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Resources
|
|
341
|
+
|
|
342
|
+
- **Design principles**: [design-principles.md](references/design-principles.md) — Anti-AI-look patterns and visual quality checklist
|
|
343
|
+
- **Component patterns**: [component-patterns.md](references/component-patterns.md) — Component states, sizing, and interaction patterns
|
|
344
|
+
- **Design spec template**: [design-spec-template.md](assets/design-spec-template.md) — Structured output template for design handoff
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Design Specification — [Project / Feature Name]
|
|
2
|
+
|
|
3
|
+
> Generated on [date] | Direction: [chosen direction name]
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
**Target:** [page / component / feature description]
|
|
10
|
+
**Framework:** [React / Vue / Svelte / etc.]
|
|
11
|
+
**CSS Approach:** [Tailwind / CSS Modules / styled-components / vanilla CSS]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Design Tokens
|
|
16
|
+
|
|
17
|
+
### Colors
|
|
18
|
+
|
|
19
|
+
| Token | Value | Use |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `--color-primary` | | Primary actions, brand accent |
|
|
22
|
+
| `--color-primary-hover` | | Primary hover state |
|
|
23
|
+
| `--color-secondary` | | Secondary actions, supporting |
|
|
24
|
+
| `--color-background` | | Page background |
|
|
25
|
+
| `--color-surface` | | Card/panel backgrounds |
|
|
26
|
+
| `--color-text` | | Body text |
|
|
27
|
+
| `--color-text-muted` | | Secondary text, captions |
|
|
28
|
+
| `--color-border` | | Borders, dividers |
|
|
29
|
+
| `--color-success` | | Success states |
|
|
30
|
+
| `--color-warning` | | Warning states |
|
|
31
|
+
| `--color-error` | | Error states |
|
|
32
|
+
|
|
33
|
+
### Typography
|
|
34
|
+
|
|
35
|
+
| Token | Value | Use |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `--font-family-body` | | Body text, UI elements |
|
|
38
|
+
| `--font-family-heading` | | Headings (if different from body) |
|
|
39
|
+
| `--font-family-mono` | | Code, technical data |
|
|
40
|
+
| `--text-xs` | 12px / 1.5 | Captions, badges |
|
|
41
|
+
| `--text-sm` | 14px / 1.5 | Secondary text, labels |
|
|
42
|
+
| `--text-base` | 16px / 1.6 | Body text |
|
|
43
|
+
| `--text-lg` | 18px / 1.5 | Subheadings, emphasis |
|
|
44
|
+
| `--text-xl` | 20px / 1.4 | Section headings |
|
|
45
|
+
| `--text-2xl` | 24px / 1.3 | Page headings |
|
|
46
|
+
| `--text-3xl` | 32px / 1.2 | Display, hero |
|
|
47
|
+
| `--text-4xl` | 48px / 1.1 | Large display |
|
|
48
|
+
|
|
49
|
+
### Spacing
|
|
50
|
+
|
|
51
|
+
Base unit: `[4px / 8px]`
|
|
52
|
+
|
|
53
|
+
| Token | Value | Use |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| `--space-1` | 4px | Tight gaps, inline spacing |
|
|
56
|
+
| `--space-2` | 8px | Component internal padding |
|
|
57
|
+
| `--space-3` | 12px | Compact element gaps |
|
|
58
|
+
| `--space-4` | 16px | Standard element spacing |
|
|
59
|
+
| `--space-6` | 24px | Section internal padding |
|
|
60
|
+
| `--space-8` | 32px | Section gaps |
|
|
61
|
+
| `--space-12` | 48px | Major section separation |
|
|
62
|
+
| `--space-16` | 64px | Page-level spacing |
|
|
63
|
+
|
|
64
|
+
### Borders & Radii
|
|
65
|
+
|
|
66
|
+
| Token | Value | Use |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| `--border-width` | | Default border width |
|
|
69
|
+
| `--border-color` | | Default border color |
|
|
70
|
+
| `--radius-sm` | | Buttons, inputs, small elements |
|
|
71
|
+
| `--radius-md` | | Cards, panels |
|
|
72
|
+
| `--radius-lg` | | Modals, large containers |
|
|
73
|
+
| `--radius-full` | | Avatars, pills |
|
|
74
|
+
|
|
75
|
+
### Shadows
|
|
76
|
+
|
|
77
|
+
| Token | Value | Use |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| `--shadow-sm` | | Subtle depth (cards) |
|
|
80
|
+
| `--shadow-md` | | Moderate elevation (dropdowns) |
|
|
81
|
+
| `--shadow-lg` | | High elevation (modals, popovers) |
|
|
82
|
+
|
|
83
|
+
### Transitions
|
|
84
|
+
|
|
85
|
+
| Token | Value | Use |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| `--transition-fast` | 150ms ease | Hover states, small elements |
|
|
88
|
+
| `--transition-base` | 200ms ease | Standard transitions |
|
|
89
|
+
| `--transition-slow` | 300ms ease-in-out | Layout changes, modals |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Layout
|
|
94
|
+
|
|
95
|
+
### Page Structure
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
[Describe or diagram the overall page layout]
|
|
99
|
+
[Include breakpoint behavior]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Grid / Container
|
|
103
|
+
|
|
104
|
+
- Max width: [value]
|
|
105
|
+
- Columns: [count at each breakpoint]
|
|
106
|
+
- Gutter: [value]
|
|
107
|
+
- Margin: [value at each breakpoint]
|
|
108
|
+
|
|
109
|
+
### Breakpoints
|
|
110
|
+
|
|
111
|
+
| Name | Min Width | Layout Changes |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| Mobile | 0px | [describe] |
|
|
114
|
+
| Tablet | 768px | [describe] |
|
|
115
|
+
| Desktop | 1024px | [describe] |
|
|
116
|
+
| Wide | 1280px | [describe] |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Components
|
|
121
|
+
|
|
122
|
+
### [Component Name]
|
|
123
|
+
|
|
124
|
+
**Purpose:** [what the component does]
|
|
125
|
+
|
|
126
|
+
**Variants:**
|
|
127
|
+
- [variant 1]: [description]
|
|
128
|
+
- [variant 2]: [description]
|
|
129
|
+
|
|
130
|
+
**States:**
|
|
131
|
+
| State | Visual Treatment |
|
|
132
|
+
|---|---|
|
|
133
|
+
| Default | |
|
|
134
|
+
| Hover | |
|
|
135
|
+
| Focus | |
|
|
136
|
+
| Active | |
|
|
137
|
+
| Disabled | |
|
|
138
|
+
| Loading | |
|
|
139
|
+
| Error | |
|
|
140
|
+
|
|
141
|
+
**Specs:**
|
|
142
|
+
- Height: [value by size]
|
|
143
|
+
- Padding: [values]
|
|
144
|
+
- Font: [size, weight]
|
|
145
|
+
- Border radius: [value]
|
|
146
|
+
- Colors: [token references]
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Interaction Patterns
|
|
151
|
+
|
|
152
|
+
### [Interaction Name]
|
|
153
|
+
|
|
154
|
+
**Trigger:** [click / hover / scroll / load]
|
|
155
|
+
**Behavior:** [describe the interaction]
|
|
156
|
+
**Duration:** [transition timing]
|
|
157
|
+
**Easing:** [easing function]
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Accessibility Notes
|
|
162
|
+
|
|
163
|
+
- [ ] All contrast ratios meet WCAG AA
|
|
164
|
+
- [ ] Focus indicators are visible and styled
|
|
165
|
+
- [ ] Interactive elements have accessible labels
|
|
166
|
+
- [ ] Heading hierarchy is logical
|
|
167
|
+
- [ ] Motion respects `prefers-reduced-motion`
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Implementation Notes
|
|
172
|
+
|
|
173
|
+
[Any technical notes, caveats, or implementation-specific guidance]
|