ui-pro-forge-cli 2.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 +99 -0
- package/assets/data/app-interface.csv +31 -0
- package/assets/data/charts.csv +26 -0
- package/assets/data/colors.csv +194 -0
- package/assets/data/google-fonts.csv +1924 -0
- package/assets/data/icons.csv +106 -0
- package/assets/data/landing.csv +35 -0
- package/assets/data/motion.csv +17 -0
- package/assets/data/products.csv +193 -0
- package/assets/data/react-performance.csv +45 -0
- package/assets/data/stacks/angular.csv +51 -0
- package/assets/data/stacks/astro.csv +54 -0
- package/assets/data/stacks/avalonia.csv +57 -0
- package/assets/data/stacks/flutter.csv +53 -0
- package/assets/data/stacks/html-tailwind.csv +56 -0
- package/assets/data/stacks/javafx.csv +76 -0
- package/assets/data/stacks/jetpack-compose.csv +53 -0
- package/assets/data/stacks/laravel.csv +51 -0
- package/assets/data/stacks/nextjs.csv +53 -0
- package/assets/data/stacks/nuxt-ui.csv +71 -0
- package/assets/data/stacks/nuxtjs.csv +59 -0
- package/assets/data/stacks/react-native.csv +52 -0
- package/assets/data/stacks/react.csv +54 -0
- package/assets/data/stacks/shadcn.csv +61 -0
- package/assets/data/stacks/solidjs.csv +21 -0
- package/assets/data/stacks/svelte.csv +54 -0
- package/assets/data/stacks/swiftui.csv +51 -0
- package/assets/data/stacks/threejs.csv +54 -0
- package/assets/data/stacks/uno.csv +60 -0
- package/assets/data/stacks/vue.csv +50 -0
- package/assets/data/stacks/winui.csv +60 -0
- package/assets/data/styles.csv +86 -0
- package/assets/data/typography.csv +75 -0
- package/assets/data/ui-reasoning.csv +162 -0
- package/assets/data/ux-guidelines.csv +100 -0
- package/assets/scripts/core.py +463 -0
- package/assets/scripts/design_system.py +1371 -0
- package/assets/scripts/search.py +162 -0
- package/assets/scripts/tests/test_core.py +134 -0
- package/assets/scripts/validate_data.py +114 -0
- package/assets/skills/banner-design/SKILL.md +196 -0
- package/assets/skills/banner-design/references/banner-sizes-and-styles.md +118 -0
- package/assets/skills/brand/SKILL.md +97 -0
- package/assets/skills/brand/references/approval-checklist.md +169 -0
- package/assets/skills/brand/references/asset-organization.md +157 -0
- package/assets/skills/brand/references/brand-guideline-template.md +140 -0
- package/assets/skills/brand/references/color-palette-management.md +186 -0
- package/assets/skills/brand/references/consistency-checklist.md +94 -0
- package/assets/skills/brand/references/logo-usage-rules.md +185 -0
- package/assets/skills/brand/references/messaging-framework.md +85 -0
- package/assets/skills/brand/references/typography-specifications.md +214 -0
- package/assets/skills/brand/references/update.md +118 -0
- package/assets/skills/brand/references/visual-identity.md +96 -0
- package/assets/skills/brand/references/voice-framework.md +88 -0
- package/assets/skills/brand/scripts/extract-colors.cjs +341 -0
- package/assets/skills/brand/scripts/inject-brand-context.cjs +349 -0
- package/assets/skills/brand/scripts/sync-brand-to-tokens.cjs +248 -0
- package/assets/skills/brand/scripts/tests/test_sync_brand_to_tokens.py +52 -0
- package/assets/skills/brand/scripts/validate-asset.cjs +387 -0
- package/assets/skills/brand/templates/brand-guidelines-starter.md +275 -0
- package/assets/skills/design/SKILL.md +313 -0
- package/assets/skills/design/data/cip/deliverables.csv +51 -0
- package/assets/skills/design/data/cip/industries.csv +21 -0
- package/assets/skills/design/data/cip/mockup-contexts.csv +21 -0
- package/assets/skills/design/data/cip/styles.csv +21 -0
- package/assets/skills/design/data/icon/styles.csv +16 -0
- package/assets/skills/design/data/logo/colors.csv +56 -0
- package/assets/skills/design/data/logo/industries.csv +56 -0
- package/assets/skills/design/data/logo/styles.csv +56 -0
- package/assets/skills/design/references/banner-sizes-and-styles.md +118 -0
- package/assets/skills/design/references/cip-deliverable-guide.md +95 -0
- package/assets/skills/design/references/cip-design.md +121 -0
- package/assets/skills/design/references/cip-prompt-engineering.md +84 -0
- package/assets/skills/design/references/cip-style-guide.md +68 -0
- package/assets/skills/design/references/design-routing.md +207 -0
- package/assets/skills/design/references/icon-design.md +122 -0
- package/assets/skills/design/references/logo-color-psychology.md +101 -0
- package/assets/skills/design/references/logo-design.md +92 -0
- package/assets/skills/design/references/logo-prompt-engineering.md +158 -0
- package/assets/skills/design/references/logo-style-guide.md +109 -0
- package/assets/skills/design/references/slides-copywriting-formulas.md +84 -0
- package/assets/skills/design/references/slides-create.md +4 -0
- package/assets/skills/design/references/slides-html-template.md +295 -0
- package/assets/skills/design/references/slides-layout-patterns.md +137 -0
- package/assets/skills/design/references/slides-strategies.md +94 -0
- package/assets/skills/design/references/slides.md +42 -0
- package/assets/skills/design/references/social-photos-design.md +329 -0
- package/assets/skills/design/scripts/cip/core.py +215 -0
- package/assets/skills/design/scripts/cip/generate.py +484 -0
- package/assets/skills/design/scripts/cip/render-html.py +424 -0
- package/assets/skills/design/scripts/cip/search.py +127 -0
- package/assets/skills/design/scripts/icon/generate.py +487 -0
- package/assets/skills/design/scripts/logo/core.py +175 -0
- package/assets/skills/design/scripts/logo/generate.py +362 -0
- package/assets/skills/design/scripts/logo/search.py +114 -0
- package/assets/skills/design-system/SKILL.md +244 -0
- package/assets/skills/design-system/data/slide-backgrounds.csv +11 -0
- package/assets/skills/design-system/data/slide-charts.csv +26 -0
- package/assets/skills/design-system/data/slide-color-logic.csv +14 -0
- package/assets/skills/design-system/data/slide-copy.csv +26 -0
- package/assets/skills/design-system/data/slide-layout-logic.csv +16 -0
- package/assets/skills/design-system/data/slide-layouts.csv +26 -0
- package/assets/skills/design-system/data/slide-strategies.csv +16 -0
- package/assets/skills/design-system/data/slide-typography.csv +15 -0
- package/assets/skills/design-system/references/component-specs.md +236 -0
- package/assets/skills/design-system/references/component-tokens.md +214 -0
- package/assets/skills/design-system/references/primitive-tokens.md +203 -0
- package/assets/skills/design-system/references/semantic-tokens.md +215 -0
- package/assets/skills/design-system/references/states-and-variants.md +241 -0
- package/assets/skills/design-system/references/tailwind-integration.md +251 -0
- package/assets/skills/design-system/references/token-architecture.md +224 -0
- package/assets/skills/design-system/scripts/embed-tokens.cjs +99 -0
- package/assets/skills/design-system/scripts/fetch-background.py +317 -0
- package/assets/skills/design-system/scripts/generate-slide.py +770 -0
- package/assets/skills/design-system/scripts/generate-tokens.cjs +205 -0
- package/assets/skills/design-system/scripts/html-token-validator.py +327 -0
- package/assets/skills/design-system/scripts/search-slides.py +218 -0
- package/assets/skills/design-system/scripts/slide-token-validator.py +35 -0
- package/assets/skills/design-system/scripts/slide_search_core.py +453 -0
- package/assets/skills/design-system/scripts/tests/test_validate_tokens.py +48 -0
- package/assets/skills/design-system/scripts/validate-tokens.cjs +246 -0
- package/assets/skills/design-system/templates/design-tokens-starter.json +143 -0
- package/assets/skills/slides/SKILL.md +40 -0
- package/assets/skills/slides/references/copywriting-formulas.md +84 -0
- package/assets/skills/slides/references/create.md +4 -0
- package/assets/skills/slides/references/html-template.md +295 -0
- package/assets/skills/slides/references/layout-patterns.md +137 -0
- package/assets/skills/slides/references/slide-strategies.md +94 -0
- package/assets/skills/ui-styling/LICENSE.txt +202 -0
- package/assets/skills/ui-styling/SKILL.md +324 -0
- package/assets/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/assets/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/assets/skills/ui-styling/references/shadcn-components.md +424 -0
- package/assets/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/assets/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/assets/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/assets/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/assets/skills/ui-styling/scripts/requirements.txt +17 -0
- package/assets/skills/ui-styling/scripts/shadcn_add.py +308 -0
- package/assets/skills/ui-styling/scripts/tailwind_config_gen.py +473 -0
- package/assets/skills/ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/assets/skills/ui-styling/scripts/tests/requirements.txt +3 -0
- package/assets/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/assets/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +394 -0
- package/assets/templates/base/quick-reference.md +297 -0
- package/assets/templates/base/skill-content.md +384 -0
- package/assets/templates/platforms/agent.json +21 -0
- package/assets/templates/platforms/augment.json +18 -0
- package/assets/templates/platforms/claude.json +21 -0
- package/assets/templates/platforms/codebuddy.json +21 -0
- package/assets/templates/platforms/codewhale.json +21 -0
- package/assets/templates/platforms/codex.json +21 -0
- package/assets/templates/platforms/continue.json +21 -0
- package/assets/templates/platforms/copilot.json +21 -0
- package/assets/templates/platforms/cursor.json +21 -0
- package/assets/templates/platforms/droid.json +21 -0
- package/assets/templates/platforms/gemini.json +21 -0
- package/assets/templates/platforms/kilocode.json +21 -0
- package/assets/templates/platforms/kiro.json +21 -0
- package/assets/templates/platforms/opencode.json +21 -0
- package/assets/templates/platforms/qoder.json +21 -0
- package/assets/templates/platforms/roocode.json +21 -0
- package/assets/templates/platforms/trae.json +21 -0
- package/assets/templates/platforms/warp.json +18 -0
- package/assets/templates/platforms/windsurf.json +21 -0
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/init.js +165 -0
- package/dist/commands/uninstall.d.ts +7 -0
- package/dist/commands/uninstall.js +131 -0
- package/dist/commands/update.d.ts +7 -0
- package/dist/commands/update.js +73 -0
- package/dist/commands/versions.d.ts +5 -0
- package/dist/commands/versions.js +36 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +78 -0
- package/dist/types/index.d.ts +40 -0
- package/dist/types/index.js +25 -0
- package/dist/utils/detect.d.ts +8 -0
- package/dist/utils/detect.js +115 -0
- package/dist/utils/extract.d.ts +15 -0
- package/dist/utils/extract.js +125 -0
- package/dist/utils/github.d.ts +12 -0
- package/dist/utils/github.js +97 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.js +9 -0
- package/dist/utils/template.d.ts +50 -0
- package/dist/utils/template.js +249 -0
- package/package.json +65 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# Typography Specifications
|
|
2
|
+
|
|
3
|
+
Guidelines for defining and implementing brand typography.
|
|
4
|
+
|
|
5
|
+
## Font Stack Structure
|
|
6
|
+
|
|
7
|
+
### Primary Fonts
|
|
8
|
+
```css
|
|
9
|
+
/* Headings - Display font for impact */
|
|
10
|
+
--font-heading: 'Inter', system-ui, -apple-system, sans-serif;
|
|
11
|
+
|
|
12
|
+
/* Body - Readable for long-form content */
|
|
13
|
+
--font-body: 'Inter', system-ui, -apple-system, sans-serif;
|
|
14
|
+
|
|
15
|
+
/* Monospace - Code, technical content */
|
|
16
|
+
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Font Loading
|
|
20
|
+
```html
|
|
21
|
+
<!-- Google Fonts (recommended) -->
|
|
22
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
23
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Type Scale
|
|
27
|
+
|
|
28
|
+
### Base System
|
|
29
|
+
- Base size: 16px (1rem)
|
|
30
|
+
- Scale ratio: 1.25 (Major Third)
|
|
31
|
+
|
|
32
|
+
### Scale Definition
|
|
33
|
+
| Element | Size (rem) | Size (px) | Weight | Line Height |
|
|
34
|
+
|---------|------------|-----------|--------|-------------|
|
|
35
|
+
| Display | 3.815rem | 61px | 700 | 1.1 |
|
|
36
|
+
| H1 | 3.052rem | 49px | 700 | 1.2 |
|
|
37
|
+
| H2 | 2.441rem | 39px | 600 | 1.25 |
|
|
38
|
+
| H3 | 1.953rem | 31px | 600 | 1.3 |
|
|
39
|
+
| H4 | 1.563rem | 25px | 600 | 1.35 |
|
|
40
|
+
| H5 | 1.25rem | 20px | 600 | 1.4 |
|
|
41
|
+
| Body Large | 1.125rem | 18px | 400 | 1.6 |
|
|
42
|
+
| Body | 1rem | 16px | 400 | 1.5 |
|
|
43
|
+
| Small | 0.875rem | 14px | 400 | 1.5 |
|
|
44
|
+
| Caption | 0.75rem | 12px | 400 | 1.4 |
|
|
45
|
+
|
|
46
|
+
### Responsive Adjustments
|
|
47
|
+
```css
|
|
48
|
+
/* Mobile (< 768px) */
|
|
49
|
+
h1 { font-size: 2rem; } /* 32px */
|
|
50
|
+
h2 { font-size: 1.5rem; } /* 24px */
|
|
51
|
+
h3 { font-size: 1.25rem; } /* 20px */
|
|
52
|
+
body { font-size: 1rem; } /* 16px */
|
|
53
|
+
|
|
54
|
+
/* Desktop (>= 768px) */
|
|
55
|
+
h1 { font-size: 3rem; } /* 48px */
|
|
56
|
+
h2 { font-size: 2.25rem; } /* 36px */
|
|
57
|
+
h3 { font-size: 1.75rem; } /* 28px */
|
|
58
|
+
body { font-size: 1rem; } /* 16px */
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Font Weights
|
|
62
|
+
|
|
63
|
+
### Weight Scale
|
|
64
|
+
| Name | Value | Usage |
|
|
65
|
+
|------|-------|-------|
|
|
66
|
+
| Regular | 400 | Body text, paragraphs |
|
|
67
|
+
| Medium | 500 | Buttons, nav items |
|
|
68
|
+
| Semibold | 600 | Subheadings, emphasis |
|
|
69
|
+
| Bold | 700 | Headings, CTAs |
|
|
70
|
+
|
|
71
|
+
### Weight Pairing
|
|
72
|
+
- Headings: 600-700
|
|
73
|
+
- Body: 400
|
|
74
|
+
- Links: 500
|
|
75
|
+
- Buttons: 600
|
|
76
|
+
|
|
77
|
+
## Line Height Guidelines
|
|
78
|
+
|
|
79
|
+
### Rules
|
|
80
|
+
| Content Type | Line Height | Notes |
|
|
81
|
+
|--------------|-------------|-------|
|
|
82
|
+
| Headings | 1.1-1.3 | Tighter for visual impact |
|
|
83
|
+
| Body text | 1.5-1.6 | Optimal readability |
|
|
84
|
+
| Small text | 1.4-1.5 | Slightly tighter |
|
|
85
|
+
| Long-form | 1.6-1.75 | Extra comfortable |
|
|
86
|
+
|
|
87
|
+
## Letter Spacing
|
|
88
|
+
|
|
89
|
+
### Guidelines
|
|
90
|
+
| Element | Tracking | Value |
|
|
91
|
+
|---------|----------|-------|
|
|
92
|
+
| Display | Tighter | -0.02em |
|
|
93
|
+
| Headings | Normal | 0 |
|
|
94
|
+
| Body | Normal | 0 |
|
|
95
|
+
| All caps | Wider | 0.05em |
|
|
96
|
+
| Small caps | Wider | 0.1em |
|
|
97
|
+
|
|
98
|
+
## Paragraph Spacing
|
|
99
|
+
|
|
100
|
+
### Margins
|
|
101
|
+
```css
|
|
102
|
+
/* Heading spacing */
|
|
103
|
+
h1, h2 { margin-top: 2rem; margin-bottom: 1rem; }
|
|
104
|
+
h3, h4 { margin-top: 1.5rem; margin-bottom: 0.75rem; }
|
|
105
|
+
|
|
106
|
+
/* Paragraph spacing */
|
|
107
|
+
p { margin-bottom: 1rem; }
|
|
108
|
+
p + p { margin-top: 0; }
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Maximum Line Length
|
|
112
|
+
- Body text: 65-75 characters (optimal)
|
|
113
|
+
- Headings: Can be wider
|
|
114
|
+
- Code blocks: 80-100 characters
|
|
115
|
+
|
|
116
|
+
```css
|
|
117
|
+
.prose {
|
|
118
|
+
max-width: 65ch;
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## CSS Implementation
|
|
123
|
+
|
|
124
|
+
### Full Variables
|
|
125
|
+
```css
|
|
126
|
+
:root {
|
|
127
|
+
/* Font Families */
|
|
128
|
+
--font-heading: 'Inter', system-ui, sans-serif;
|
|
129
|
+
--font-body: 'Inter', system-ui, sans-serif;
|
|
130
|
+
--font-mono: 'JetBrains Mono', monospace;
|
|
131
|
+
|
|
132
|
+
/* Font Sizes */
|
|
133
|
+
--text-xs: 0.75rem;
|
|
134
|
+
--text-sm: 0.875rem;
|
|
135
|
+
--text-base: 1rem;
|
|
136
|
+
--text-lg: 1.125rem;
|
|
137
|
+
--text-xl: 1.25rem;
|
|
138
|
+
--text-2xl: 1.5rem;
|
|
139
|
+
--text-3xl: 1.875rem;
|
|
140
|
+
--text-4xl: 2.25rem;
|
|
141
|
+
--text-5xl: 3rem;
|
|
142
|
+
|
|
143
|
+
/* Font Weights */
|
|
144
|
+
--font-normal: 400;
|
|
145
|
+
--font-medium: 500;
|
|
146
|
+
--font-semibold: 600;
|
|
147
|
+
--font-bold: 700;
|
|
148
|
+
|
|
149
|
+
/* Line Heights */
|
|
150
|
+
--leading-none: 1;
|
|
151
|
+
--leading-tight: 1.25;
|
|
152
|
+
--leading-snug: 1.375;
|
|
153
|
+
--leading-normal: 1.5;
|
|
154
|
+
--leading-relaxed: 1.625;
|
|
155
|
+
--leading-loose: 2;
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Tailwind Config
|
|
160
|
+
```javascript
|
|
161
|
+
theme: {
|
|
162
|
+
fontFamily: {
|
|
163
|
+
heading: ['Inter', 'system-ui', 'sans-serif'],
|
|
164
|
+
body: ['Inter', 'system-ui', 'sans-serif'],
|
|
165
|
+
mono: ['JetBrains Mono', 'monospace'],
|
|
166
|
+
},
|
|
167
|
+
fontSize: {
|
|
168
|
+
xs: ['0.75rem', { lineHeight: '1rem' }],
|
|
169
|
+
sm: ['0.875rem', { lineHeight: '1.25rem' }],
|
|
170
|
+
base: ['1rem', { lineHeight: '1.5rem' }],
|
|
171
|
+
lg: ['1.125rem', { lineHeight: '1.75rem' }],
|
|
172
|
+
xl: ['1.25rem', { lineHeight: '1.75rem' }],
|
|
173
|
+
'2xl': ['1.5rem', { lineHeight: '2rem' }],
|
|
174
|
+
'3xl': ['1.875rem', { lineHeight: '2.25rem' }],
|
|
175
|
+
'4xl': ['2.25rem', { lineHeight: '2.5rem' }],
|
|
176
|
+
'5xl': ['3rem', { lineHeight: '1.1' }],
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Common Font Pairings
|
|
182
|
+
|
|
183
|
+
### Clean & Modern
|
|
184
|
+
- Heading: Inter
|
|
185
|
+
- Body: Inter
|
|
186
|
+
|
|
187
|
+
### Professional
|
|
188
|
+
- Heading: Playfair Display
|
|
189
|
+
- Body: Source Sans Pro
|
|
190
|
+
|
|
191
|
+
### Startup/Tech
|
|
192
|
+
- Heading: Poppins
|
|
193
|
+
- Body: Open Sans
|
|
194
|
+
|
|
195
|
+
### Editorial
|
|
196
|
+
- Heading: Merriweather
|
|
197
|
+
- Body: Lato
|
|
198
|
+
|
|
199
|
+
## Accessibility
|
|
200
|
+
|
|
201
|
+
### Minimum Sizes
|
|
202
|
+
- Body text: 16px minimum
|
|
203
|
+
- Small text: 14px minimum, not for long content
|
|
204
|
+
- Caption: 12px minimum, use sparingly
|
|
205
|
+
|
|
206
|
+
### Contrast Requirements
|
|
207
|
+
- Text on background: 4.5:1 minimum (AA)
|
|
208
|
+
- Large text (18px+): 3:1 minimum
|
|
209
|
+
|
|
210
|
+
### Best Practices
|
|
211
|
+
- Don't use all caps for long text
|
|
212
|
+
- Avoid justified text (use left-align)
|
|
213
|
+
- Ensure adequate line spacing
|
|
214
|
+
- Don't use thin weights (<400) at small sizes
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Update brand colors, typography, and style - automatically syncs to all design system files.
|
|
2
|
+
|
|
3
|
+
<args>$ARGUMENTS</args>
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This command systematically updates:
|
|
8
|
+
1. `docs/brand-guidelines.md` - Human-readable brand doc
|
|
9
|
+
2. `assets/design-tokens.json` - Token source of truth
|
|
10
|
+
3. `assets/design-tokens.css` - Generated CSS variables
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
### Step 1: Gather Brand Input
|
|
15
|
+
|
|
16
|
+
Use `AskUserQuestion` to collect:
|
|
17
|
+
|
|
18
|
+
**Theme Selection:**
|
|
19
|
+
- Theme name (e.g., "Ocean Professional", "Electric Creative", "Forest Calm")
|
|
20
|
+
|
|
21
|
+
**Primary Color:**
|
|
22
|
+
- Color name (e.g., "Ocean Blue", "Coral", "Forest Green")
|
|
23
|
+
- Hex code (e.g., #3B82F6)
|
|
24
|
+
|
|
25
|
+
**Secondary Color:**
|
|
26
|
+
- Color name (e.g., "Golden Amber", "Electric Purple")
|
|
27
|
+
- Hex code
|
|
28
|
+
|
|
29
|
+
**Accent Color:**
|
|
30
|
+
- Color name (e.g., "Emerald", "Neon Mint")
|
|
31
|
+
- Hex code
|
|
32
|
+
|
|
33
|
+
**Brand Mood (for AI image generation):**
|
|
34
|
+
- Mood keywords (e.g., "professional, trustworthy, premium" or "bold, creative, energetic")
|
|
35
|
+
|
|
36
|
+
### Step 2: Update Brand Guidelines
|
|
37
|
+
|
|
38
|
+
Edit `docs/brand-guidelines.md`:
|
|
39
|
+
|
|
40
|
+
1. **Quick Reference table** - Update color names and hex codes
|
|
41
|
+
2. **Brand Concept section** - Update theme name and description
|
|
42
|
+
3. **Color Palette section** - Update Primary, Secondary, Accent colors with shades
|
|
43
|
+
4. **AI Image Generation section** - Update base prompt, keywords, mood descriptors
|
|
44
|
+
|
|
45
|
+
### Step 3: Sync to Design Tokens
|
|
46
|
+
|
|
47
|
+
Run the sync script:
|
|
48
|
+
```bash
|
|
49
|
+
node .claude/skills/brand/scripts/sync-brand-to-tokens.cjs
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This will:
|
|
53
|
+
- Update `assets/design-tokens.json` with new color names and values
|
|
54
|
+
- Regenerate `assets/design-tokens.css` with correct CSS variables
|
|
55
|
+
|
|
56
|
+
### Step 4: Verify Sync
|
|
57
|
+
|
|
58
|
+
Confirm all files are updated:
|
|
59
|
+
```bash
|
|
60
|
+
# Check brand context extraction
|
|
61
|
+
node .claude/skills/brand/scripts/inject-brand-context.cjs --json | head -30
|
|
62
|
+
|
|
63
|
+
# Check CSS variables
|
|
64
|
+
grep "primary" assets/design-tokens.css | head -5
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 5: Report
|
|
68
|
+
|
|
69
|
+
Output summary:
|
|
70
|
+
- Theme: [name]
|
|
71
|
+
- Primary: [name] ([hex])
|
|
72
|
+
- Secondary: [name] ([hex])
|
|
73
|
+
- Accent: [name] ([hex])
|
|
74
|
+
- Files updated: brand-guidelines.md, design-tokens.json, design-tokens.css
|
|
75
|
+
|
|
76
|
+
## Files Modified
|
|
77
|
+
|
|
78
|
+
| File | Purpose |
|
|
79
|
+
|------|---------|
|
|
80
|
+
| `docs/brand-guidelines.md` | Human-readable brand documentation |
|
|
81
|
+
| `assets/design-tokens.json` | Token definitions (primitive→semantic→component) |
|
|
82
|
+
| `assets/design-tokens.css` | CSS variables for UI components |
|
|
83
|
+
|
|
84
|
+
## Skills Used
|
|
85
|
+
|
|
86
|
+
- `brand` - Brand context extraction and sync
|
|
87
|
+
- `design-system` - Token generation
|
|
88
|
+
|
|
89
|
+
## Examples
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Interactive mode
|
|
93
|
+
/brand:update
|
|
94
|
+
|
|
95
|
+
# With theme hint
|
|
96
|
+
/brand:update "Ocean Professional"
|
|
97
|
+
|
|
98
|
+
# Quick preset
|
|
99
|
+
/brand:update "midnight purple"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Color Presets
|
|
103
|
+
|
|
104
|
+
If user specifies a preset name, use these defaults:
|
|
105
|
+
|
|
106
|
+
| Preset | Primary | Secondary | Accent |
|
|
107
|
+
|--------|---------|-----------|--------|
|
|
108
|
+
| ocean-professional | #3B82F6 Ocean Blue | #F59E0B Golden Amber | #10B981 Emerald |
|
|
109
|
+
| electric-creative | #FF6B6B Coral | #9B5DE5 Electric Purple | #00F5D4 Neon Mint |
|
|
110
|
+
| forest-calm | #059669 Forest Green | #92400E Warm Brown | #FBBF24 Sunlight |
|
|
111
|
+
| midnight-purple | #7C3AED Violet | #EC4899 Pink | #06B6D4 Cyan |
|
|
112
|
+
| sunset-warm | #F97316 Orange | #DC2626 Red | #FACC15 Yellow |
|
|
113
|
+
|
|
114
|
+
## Important
|
|
115
|
+
|
|
116
|
+
- **Always sync all three files** - Never update just brand-guidelines.md alone
|
|
117
|
+
- **Verify extraction** - Run inject-brand-context.cjs after update to confirm
|
|
118
|
+
- **Test image generation** - Optionally generate a test image to verify brand application
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Visual Identity Basics
|
|
2
|
+
|
|
3
|
+
## Core Visual Elements
|
|
4
|
+
|
|
5
|
+
### Logo
|
|
6
|
+
- **Primary:** Full logo (horizontal/stacked)
|
|
7
|
+
- **Secondary:** Abbreviated version
|
|
8
|
+
- **Icon/Mark:** Symbol only
|
|
9
|
+
- **Clear space:** Minimum padding around logo
|
|
10
|
+
- **Minimum size:** Smallest readable size
|
|
11
|
+
|
|
12
|
+
### Color Palette
|
|
13
|
+
```
|
|
14
|
+
Primary Colors (1-2)
|
|
15
|
+
├── Main brand color
|
|
16
|
+
└── Supporting primary
|
|
17
|
+
|
|
18
|
+
Secondary Colors (2-3)
|
|
19
|
+
├── Accent colors
|
|
20
|
+
└── Supporting visuals
|
|
21
|
+
|
|
22
|
+
Neutrals (3-4)
|
|
23
|
+
├── Text colors
|
|
24
|
+
├── Background colors
|
|
25
|
+
└── UI elements
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Typography
|
|
29
|
+
| Usage | Font | Weight | Size |
|
|
30
|
+
|-------|------|--------|------|
|
|
31
|
+
| H1 | [Font] | Bold | 32-48px |
|
|
32
|
+
| H2 | [Font] | Semibold | 24-32px |
|
|
33
|
+
| Body | [Font] | Regular | 16-18px |
|
|
34
|
+
| Caption | [Font] | Regular | 12-14px |
|
|
35
|
+
|
|
36
|
+
## Visual Guidelines Template
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
## Logo Usage
|
|
40
|
+
|
|
41
|
+
### Correct Usage
|
|
42
|
+
- [Guidelines for proper logo use]
|
|
43
|
+
|
|
44
|
+
### Incorrect Usage
|
|
45
|
+
- Don't stretch or distort
|
|
46
|
+
- Don't change colors (unless approved)
|
|
47
|
+
- Don't add effects
|
|
48
|
+
- Don't place on busy backgrounds
|
|
49
|
+
|
|
50
|
+
## Color Specifications
|
|
51
|
+
|
|
52
|
+
### Primary Palette
|
|
53
|
+
| Color | Hex | RGB | Usage |
|
|
54
|
+
|-------|-----|-----|-------|
|
|
55
|
+
| [Name] | #XXXXXX | r,g,b | [Where to use] |
|
|
56
|
+
|
|
57
|
+
### Accessibility
|
|
58
|
+
- Text contrast ratio: 4.5:1 minimum
|
|
59
|
+
- Button contrast: WCAG AA compliant
|
|
60
|
+
|
|
61
|
+
## Imagery Style
|
|
62
|
+
|
|
63
|
+
### Photography
|
|
64
|
+
- [Lighting preferences]
|
|
65
|
+
- [Subject guidelines]
|
|
66
|
+
- [Composition rules]
|
|
67
|
+
- [Editing style]
|
|
68
|
+
|
|
69
|
+
### Illustrations
|
|
70
|
+
- [Style description]
|
|
71
|
+
- [Color usage]
|
|
72
|
+
- [Complexity level]
|
|
73
|
+
|
|
74
|
+
### Icons
|
|
75
|
+
- [Style: outlined/filled/duotone]
|
|
76
|
+
- [Stroke weight]
|
|
77
|
+
- [Corner radius]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Quick Checks
|
|
81
|
+
|
|
82
|
+
### Logo
|
|
83
|
+
- [ ] Correct version for context
|
|
84
|
+
- [ ] Sufficient clear space
|
|
85
|
+
- [ ] Legible at size used
|
|
86
|
+
- [ ] Correct color for background
|
|
87
|
+
|
|
88
|
+
### Colors
|
|
89
|
+
- [ ] From approved palette
|
|
90
|
+
- [ ] Accessible contrast
|
|
91
|
+
- [ ] Consistent across materials
|
|
92
|
+
|
|
93
|
+
### Typography
|
|
94
|
+
- [ ] Correct fonts
|
|
95
|
+
- [ ] Appropriate hierarchy
|
|
96
|
+
- [ ] Readable size
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Brand Voice Framework
|
|
2
|
+
|
|
3
|
+
## Voice vs. Tone
|
|
4
|
+
|
|
5
|
+
**Voice** = Brand's personality (consistent)
|
|
6
|
+
**Tone** = How voice adapts to context (variable)
|
|
7
|
+
|
|
8
|
+
Example: A friendly brand (voice) might be celebratory in a win announcement but empathetic in a support response (tone).
|
|
9
|
+
|
|
10
|
+
## Voice Dimensions
|
|
11
|
+
|
|
12
|
+
### Tone Spectrum
|
|
13
|
+
```
|
|
14
|
+
Formal ←――――――――――――――→ Casual
|
|
15
|
+
[Legal docs] [Social media]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Language Spectrum
|
|
19
|
+
```
|
|
20
|
+
Simple ←――――――――――――――→ Complex
|
|
21
|
+
[Consumer] [Technical B2B]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Character Spectrum
|
|
25
|
+
```
|
|
26
|
+
Serious ←――――――――――――――→ Playful
|
|
27
|
+
[Finance] [Entertainment]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Emotion Spectrum
|
|
31
|
+
```
|
|
32
|
+
Reserved ←――――――――――――――→ Expressive
|
|
33
|
+
[Corporate] [Lifestyle brand]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Voice Development Process
|
|
37
|
+
|
|
38
|
+
### Step 1: Define Personality Traits
|
|
39
|
+
Choose 3-5 traits that describe your brand:
|
|
40
|
+
- Confident, not arrogant
|
|
41
|
+
- Friendly, not unprofessional
|
|
42
|
+
- Knowledgeable, not condescending
|
|
43
|
+
- Innovative, not gimmicky
|
|
44
|
+
- Authentic, not casual
|
|
45
|
+
|
|
46
|
+
### Step 2: Create Voice Chart
|
|
47
|
+
|
|
48
|
+
| Trait | Description | Do | Don't |
|
|
49
|
+
|-------|-------------|-----|-------|
|
|
50
|
+
| [Trait] | [Meaning] | [Example] | [Example] |
|
|
51
|
+
|
|
52
|
+
### Step 3: Context Adaptation
|
|
53
|
+
|
|
54
|
+
| Context | Tone Shift | Example |
|
|
55
|
+
|---------|------------|---------|
|
|
56
|
+
| Social media | More casual | "Hey there!" |
|
|
57
|
+
| Support | More empathetic | "We understand..." |
|
|
58
|
+
| Legal | More formal | "In accordance with..." |
|
|
59
|
+
| Sales | More confident | "You'll see results..." |
|
|
60
|
+
|
|
61
|
+
## Voice Testing
|
|
62
|
+
|
|
63
|
+
Ask these questions:
|
|
64
|
+
1. Does this sound like our brand?
|
|
65
|
+
2. Would a competitor say this?
|
|
66
|
+
3. Does it resonate with our audience?
|
|
67
|
+
4. Is it consistent with our values?
|
|
68
|
+
|
|
69
|
+
## Voice Guide Template
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
## [Brand] Voice Guide
|
|
73
|
+
|
|
74
|
+
### We Are
|
|
75
|
+
- [Trait 1]: [Description]
|
|
76
|
+
- [Trait 2]: [Description]
|
|
77
|
+
- [Trait 3]: [Description]
|
|
78
|
+
|
|
79
|
+
### We Sound Like
|
|
80
|
+
[Example phrases]
|
|
81
|
+
|
|
82
|
+
### We Don't Sound Like
|
|
83
|
+
[Anti-examples]
|
|
84
|
+
|
|
85
|
+
### Sample Rewrites
|
|
86
|
+
Before: [Generic copy]
|
|
87
|
+
After: [Branded copy]
|
|
88
|
+
```
|