ui-ux-master 1.2.1 → 1.5.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.
@@ -0,0 +1,347 @@
1
+ # Color Scale System
2
+
3
+ Load this file when building a design system that requires full architectural color scales. Every production-grade design system needs 11-step shade ramps (50–950), not just 5–7 semantic tokens.
4
+
5
+ Use these scales as the foundation for your token system. Then map semantic roles (primary, surface, text, border, accent, semantic states) onto the appropriate shade steps.
6
+
7
+ ---
8
+
9
+ ## How to Use
10
+
11
+ 1. Choose a hue for your brand primary color.
12
+ 2. Use the scale template below to generate the 11 steps (50–950) in OKLch.
13
+ 3. Map semantic roles to specific steps using the role-to-step mapping table.
14
+ 4. For secondary, neutral, and semantic colors (success/warning/error/info), use the provided base scales.
15
+ 5. Export as CSS custom properties using the naming convention `--[color-name]-[step]`.
16
+
17
+ ---
18
+
19
+ ## Scale Generation Formula (OKLch)
20
+
21
+ For any hue `H`, the 11-step scale uses lightness and chroma progressions:
22
+
23
+ | Step | Lightness | Chroma multiplier | Usage |
24
+ |------|-----------|-------------------|-------|
25
+ | 50 | 97% | 0.15× base chroma | Tinted backgrounds, hover states |
26
+ | 100 | 93% | 0.25× | Soft backgrounds, tags |
27
+ | 200 | 85% | 0.40× | Borders, dividers |
28
+ | 300 | 74% | 0.60× | Disabled states, placeholder |
29
+ | 400 | 62% | 0.80× | Muted text, icons |
30
+ | 500 | 52% | 1.00× **base** | Primary brand color |
31
+ | 600 | 44% | 0.95× | Hover on primary |
32
+ | 700 | 36% | 0.90× | Active/pressed states |
33
+ | 800 | 27% | 0.80× | Dark headings on light |
34
+ | 900 | 18% | 0.65× | Near-black brand tint |
35
+ | 950 | 12% | 0.50× | Deepest shade, dark mode bg |
36
+
37
+ **Example for Indigo (H=264, base chroma=0.20):**
38
+
39
+ ```css
40
+ :root {
41
+ --indigo-50: oklch(97% 0.030 264);
42
+ --indigo-100: oklch(93% 0.050 264);
43
+ --indigo-200: oklch(85% 0.080 264);
44
+ --indigo-300: oklch(74% 0.120 264);
45
+ --indigo-400: oklch(62% 0.160 264);
46
+ --indigo-500: oklch(52% 0.200 264); /* brand primary */
47
+ --indigo-600: oklch(44% 0.190 264);
48
+ --indigo-700: oklch(36% 0.180 264);
49
+ --indigo-800: oklch(27% 0.160 264);
50
+ --indigo-900: oklch(18% 0.130 264);
51
+ --indigo-950: oklch(12% 0.100 264);
52
+ }
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Semantic Role → Step Mapping
58
+
59
+ Once you have your scales, map semantic tokens to steps:
60
+
61
+ | Semantic Token | Light Mode Step | Dark Mode Step | Notes |
62
+ |---|---|---|---|
63
+ | `--color-bg` | Neutral 50 | Neutral 950 | Page background |
64
+ | `--color-surface` | Neutral 100 | Neutral 900 | Card/panel background |
65
+ | `--color-surface-2` | Neutral 200 | Neutral 800 | Nested surface |
66
+ | `--color-border` | Neutral 300 | Neutral 700 | Dividers, input border |
67
+ | `--color-border-strong` | Neutral 400 | Neutral 600 | Emphasis borders |
68
+ | `--color-text-muted` | Neutral 400 | Neutral 500 | Placeholder, disabled |
69
+ | `--color-text-secondary` | Neutral 600 | Neutral 400 | Meta, captions |
70
+ | `--color-text-primary` | Neutral 900 | Neutral 50 | Body copy |
71
+ | `--color-accent` | Primary 500 | Primary 400 | CTAs, links, active |
72
+ | `--color-accent-hover` | Primary 600 | Primary 300 | Hover on accent |
73
+ | `--color-accent-active` | Primary 700 | Primary 200 | Pressed state |
74
+ | `--color-accent-soft` | Primary 100 | Primary 900 | Tinted backgrounds |
75
+ | `--color-accent-text` | Primary 700 | Primary 200 | Text on tinted bg |
76
+
77
+ ---
78
+
79
+ ## Base Neutral Scale (Gray)
80
+
81
+ Use as the backbone for backgrounds, text, and borders.
82
+
83
+ ```css
84
+ :root {
85
+ /* Neutral — cool gray, H=264, chroma=0.005 */
86
+ --neutral-50: oklch(99% 0.002 264); /* #FAFAFA */
87
+ --neutral-100: oklch(96% 0.003 264); /* #F4F4F6 */
88
+ --neutral-200: oklch(92% 0.004 264); /* #EBEBEE */
89
+ --neutral-300: oklch(85% 0.006 264); /* #D8D8DE */
90
+ --neutral-400: oklch(72% 0.008 264); /* #ABABB8 */
91
+ --neutral-500: oklch(58% 0.009 264); /* #818190 */
92
+ --neutral-600: oklch(46% 0.009 264); /* #5E5E6E */
93
+ --neutral-700: oklch(34% 0.008 264); /* #434352 */
94
+ --neutral-800: oklch(24% 0.007 264); /* #2C2C38 */
95
+ --neutral-900: oklch(15% 0.006 264); /* #1A1A24 */
96
+ --neutral-950: oklch(9% 0.005 264); /* #0E0E14 */
97
+ }
98
+ ```
99
+
100
+ **Warm neutral variant** (use for editorial/warm brand):
101
+ ```css
102
+ :root {
103
+ /* Warm Neutral — H=72, chroma=0.010 */
104
+ --warm-50: oklch(98% 0.008 72);
105
+ --warm-100: oklch(95% 0.012 72);
106
+ --warm-200: oklch(90% 0.016 72);
107
+ --warm-300: oklch(82% 0.018 72);
108
+ --warm-400: oklch(70% 0.016 72);
109
+ --warm-500: oklch(56% 0.014 72);
110
+ --warm-600: oklch(44% 0.012 72);
111
+ --warm-700: oklch(33% 0.010 72);
112
+ --warm-800: oklch(24% 0.008 72);
113
+ --warm-900: oklch(16% 0.007 72);
114
+ --warm-950: oklch(10% 0.005 72);
115
+ }
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Brand Color Scales by Hue Family
121
+
122
+ ### Blue / Indigo (Trust, Technology, Finance)
123
+ ```css
124
+ :root {
125
+ --blue-50: oklch(97% 0.020 230);
126
+ --blue-100: oklch(93% 0.040 230);
127
+ --blue-200: oklch(85% 0.070 230);
128
+ --blue-300: oklch(74% 0.110 230);
129
+ --blue-400: oklch(62% 0.150 230);
130
+ --blue-500: oklch(52% 0.180 230); /* #0072CE calm blue */
131
+ --blue-600: oklch(44% 0.170 230);
132
+ --blue-700: oklch(36% 0.160 230);
133
+ --blue-800: oklch(27% 0.140 230);
134
+ --blue-900: oklch(18% 0.110 230);
135
+ --blue-950: oklch(11% 0.080 230);
136
+
137
+ --indigo-50: oklch(97% 0.025 264);
138
+ --indigo-100: oklch(93% 0.050 264);
139
+ --indigo-200: oklch(85% 0.080 264);
140
+ --indigo-300: oklch(74% 0.120 264);
141
+ --indigo-400: oklch(62% 0.160 264);
142
+ --indigo-500: oklch(52% 0.200 264); /* #4361EE */
143
+ --indigo-600: oklch(44% 0.190 264);
144
+ --indigo-700: oklch(36% 0.180 264);
145
+ --indigo-800: oklch(27% 0.160 264);
146
+ --indigo-900: oklch(18% 0.130 264);
147
+ --indigo-950: oklch(11% 0.095 264);
148
+ }
149
+ ```
150
+
151
+ ### Green (Health, Finance-positive, Nature, Success)
152
+ ```css
153
+ :root {
154
+ --green-50: oklch(97% 0.025 142);
155
+ --green-100: oklch(93% 0.050 142);
156
+ --green-200: oklch(85% 0.085 142);
157
+ --green-300: oklch(74% 0.120 142);
158
+ --green-400: oklch(62% 0.150 142);
159
+ --green-500: oklch(52% 0.160 142); /* #1A7F5A */
160
+ --green-600: oklch(44% 0.150 142);
161
+ --green-700: oklch(36% 0.140 142);
162
+ --green-800: oklch(27% 0.120 142);
163
+ --green-900: oklch(18% 0.095 142);
164
+ --green-950: oklch(11% 0.070 142);
165
+ }
166
+ ```
167
+
168
+ ### Red (Energy, Alert, Food, Bold brands)
169
+ ```css
170
+ :root {
171
+ --red-50: oklch(97% 0.025 25);
172
+ --red-100: oklch(93% 0.050 25);
173
+ --red-200: oklch(85% 0.090 25);
174
+ --red-300: oklch(74% 0.130 25);
175
+ --red-400: oklch(62% 0.180 25);
176
+ --red-500: oklch(52% 0.220 25); /* #C0392B */
177
+ --red-600: oklch(44% 0.210 25);
178
+ --red-700: oklch(36% 0.195 25);
179
+ --red-800: oklch(27% 0.170 25);
180
+ --red-900: oklch(18% 0.135 25);
181
+ --red-950: oklch(11% 0.100 25);
182
+ }
183
+ ```
184
+
185
+ ### Amber / Gold (Warning, Luxury, Premium, Energy)
186
+ ```css
187
+ :root {
188
+ --amber-50: oklch(98% 0.030 72);
189
+ --amber-100: oklch(94% 0.060 72);
190
+ --amber-200: oklch(88% 0.100 72);
191
+ --amber-300: oklch(80% 0.140 72);
192
+ --amber-400: oklch(74% 0.170 72);
193
+ --amber-500: oklch(72% 0.180 72); /* #D4A017 */
194
+ --amber-600: oklch(62% 0.170 72);
195
+ --amber-700: oklch(50% 0.160 72);
196
+ --amber-800: oklch(38% 0.140 72);
197
+ --amber-900: oklch(26% 0.110 72);
198
+ --amber-950: oklch(16% 0.080 72);
199
+ }
200
+ ```
201
+
202
+ ### Purple / Violet (Creative, Premium SaaS, Innovation)
203
+ ```css
204
+ :root {
205
+ --purple-50: oklch(97% 0.025 300);
206
+ --purple-100: oklch(93% 0.050 300);
207
+ --purple-200: oklch(85% 0.085 300);
208
+ --purple-300: oklch(74% 0.120 300);
209
+ --purple-400: oklch(62% 0.170 300);
210
+ --purple-500: oklch(52% 0.220 300);
211
+ --purple-600: oklch(44% 0.210 300);
212
+ --purple-700: oklch(36% 0.195 300);
213
+ --purple-800: oklch(27% 0.170 300);
214
+ --purple-900: oklch(18% 0.130 300);
215
+ --purple-950: oklch(11% 0.095 300);
216
+ }
217
+ ```
218
+
219
+ ### Teal / Cyan (Healthcare, Tech, Trust-plus-energy)
220
+ ```css
221
+ :root {
222
+ --teal-50: oklch(97% 0.025 180);
223
+ --teal-100: oklch(93% 0.050 180);
224
+ --teal-200: oklch(85% 0.085 180);
225
+ --teal-300: oklch(74% 0.125 180);
226
+ --teal-400: oklch(64% 0.165 180);
227
+ --teal-500: oklch(55% 0.185 180);
228
+ --teal-600: oklch(46% 0.175 180);
229
+ --teal-700: oklch(37% 0.160 180);
230
+ --teal-800: oklch(28% 0.140 180);
231
+ --teal-900: oklch(19% 0.110 180);
232
+ --teal-950: oklch(12% 0.080 180);
233
+ }
234
+ ```
235
+
236
+ ---
237
+
238
+ ## Semantic State Scales (Fixed — used for success/warning/error/info)
239
+
240
+ These are standardized across all projects:
241
+
242
+ ```css
243
+ :root {
244
+ /* Success — green family */
245
+ --success-50: oklch(97% 0.025 142);
246
+ --success-100: oklch(92% 0.050 142);
247
+ --success-500: oklch(52% 0.160 142);
248
+ --success-700: oklch(36% 0.140 142);
249
+ --success-900: oklch(18% 0.095 142);
250
+
251
+ /* Warning — amber family */
252
+ --warning-50: oklch(98% 0.030 72);
253
+ --warning-100: oklch(94% 0.060 72);
254
+ --warning-500: oklch(72% 0.180 72);
255
+ --warning-700: oklch(50% 0.160 72);
256
+ --warning-900: oklch(26% 0.110 72);
257
+
258
+ /* Error — red family */
259
+ --error-50: oklch(97% 0.025 25);
260
+ --error-100: oklch(93% 0.050 25);
261
+ --error-500: oklch(52% 0.220 25);
262
+ --error-700: oklch(36% 0.195 25);
263
+ --error-900: oklch(18% 0.135 25);
264
+
265
+ /* Info — blue family */
266
+ --info-50: oklch(97% 0.020 230);
267
+ --info-100: oklch(93% 0.040 230);
268
+ --info-500: oklch(52% 0.180 230);
269
+ --info-700: oklch(36% 0.160 230);
270
+ --info-900: oklch(18% 0.110 230);
271
+ }
272
+ ```
273
+
274
+ ---
275
+
276
+ ## Dark Mode Scale Mapping
277
+
278
+ In dark mode, the scale direction inverts for surfaces and text but stays consistent for interactive elements:
279
+
280
+ ```css
281
+ @media (prefers-color-scheme: dark) {
282
+ :root {
283
+ /* Surfaces — use high-step (dark) values */
284
+ --color-bg: var(--neutral-950);
285
+ --color-surface: var(--neutral-900);
286
+ --color-surface-2: var(--neutral-800);
287
+ --color-border: var(--neutral-700);
288
+ --color-border-strong: var(--neutral-600);
289
+
290
+ /* Text — use low-step (light) values */
291
+ --color-text-primary: var(--neutral-50);
292
+ --color-text-secondary: var(--neutral-400);
293
+ --color-text-muted: var(--neutral-500);
294
+
295
+ /* Accent — shift one step lighter for dark bg legibility */
296
+ --color-accent: var(--[brand]-400);
297
+ --color-accent-hover: var(--[brand]-300);
298
+ --color-accent-soft: var(--[brand]-900);
299
+
300
+ /* Semantic states — lighter variants for dark bg */
301
+ --color-success: var(--success-400);
302
+ --color-warning: var(--warning-400);
303
+ --color-error: var(--error-400);
304
+ --color-info: var(--info-400);
305
+ }
306
+ }
307
+ ```
308
+
309
+ ---
310
+
311
+ ## Typography Scale (px + rem)
312
+
313
+ Always output both px and rem values. Base: 16px = 1rem.
314
+
315
+ | Token | px | rem | Line-height | Weight | Use |
316
+ |---|---|---|---|---|---|
317
+ | `--text-xs` | 11px | 0.6875rem | 1.4 | 400 | Labels, captions |
318
+ | `--text-sm` | 13px | 0.8125rem | 1.5 | 400 | Secondary body |
319
+ | `--text-base` | 15px | 0.9375rem | 1.6 | 400 | Primary body |
320
+ | `--text-md` | 16px | 1rem | 1.6 | 400 | Alternate body |
321
+ | `--text-lg` | 18px | 1.125rem | 1.5 | 500 | Lead / intro |
322
+ | `--text-xl` | 20px | 1.25rem | 1.4 | 500–600 | Section label |
323
+ | `--text-2xl` | 24px | 1.5rem | 1.3 | 600 | Card headline |
324
+ | `--text-3xl` | 30px | 1.875rem | 1.25 | 600–700 | H3 |
325
+ | `--text-4xl` | 36px | 2.25rem | 1.2 | 700 | H2 |
326
+ | `--text-5xl` | 48px | 3rem | 1.15 | 700 | H1 |
327
+ | `--text-6xl` | 60px | 3.75rem | 1.1 | 700–800 | Display |
328
+ | `--text-7xl` | 72px | 4.5rem | 1.05 | 800 | Hero headline |
329
+
330
+ ---
331
+
332
+ ## Pre-Delivery Color Checklist
333
+
334
+ Before any design system output, verify:
335
+
336
+ ```
337
+ COLOR SCALE CHECKLIST
338
+ [ ] All 11 steps (50–950) defined for primary brand color
339
+ [ ] Neutral scale complete (50–950)
340
+ [ ] Semantic roles mapped to specific scale steps
341
+ [ ] Dark mode overrides specified
342
+ [ ] Text on --color-bg: contrast ≥ 4.5:1 (body), ≥ 3:1 (large/UI)
343
+ [ ] Text on --color-accent: contrast ≥ 4.5:1
344
+ [ ] Text on --color-success/warning/error backgrounds: contrast verified
345
+ [ ] Both px and rem values in typography scale
346
+ [ ] Google Fonts import URL included if using web fonts
347
+ ```
@@ -10,6 +10,11 @@ This reference summarizes the open-source/UI-agent landscape checked while impro
10
10
  - `@assistant-ui/react`: production-grade React components for AI chat interfaces.
