ui-ux-master 1.2.0 → 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.
- package/README.md +170 -182
- package/SKILL.md +89 -47
- package/docs/package-publishing.md +84 -0
- package/index.cjs +39 -0
- package/index.d.ts +17 -0
- package/index.mjs +30 -0
- package/package.json +86 -11
- package/references/brand-method-card-based-discovery.md +285 -0
- package/references/brand-method-conversion-simplicity.md +276 -0
- package/references/brand-method-ecosystem-bundling.md +263 -0
- package/references/brand-method-editorial-brand-world.md +265 -0
- package/references/brand-method-enterprise-trust-hub.md +298 -0
- package/references/brand-method-playful-familiarity.md +284 -0
- package/references/brand-method-premium-restraint.md +270 -0
- package/references/brand-method-product-cinema.md +258 -0
- package/references/brand-method-technical-authority.md +290 -0
- package/references/brand-method-utility-command-center.md +278 -0
- package/references/color-psychology-branding.md +286 -0
- package/references/color-scale-system.md +347 -0
- package/references/competitive-landscape.md +32 -6
- package/references/design-discovery-protocol.md +171 -0
- package/references/design-system-schema.md +407 -0
- package/references/industry-reasoning-rules.md +504 -0
- package/references/landing-page-patterns.md +327 -0
- package/references/output-quality-gates.md +246 -0
- package/references/tech-stack-guidelines.md +636 -0
- package/references/ui-styles-catalog.md +552 -0
- package/references/visual-directions.md +362 -0
- package/tests/install-smoke.test.mjs +93 -12
|
@@ -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
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
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).
|
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# Design System Schema
|
|
2
|
+
|
|
3
|
+
This file defines the portable 9-section design system format used by UI/UX Master. Every project should have a `.ui-ux-memory.md` at its root that follows this schema. Every design output reads from this schema — when it's populated, no design decision needs to be re-established.
|
|
4
|
+
|
|
5
|
+
Use this as the template for creating or updating a project's design system record.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## How to Use
|
|
10
|
+
|
|
11
|
+
When starting work on a project:
|
|
12
|
+
|
|
13
|
+
1. Look for `.ui-ux-memory.md` at the project root.
|
|
14
|
+
2. If it exists: read all 9 sections before designing. Follow the schema as the source of truth.
|
|
15
|
+
3. If it doesn't exist: create it using this template. Fill in what is known. Mark unknown sections with `[not yet defined]`.
|
|
16
|
+
4. After each design session: update the schema with any new durable decisions (new component pattern, new color token, new spacing rule).
|
|
17
|
+
5. The schema is **living documentation** — it grows with the project.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## The 9-Section Schema
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
### Section 1 — Color
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
## Color
|
|
29
|
+
|
|
30
|
+
### Palette
|
|
31
|
+
| Role | Token | Hex | OKLch | Usage |
|
|
32
|
+
|------|-------|-----|-------|-------|
|
|
33
|
+
| Background | --color-bg | #FAFAFA | oklch(99% 0.002 264) | Page background |
|
|
34
|
+
| Surface | --color-surface | #F4F4F6 | oklch(97% 0.003 264) | Card, panel backgrounds |
|
|
35
|
+
| Surface raised | --color-surface-2 | #EDEDF0 | oklch(94% 0.004 264) | Hover states, nested surfaces |
|
|
36
|
+
| Border | --color-border | #DDDDE3 | oklch(88% 0.005 264) | Dividers, input borders |
|
|
37
|
+
| Text primary | --color-text-primary | #1A1A22 | oklch(15% 0.010 264) | Body copy, headings |
|
|
38
|
+
| Text secondary | --color-text-secondary | #666677 | oklch(45% 0.010 264) | Meta, captions, labels |
|
|
39
|
+
| Text muted | --color-text-muted | #999AAA | oklch(65% 0.008 264) | Placeholders, disabled |
|
|
40
|
+
| Accent / Brand | --color-accent | #4361EE | oklch(52% 0.18 264) | CTAs, links, active states |
|
|
41
|
+
| Accent hover | --color-accent-hover | #3451DE | oklch(45% 0.18 264) | Hover on accent |
|
|
42
|
+
| Success | --color-success | #1A7F5A | oklch(52% 0.16 142) | Positive states |
|
|
43
|
+
| Warning | --color-warning | #D4A017 | oklch(72% 0.18 72) | Caution states |
|
|
44
|
+
| Error | --color-error | #C0392B | oklch(52% 0.22 25) | Error states |
|
|
45
|
+
| Info | --color-info | #0072CE | oklch(52% 0.18 230) | Informational states |
|
|
46
|
+
|
|
47
|
+
### Dark Mode
|
|
48
|
+
[yes / no — if yes, include dark-mode token overrides]
|
|
49
|
+
|
|
50
|
+
### Color Rules
|
|
51
|
+
- Primary brand color: [token] — used for CTAs, active navigation, key links only.
|
|
52
|
+
- Maximum accent colors active simultaneously: [number].
|
|
53
|
+
- Gradient: [allowed / not allowed — if allowed, describe usage].
|
|
54
|
+
- Background: [light / dark / both].
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### Section 2 — Typography
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
## Typography
|
|
63
|
+
|
|
64
|
+
### Fonts
|
|
65
|
+
| Role | Family | Fallback | Weights loaded |
|
|
66
|
+
|------|--------|----------|----------------|
|
|
67
|
+
| Display / heading | [name] | [fallback] | [400, 600, 700] |
|
|
68
|
+
| Body | [name] | system-ui, sans-serif | [400, 500] |
|
|
69
|
+
| Mono / code | [name] | monospace | [400] |
|
|
70
|
+
|
|
71
|
+
### Scale
|
|
72
|
+
| Token | Size | Line-height | Weight | Tracking | Use |
|
|
73
|
+
|-------|------|-------------|--------|----------|-----|
|
|
74
|
+
| --text-xs | 11px | 1.4 | 400 | normal | Captions, labels |
|
|
75
|
+
| --text-sm | 13px | 1.5 | 400 | normal | Secondary body |
|
|
76
|
+
| --text-base | 15px | 1.6 | 400 | normal | Primary body |
|
|
77
|
+
| --text-lg | 17px | 1.6 | 400-500 | normal | Lead text |
|
|
78
|
+
| --text-xl | 20px | 1.4 | 500-600 | -0.01em | Section headings |
|
|
79
|
+
| --text-2xl | 24px | 1.3 | 600 | -0.02em | Page subheadings |
|
|
80
|
+
| --text-3xl | 32px | 1.2 | 600-700 | -0.02em | H2 |
|
|
81
|
+
| --text-4xl | 40-56px | 1.1 | 700 | -0.03em | H1, hero |
|
|
82
|
+
|
|
83
|
+
### Typography Rules
|
|
84
|
+
- Heading font pairing with body: [describe].
|
|
85
|
+
- Max heading size at desktop: [size].
|
|
86
|
+
- Max heading size at mobile: [size].
|
|
87
|
+
- Line-length (prose): max [60-72]ch.
|
|
88
|
+
- Minimum body font size: [14px].
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Section 3 — Spacing
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
## Spacing
|
|
97
|
+
|
|
98
|
+
### System
|
|
99
|
+
Base unit: [4px / 8px]
|
|
100
|
+
|
|
101
|
+
| Token | Value | Use |
|
|
102
|
+
|-------|-------|-----|
|
|
103
|
+
| --space-1 | 4px | Micro gaps, icon padding |
|
|
104
|
+
| --space-2 | 8px | Tight stacks, inline gaps |
|
|
105
|
+
| --space-3 | 12px | Dense component padding |
|
|
106
|
+
| --space-4 | 16px | Standard component padding |
|
|
107
|
+
| --space-6 | 24px | Card padding, section inner |
|
|
108
|
+
| --space-8 | 32px | Between components |
|
|
109
|
+
| --space-12 | 48px | Section separation |
|
|
110
|
+
| --space-16 | 64px | Major section gaps |
|
|
111
|
+
| --space-24 | 96px | Hero / CTA section padding |
|
|
112
|
+
|
|
113
|
+
### Spacing Rules
|
|
114
|
+
- Component padding: [token].
|
|
115
|
+
- Card inner padding: [token].
|
|
116
|
+
- Page horizontal padding (mobile): [token].
|
|
117
|
+
- Page horizontal padding (desktop): [token].
|
|
118
|
+
- Grid gutter: [token].
|
|
119
|
+
- Max content width: [px].
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### Section 4 — Layout
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
## Layout
|
|
128
|
+
|
|
129
|
+
### Grid
|
|
130
|
+
| Breakpoint | Columns | Gutter | Margin |
|
|
131
|
+
|------------|---------|--------|--------|
|
|
132
|
+
| Mobile 375px | 4 | 16px | 16px |
|
|
133
|
+
| Tablet 768px | 8 | 20px | 24px |
|
|
134
|
+
| Desktop 1024px | 12 | 24px | 40px |
|
|
135
|
+
| Wide 1440px+ | 12 | 24px | auto (centered) |
|
|
136
|
+
|
|
137
|
+
### Container
|
|
138
|
+
- Max content width: [px].
|
|
139
|
+
- Centered: yes.
|
|
140
|
+
- Full-bleed sections: [allowed / not — describe when].
|
|
141
|
+
|
|
142
|
+
### Responsive Rules
|
|
143
|
+
- Mobile-first: [yes / no].
|
|
144
|
+
- Primary breakpoints: [list].
|
|
145
|
+
- Touch targets minimum: 44×44px.
|
|
146
|
+
- Any mobile-specific patterns: [describe].
|
|
147
|
+
|
|
148
|
+
### Brand Method
|
|
149
|
+
- Primary design method: [Product Cinema / Utility Command Center / Editorial Brand World / etc.]
|
|
150
|
+
- Reference file: `references/brand-method-[name].md`
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### Section 5 — Components
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
## Components
|
|
159
|
+
|
|
160
|
+
List all established component patterns. For each component, record the key decisions so they are not re-decided.
|
|
161
|
+
|
|
162
|
+
### Button
|
|
163
|
+
- Primary: background [token], text [token], border-radius [token], padding [token].
|
|
164
|
+
- Secondary: [outlined / ghost / filled-muted].
|
|
165
|
+
- Sizes: [sm / md / lg].
|
|
166
|
+
- Loading state: [spinner inside / text change].
|
|
167
|
+
- Disabled: [opacity / different color].
|
|
168
|
+
- Focus: [ring spec].
|
|
169
|
+
|
|
170
|
+
### Input / Form
|
|
171
|
+
- Border: [token], focus border: [accent token].
|
|
172
|
+
- Label: above or floating?
|
|
173
|
+
- Error state: [border color + message below].
|
|
174
|
+
- Helper text: [below input, muted color].
|
|
175
|
+
- Required marker: [asterisk / word].
|
|
176
|
+
|
|
177
|
+
### Card
|
|
178
|
+
- Background: [token].
|
|
179
|
+
- Border: [token] or shadow: [token].
|
|
180
|
+
- Border-radius: [token].
|
|
181
|
+
- Padding: [token].
|
|
182
|
+
- Hover state: [describe].
|
|
183
|
+
|
|
184
|
+
### Navigation
|
|
185
|
+
- Type: [sticky / scroll-away / sidebar / bottom-nav].
|
|
186
|
+
- Background: [on-scroll behavior].
|
|
187
|
+
- Mobile: [hamburger / bottom-nav / other].
|
|
188
|
+
|
|
189
|
+
### [Additional components — add as they are established]
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
### Section 6 — Motion
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
## Motion
|
|
198
|
+
|
|
199
|
+
### Principles
|
|
200
|
+
- Motion philosophy: [purposeful / minimal / expressive / none].
|
|
201
|
+
- Default easing: [ease-out / ease-in-out / spring].
|
|
202
|
+
- Default duration: [150ms / 200ms / 300ms].
|
|
203
|
+
|
|
204
|
+
### Token Set
|
|
205
|
+
| Token | Value | Use |
|
|
206
|
+
|-------|-------|-----|
|
|
207
|
+
| --duration-instant | 100ms | Immediate feedback (button tap) |
|
|
208
|
+
| --duration-fast | 150ms | Hover states, small transitions |
|
|
209
|
+
| --duration-normal | 250ms | Panel open/close, dropdown |
|
|
210
|
+
| --duration-slow | 400ms | Page transitions, large reveals |
|
|
211
|
+
| --duration-slower | 600ms | Scroll-triggered animations |
|
|
212
|
+
| --ease-default | cubic-bezier(0.16, 1, 0.3, 1) | Standard ease-out |
|
|
213
|
+
| --ease-spring | cubic-bezier(0.34, 1.56, 0.64, 1) | Playful/springy |
|
|
214
|
+
| --ease-in-out | cubic-bezier(0.4, 0, 0.2, 1) | Symmetric transitions |
|
|
215
|
+
|
|
216
|
+
### Reduced Motion
|
|
217
|
+
- All animations wrapped in `@media (prefers-reduced-motion: no-preference)`.
|
|
218
|
+
- Reduced motion fallback: [instant transition / static].
|
|
219
|
+
|
|
220
|
+
### Allowed Animations
|
|
221
|
+
[List what is allowed — e.g., fade-in on scroll, hover lifts, page transitions]
|
|
222
|
+
|
|
223
|
+
### Forbidden Animations
|
|
224
|
+
[List what is not allowed — e.g., no autoplay videos with sound, no infinite spinning logos]
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### Section 7 — Voice and Copy
|
|
230
|
+
|
|
231
|
+
```markdown
|
|
232
|
+
## Voice and Copy
|
|
233
|
+
|
|
234
|
+
### Brand Voice
|
|
235
|
+
- Tone: [formal / conversational / technical / playful / authoritative].
|
|
236
|
+
- Person: [first person "we" / second person "you" / impersonal].
|
|
237
|
+
- Reading level: [general / professional / expert].
|
|
238
|
+
|
|
239
|
+
### Copy Rules
|
|
240
|
+
- Headlines: [sentence case / title case / all-caps].
|
|
241
|
+
- CTA copy: [imperative verb first — "Start free trial" not "Free trial"].
|
|
242
|
+
- Error messages: [describe the problem + say what to do — never just "Error"].
|
|
243
|
+
- Empty states: [explain why it's empty + offer an action — never just "No results"].
|
|
244
|
+
- Loading states: [describe what's loading — "Loading your projects…"].
|
|
245
|
+
- Confirmation messages: [specific — "Project saved" not just "Saved"].
|
|
246
|
+
|
|
247
|
+
### Forbidden Copy Patterns
|
|
248
|
+
- No: "Seamlessly", "Effortlessly", "Powerful yet simple", "All-in-one".
|
|
249
|
+
- No invented metrics without a source.
|
|
250
|
+
- No lorem ipsum in high-fidelity output.
|
|
251
|
+
- No "Click here" as link text.
|
|
252
|
+
|
|
253
|
+
### Localization
|
|
254
|
+
- Primary language: [language].
|
|
255
|
+
- RTL support: [yes / no].
|
|
256
|
+
- Key markets for i18n: [list if known].
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
### Section 8 — Brand
|
|
262
|
+
|
|
263
|
+
```markdown
|
|
264
|
+
## Brand
|
|
265
|
+
|
|
266
|
+
### Identity
|
|
267
|
+
- Brand name: [name].
|
|
268
|
+
- Tagline: [tagline or "not defined"].
|
|
269
|
+
- Brand personality: [3 adjectives].
|
|
270
|
+
- Brand anti-personality: [3 things the brand is NOT].
|
|
271
|
+
|
|
272
|
+
### Assets
|
|
273
|
+
- Logo: [path or "not yet available"].
|
|
274
|
+
- Favicon: [path or "not yet available"].
|
|
275
|
+
- Icon set: [Lucide / Heroicons / Phosphor / custom].
|
|
276
|
+
- Illustration style: [describe or "none"].
|
|
277
|
+
- Photography style: [describe or "none"].
|
|
278
|
+
|
|
279
|
+
### Brand Extraction
|
|
280
|
+
- Source: [URL / file / "not extracted"].
|
|
281
|
+
- Extracted on: [date or "not yet"].
|
|
282
|
+
- Confidence: [HIGH / MEDIUM / LOW / "not extracted"].
|
|
283
|
+
- Notes: [any caveats or approximations].
|
|
284
|
+
|
|
285
|
+
### Visual Direction (if no brand)
|
|
286
|
+
- Active direction: [Neutral Modern / Dark Technical / Warm Editorial / Bold Energetic / Calm Trust / "not selected"].
|
|
287
|
+
- Status: [provisional — update when brand is confirmed / confirmed].
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
### Section 9 — Anti-Patterns
|
|
293
|
+
|
|
294
|
+
```markdown
|
|
295
|
+
## Anti-Patterns
|
|
296
|
+
|
|
297
|
+
Record project-specific patterns that have been tried and rejected, in addition to the universal list in `references/output-quality-gates.md`.
|
|
298
|
+
|
|
299
|
+
### Visual Anti-Patterns
|
|
300
|
+
- [Pattern]: [Why it was rejected for this project].
|
|
301
|
+
- [Add as patterns are identified and rejected].
|
|
302
|
+
|
|
303
|
+
### Copy Anti-Patterns
|
|
304
|
+
- [Pattern]: [Why].
|
|
305
|
+
|
|
306
|
+
### UX Anti-Patterns
|
|
307
|
+
- [Pattern]: [Why].
|
|
308
|
+
|
|
309
|
+
### Technical Anti-Patterns
|
|
310
|
+
- [Pattern]: [Why — e.g. "No inline styles — we use CSS tokens only"].
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
*Last updated: [date]*
|
|
314
|
+
*Updated by: [agent session or designer name]*
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Schema Maintenance Rules
|
|
320
|
+
|
|
321
|
+
1. **Read before design.** Always read the schema before starting any new screen or component on an existing project.
|
|
322
|
+
2. **Write after design.** After any session that establishes a new durable decision, update the relevant section.
|
|
323
|
+
3. **Tokens must be consistent.** If a new token is added to the schema, it must be consistent with existing tokens. No ad-hoc magic numbers.
|
|
324
|
+
4. **Anti-patterns are permanent.** Once a pattern is added to Section 9, it stays unless explicitly reversed by the user.
|
|
325
|
+
5. **Version the schema.** Update the "Last updated" line at the bottom of Section 9 after every meaningful change.
|
|
326
|
+
6. **The schema is not a spec.** It records decisions, not deliverables. Component specs and screen specs live in `templates/component-spec.md` and `templates/ui-ux-brief.md`.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## MASTER + Page Overrides Hierarchy
|
|
331
|
+
|
|
332
|
+
For multi-page products, use a hierarchical design system file structure. This prevents global tokens from being re-established per page and allows page-specific deviations without polluting the master.
|
|
333
|
+
|
|
334
|
+
### File Structure
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
design-system/
|
|
338
|
+
├── MASTER.md ← Global source of truth (all 9 sections)
|
|
339
|
+
└── pages/
|
|
340
|
+
├── landing.md ← Landing page overrides only
|
|
341
|
+
├── dashboard.md ← Dashboard overrides only
|
|
342
|
+
├── checkout.md ← Checkout overrides only
|
|
343
|
+
├── onboarding.md ← Onboarding overrides only
|
|
344
|
+
└── [page].md ← Any page-specific deviations
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### MASTER.md
|
|
348
|
+
|
|
349
|
+
Contains the full 9-section schema. This is the global design system. Every page inherits from it unless overridden.
|
|
350
|
+
|
|
351
|
+
### pages/[page].md
|
|
352
|
+
|
|
353
|
+
Contains **only the deviations** from the master. Do not repeat tokens from MASTER.md — only write what is different.
|
|
354
|
+
|
|
355
|
+
**Example `pages/dashboard.md`:**
|
|
356
|
+
```markdown
|
|
357
|
+
# Dashboard — Design System Overrides
|
|
358
|
+
|
|
359
|
+
Inherits from: design-system/MASTER.md
|
|
360
|
+
|
|
361
|
+
## Color Overrides
|
|
362
|
+
- --color-bg: var(--neutral-950) ← Dark mode for dashboard only
|
|
363
|
+
- --color-surface: var(--neutral-900)
|
|
364
|
+
- --color-text-primary: var(--neutral-50)
|
|
365
|
+
|
|
366
|
+
## Layout Overrides
|
|
367
|
+
- Grid: sidebar (240px fixed) + main content (fluid)
|
|
368
|
+
- No hero section
|
|
369
|
+
- Compact spacing: --space-4 for most gaps (vs. --space-6 in master)
|
|
370
|
+
|
|
371
|
+
## Component Overrides
|
|
372
|
+
- Nav: Left sidebar (not top nav from master)
|
|
373
|
+
- Cards: Dense data variant — --space-4 inner padding (vs. --space-6)
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### Retrieval Protocol
|
|
377
|
+
|
|
378
|
+
When building any page, always follow this lookup order:
|
|
379
|
+
|
|
380
|
+
```
|
|
381
|
+
1. Check if design-system/pages/[current-page].md exists.
|
|
382
|
+
2. If YES → Read the page file. Its rules override the master for this page.
|
|
383
|
+
3. Read design-system/MASTER.md for everything NOT overridden in the page file.
|
|
384
|
+
4. Combined rules = the complete design system for this page.
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Context-aware prompt pattern:**
|
|
388
|
+
```
|
|
389
|
+
I am building the [Page Name] page.
|
|
390
|
+
Please read design-system/MASTER.md for the global design system.
|
|
391
|
+
Also check if design-system/pages/[page-name].md exists.
|
|
392
|
+
If it exists, apply its rules as overrides on top of the master.
|
|
393
|
+
If not, use MASTER.md exclusively.
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### When to Create a Page Override
|
|
397
|
+
|
|
398
|
+
Create a page override file when:
|
|
399
|
+
- The page uses a significantly different layout (sidebar nav, full-bleed, etc.)
|
|
400
|
+
- The page has a different color scheme (dark dashboard on a light-mode product)
|
|
401
|
+
- The page needs denser or more spacious spacing than the master
|
|
402
|
+
- The page has unique component variants not used elsewhere
|
|
403
|
+
|
|
404
|
+
Do **not** create a page override for:
|
|
405
|
+
- Minor copy differences
|
|
406
|
+
- Individual component states
|
|
407
|
+
- One-off color tweaks that should be global tokens anyway
|