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.
@@ -0,0 +1,286 @@
1
+ # Color Psychology in Branding
2
+
3
+ Use this skill when a user describes a product, business, or UI concept and you must recommend a color scheme. Analyze the business type, target audience, emotional goals, and brand positioning — then apply color psychology principles to prescribe a complete palette.
4
+
5
+ ---
6
+
7
+ ## How to Apply This Skill
8
+
9
+ When a user says: "I'm building a [product/business type] for [audience]. The feel should be [adjective]."
10
+
11
+ Follow this process:
12
+ 1. **Identify the business category** → look up the category in the table below.
13
+ 2. **Identify the emotional goal** → trust, energy, calm, luxury, health, play, authority, innovation.
14
+ 3. **Check for conflicts** → does the requested adjective match the business category's expectations?
15
+ 4. **Prescribe a palette** → primary, secondary, accent, background, surface, text, semantic colors.
16
+ 5. **State the psychological rationale** → explain why these colors work for this business.
17
+ 6. **Warn of anti-patterns** → what colors to avoid and why.
18
+
19
+ ---
20
+
21
+ ## Color Emotion Reference
22
+
23
+ | Color | Core emotions | Common industries |
24
+ |---|---|---|
25
+ | **Blue** | Trust, calm, competence, security, depth | Finance, tech, healthcare, logistics, government |
26
+ | **Deep navy** | Authority, stability, prestige, institutional trust | Finance, law, consulting, insurance |
27
+ | **Cyan / teal** | Innovation, freshness, clarity, health-tech | SaaS, health, wellness, clean energy |
28
+ | **Green** | Growth, health, nature, money, safety | Finance, organic food, wellness, sustainability, pharmacy |
29
+ | **Emerald / forest** | Wealth, premium, sustainability, natural luxury | Luxury eco, premium wellness, high-end food |
30
+ | **Red** | Energy, urgency, passion, appetite, danger | Food, automotive, sale/promo, entertainment |
31
+ | **Warm red / crimson** | Tradition, boldness, confidence, strength | Heritage brands, sportswear, food |
32
+ | **Orange** | Friendliness, enthusiasm, affordability, warmth | Retail, food, casual tech, children |
33
+ | **Amber / gold** | Premium, achievement, warmth, celebration | Luxury, rewards, premium food/beverage |
34
+ | **Yellow** | Optimism, clarity, attention, speed, caution | Construction, food, warnings, casual consumer |
35
+ | **Purple** | Creativity, spirituality, luxury, wisdom, mystery | Beauty, wellness, spiritual, creative SaaS |
36
+ | **Deep violet** | Premium, mystery, innovation | AI/tech (use carefully), beauty, luxury |
37
+ | **Pink** | Warmth, romance, care, femininity | Beauty, wellness, romance, children, healthcare |
38
+ | **Dusty rose / mauve** | Sophistication, calm care | Premium wellness, beauty, hospitality |
39
+ | **White** | Purity, simplicity, clarity, space | Healthcare, luxury, tech, minimal |
40
+ | **Black** | Authority, sophistication, mystery, premium | Luxury, tech, automotive, fashion |
41
+ | **Warm gray / greige** | Neutral sophistication, calm | Luxury interiors, editorial, premium services |
42
+ | **Brown / earth tones** | Heritage, craft, organic, reliability | Food, craft beverages, natural products, luxury leather |
43
+
44
+ ---
45
+
46
+ ## Industry Palette Prescriptions
47
+
48
+ ### Finance and Banking
49
+ - **Trust goal**: use blue family.
50
+ - Palette: Navy primary `#002D72`, white `#FFFFFF`, light blue surface `#EBF5FB`, gold accent `#B8860B` (premium signal).
51
+ - Text: `#1A1A2E` on light.
52
+ - Semantic: success `#1A7F5A`, error `#C0392B`, warning `#D4AC0D`.
53
+ - Avoid: red as primary (signals loss/danger), orange (cheap), bright yellow.
54
+
55
+ ### Healthcare / Medical
56
+ - **Trust + calm goal**: blue-teal family.
57
+ - Palette: calm blue `#0072CE` or teal `#00A7B5`, white `#FFFFFF`, pale blue surface `#EBF8FF`, soft green accent `#27AE60`.
58
+ - Text: `#1A2B3C`.
59
+ - Avoid: aggressive red (associates with blood/emergency), dark purple, black-dominant UI.
60
+ - Exception: red is acceptable for emergency/urgent care contexts.
61
+
62
+ ### Wellness / Mental Health
63
+ - **Calm + care goal**: green, teal, warm earth tones.
64
+ - Palette A (calm): sage green `#87A878`, warm cream `#FAF6F0`, soft teal `#5F9EA0`, text `#2C3E50`.
65
+ - Palette B (energy/vitality): coral `#E8705A`, warm yellow `#F4C842`, white background.
66
+ - Avoid: clinical blue (too medical), aggressive red, dark/heavy backgrounds.
67
+
68
+ ### Physical Fitness / Gym / Sportswear
69
+ - **Energy + performance goal**: bold primaries, high contrast.
70
+ - Palette A (performance): black `#0D0D0D`, red `#D32F2F`, white. (Nike/Adidas approach.)
71
+ - Palette B (energy): orange `#E65C00`, black, white. (High-octane sports.)
72
+ - Palette C (premium athletic): deep navy, gold, white. (Premium fitness brand.)
73
+ - Avoid: pastels, muted tones — they signal relaxation, not performance.
74
+
75
+ ### Food and Restaurant
76
+ - **Appetite + urgency goal**: warm reds, oranges, yellows.
77
+ - Fast food: red + yellow + white (appetite, speed, familiarity).
78
+ - Premium dining: deep plum or dark forest green, cream, gold (sophistication).
79
+ - Healthy/organic: green, earth brown, cream (natural, wholesome).
80
+ - Café/coffee: warm brown `#6F4E37`, cream `#F5F0E8`, gold accent (comfort, ritual).
81
+ - Avoid: blue as a dominant color for food (appetite suppressor except for specialty/brand contexts).
82
+ - Avoid: cold grays in food photography backgrounds.
83
+
84
+ ### E-commerce / Retail
85
+ - **Conversion + trust goal**: primary action color must be high-energy and high-contrast.
86
+ - Mass market: blue/white + orange or yellow CTA.
87
+ - Fashion: depends on positioning (see Fashion below).
88
+ - Premium: neutral backgrounds, single accent.
89
+ - Discount/deal: red or orange urgency, white or light gray base.
90
+ - Avoid: making the CTA the same color as any other non-interactive element.
91
+
92
+ ### Fashion (General)
93
+ - **Identity expression**: palette varies entirely by brand positioning.
94
+ - Luxury: black/white/cream + 1 heritage accent (see Premium Restraint).
95
+ - Contemporary: black/white or muted palette.
96
+ - Fast fashion: white + current season campaign accent.
97
+ - Streetwear: black + one bright accent per drop.
98
+ - Avoid: generic "fashion" pastels without a point of view.
99
+
100
+ ### Technology (Consumer)
101
+ - **Innovation + approachability**: blue or brand accent on white, or high-contrast dark.
102
+ - Modern tech: white + one bright accent (electric blue, electric green, or vibrant red).
103
+ - AI/ML products: dark surface + green or electric blue accent.
104
+ - Developer tools: dark background + accent (see Technical Authority).
105
+ - Avoid: purple/violet as the only tech differentiator — saturated by AI-industry overuse in 2024-2025.
106
+
107
+ ### Education
108
+ - **Trust + optimism goal**: blue for authority, yellow for optimism.
109
+ - K-12 / children: primary colors (red/blue/yellow), friendly, high contrast.
110
+ - Higher ed: institutional navy + gold (authority + achievement).
111
+ - EdTech: blue or teal + white + one friendly accent.
112
+ - Avoid: overly corporate (dark gray/navy only) or overly playful for adult learners.
113
+
114
+ ### Legal / Consulting
115
+ - **Authority + trust**: navy, deep charcoal, white, gold accent.
116
+ - Palette: `#1A2744` (navy), `#FFFFFF`, `#B8860B` (gold), surface `#F7F8FA`.
117
+ - Conservative: maximum 2 colors, no bright accents.
118
+ - Avoid: red (danger/aggression), orange (casual), bright primaries.
119
+
120
+ ### Real Estate
121
+ - **Trust + aspiration**: navy or forest green + gold.
122
+ - Luxury real estate: black/white + gold.
123
+ - Residential: blue + white + green.
124
+ - Commercial: navy + silver/gray.
125
+ - Avoid: too many colors — real estate brands are conservative.
126
+
127
+ ### Automotive
128
+ - **Power/trust OR luxury**: depends on segment.
129
+ - Mass market reliability: red + white or blue + white.
130
+ - Premium/performance: black + silver/white + one accent.
131
+ - Luxury: see Premium Restraint.
132
+ - Electric/EV: blue, cyan, or green (sustainability + innovation).
133
+ - Avoid: yellow/orange as primary for luxury automotive.
134
+
135
+ ### Beauty and Cosmetics
136
+ - **Luxury + aspiration**: black/white/gold for premium; pastels for approachable.
137
+ - Luxury beauty: black `#0A0A0A`, cream `#FAF5EF`, gold `#D4A017`, white.
138
+ - Natural/clean beauty: sage green, cream, dusty rose, earth tones.
139
+ - Bold/color-forward: vivid brand accent on white or black, changes per campaign.
140
+ - Avoid: clinical blue (too medical for beauty), heavy industrial tones.
141
+
142
+ ### Travel and Hospitality
143
+ - **Aspiration + calm**: blue (sky/ocean), teal, white, warm accent.
144
+ - Airlines: blue + white + national accent color.
145
+ - Hotels (luxury): deep navy or forest green + cream + gold.
146
+ - Hotels (budget): blue + white + orange CTA.
147
+ - Travel marketplace: brand accent on white (Airbnb coral, Booking.com blue).
148
+ - Avoid: overuse of stock-photo tropical palettes — they feel generic.
149
+
150
+ ### Non-Profit / Social Impact
151
+ - **Hope + action**: green (growth), blue (trust), warm yellow/orange (optimism, humanity).
152
+ - Human rights / emergency: red + white (urgency + care).
153
+ - Environmental: green + earth tones.
154
+ - Community: warm orange + blue or teal.
155
+ - Avoid: corporate navy-only (feels institutional, not human).
156
+
157
+ ### Gaming
158
+ - **Immersion + energy**: dark surfaces + vivid accent.
159
+ - AAA / console: black + brand color (PlayStation blue, Xbox green, Nintendo red).
160
+ - Mobile/casual: bright primaries, white, high contrast.
161
+ - Esports: black + electric cyan or electric green + red accent.
162
+ - Avoid: muted or pastel palettes — they signal casualness in a world that values intensity.
163
+
164
+ ### SaaS / Productivity
165
+ - **Clarity + trust + approachability**: blue or purple family.
166
+ - B2B SaaS: blue or indigo on white, clean, professional.
167
+ - Creative SaaS: purple, indigo, or gradient accent on white/dark.
168
+ - Developer SaaS: see Technical Authority.
169
+ - Note: avoid full-saturation purple if the brand is not clearly creative — it has AI-product associations.
170
+ - Preferred: `#4361EE` (indigo), `#7209B7` (violet, creative SaaS), `#3A86FF` (bright blue).
171
+
172
+ ---
173
+
174
+ ## Sentiment-to-Palette Mapping
175
+
176
+ When users describe emotions or goals, translate them:
177
+
178
+ | User describes | Translate to |
179
+ |---|---|
180
+ | "trustworthy", "reliable", "secure" | Blue family: `#1A56DB`, `#0072CE`, `#003580` |
181
+ | "energetic", "exciting", "bold" | Red/orange: `#D32F2F`, `#E65C00`, `#FF385C` |
182
+ | "calm", "peaceful", "relaxing" | Green/teal: `#27AE60`, `#5F9EA0`, `#87A878` |
183
+ | "luxurious", "premium", "exclusive" | Black/cream/gold: `#0A0A0A`, `#FAF5EF`, `#D4A017` |
184
+ | "playful", "fun", "friendly" | Bright primaries or pastels: `#FF6B6B`, `#4ECDC4`, `#FFE66D` |
185
+ | "innovative", "modern", "forward" | Electric blue/green on dark: `#3A86FF`, `#06D6A0`, `#76B900` |
186
+ | "natural", "organic", "healthy" | Earth greens, browns, cream: `#4A7C59`, `#8B5E3C`, `#FAF6F0` |
187
+ | "authoritative", "expert", "serious" | Navy, charcoal, white: `#1A2744`, `#2D3748`, `#FFFFFF` |
188
+ | "warm", "welcoming", "comforting" | Warm orange, gold, cream: `#E8A000`, `#F5CBA7`, `#FAF0E6` |
189
+ | "creative", "artistic", "expressive" | Vivid unexpected combos: purple + yellow, teal + coral |
190
+ | "clean", "minimal", "simple" | White, light gray, single accent: `#FFFFFF`, `#F7F7F7`, one brand color |
191
+ | "feminine", "delicate", "romantic" | Soft pink, rose, mauve: `#FFB6C1`, `#C08497`, `#E8B4B8` |
192
+
193
+ ---
194
+
195
+ ## Complete Palette Output Format
196
+
197
+ When you prescribe a palette, always output:
198
+
199
+ ```
200
+ Business type: [name]
201
+ Emotional goal: [trust / energy / calm / luxury / health / play / authority / innovation]
202
+ Positioning: [mass market / mid-range / premium / luxury]
203
+ Primary: [hex] — [color name] — [psychological role]
204
+ Secondary: [hex] — [color name] — [role]
205
+ Accent / CTA: [hex] — [color name] — [role]
206
+ Background: [hex]
207
+ Surface: [hex]
208
+ Text primary: [hex] — contrast on background: [ratio]:1
209
+ Text secondary: [hex] — contrast on background: [ratio]:1
210
+ Border: [hex]
211
+ Semantic — Success: [hex]
212
+ Semantic — Warning: [hex]
213
+ Semantic — Error: [hex]
214
+ Semantic — Info: [hex]
215
+ Dark mode variant: [yes/no — if yes, provide swapped values]
216
+ Avoid: [color] — [reason]
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Contrast and Accessibility Requirements
222
+
223
+ All prescribed palettes must:
224
+ - Pass WCAG 2.2 AA minimum: 4.5:1 for body text, 3:1 for large text (18px+) and UI components.
225
+ - Pass WCAG AAA (7:1) for primary text on primary background when possible.
226
+ - Never place text on an image without a scrim — calculate contrast with the scrim included.
227
+
228
+ Pre-verified contrast pairs (safe to use):
229
+ | Text | Background | Ratio |
230
+ |---|---|---|
231
+ | `#FFFFFF` white | `#0A0A0A` near-black | 19.8:1 ✓ |
232
+ | `#1A1A1A` near-black | `#FFFFFF` white | 16.1:1 ✓ |
233
+ | `#FFFFFF` white | `#0072CE` blue | 4.6:1 ✓ (AA) |
234
+ | `#FFFFFF` white | `#D32F2F` red | 4.5:1 ✓ (AA min) |
235
+ | `#FFFFFF` white | `#27AE60` green | 2.5:1 ✗ (FAIL — use dark text) |
236
+ | `#1A1A1A` dark | `#FFC72C` yellow | 10.3:1 ✓ |
237
+ | `#FFFFFF` white | `#0A3D62` deep navy | 12.5:1 ✓ |
238
+ | `#767676` gray | `#FFFFFF` white | 4.6:1 ✓ (AA minimum) |
239
+
240
+ Common failures to warn users about:
241
+ - White text on green backgrounds — fails almost always except very dark green.
242
+ - Light gray text (`#AAAAAA`) on white — 2.3:1, fails.
243
+ - Yellow text on white — always fails.
244
+ - Red CTA buttons with white text — only passes on dark reds (`#C0392B` or darker).
245
+
246
+ ---
247
+
248
+ ## Multi-Audience Palette Variation
249
+
250
+ When a product serves multiple audiences with different emotional needs:
251
+
252
+ 1. **Primary audience palette**: defines the brand identity.
253
+ 2. **Secondary surfaces**: slightly adjusted tone (e.g., consumer = lighter/warmer, enterprise = cooler/darker).
254
+ 3. **Shared semantic colors**: consistent success/error/warning across all surfaces.
255
+ 4. **Never split brand identity**: the primary color must be consistent — only surface tones vary.
256
+
257
+ Example: Fintech serving both consumers and businesses.
258
+ - Consumer sections: lighter blue surface `#EBF5FB`, friendly round shapes, warm accent.
259
+ - Business sections: darker navy `#002D72`, formal layout, gold accent.
260
+ - Shared: brand blue `#0072CE`, white background, semantic colors.
261
+
262
+ ---
263
+
264
+ ## Anti-Patterns in Color
265
+
266
+ - **Purple for every AI/tech product**: overused to the point of signal loss. Use only if brand has genuine creative/creative-tech identity.
267
+ - **Gradients as primary backgrounds**: they tire quickly, age poorly, and compete with content.
268
+ - **Red for a finance brand**: associates with loss, deficit, danger. Use only for error states.
269
+ - **Blue for appetite**: statistically suppresses appetite (avoid as dominant hue for food brands).
270
+ - **All-neutral palette without an accent**: never have a brand with zero brand color — users cannot remember or identify you.
271
+ - **Low-contrast text in pursuit of trend**: thin gray text on white is inaccessible regardless of how "clean" it looks.
272
+ - **Color without meaning**: every color in the palette should have a reason. Remove decorative colors with no semantic or brand function.
273
+
274
+ ---
275
+
276
+ ## Dark Mode Color Adaptation
277
+
278
+ When dark mode is required, follow these rules:
279
+ - **Never simply invert**: inversion creates jarring contrasts and unintended color meanings.
280
+ - Backgrounds: `#FFFFFF` → `#121212` or `#0A0A0A`.
281
+ - Surfaces: `#F7F7F7` → `#1E1E1E`.
282
+ - Text: `#1A1A1A` → `#E8E8E8` (not pure white — reduces eye strain).
283
+ - Primary color: may need to lighten in dark mode (e.g., `#0072CE` → `#4FA3E0`) for contrast.
284
+ - Semantic colors: keep hue, adjust lightness for contrast. `#27AE60` (dark mode) → `#2ECC71`.
285
+ - Shadows: on dark surfaces, shadows are invisible — use surface elevation (lighter background) instead.
286
+ - Test both modes in WCAG contrast checker before finalizing.
@@ -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
+ ```