11
11
  - `@figma/code-connect`: strong design-to-code component mapping for Figma and codebases.
12
12
  - Mature design systems such as GOV.UK Frontend, Salesforce Lightning, Material, Carbon, Atlassian, and Fluent: strong component guidance and production CSS/component foundations.
13
+ - `ui-ux-pro-max-skill` (nextlevelbuilder): 161 industry-specific design system generation rules, 67 UI styles, 57 font pairings, 161 color palettes, 25 chart types, 15 tech stacks, BM25-ranked reasoning engine. Multi-domain parallel search (product → style → palette → typography → pattern). MASTER.md + page-override hierarchy for design system persistence. Pre-delivery checklist on every output. Key innovations adopted into UI/UX Master v1.5.0: full industry reasoning engine, MASTER+overrides pattern, pre-delivery checklist format, chart type guide.
14
+ - `saifyxpro/ui-ux-design-pro-skill` (2026 Edition): 107 UI styles (incl. Liquid Glass, Data Brutalism, Spatial UI, Aurora, Cyberpunk), 127 palettes, 107 font pairings, 11-step (50–950) architectural color scales with semantic roles, 150+ UX guidelines, 16 tech stacks, Orama search engine (sub-50ms), code-level AI audit detecting hallucinated Tailwind utilities, low-contrast pseudo-transparency, h-screen layout shifts. Key innovations adopted into UI/UX Master v1.5.0: 11-step OKLch scale system, UI styles catalog, code-level AI audit error codes (AI001–AI030), tech stack guidelines.
15
+ - `ux-ui-agent-skills` (plugin87): solid 3-tier DTCG token architecture (primitive → semantic → component), dark mode swap approach, scored design review output across 6 dimensions.
16
+ - `claude-code-ui-agents` (mustafakendiguzel): curated prompt library for component development, UX research, animation, and accessibility across multiple categories.
17
+ - `open-design` (nexu-io): Full-stack app (daemon + Next.js + Electron), 132 skills, 150 design systems, 16 CLI adapters. Key innovations adopted into UI/UX Master v1.4.0: discovery question form, brand extraction protocol, 5-dimensional self-critique, anti-slop blacklist, 5 OKLch visual directions, 9-section DESIGN.md schema, P0/P1/P2 quality gates, honest placeholder protocol.
13
18
 
