create-specfuse 0.3.1 → 0.4.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.
Files changed (40) hide show
  1. package/dist/design-md/templates/_schema.yaml +75 -10
  2. package/dist/design-md/templates/consumer-media.yaml +33 -24
  3. package/dist/design-md/templates/consumer-social.yaml +37 -28
  4. package/dist/design-md/templates/content-blog.yaml +35 -26
  5. package/dist/design-md/templates/content-docs.yaml +34 -24
  6. package/dist/design-md/templates/dashboard-analytics.yaml +33 -24
  7. package/dist/design-md/templates/dashboard-monitoring.yaml +33 -24
  8. package/dist/design-md/templates/developer-portal.yaml +37 -26
  9. package/dist/design-md/templates/e-commerce.yaml +38 -28
  10. package/dist/design-md/templates/enterprise-admin.yaml +44 -0
  11. package/dist/design-md/templates/form-heavy.yaml +36 -26
  12. package/dist/design-md/templates/internal-tool.yaml +33 -24
  13. package/dist/design-md/templates/marketing-corporate.yaml +36 -27
  14. package/dist/design-md/templates/marketing-creative.yaml +34 -25
  15. package/dist/design-md/templates/mobile-lifestyle.yaml +35 -26
  16. package/dist/design-md/templates/mobile-utility.yaml +36 -26
  17. package/dist/design-md/templates/saas-dashboard.yaml +33 -24
  18. package/dist/scaffolder.d.ts.map +1 -1
  19. package/dist/scaffolder.js +11 -2
  20. package/dist/scaffolder.js.map +1 -1
  21. package/dist/templates/design-md-skill.d.ts.map +1 -1
  22. package/dist/templates/design-md-skill.js +225 -14
  23. package/dist/templates/design-md-skill.js.map +1 -1
  24. package/package.json +2 -2
  25. package/dist/design-md/templates/templates/_schema.yaml +0 -71
  26. package/dist/design-md/templates/templates/consumer-media.yaml +0 -34
  27. package/dist/design-md/templates/templates/consumer-social.yaml +0 -34
  28. package/dist/design-md/templates/templates/content-blog.yaml +0 -34
  29. package/dist/design-md/templates/templates/content-docs.yaml +0 -34
  30. package/dist/design-md/templates/templates/dashboard-analytics.yaml +0 -34
  31. package/dist/design-md/templates/templates/dashboard-monitoring.yaml +0 -34
  32. package/dist/design-md/templates/templates/developer-portal.yaml +0 -33
  33. package/dist/design-md/templates/templates/e-commerce.yaml +0 -34
  34. package/dist/design-md/templates/templates/form-heavy.yaml +0 -34
  35. package/dist/design-md/templates/templates/internal-tool.yaml +0 -34
  36. package/dist/design-md/templates/templates/marketing-corporate.yaml +0 -34
  37. package/dist/design-md/templates/templates/marketing-creative.yaml +0 -34
  38. package/dist/design-md/templates/templates/mobile-lifestyle.yaml +0 -34
  39. package/dist/design-md/templates/templates/mobile-utility.yaml +0 -33
  40. package/dist/design-md/templates/templates/saas-dashboard.yaml +0 -34
@@ -4,29 +4,240 @@ name: design-md
4
4
  description: Generate a DESIGN.md file for the current project via interactive questionnaire and archetype matching. Use for brownfield projects that need design tokens.
5
5
  ---
6
6
 
