@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.
@@ -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]