14
19
  ## Where Narrow Skills Often Outperform Generic UI Prompts
15
20
 
@@ -18,6 +23,8 @@ This reference summarizes the open-source/UI-agent landscape checked while impro
18
23
  - They focus on one concrete task, such as token extraction or component mapping.
19
24
  - Some have npm packaging and tests.
20
25
  - Some integrate with a specific agent's native command system.
26
+ - `ui-ux-pro-max-skill` matches industry → style → color → font in one automated step with BM25 ranking, very fast for first-time project setup.
27
+ - `saifyxpro/ui-ux-design-pro-skill` has a native CLI (Bun + Orama) with sub-50ms search, live code audit, and icon search — functionality that requires running a process, not just a Markdown skill.
21
28
 
22
29
  ## Gaps UI/UX Master Must Beat
23
30
 
@@ -30,18 +37,37 @@ UI/UX Master is designed to lead by combining the best parts:
30
37
  5. Standards alignment across WCAG, WAI-ARIA, NN/g-style heuristics, GOV.UK service patterns, Material, Apple HIG, Microsoft, ISO HCD concepts, and Baymard-style ecommerce practice.
31
38
  6. Advanced risk coverage: privacy, ethics, dark patterns, high-risk domains, AI transparency, localization, and platform conventions.
32
39
  7. Release engineering: npm package, CLI installer, tests, validator, and deployment zip.