7
- Generate a \`DESIGN.md\` file in the current working directory.
7
+ # DESIGN.md Generation Skill
8
8
 
9
- **Trigger:** User invokes \`/design-md\` manually in a brownfield project.
9
+ Generate a comprehensive \`DESIGN.md\` design token document for the current project.
10
10
 
11
- **What it does:**
11
+ **Trigger:** User invokes \`/design-md\` manually, or auto-triggered after \`specfuse init\` for frontend projects.
12
12
 
13
- 1. Runs a 5-question interactive questionnaire (product type, audience, mood, density, reference)
14
- 2. Derives a dimension vector from answers
15
- 3. Matches against 15 design archetypes using weighted Euclidean distance + category bonus
16
- 4. Presents the best match for confirmation
17
- 5. Optionally allows fine-tuning individual dimensions (1-5 scale)
18
- 6. Renders DESIGN.md with YAML front matter (design tokens) + Markdown rationale
13
+ ---
14
+
15
+ ## §1 Questionnaire
16
+
17
+ Ask the user exactly 5 questions, one at a time. Each answer maps to one or more dimension axes (colorTemp, lightness, density, borderRadius, tone) on a 1-5 scale.
18
+
19
+ ### Q1: Product Category
20
+
21
+ "What type of product is this?"
22
+
23
+ Options:
24
+ - A) Internal tool / Admin panel → category: internal-tool, density +2
25
+ - B) Dashboard / Analytics → category: dashboard, density +1, lightness -1
26
+ - C) Consumer app (social/media) → category: consumer, tone +2
27
+ - D) Developer tool / API portal → category: developer, colorTemp -1
28
+ - E) Mobile app → category: mobile, borderRadius +1
29
+ - F) E-commerce / Marketplace → category: e-commerce, tone +1
30
+ - G) Marketing / Landing page → category: marketing, density -2, lightness +1
31
+ - H) Form-heavy / Workflow → category: form-heavy, density +1
32
+ - I) Content / Blog / Docs → category: content, lightness +1, density -1
33
+
34
+ Mapping: Sets the \`category\` field and adjusts relevant dimensions from baseline 3.
35
+
36
+ ### Q2: Visual Temperature
37
+
38
+ "How warm or cool should the palette feel?"
39
+
40
+ Options:
41
+ - A) Very cool (blues, blue-greys) → colorTemp: 1
42
+ - B) Cool-neutral → colorTemp: 2
43
+ - C) Balanced / Neutral → colorTemp: 3
44
+ - D) Warm-neutral → colorTemp: 4
45
+ - E) Very warm (ambers, warm greys) → colorTemp: 5
46
+
47
+ Mapping: Directly sets \`colorTemp\` dimension.
48
+
49
+ ### Q3: Interface Density
50
+
51
+ "How information-dense should the interface be?"
52
+
53
+ Options:
54
+ - A) Maximum density (monitoring dashboards, trading) → density: 1
55
+ - B) High density (admin panels, data tables) → density: 2
56
+ - C) Balanced (standard SaaS) → density: 3
57
+ - D) Spacious (consumer apps, marketing) → density: 4
58
+ - E) Very spacious (luxury, editorial) → density: 5
59
+
60
+ Mapping: Directly sets \`density\` dimension.
61
+
62
+ ### Q4: Shape Language
63
+
64
+ "What shape personality fits your brand?"
19
65
 
20
- **Usage:**
66
+ Options:
67
+ - A) Sharp / Angular (technical, serious) → borderRadius: 1
68
+ - B) Slightly rounded (professional) → borderRadius: 2
69
+ - C) Moderately rounded (friendly-professional) → borderRadius: 3
70
+ - D) Well-rounded (approachable, consumer) → borderRadius: 4
71
+ - E) Very rounded / Pill-shaped (playful) → borderRadius: 5
72
+
73
+ Mapping: Directly sets \`borderRadius\` dimension.
74
+
75
+ ### Q5: Brand Personality
76
+
77
+ "What tone should the design communicate?"
78
+
79
+ Options:
80
+ - A) Strictly functional (no personality) → tone: 1
81
+ - B) Professional and restrained → tone: 2
82
+ - C) Confident and polished → tone: 3
83
+ - D) Friendly and approachable → tone: 4
84
+ - E) Playful and expressive → tone: 5
85
+
86
+ Mapping: Directly sets \`tone\` dimension. Also influences \`lightness\`: tone 1-2 → lightness -1, tone 4-5 → lightness +1.
87
+
88
+ ---
89
+
90
+ ## §2 Matching Algorithm
91
+
92
+ After collecting answers, compute a 5-dimensional vector: \`[colorTemp, lightness, density, borderRadius, tone]\`.
93
+
94
+ **Weighted Euclidean distance** against all 16 archetype seed files:
21
95
 
22
96
  \`\`\`
23
- import { generateDesignMd } from 'specfuse/design-md';
24
- const result = await generateDesignMd(process.cwd());
97
+ distance(user, archetype) = sqrt(
98
+ w_colorTemp * (u.colorTemp - a.colorTemp)² +
99
+ w_lightness * (u.lightness - a.lightness)² +
100
+ w_density * (u.density - a.density)² +
101
+ w_borderRadius * (u.borderRadius - a.borderRadius)² +
102
+ w_tone * (u.tone - a.tone)²
103
+ )
25
104
  \`\`\`
26
105
 
27
- If \`DESIGN.md\` already exists, prompts for overwrite confirmation and creates a \`.bak\` backup.
106
+ Weights: \`colorTemp=1.0, lightness=1.0, density=1.5, borderRadius=0.8, tone=1.2\`
107
+
108
+ **Category bonus:** If the archetype's \`category\` matches the user's Q1 answer, subtract 1.5 from its distance score (floor at 0). This ensures category-appropriate archetypes rank higher.
109
+
110
+ Select the archetype with the lowest adjusted distance. Present it to the user for confirmation. Allow fine-tuning individual dimensions before final generation.
111
+
112
+ ---
113
+
114
+ ## §3 Token Derivation Rules
115
+
116
+ From the matched archetype's \`anchors\`, derive a complete design token system:
117
+
118
+ ### Colors (15+ semantic colors)
119
+
120
+ Starting from \`anchors.colors.primary\` and \`anchors.colors.auxiliary\`:
121
+ 1. Generate primary scale: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 (10 shades)
122
+ 2. Generate 2-3 auxiliary/accent scales (5 shades each from auxiliary anchors)
123
+ 3. Derive semantic colors: success, warning, error, info (from primary hue-shift)
124
+ 4. Neutral scale: 11 steps (white → black) calibrated to lightness dimension
125
+ 5. Surface colors: background, surface, elevated, overlay
126
+
127
+ Total: minimum 15+ semantic color tokens with named purposes.
128
+
129
+ ### Typography Scale
130
+
131
+ From \`anchors.typography.baseSize\` and \`anchors.typography.scale\`:
132
+ - Generate type scale using the modular ratio: xs, sm, base, md, lg, xl, 2xl, 3xl, 4xl
133
+ - Each step = previous × scale ratio
134
+ - Define font weights: regular (400), medium (500), semibold (600), bold (700)
135
+ - Define line heights: tight (1.2), normal (1.5), relaxed (1.75)
136
+
137
+ ### Spacing (6-level system)
138
+
139
+ From \`anchors.spacing.unit\`:
140
+ - Generate 6 named levels: xs, sm, md, lg, xl, 2xl
141
+ - Each level = unit × multiplier: 1×, 2×, 3×, 4×, 6×, 8×
142
+ - Example with 4px unit: 4, 8, 12, 16, 24, 32
143
+
144
+ ### Radius (6-level system)
145
+
146
+ From \`anchors.radius.base\`:
147
+ - Generate 6 named levels: none, sm, md, lg, xl, full
148
+ - Values: 0, base÷2, base, base×1.5, base×2, 9999px
149
+ - Example with 8px base: 0, 4, 8, 12, 16, 9999
150
+
151
+ ### Elevation
152
+
153
+ Derive 5 elevation levels based on density dimension:
154
+ - Level 0: none (flat)
155
+ - Level 1: subtle (small shadow for cards)
156
+ - Level 2: medium (dropdowns, popovers)
157
+ - Level 3: high (modals, dialogs)
158
+ - Level 4: highest (notifications, toasts)
159
+
160
+ Shadow intensity scales with density: high-density UIs use subtler shadows.
161
+
162
+ ### Component Tokens (8-10 groups)
163
+
164
+ From \`structure.componentTokens\`, define tokens for each component using cross-reference syntax:
165
+
166
+ \`\`\`yaml
167
+ button:
168
+ padding: "{spacing.sm} {spacing.md}"
169
+ borderRadius: "{radius.md}"
170
+ fontSize: "{typography.sm}"
171
+ primary:
172
+ background: "{colors.primary.500}"
173
+ text: "{colors.white}"
174
+ secondary:
175
+ background: "{colors.neutral.100}"
176
+ text: "{colors.neutral.800}"
177
+ \`\`\`
178
+
179
+ Cross-reference format: \`"{category.token}"\` where category is one of colors, typography, spacing, radius, elevation.
180
+
181
+ ---
182
+
183
+ ## §4 Output Format
184
+
185
+ Generate \`DESIGN.md\` with two parts:
186
+
187
+ ### YAML Front Matter
188
+
189
+ \`\`\`markdown
190
+ ---
191
+ designSystem:
192
+ name: "<project name> Design System"
193
+ version: "1.0.0"
194
+ archetype: "<matched archetype id>"
195
+ generatedAt: "<ISO date>"
196
+ tokens:
197
+ colors:
198
+ primary: { ... full scale ... }
199
+ auxiliary: { ... }
200
+ semantic: { success, warning, error, info }
201
+ neutral: { ... 11 steps ... }
202
+ typography:
203
+ scale: { xs, sm, base, md, lg, xl, 2xl, 3xl, 4xl }
204
+ weights: { regular, medium, semibold, bold }
205
+ lineHeights: { tight, normal, relaxed }
206
+ spacing: { xs, sm, md, lg, xl, 2xl }
207
+ radius: { none, sm, md, lg, xl, full }
208
+ elevation: { 0, 1, 2, 3, 4 }
209
+ components: { ... 8-10 component token groups ... }
210
+ ---
211
+ \`\`\`
212
+
213
+ ### Markdown Body structure
214
+
215
+ The Markdown body follows this structure:
216
+
217
+ 1. **Overview** — archetype name, philosophy, key decisions
218
+ 2. **Color Palette** — visual swatches (using HTML/unicode), semantic meanings
219
+ 3. **Typography** — scale table, font stack recommendations
220
+ 4. **Spacing & Layout** — grid system, spacing scale visualization
221
+ 5. **Border Radius** — shape language explanation
222
+ 6. **Elevation & Shadows** — usage guidelines per level
223
+ 7. **Component Tokens** — per-component token table with cross-references
224
+ 8. **Responsive Breakpoints** — from \`structure.requiredSections\`
225
+ 9. **Usage Guidelines** — do/don't patterns for applying tokens
226
+
227
+ ---
228
+
229
+ ## §5 Backup & Overwrite Protection
230
+
231
+ Before writing \`DESIGN.md\`:
232
+
233
+ 1. Check if \`DESIGN.md\` already exists in the target directory
234
+ 2. If it exists:
235
+ - Ask for overwrite confirmation: "DESIGN.md already exists. Overwrite? (A .bak backup will be created)"
236
+ - On confirmation: copy existing file to \`DESIGN.md.bak\`
237
+ - On rejection: abort without changes
238
+ 3. If it does not exist: proceed directly
28
239
 
29
- Returns the output file path on success, or \`null\` if the user aborts.
240
+ Never silently overwrite an existing DESIGN.md file.
30
241
  `;