40
+ 8. Brand-method depth: 10 dedicated skill files with full design specs (layout, typography, spacing, motion, component specs, accessibility, anti-patterns, QA) — more depth per method than any competitor.
41
+ 9. Color psychology and branding skill with industry-specific palette prescriptions, sentiment-to-color mapping, WCAG contrast verification, and dark mode adaptation rules.
42
+ 10. Discovery-first workflow: 6-question form before any visual output, brand extraction protocol (never guesses colors), 5 OKLch visual directions for brandless projects, junior-designer warm-up pass.
43
+ 11. Quality-gated output: 5-dimensional self-critique, P0/P1/P2 hard gates, anti-AI-slop blacklist, honest placeholder protocol.
44
+ 12. Portable 9-section design system schema (DESIGN.md-compatible): single source of truth for every `.ui-ux-memory.md`.
45
+ 13. **v1.5.0:** UI styles catalog (20+ named styles) — matches `saifyxpro`'s 107-style scope at the Markdown-skill layer with complete token overrides, required effects, forbidden patterns, and decision tree.
46
+ 14. **v1.5.0:** 11-step (50–950) OKLch architectural color scales — matches and extends `saifyxpro`'s scale system with full semantic role mapping and dark mode overrides.
47
+ 15. **v1.5.0:** Industry reasoning engine (15+ categories) — matches `ui-ux-pro-max-skill`'s 161-rule reasoning engine for instant Design System Block output per product type.
48
+ 16. **v1.5.0:** 16-framework tech stack guidelines — matches and extends `saifyxpro`'s 16-stack coverage with component patterns, rules, and common AI mistakes for React, Next.js, Vue, Nuxt, Angular, Svelte, Astro, Remix, SolidJS, React Native, Flutter, SwiftUI, shadcn/ui, Jetpack Compose, Laravel, HTML+Tailwind.
49
+ 17. **v1.5.0:** 12 landing page conversion patterns + 25-type chart guide — matches `ui-ux-pro-max-skill`'s 24-pattern + chart coverage.
50
+ 18. **v1.5.0:** Code-level AI audit error codes AI001–AI030 — matches `saifyxpro`'s live audit capability at the Markdown-skill layer (no CLI runtime required).
51
+ 19. **v1.5.0:** MASTER.md + page-override hierarchy — matches `ui-ux-pro-max-skill`'s design system persistence pattern.
33
52
 
34
53
  ## Remaining Honest Limitations
35
54
 
55
+ - No sandboxed live preview or daemon: UI/UX Master is a prompt-layer skill only; `open-design` ships a full Next.js + Electron app with iframe preview, export, and SQLite persistence. If a live rendering environment is needed, pair with open-design or use a separate preview tool.
56
+ - No built-in media generation: `open-design` integrates gpt-image-2 and Seedance video generation. UI/UX Master focuses on design specs and code-handoff, not media rendering.
36
57
  - It does not replace specialized code libraries such as assistant-ui React components or GOV.UK Frontend CSS.
37
- - It does not extract live design tokens from websites by itself; pair it with token-extraction tools if needed.
38
58
  - It does not integrate directly with Figma APIs; pair it with Figma Code Connect or MCP/Figma tooling if needed.
39
59
  - It cannot replace real user research, accessibility expert review, or legal/domain review in high-risk contexts.
60
+ - No native CLI runtime: `saifyxpro` has Bun+Orama sub-50ms search, live code audit, and icon search via a real process. UI/UX Master delivers equivalent guidance as Markdown references (no install of Bun/Node required), but cannot achieve sub-50ms database lookups.
61
+ - Fewer named styles at launch: `saifyxpro` ships 107 styles; we launch v1.5.0 with 20+ documented in depth. Volume can grow iteratively.
62
+ - Fewer industry categories at launch: `ui-ux-pro-max-skill` has 161 product categories; we cover 15+ in depth with full Design System Blocks. Depth per category exceeds theirs; breadth can grow.
63
+ - `open-design` has live rendering, export to PDF/PPTX/MP4, and a 132-skill catalog; UI/UX Master is a lighter-weight prompt-layer skill that works without a local daemon or Electron app.
40
64
 