31
242
  }
32
243
  //# sourceMappingURL=design-md-skill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"design-md-skill.js","sourceRoot":"","sources":["../../src/templates/design-md-skill.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"design-md-skill.js","sourceRoot":"","sources":["../../src/templates/design-md-skill.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+OR,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-specfuse",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Scaffold projects with OpenSpec + Superpowers fusion methodology",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,7 +15,7 @@
15
15
  "node": ">=18.0.0"
16
16
  },
17
17
  "scripts": {
18
- "build": "tsc && cp -r src/design-md/templates dist/design-md/templates",
18
+ "build": "tsc && rm -rf dist/design-md/templates && cp -r src/design-md/templates dist/design-md/templates",
19
19
  "test": "vitest run",
20
20
  "dev": "tsc --watch"
21
21
  },
@@ -1,71 +0,0 @@
1
- type: object
2
- required:
3
- - id
4
- - name
5
- - category
6
- - dimensions
7
- - anchors
8
- - template
9
- properties:
10
- id:
11
- type: string
12
- pattern: "^[a-z][a-z0-9-]*$"
13
- name:
14
- type: string
15
- category:
16
- type: string
17
- enum:
18
- - internal-tool
19
- - dashboard
20
- - consumer
21
- - developer
22
- - mobile
23
- - e-commerce
24
- - marketing
25
- - form-heavy
26
- - content
27
- dimensions:
28
- type: object
29
- required:
30
- - colorTemp
31
- - lightness
32
- - density
33
- - borderRadius
34
- - tone
35
- properties:
36
- colorTemp:
37
- type: integer
38
- minimum: 1
39
- maximum: 5
40
- lightness:
41
- type: integer
42
- minimum: 1
43
- maximum: 5
44
- density:
45
- type: integer
46
- minimum: 1
47
- maximum: 5
48
- borderRadius:
49
- type: integer
50
- minimum: 1
51
- maximum: 5
52
- tone:
53
- type: integer
54
- minimum: 1
55
- maximum: 5
56
- anchors:
57
- type: object
58
- required:
59
- - primary
60
- - auxiliary
61
- properties:
62
- primary:
63
- type: string
64
- auxiliary:
65
- type: array
66
- items:
67
- type: string
68
- minItems: 1
69
- maxItems: 2
70
- template:
71
- type: string
@@ -1,34 +0,0 @@
1
- id: consumer-media
2
- name: Consumer Media
3
- category: consumer
4
- dimensions:
5
- colorTemp: 3
6
- lightness: 2
7
- density: 4
8
- borderRadius: 3
9
- tone: 4
10
- anchors:
11
- primary: Spotify
12
- auxiliary:
13
- - Netflix
14
- - Apple Music
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#1DB954"
19
- background: "#121212"
20
- surface: "#1E1E1E"
21
- text: "#FFFFFF"
22
- accent: "#1ED760"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 12, 16, 24, 32, 48, 64]
26
- radius:
27
- default: "8px"
28
- large: "12px"
29
- typography:
30
- fontFamily: "'Circular', 'Helvetica Neue', sans-serif"
31
- scale: [12, 14, 16, 20, 24, 32, 48]
32
- density:
33
- compact: false
34
- tableRowHeight: "48px"
@@ -1,34 +0,0 @@
1
- id: consumer-social
2
- name: Consumer Social
3
- category: consumer
4
- dimensions:
5
- colorTemp: 4
6
- lightness: 4
7
- density: 4
8
- borderRadius: 5
9
- tone: 5
10
- anchors:
11
- primary: Instagram
12
- auxiliary:
13
- - TikTok
14
- - Threads
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#E1306C"
19
- background: "#FFFFFF"
20
- surface: "#FAFAFA"
21
- text: "#262626"
22
- accent: "#833AB4"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 12, 16, 24, 32, 48, 64]
26
- radius:
27
- default: "16px"
28
- large: "24px"
29
- typography:
30
- fontFamily: "'-apple-system', 'Segoe UI', sans-serif"
31
- scale: [12, 14, 16, 18, 24, 32]
32
- density:
33
- compact: false
34
- tableRowHeight: "56px"
@@ -1,34 +0,0 @@
1
- id: content-blog
2
- name: Content Blog
3
- category: content
4
- dimensions:
5
- colorTemp: 3
6
- lightness: 5
7
- density: 5
8
- borderRadius: 2
9
- tone: 3
10
- anchors:
11
- primary: Medium
12
- auxiliary:
13
- - Substack
14
- - Ghost
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#292929"
19
- background: "#FFFFFF"
20
- surface: "#FAFAFA"
21
- text: "#292929"
22
- accent: "#1A8917"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 16, 24, 32, 48, 64, 96]
26
- radius:
27
- default: "4px"
28
- large: "8px"
29
- typography:
30
- fontFamily: "'Georgia', 'Charter', serif"
31
- scale: [14, 16, 18, 21, 26, 34, 42]
32
- density:
33
- compact: false
34
- tableRowHeight: "48px"
@@ -1,34 +0,0 @@
1
- id: content-docs
2
- name: Content Documentation
3
- category: content
4
- dimensions:
5
- colorTemp: 2
6
- lightness: 4
7
- density: 3
8
- borderRadius: 2
9
- tone: 2
10
- anchors:
11
- primary: Docusaurus
12
- auxiliary:
13
- - GitBook
14
- - ReadTheDocs
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#2E8555"
19
- background: "#FFFFFF"
20
- surface: "#F5F6F7"
21
- text: "#1C1E21"
22
- accent: "#25C2A0"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 12, 16, 24, 32, 48, 64]
26
- radius:
27
- default: "4px"
28
- large: "8px"
29
- typography:
30
- fontFamily: "'-apple-system', 'Segoe UI', sans-serif"
31
- scale: [12, 14, 16, 18, 20, 24, 30]
32
- density:
33
- compact: false
34
- tableRowHeight: "40px"
@@ -1,34 +0,0 @@
1
- id: dashboard-analytics
2
- name: Dashboard Analytics
3
- category: dashboard
4
- dimensions:
5
- colorTemp: 2
6
- lightness: 2
7
- density: 1
8
- borderRadius: 2
9
- tone: 1
10
- anchors:
11
- primary: Grafana
12
- auxiliary:
13
- - Datadog
14
- - New Relic
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#FF6600"
19
- background: "#111217"
20
- surface: "#1A1C23"
21
- text: "#D8D9DA"
22
- accent: "#73BF69"
23
- spacing:
24
- base: "4px"
25
- scale: [2, 4, 8, 12, 16, 24, 32]
26
- radius:
27
- default: "4px"
28
- large: "6px"
29
- typography:
30
- fontFamily: "'Inter', 'Roboto', sans-serif"
31
- scale: [10, 11, 12, 14, 16, 20, 24]
32
- density:
33
- compact: true
34
- tableRowHeight: "32px"
@@ -1,34 +0,0 @@
1
- id: dashboard-monitoring
2
- name: Dashboard Monitoring
3
- category: dashboard
4
- dimensions:
5
- colorTemp: 1
6
- lightness: 1
7
- density: 1
8
- borderRadius: 1
9
- tone: 1
10
- anchors:
11
- primary: PagerDuty
12
- auxiliary:
13
- - Uptime Robot
14
- - StatusPage
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#06AC38"
19
- background: "#0D1117"
20
- surface: "#161B22"
21
- text: "#C9D1D9"
22
- accent: "#F85149"
23
- spacing:
24
- base: "4px"
25
- scale: [2, 4, 8, 12, 16, 24, 32]
26
- radius:
27
- default: "3px"
28
- large: "4px"
29
- typography:
30
- fontFamily: "'JetBrains Mono', 'Fira Code', monospace"
31
- scale: [10, 11, 12, 14, 16, 18, 22]
32
- density:
33
- compact: true
34
- tableRowHeight: "28px"
@@ -1,33 +0,0 @@
1
- id: developer-portal
2
- name: Developer Portal
3
- category: developer
4
- dimensions:
5
- colorTemp: 1
6
- lightness: 1
7
- density: 3
8
- borderRadius: 2
9
- tone: 2
10
- anchors:
11
- primary: Stripe Docs
12
- auxiliary:
13
- - Tailwind Docs
14
- template: |
15
- tokens:
16
- colors:
17
- primary: "#3B82F6"
18
- background: "#0F172A"
19
- surface: "#1E293B"
20
- text: "#E2E8F0"
21
- accent: "#22D3EE"
22
- spacing:
23
- base: "4px"
24
- scale: [4, 8, 16, 24, 32, 48, 64]
25
- radius:
26
- default: "6px"
27
- large: "8px"
28
- typography:
29
- fontFamily: "'JetBrains Mono', 'Fira Code', monospace"
30
- scale: [12, 14, 16, 18, 24, 32]
31
- density:
32
- compact: false
33
- tableRowHeight: "40px"
@@ -1,34 +0,0 @@
1
- id: e-commerce
2
- name: E-Commerce Platform
3
- category: e-commerce
4
- dimensions:
5
- colorTemp: 4
6
- lightness: 4
7
- density: 3
8
- borderRadius: 4
9
- tone: 4
10
- anchors:
11
- primary: Shopify
12
- auxiliary:
13
- - Gumroad
14
- - Lemonsqueezy
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#16A34A"
19
- background: "#FFFFFF"
20
- surface: "#F9FAFB"
21
- text: "#111827"
22
- accent: "#F59E0B"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 12, 16, 24, 32, 48, 64]
26
- radius:
27
- default: "12px"
28
- large: "16px"
29
- typography:
30
- fontFamily: "'Plus Jakarta Sans', -apple-system, sans-serif"
31
- scale: [12, 14, 16, 20, 24, 32, 40]
32
- density:
33
- compact: false
34
- tableRowHeight: "52px"
@@ -1,34 +0,0 @@
1
- id: form-heavy
2
- name: Form-Heavy Application
3
- category: form-heavy
4
- dimensions:
5
- colorTemp: 3
6
- lightness: 4
7
- density: 3
8
- borderRadius: 3
9
- tone: 2
10
- anchors:
11
- primary: Typeform
12
- auxiliary:
13
- - Notion Forms
14
- - Airtable
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#6366F1"
19
- background: "#FAFAFA"
20
- surface: "#FFFFFF"
21
- text: "#374151"
22
- accent: "#8B5CF6"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 12, 16, 24, 32, 48, 64]
26
- radius:
27
- default: "8px"
28
- large: "12px"
29
- typography:
30
- fontFamily: "'Inter', -apple-system, sans-serif"
31
- scale: [12, 14, 16, 18, 24, 30]
32
- density:
33
- compact: false
34
- tableRowHeight: "48px"
@@ -1,34 +0,0 @@
1
- id: internal-tool
2
- name: Internal Tool
3
- category: internal-tool
4
- dimensions:
5
- colorTemp: 2
6
- lightness: 2
7
- density: 2
8
- borderRadius: 2
9
- tone: 1
10
- anchors:
11
- primary: Retool
12
- auxiliary:
13
- - Backstage
14
- - AdminJS
15
- template: |
16
- tokens:
17
- colors:
18
- primary: "#4A6CF7"
19
- background: "#1E1E2E"
20
- surface: "#2A2A3C"
21
- text: "#E4E4E7"
22
- accent: "#7C8DFF"
23
- spacing:
24
- base: "4px"
25
- scale: [4, 8, 12, 16, 24, 32, 48]
26
- radius:
27
- default: "4px"
28
- large: "6px"
29
- typography:
30
- fontFamily: "'Inter', -apple-system, sans-serif"
31
- scale: [12, 13, 14, 16, 20, 24]
32
- density:
33
- compact: true
34
- tableRowHeight: "36px"