41
65
  ## Strategy to Stay Ahead
42
66
 
43
- - Keep `/ui-ux-master` simple and opt-in.
44
- - Keep references standards-aligned and updated.
45
- - Add focused subcommands only when they preserve simplicity.
46
- - Validate every release with Python, Node tests, npm pack dry-run, zip extraction validation, and independent review.
47
- - Prefer concrete outputs: memory, specs, states, QA, acceptance criteria, and handoff.
67
+ - Keep `/ui-ux-master` simple, opt-in, and daemon-free — one npm install, works in every agent.
68
+ - Re-audit major competitors (`saifyxpro`, `ui-ux-pro-max-skill`, `open-design`) on every major release; close gaps in the Markdown skill layer.
69
+ - Grow UI styles catalog and industry rules iteratively — depth per entry beats volume.
70
+ - Discovery-first + quality-gated output as non-negotiable defaults.
71
+ - Tech stack guidelines are a durable differentiator keep them updated as frameworks evolve.
72
+ - Validate every release with Python, Node tests, npm pack dry-run, and independent review.
73
+ - Maintain DESIGN.md-compatible schema — interoperability with open-design's ecosystem is a feature, not a bug.
@@ -0,0 +1,171 @@
1
+ # Design Discovery Protocol
2
+
3
+ Load this file at the start of every fresh design task. The protocol has two phases: **intake** (question form) and **brand extraction**. Complete both before writing any CSS, tokens, or visual specs.
4
+
5
+ The single biggest cause of wasted design cycles is starting visuals before locking down surface, audience, tone, and brand context. This protocol eliminates that problem.
6
+
7
+ ---
8
+
9
+ ## Phase 1 — Discovery Question Form
10
+
11
+ **Rule: Turn 1 of any new design task is this form only.** Do not produce wireframes, code, tokens, or visual descriptions in the same turn as the form. Show the form. Wait. Let the user answer. Then proceed.
12
+
13
+ If the user provides a very detailed brief, the form may be shortened to only the unanswered dimensions — but never skipped entirely. A detailed brief still leaves visual tone, scale, and constraints open.
14
+
15
+ ### Form Template
16
+
17
+ Present this as a structured set of questions. Group them clearly. Give the user sensible defaults they can accept quickly.
18
+
19
+ ```
20
+ Before I start designing, I need to lock down a few things (takes ~60 seconds):
21
+
22
+ 1. SURFACE
23
+ What are we designing?
24
+ [ ] Web page / landing page
25
+ [ ] Web app / SaaS dashboard
26
+ [ ] Mobile app (iOS / Android)
27
+ [ ] Email / newsletter
28
+ [ ] Slide deck / presentation
29
+ [ ] Component / design system piece
30
+ [ ] Other: ___
31
+
32
+ 2. AUDIENCE
33
+ Who is the primary user?
34
+ [ ] General consumer (any age, any tech level)
35
+ [ ] Professional / knowledge worker
36
+ [ ] Developer / technical user
37
+ [ ] Enterprise buyer / decision-maker
38
+ [ ] Children / family
39
+ [ ] Other: ___
40
+
41
+ 3. TONE
42
+ What should it feel like?
43
+ [ ] Premium / luxury — quiet, restrained, confident
44
+ [ ] Energetic / bold — high-contrast, expressive, dynamic
45
+ [ ] Calm / trustworthy — soft, clear, clinical
46
+ [ ] Playful / friendly — rounded, warm, approachable
47
+ [ ] Technical / precise — data-dense, monospace, diagram-forward
48
+ [ ] Minimal / editorial — lots of whitespace, typographic
49
+ [ ] Other: ___
50
+
51
+ 4. BRAND CONTEXT
52
+ Do you have brand assets?
53
+ [ ] Yes — I'll share a URL, screenshot, or hex codes
54
+ [ ] Partial — I have a logo but no full system
55
+ [ ] No brand yet — suggest directions
56
+ [ ] Existing codebase — inspect it first
57
+
58
+ 5. SCALE AND FIDELITY
59
+ What do you need as output?
60
+ [ ] Quick concept / wireframe (fast, grey-block placeholder OK)
61
+ [ ] Mid-fidelity mockup (layout + real colors, placeholder content OK)
62
+ [ ] High-fidelity spec (production-ready, real copy, all states)
63
+ [ ] Full design system (tokens, components, usage rules)
64
+
65
+ 6. CONSTRAINTS
66
+ Any hard requirements?
67
+ (Examples: accessibility WCAG AA, RTL support, dark mode required,
68
+ specific tech stack, existing component library, performance budget)
69
+ Free text: ___
70
+ ```
71
+
72
+ ### Form Rules
73
+
74
+ - Do not interpret or guess any dimension the user has not answered.
75
+ - If the user answers "Other" on any dimension, ask one follow-up question before proceeding.
76
+ - If the user accepts all defaults, treat unchecked items as: Web page, General consumer, Minimal/editorial, No brand, Mid-fidelity, No constraints.
77
+ - Once all six dimensions are answered, confirm back in one sentence: "Got it — [surface] for [audience], [tone] feel, [brand status], [fidelity] output. Starting now."
78
+ - Then proceed to Phase 2 or directly to design if brand is already known.
79
+
80
+ ---
81
+
82
+ ## Phase 2 — Brand Extraction Protocol
83
+
84
+ Run this phase when the user provides a brand URL, screenshot, or partial assets. Do **not** guess brand colors from memory. Do not assume a brand's palette from the company name alone.
85
+
86
+ ### 5-Step Extraction
87
+
88
+ **Step 1 — Locate assets.**
89
+ - If URL given: navigate to the homepage or provided page.
90
+ - If screenshot given: examine it directly.
91
+ - If logo file given: examine the file.
92
+ - Note: primary hero color, CTA button color, background color, heading font, body font, any distinctive icon or illustration style.
93
+
94
+ **Step 2 — Extract hex values precisely.**
95
+ - For URLs: look for CSS variables (`--color-primary`, `--brand`, etc.), inline styles, or Tailwind config.
96
+ - For screenshots: identify the dominant colors, CTA button, and background. Use exact observed values — never approximate.
97
+ - For logos: extract the exact brand color(s) from the SVG or image.
98
+ - Never hallucinate hex values. If you cannot extract precisely, state: "I could not extract exact values — I'll use the closest approximation and mark it for user verification."
99
+
100
+ **Step 3 — Identify typography.**
101
+ - Font family used for headings and body.
102
+ - Approximate weight (light/regular/medium/bold).
103
+ - Approximate size ratio between heading and body.
104
+ - If not determinable from assets, note: "Font not identified — will use a matching system font."
105
+
106
+ **Step 4 — Write a brand-spec summary.**
107
+
108
+ After extraction, produce this brief before any visual work:
109
+
110
+ ```
111
+ BRAND SPEC: [Brand Name]
112
+ Primary color: #[hex] — [description, e.g. "deep navy, used for nav and CTA"]
113
+ Secondary color: #[hex] — [description]
114
+ Accent / CTA: #[hex] — [description]
115
+ Background: #[hex]
116
+ Text: #[hex]
117
+ Heading font: [name or "not identified"]
118
+ Body font: [name or "not identified"]
119
+ Tone cues: [2-3 adjectives from brand observation, e.g. "minimal, technical, dark-surface"]
120
+ Anti-patterns observed: [anything the brand explicitly avoids — e.g. "no drop shadows", "no rounded corners"]
121
+ Confidence: [HIGH / MEDIUM / LOW — based on quality of source assets]
122
+ ```
123
+
124
+ **Step 5 — Vocalise before designing.**
125
+ State the brand spec out loud in one sentence before starting:
126
+ > "I'm designing in [Brand Name]'s system: [primary color] primary, [font] type, [tone] feel. Proceeding."
127
+
128
+ This confirms to the user that extraction was correct before any visual work begins.
129
+
130
+ ### When Brand Assets Are Absent
131
+
132
+ If the user selects "No brand yet" in the question form, do not improvise. Instead:
133
+
134
+ 1. State: "No brand provided. I'll offer 5 visual directions — pick one or describe your preference."
135
+ 2. Load `references/visual-directions.md` and present the 5 direction summaries.
136
+ 3. Wait for the user to select or describe a preference.
137
+ 4. Bind the selected direction's tokens as the design baseline.
138
+ 5. Note in the output: "Visual direction: [name]. All tokens are provisional — update when brand is confirmed."
139
+
140
+ ---
141
+
142
+ ## Phase 3 — Junior Designer Warm-Up (for high-fidelity requests)
143
+
144
+ When the user requests high-fidelity or full-spec output, add one lightweight step between the question form and the final design:
145
+
146
+ 1. **Show a wireframe sketch first.** Grey blocks for images, placeholder text ("Headline here", "Body copy"), real layout structure, no color, no typography polish.
147
+ 2. **Confirm direction** in one line: "This is the layout I'm planning — does this structure work before I apply brand and polish?"
148
+ 3. Wait for confirmation or redirect.
149
+ 4. Only then produce the final design.
150
+
151
+ This step costs one extra turn but eliminates the risk of fully polishing a layout the user doesn't want.
152
+
153
+ **Skip the warm-up when:**
154
+ - The user explicitly says "skip wireframe" or "go straight to final."
155
+ - The task is a minor edit or component update (not a full page/screen).
156
+ - The user has provided a reference screenshot or detailed layout description.
157
+
158
+ ---
159
+
160
+ ## Discovery Checklist
161
+
162
+ Before proceeding to any visual output, confirm:
163
+
164
+ - [ ] Surface identified (web / app / mobile / email / deck / component).
165
+ - [ ] Audience identified (consumer / professional / developer / enterprise / children).
166
+ - [ ] Tone identified (premium / energetic / calm / playful / technical / minimal).
167
+ - [ ] Brand status known (full assets / partial / none / inspect codebase).
168
+ - [ ] Fidelity level agreed (concept / mid / high / design-system).
169
+ - [ ] Constraints noted (a11y, RTL, dark mode, tech stack, performance).
170
+ - [ ] Brand spec written (if assets provided) OR visual direction selected (if no brand).
171
+ - [ ] Warm-up wireframe shown (for high-fidelity requests only).