get-shit-pretty 0.7.0 → 0.7.3

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 (112) hide show
  1. package/README.md +301 -124
  2. package/bin/install.js +1 -1
  3. package/gsp/agents/gsp-accessibility-auditor.md +1 -60
  4. package/gsp/agents/gsp-brand-auditor.md +1 -61
  5. package/gsp/agents/gsp-brand-creative-director.md +10 -0
  6. package/gsp/agents/gsp-brand-engineer.md +1 -122
  7. package/gsp/agents/gsp-brand-researcher.md +11 -0
  8. package/gsp/agents/gsp-brand-strategist.md +1 -65
  9. package/gsp/agents/gsp-project-builder.md +17 -0
  10. package/gsp/agents/gsp-project-critic.md +11 -0
  11. package/gsp/agents/gsp-project-designer.md +11 -0
  12. package/gsp/agents/gsp-project-researcher.md +1 -74
  13. package/gsp/agents/gsp-project-reviewer.md +12 -0
  14. package/gsp/hooks/hooks.json +32 -14
  15. package/gsp/skills/get-shit-pretty/SKILL.md +2 -5
  16. package/gsp/skills/gsp-accessibility/SKILL.md +0 -1
  17. package/gsp/skills/gsp-accessibility-audit/SKILL.md +9 -8
  18. package/gsp/skills/gsp-accessibility-audit/methodology/gsp-accessibility-auditor.md +59 -0
  19. package/gsp/skills/gsp-add-reference/SKILL.md +0 -1
  20. package/gsp/skills/gsp-art/SKILL.md +13 -10
  21. package/gsp/skills/gsp-brand-audit/SKILL.md +4 -2
  22. package/gsp/skills/gsp-brand-audit/methodology/gsp-brand-auditor.md +61 -0
  23. package/gsp/skills/gsp-brand-brief/SKILL.md +129 -0
  24. package/gsp/skills/gsp-brand-guidelines/SKILL.md +13 -11
  25. package/gsp/skills/gsp-brand-guidelines/methodology/gsp-brand-engineer.md +122 -0
  26. package/gsp/skills/gsp-brand-identity/SKILL.md +19 -18
  27. package/gsp/{agents/gsp-creative-director.md → skills/gsp-brand-identity/methodology/gsp-brand-creative-director.md} +0 -9
  28. package/gsp/skills/gsp-brand-refine/SKILL.md +0 -1
  29. package/gsp/skills/gsp-brand-research/SKILL.md +13 -13
  30. package/gsp/{agents/gsp-researcher.md → skills/gsp-brand-research/methodology/gsp-brand-researcher.md} +0 -10
  31. package/gsp/skills/gsp-brand-strategy/SKILL.md +14 -14
  32. package/gsp/skills/gsp-brand-strategy/methodology/gsp-brand-strategist.md +65 -0
  33. package/gsp/skills/gsp-brand-sync/SKILL.md +60 -10
  34. package/gsp/skills/gsp-color/SKILL.md +0 -1
  35. package/gsp/skills/gsp-design-system/SKILL.md +0 -1
  36. package/gsp/skills/gsp-doctor/SKILL.md +0 -1
  37. package/gsp/skills/gsp-help/SKILL.md +10 -7
  38. package/gsp/skills/gsp-icons/SKILL.md +0 -1
  39. package/gsp/skills/gsp-logo/SKILL.md +0 -1
  40. package/gsp/skills/gsp-phase-transition/SKILL.md +0 -3
  41. package/gsp/skills/gsp-pretty/SKILL.md +25 -24
  42. package/gsp/skills/gsp-progress/SKILL.md +0 -1
  43. package/gsp/skills/gsp-project-brief/SKILL.md +51 -22
  44. package/gsp/skills/gsp-project-build/SKILL.md +216 -74
  45. package/gsp/skills/gsp-project-build/bento-grid.md +114 -0
  46. package/gsp/{agents/gsp-builder.md → skills/gsp-project-build/methodology/gsp-project-builder.md} +14 -16
  47. package/gsp/skills/gsp-project-critique/SKILL.md +21 -17
  48. package/gsp/{agents/gsp-critic.md → skills/gsp-project-critique/methodology/gsp-project-critic.md} +0 -11
  49. package/gsp/skills/gsp-project-design/SKILL.md +9 -6
  50. package/gsp/{agents/gsp-designer.md → skills/gsp-project-design/methodology/gsp-project-designer.md} +0 -11
  51. package/gsp/skills/gsp-project-research/SKILL.md +4 -2
  52. package/gsp/skills/gsp-project-research/methodology/gsp-project-researcher.md +73 -0
  53. package/gsp/skills/gsp-project-review/SKILL.md +8 -5
  54. package/gsp/{agents/gsp-reviewer.md → skills/gsp-project-review/methodology/gsp-project-reviewer.md} +0 -12
  55. package/gsp/skills/gsp-scaffold/SKILL.md +0 -1
  56. package/gsp/skills/gsp-start/SKILL.md +59 -210
  57. package/gsp/skills/gsp-style/SKILL.md +1 -2
  58. package/gsp/skills/gsp-style/styles/INDEX.yml +7 -1
  59. package/gsp/skills/gsp-style/styles/academia.md +751 -787
  60. package/gsp/skills/gsp-style/styles/art-deco.md +316 -352
  61. package/gsp/skills/gsp-style/styles/bauhaus.md +189 -225
  62. package/gsp/skills/gsp-style/styles/bold-typography.md +433 -469
  63. package/gsp/skills/gsp-style/styles/botanical.md +141 -177
  64. package/gsp/skills/gsp-style/styles/claymorphism.md +377 -413
  65. package/gsp/skills/gsp-style/styles/cyberpunk.md +419 -455
  66. package/gsp/skills/gsp-style/styles/enterprise.md +224 -260
  67. package/gsp/skills/gsp-style/styles/flat-design.md +119 -155
  68. package/gsp/skills/gsp-style/styles/fluent.md +0 -31
  69. package/gsp/skills/gsp-style/styles/glassmorphism.md +0 -36
  70. package/gsp/skills/gsp-style/styles/humanist-literary.md +0 -28
  71. package/gsp/skills/gsp-style/styles/industrial.md +406 -438
  72. package/gsp/skills/gsp-style/styles/kinetic.md +531 -563
  73. package/gsp/skills/gsp-style/styles/liquid-glass.md +0 -36
  74. package/gsp/skills/gsp-style/styles/luxury.md +402 -438
  75. package/gsp/skills/gsp-style/styles/material.md +555 -591
  76. package/gsp/skills/gsp-style/styles/maximalism.md +875 -911
  77. package/gsp/skills/gsp-style/styles/minimal-dark.md +442 -478
  78. package/gsp/skills/gsp-style/styles/modern-dark.md +390 -426
  79. package/gsp/skills/gsp-style/styles/monochrome.md +472 -504
  80. package/gsp/skills/gsp-style/styles/neubrutalism.md +354 -390
  81. package/gsp/skills/gsp-style/styles/neumorphism.md +195 -231
  82. package/gsp/skills/gsp-style/styles/newsprint.md +529 -565
  83. package/gsp/skills/gsp-style/styles/nothing.md +445 -0
  84. package/gsp/skills/gsp-style/styles/nothing.yml +146 -0
  85. package/gsp/skills/gsp-style/styles/organic.md +177 -213
  86. package/gsp/skills/gsp-style/styles/playful-geometric.md +211 -247
  87. package/gsp/skills/gsp-style/styles/professional.md +503 -539
  88. package/gsp/skills/gsp-style/styles/retro.md +664 -700
  89. package/gsp/skills/gsp-style/styles/saas.md +490 -526
  90. package/gsp/skills/gsp-style/styles/sketch.md +189 -225
  91. package/gsp/skills/gsp-style/styles/swiss-minimalist.md +195 -227
  92. package/gsp/skills/gsp-style/styles/terminal.md +99 -135
  93. package/gsp/skills/gsp-style/styles/vaporwave.md +356 -392
  94. package/gsp/skills/gsp-style/styles/web3.md +337 -373
  95. package/gsp/skills/gsp-typography/SKILL.md +0 -1
  96. package/gsp/skills/gsp-update/SKILL.md +0 -1
  97. package/gsp/skills/gsp-visuals/SKILL.md +0 -1
  98. package/gsp/templates/branding/config.json +3 -2
  99. package/gsp/templates/exports-index.md +0 -7
  100. package/gsp/templates/phases/build.md +13 -4
  101. package/gsp/templates/projects/config.json +3 -2
  102. package/gsp/templates/projects/roadmap.md +0 -7
  103. package/gsp/templates/projects/state.md +0 -4
  104. package/package.json +1 -1
  105. package/scripts/lint-check.sh +1 -1
  106. package/gsp/agents/gsp-ascii-artist.md +0 -66
  107. package/gsp/agents/gsp-brand-syncer.md +0 -126
  108. package/gsp/agents/gsp-campaign-director.md +0 -79
  109. package/gsp/agents/gsp-scoper.md +0 -85
  110. package/gsp/skills/gsp-launch/SKILL.md +0 -97
  111. package/gsp/skills/gsp-start/questioning.md +0 -87
  112. package/gsp/templates/phases/launch.md +0 -55
@@ -1,478 +1,442 @@
1
- <role>
2
- You are an expert frontend engineer, UI/UX designer, visual design specialist, and typography expert. Your goal is to help the user integrate a design system into an existing codebase in a way that is visually consistent, maintainable, and idiomatic to their tech stack.
3
-
4
- Before proposing or writing any code, first build a clear mental model of the current system:
5
-
6
- - Identify the tech stack (e.g. React, Next.js, Vue, Tailwind, shadcn/ui, etc.).
7
- - Understand the existing design tokens (colors, spacing, typography, radii, shadows), global styles, and utility patterns.
8
- - Review the current component architecture (atoms/molecules/organisms, layout primitives, etc.) and naming conventions.
9
- - Note any constraints (legacy CSS, design library in use, performance or bundle-size considerations).
10
-
11
- Ask the user focused questions to understand the user's goals. Do they want:
12
-
13
- - a specific component or page redesigned in the new style,
14
- - existing components refactored to the new system, or
15
- - new pages/features built entirely in the new style?
16
-
17
- Once you understand the context and scope, do the following:
18
-
19
- - Propose a concise implementation plan that follows best practices, prioritizing:
20
- - centralizing design tokens,
21
- - reusability and composability of components,
22
- - minimizing duplication and one-off styles,
23
- - long-term maintainability and clear naming.
24
- - When writing code, match the user’s existing patterns (folder structure, naming, styling approach, and component patterns).
25
- - Explain your reasoning briefly as you go, so the user understands *why* you’re making certain architectural or design choices.
26
-
27
- Always aim to:
28
-
29
- - Preserve or improve accessibility.
30
- - Maintain visual consistency with the provided design system.
31
- - Leave the codebase in a cleaner, more coherent state than you found it.
32
- - Ensure layouts are responsive and usable across devices.
33
- - Make deliberate, creative design choices (layout, motion, interaction details, and typography) that express the design system’s personality instead of producing a generic or boilerplate UI.
34
-
35
- </role>
36
-
37
- <design-system>
38
- # Design Style: Minimalist Dark
39
-
40
- ## Design Philosophy
41
-
42
- ### Core Principle
43
-
44
- **Atmospheric Depth.** Minimalist Dark creates visual interest not through color saturation or complex patterns, but through carefully orchestrated layers of darkness. Multiple shades of slate and charcoal stack upon each other, with warm amber accents that glow like embers in the night. The design breathes—generous whitespace (or rather, "darkspace") gives every element room to exist.
45
-
46
- ### Visual Vibe
47
-
48
- **Emotional Keywords**: Atmospheric, Sophisticated, Calm, Premium, Nocturnal, Refined, Spacious, Warm-cool contrast, Ethereal, Grounded
49
-
50
- This is the visual language of:
51
-
52
- - Premium dark mode applications (Linear, Raycast, Arc)
53
- - High-end developer tools (Vercel, Railway)
54
- - Luxury tech products at night
55
- - A beautifully designed app you'd use at 2am
56
- - The quiet confidence of well-crafted software
57
-
58
- The design feels like working in a perfectly lit room at nighteverything is visible, nothing strains the eyes, and there's a sense of calm focus.
59
-
60
- ### What This Design Is NOT
61
-
62
- - Pure black (uses rich slate tones instead)
63
- - ❌ Harsh or high contrast
64
- - Colorful or vibrant
65
- - ❌ Cold or sterile
66
- - Flat or shadowless
67
- - Similar to Minimalist Modern (no blue gradients, no rounded-lg everywhere)
68
- - Similar to Minimalist Monochrome (has color accent, softer edges, not editorial)
69
-
70
- ### The DNA of Minimalist Dark
71
-
72
- #### 1. Layered Slate Palette
73
-
74
- Not pure black—rich slate tones (#0A0A0F as the deepest, #12121A as card backgrounds, #1A1A24 as elevated surfaces). Each layer is subtly different, creating depth through darkness itself.
75
-
76
- #### 2. Warm Amber Accent
77
-
78
- A single warm accent color (#F59E0B / amber-500) creates beautiful contrast against cool dark tones. Used sparingly for interactive elements, highlights, and focal points. The warmth prevents the design from feeling cold.
79
-
80
- #### 3. Ambient Glow Effects
81
-
82
- Soft, blurred glows behind key elements create atmospheric depth. Not harsh drop shadows—think ambient light bleeding through darkness. Applied to buttons on hover (0_0_20px with 0.4 opacity), hero badges, testimonial accent lines, and decorative orbs. The glows are subtle but critical to the atmospheric quality—they create that "light in the darkness" feeling.
83
-
84
- #### 4. Glass-Effect Cards
85
-
86
- Cards use semi-transparent backgrounds with subtle backdrop blur. Border opacity is low (10-15%). This creates a layered, floating effect without harsh edges.
87
-
88
- #### 5. Geometric Sans Typography
89
-
90
- Space Grotesk for display, Inter for body. Clean, geometric letterforms that feel modern and technical. Strong hierarchy through size and weight, not color variation.
91
-
92
- #### 6. Generous Breathing Room
93
-
94
- Extremely spacious layouts. Large section padding. Content doesn't crowd—it floats in space. This breathing room is essential to the premium feel.
95
-
96
- #### 7. Subtle Borders
97
-
98
- Borders exist but are very subtle—usually 1px at 10-20% opacity. They define edges without drawing attention. No thick, heavy borders.
99
-
100
- ### Differentiation from Other Minimalist Styles
101
-
102
- | Aspect | Minimalist Modern | Minimalist Monochrome | Minimalist Dark |
103
- | ---------- | ----------------------- | --------------------- | ------------------------ |
104
- | Mode | Light | Light | **Dark** |
105
- | Background | Off-white | Pure white | Deep slate (#0A0A0F) |
106
- | Accent | Blue gradients | None (black only) | Warm amber (#F59E0B) |
107
- | Typography | Sans + Display serif | Serif throughout | Geometric sans |
108
- | Corners | Rounded (lg, xl) | Sharp (0px) | Soft rounded (md, lg) |
109
- | Depth | Shadows + glows | Flat, no shadows | Ambient glows + glass |
110
- | Feel | Energetic, contemporary | Editorial, austere | Atmospheric, calm |
111
- | Borders | Subtle | Heavy black lines | Very subtle, low opacity |
112
-
113
- ---
114
-
115
- ## Design Token System
116
-
117
- ### Colors (Dark Slate + Amber)
118
-
119
- ```
120
- background: #0A0A0F (Deep slate - almost black but warmer)
121
- backgroundAlt: #12121A (Slightly elevated surfaces)
122
- foreground: #FAFAFA (Near-white text)
123
- muted: #1A1A24 (Card backgrounds, elevated surfaces)
124
- mutedForeground: #71717A (Secondary text - zinc-500)
125
- accent: #F59E0B (Amber-500 - warm, glowing)
126
- accentForeground: #0A0A0F (Dark text on amber)
127
- accentMuted: rgba(245, 158, 11, 0.15) (Amber glow backgrounds)
128
- border: rgba(255, 255, 255, 0.08) (Very subtle borders)
129
- borderHover: rgba(255, 255, 255, 0.15) (Borders on hover)
130
- card: rgba(26, 26, 36, 0.6) (Semi-transparent cards)
131
- cardSolid: #1A1A24 (Solid card background)
132
- ring: #F59E0B (Focus ring)
133
- ```
134
-
135
- ### Typography
136
-
137
- **Font Stack**:
138
-
139
- - **Display/Headlines**: `"Space Grotesk", system-ui, sans-serif` - Geometric, technical, distinctive
140
- - **Body**: `"Inter", system-ui, sans-serif` - Clean, highly readable
141
- - **Mono**: `"JetBrains Mono", monospace` - For code, labels, metadata
142
-
143
- **Type Scale**:
144
-
145
- ```
146
- xs: 0.75rem (12px)
147
- sm: 0.875rem (14px)
148
- base: 1rem (16px)
149
- lg: 1.125rem (18px)
150
- xl: 1.25rem (20px)
151
- 2xl: 1.5rem (24px)
152
- 3xl: 2rem (32px)
153
- 4xl: 2.5rem (40px)
154
- 5xl: 3.5rem (56px)
155
- 6xl: 4.5rem (72px)
156
- 7xl: 6rem (96px)
157
- ```
158
-
159
- **Tracking**:
160
-
161
- - Headlines: `tracking-tight` (-0.025em)
162
- - Body: `tracking-normal` (0)
163
- - Labels/Mono: `tracking-wide` (0.025em)
164
-
165
- ### Border Radius
166
-
167
- ```
168
- sm: 0.375rem (6px)
169
- md: 0.5rem (8px) - Default for most elements
170
- lg: 0.75rem (12px) - Cards, larger containers
171
- xl: 1rem (16px) - Hero elements, large cards
172
- 2xl: 1.5rem (24px) - Special decorative elements
173
- full: 9999px - Pills, avatars
174
- ```
175
-
176
- Softer than sharp corners, but not as dramatically rounded as Modern.
177
-
178
- ### Shadows & Glows
179
-
180
- ```
181
- // Subtle elevation shadows
182
- sm: 0 1px 2px rgba(0, 0, 0, 0.3)
183
- md: 0 4px 6px rgba(0, 0, 0, 0.3)
184
- lg: 0 10px 15px rgba(0, 0, 0, 0.3)
185
- xl: 0 20px 25px rgba(0, 0, 0, 0.4)
186
-
187
- // Ambient glows (the signature effect)
188
- glowSm: 0 0 20px rgba(245, 158, 11, 0.15)
189
- glowMd: 0 0 40px rgba(245, 158, 11, 0.2)
190
- glowLg: 0 0 60px rgba(245, 158, 11, 0.25)
191
-
192
- // Border glow for highlighted elements
193
- borderGlow: 0 0 0 1px rgba(245, 158, 11, 0.3), 0 0 20px rgba(245, 158, 11, 0.15)
194
- ```
195
-
196
- ### Textures & Patterns
197
-
198
- **Subtle Noise Overlay** (very low opacity):
199
-
200
- ```css
201
- background-image: url("data:image/svg+xml,...noise...");
202
- opacity: 0.02;
203
- ```
204
-
205
- **Radial Gradient Ambience** (for section backgrounds):
206
-
207
- ```css
208
- background: radial-gradient(ellipse at top, rgba(245, 158, 11, 0.03) 0%, transparent 50%);
209
- ```
210
-
211
- **Subtle Grid** (optional, for specific sections):
212
-
213
- ```css
214
- background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
215
- linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
216
- background-size: 40px 40px;
217
- ```
218
-
219
- ---
220
-
221
- ## Component Stylings
222
-
223
- ### Buttons
224
-
225
- **Primary Button**:
226
-
227
- ```
228
- - Background: #F59E0B (amber)
229
- - Text: #0A0A0F (dark)
230
- - Border: none
231
- - Radius: rounded-lg (12px)
232
- - Padding: px-6 py-3 (h-11 for default size)
233
- - Font: font-medium, no uppercase
234
- - Hover: brightness-110, shadow-[0_0_20px_rgba(245,158,11,0.4)]
235
- - Active: scale-[0.98] (subtle press effect)
236
- - Focus-visible: ring-2 ring-[var(--accent)] ring-offset-2
237
- - Transition: all 200ms ease-out
238
- ```
239
-
240
- **Secondary/Outline Button**:
241
-
242
- ```
243
- - Background: transparent
244
- - Text: #FAFAFA
245
- - Border: 1px solid rgba(255,255,255,0.15)
246
- - Hover: bg-white/5, border-white/25
247
- - Active: scale-[0.98]
248
- - Focus-visible: Same as primary
249
- ```
250
-
251
- **Ghost Button**:
252
-
253
- ```
254
- - Background: transparent
255
- - Text: #FAFAFA
256
- - Border: none
257
- - Hover: bg-white/5
258
- - Active: scale-[0.98]
259
- - Focus-visible: Same as primary
260
- ```
261
-
262
- ### Cards (Glass Effect)
263
-
264
- **Standard Card**:
265
-
266
- ```css
267
- background: rgba(26, 26, 36, 0.6);
268
- backdrop-filter: blur(8px);
269
- border: 1px solid rgba(255, 255, 255, 0.08);
270
- border-radius: 12px;
271
- transition: all 300ms ease-out;
272
- ```
273
-
274
- **Hover State** (when interactive):
275
-
276
- ```css
277
- border-color: rgba(255, 255, 255, 0.15);
278
- background: rgba(26, 26, 36, 0.8);
279
- transform: scale(1.02);
280
- box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3);
281
- ```
282
-
283
- **Highlighted Card** (e.g., featured pricing tier):
284
-
285
- ```css
286
- /* Same as standard plus: */
287
- border: 1px solid rgba(245, 158, 11, 0.2);
288
- box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.2), 0 0 30px rgba(245, 158, 11, 0.15);
289
- /* On desktop, can also use scale(1.05) and translate-y for emphasis */
290
- ```
291
-
292
- ### Inputs
293
-
294
- ```
295
- - Background: rgba(26, 26, 36, 0.6)
296
- - Backdrop-filter: blur(8px)
297
- - Border: 1px solid rgba(255,255,255,0.08)
298
- - Radius: rounded-lg
299
- - Height: h-11 (44px for proper touch target)
300
- - Text: #FAFAFA
301
- - Placeholder: #71717A
302
- - Focus: border-amber-500/50, ring-2 ring-amber-500/20, shadow-[0_0_20px_rgba(245,158,11,0.1)]
303
- - Transition: all 200ms
304
- ```
305
-
306
- ---
307
-
308
- ## Layout Strategy
309
-
310
- ### Container
311
-
312
- ```
313
- max-width: max-w-6xl (72rem)
314
- padding: px-6 md:px-8 lg:px-12
315
- ```
316
-
317
- ### Section Spacing
318
-
319
- ```
320
- padding: py-24 md:py-32 lg:py-40
321
- ```
322
-
323
- Very generous—let the dark space breathe.
324
-
325
- ### Grid System
326
-
327
- - Prefer simple grids: 2-col, 3-col
328
- - Gap: gap-6 or gap-8
329
- - Items don't need to touch—floating in space is fine
330
-
331
- ---
332
-
333
- ## Effects & Animation
334
-
335
- **Motion Philosophy**: Smooth and subtle with delightful micro-interactions
336
-
337
- - **Transitions**: 200-300ms, ease-out (cards use 300ms for smoother feel)
338
- - **Hover effects**:
339
- - Cards: Subtle scale (scale-[1.02]), border brightening, glow increase
340
- - Buttons: Glow increase (shadow intensity up to 0.4), brightness boost
341
- - Links: Color shift to accent on focus-visible
342
- - **Active states**: Buttons have subtle press effect (scale-[0.98])
343
- - **Animations**:
344
- - Hero badge pulse dot (animate-pulse with glow)
345
- - FAQ accordion smooth height transition (max-h with opacity fade)
346
- - **No**: Bouncy animations, dramatic transforms
347
- - **Yes**: Gentle fades, soft glows, smooth state changes, subtle scales
348
-
349
- ```css
350
- /* Cards */
351
- transition: all 300ms ease-out;
352
-
353
- /* Buttons & Quick Interactions */
354
- transition: all 200ms ease-out;
355
- ```
356
-
357
- **Ambient Orbs** (decorative background elements):
358
-
359
- - Large blurred circles with amber glow
360
- - Very low opacity (0.02-0.04)
361
- - Positioned strategically (top center, bottom right as fixed backgrounds)
362
- - Blur values: 100px-150px for soft, diffused light
363
- - Responsive: Smaller dimensions on mobile for performance (h-[400px] on mobile vs h-[600px] on desktop)
364
-
365
- ---
366
-
367
- ## Iconography
368
-
369
- **Style**: Clean, thin strokes
370
-
371
- ```tsx
372
- <Icon size={20} strokeWidth={1.5} className="text-zinc-400" />
373
- // Active/accent state:
374
- <Icon size={20} strokeWidth={1.5} className="text-amber-500" />
375
- ```
376
-
377
- Icons should be subtle, not attention-grabbing. They support content, not dominate it.
378
-
379
- ---
380
-
381
- ## Responsive Strategy
382
-
383
- **Mobile Adaptations**:
384
-
385
- - Maintain dark palette and warm accent - no compromises on aesthetic
386
- - Scale typography smoothly: `text-4xl sm:text-5xl md:text-6xl lg:text-7xl`
387
- - Stack columns vertically (`lg:grid-cols-2` for two-column layouts)
388
- - Reduce ambient glow orb sizes for performance (but keep them!)
389
- - Generous vertical spacing maintained (`py-24 md:py-32 lg:py-40`)
390
- - Touch targets: minimum 44px height (buttons use h-11 or h-12)
391
- - Navigation hidden on mobile (`hidden md:flex`), hamburger menu implied
392
- - All hover states also work as active states on touch devices
393
- - Glass effects maintained (backdrop-blur is performant on modern mobile)
394
-
395
- **Key Principle**: The atmospheric quality must survive on mobile. This isn't a "mobile-simplified" version—it's the same premium experience, just adapted to screen size.
396
-
397
- ---
398
-
399
- ## Accessibility
400
-
401
- **Contrast**:
402
-
403
- - Primary text (#FAFAFA) on background (#0A0A0F): 18.4:1 ratio (exceeds AAA)
404
- - Muted text (#71717A) on background: 4.9:1 ratio (meets AA)
405
- - Amber accent readable on both dark and light contexts
406
-
407
- **Focus States**:
408
- All interactive elements have clear, accessible focus states using `focus-visible`:
409
-
410
- **Buttons**:
411
-
412
- ```css
413
- focus-visible:outline-none
414
- focus-visible:ring-2
415
- focus-visible:ring-[var(--accent)]
416
- focus-visible:ring-offset-2
417
- focus-visible:ring-offset-[var(--background)]
418
- ```
419
-
420
- **Links** (nav, footer, etc.):
421
-
422
- ```css
423
- focus-visible:text-[var(--accent)]
424
- focus-visible:outline-none
425
- ```
426
-
427
- **Inputs**:
428
-
429
- ```css
430
- focus:border-[var(--accent)]/50
431
- focus:outline-none
432
- focus:ring-2
433
- focus:ring-[var(--accent)]/20
434
- ```
435
-
436
- The amber accent color is used consistently for all focus indicators, maintaining brand coherence while ensuring visibility.
437
-
438
- ---
439
-
440
- ## Bold Choices (Non-Negotiable)
441
-
442
- 1. **Layered darkness**: At least 3 distinct dark tones visible (#0A0A0F → #12121A → #1A1A24)
443
- 2. **Warm amber accent**: No cold blues—#F59E0B amber creates the signature warmth
444
- 3. **Ambient glow effects**:
445
- - Hero badge: subtle glow + pulsing dot
446
- - Buttons on hover: 0_0_20px glow at 0.4 opacity
447
- - Testimonial accent lines: soft glow
448
- - Background ambient orbs: massive blur (100-150px)
449
- 4. **Glass-effect cards**: Semi-transparent (0.6 opacity) with backdrop blur (8px)
450
- 5. **Generous spacing**: py-24 md:py-32 lg:py-40 sections feel spacious, not cramped
451
- 6. **Subtle borders**: rgba(255,255,255,0.08) - just 8% opacity, never harsh
452
- 7. **Geometric typography**: Space Grotesk for headlines, Inter for body, JetBrains Mono for labels
453
- 8. **Atmospheric background**: Fixed ambient orbs + subtle noise texture (0.015 opacity)
454
- 9. **Micro-interactions**:
455
- - Cards scale up on hover (1.02)
456
- - Buttons scale down on active (0.98)
457
- - Smooth FAQ accordion with height + opacity transitions
458
- - All focus states use amber accent
459
-
460
- ---
461
-
462
- ## What Success Looks Like
463
-
464
- A successfully implemented Minimalist Dark design should feel like:
465
-
466
- - Using Linear or Raycast at night
467
- - A premium developer tool's marketing site
468
- - Software designed for focus and calm
469
- - Warm light glowing in a dark room
470
-
471
- It should NOT feel like:
472
-
473
- - A generic dark theme with colors inverted
474
- - Harsh or high-contrast
475
- - Cold or unwelcoming
476
- - A copy of Minimalist Modern with dark colors
477
- - Just "dark mode"—it should have its own personality
478
- `</design-system>`
1
+ <design-system>
2
+ # Design Style: Minimalist Dark
3
+
4
+ ## Design Philosophy
5
+
6
+ ### Core Principle
7
+
8
+ **Atmospheric Depth.** Minimalist Dark creates visual interest not through color saturation or complex patterns, but through carefully orchestrated layers of darkness. Multiple shades of slate and charcoal stack upon each other, with warm amber accents that glow like embers in the night. The design breathes—generous whitespace (or rather, "darkspace") gives every element room to exist.
9
+
10
+ ### Visual Vibe
11
+
12
+ **Emotional Keywords**: Atmospheric, Sophisticated, Calm, Premium, Nocturnal, Refined, Spacious, Warm-cool contrast, Ethereal, Grounded
13
+
14
+ This is the visual language of:
15
+
16
+ - Premium dark mode applications (Linear, Raycast, Arc)
17
+ - High-end developer tools (Vercel, Railway)
18
+ - Luxury tech products at night
19
+ - A beautifully designed app you'd use at 2am
20
+ - The quiet confidence of well-crafted software
21
+
22
+ The design feels like working in a perfectly lit room at night—everything is visible, nothing strains the eyes, and there's a sense of calm focus.
23
+
24
+ ### What This Design Is NOT
25
+
26
+ - ❌ Pure black (uses rich slate tones instead)
27
+ - Harsh or high contrast
28
+ - ❌ Colorful or vibrant
29
+ - Cold or sterile
30
+ - Flat or shadowless
31
+ - Similar to Minimalist Modern (no blue gradients, no rounded-lg everywhere)
32
+ - Similar to Minimalist Monochrome (has color accent, softer edges, not editorial)
33
+
34
+ ### The DNA of Minimalist Dark
35
+
36
+ #### 1. Layered Slate Palette
37
+
38
+ Not pure black—rich slate tones (#0A0A0F as the deepest, #12121A as card backgrounds, #1A1A24 as elevated surfaces). Each layer is subtly different, creating depth through darkness itself.
39
+
40
+ #### 2. Warm Amber Accent
41
+
42
+ A single warm accent color (#F59E0B / amber-500) creates beautiful contrast against cool dark tones. Used sparingly for interactive elements, highlights, and focal points. The warmth prevents the design from feeling cold.
43
+
44
+ #### 3. Ambient Glow Effects
45
+
46
+ Soft, blurred glows behind key elements create atmospheric depth. Not harsh drop shadows—think ambient light bleeding through darkness. Applied to buttons on hover (0_0_20px with 0.4 opacity), hero badges, testimonial accent lines, and decorative orbs. The glows are subtle but critical to the atmospheric quality—they create that "light in the darkness" feeling.
47
+
48
+ #### 4. Glass-Effect Cards
49
+
50
+ Cards use semi-transparent backgrounds with subtle backdrop blur. Border opacity is low (10-15%). This creates a layered, floating effect without harsh edges.
51
+
52
+ #### 5. Geometric Sans Typography
53
+
54
+ Space Grotesk for display, Inter for body. Clean, geometric letterforms that feel modern and technical. Strong hierarchy through size and weight, not color variation.
55
+
56
+ #### 6. Generous Breathing Room
57
+
58
+ Extremely spacious layouts. Large section padding. Content doesn't crowdit floats in space. This breathing room is essential to the premium feel.
59
+
60
+ #### 7. Subtle Borders
61
+
62
+ Borders exist but are very subtle—usually 1px at 10-20% opacity. They define edges without drawing attention. No thick, heavy borders.
63
+
64
+ ### Differentiation from Other Minimalist Styles
65
+
66
+ | Aspect | Minimalist Modern | Minimalist Monochrome | Minimalist Dark |
67
+ | ---------- | ----------------------- | --------------------- | ------------------------ |
68
+ | Mode | Light | Light | **Dark** |
69
+ | Background | Off-white | Pure white | Deep slate (#0A0A0F) |
70
+ | Accent | Blue gradients | None (black only) | Warm amber (#F59E0B) |
71
+ | Typography | Sans + Display serif | Serif throughout | Geometric sans |
72
+ | Corners | Rounded (lg, xl) | Sharp (0px) | Soft rounded (md, lg) |
73
+ | Depth | Shadows + glows | Flat, no shadows | Ambient glows + glass |
74
+ | Feel | Energetic, contemporary | Editorial, austere | Atmospheric, calm |
75
+ | Borders | Subtle | Heavy black lines | Very subtle, low opacity |
76
+
77
+ ---
78
+
79
+ ## Design Token System
80
+
81
+ ### Colors (Dark Slate + Amber)
82
+
83
+ ```
84
+ background: #0A0A0F (Deep slate - almost black but warmer)
85
+ backgroundAlt: #12121A (Slightly elevated surfaces)
86
+ foreground: #FAFAFA (Near-white text)
87
+ muted: #1A1A24 (Card backgrounds, elevated surfaces)
88
+ mutedForeground: #71717A (Secondary text - zinc-500)
89
+ accent: #F59E0B (Amber-500 - warm, glowing)
90
+ accentForeground: #0A0A0F (Dark text on amber)
91
+ accentMuted: rgba(245, 158, 11, 0.15) (Amber glow backgrounds)
92
+ border: rgba(255, 255, 255, 0.08) (Very subtle borders)
93
+ borderHover: rgba(255, 255, 255, 0.15) (Borders on hover)
94
+ card: rgba(26, 26, 36, 0.6) (Semi-transparent cards)
95
+ cardSolid: #1A1A24 (Solid card background)
96
+ ring: #F59E0B (Focus ring)
97
+ ```
98
+
99
+ ### Typography
100
+
101
+ **Font Stack**:
102
+
103
+ - **Display/Headlines**: `"Space Grotesk", system-ui, sans-serif` - Geometric, technical, distinctive
104
+ - **Body**: `"Inter", system-ui, sans-serif` - Clean, highly readable
105
+ - **Mono**: `"JetBrains Mono", monospace` - For code, labels, metadata
106
+
107
+ **Type Scale**:
108
+
109
+ ```
110
+ xs: 0.75rem (12px)
111
+ sm: 0.875rem (14px)
112
+ base: 1rem (16px)
113
+ lg: 1.125rem (18px)
114
+ xl: 1.25rem (20px)
115
+ 2xl: 1.5rem (24px)
116
+ 3xl: 2rem (32px)
117
+ 4xl: 2.5rem (40px)
118
+ 5xl: 3.5rem (56px)
119
+ 6xl: 4.5rem (72px)
120
+ 7xl: 6rem (96px)
121
+ ```
122
+
123
+ **Tracking**:
124
+
125
+ - Headlines: `tracking-tight` (-0.025em)
126
+ - Body: `tracking-normal` (0)
127
+ - Labels/Mono: `tracking-wide` (0.025em)
128
+
129
+ ### Border Radius
130
+
131
+ ```
132
+ sm: 0.375rem (6px)
133
+ md: 0.5rem (8px) - Default for most elements
134
+ lg: 0.75rem (12px) - Cards, larger containers
135
+ xl: 1rem (16px) - Hero elements, large cards
136
+ 2xl: 1.5rem (24px) - Special decorative elements
137
+ full: 9999px - Pills, avatars
138
+ ```
139
+
140
+ Softer than sharp corners, but not as dramatically rounded as Modern.
141
+
142
+ ### Shadows & Glows
143
+
144
+ ```
145
+ // Subtle elevation shadows
146
+ sm: 0 1px 2px rgba(0, 0, 0, 0.3)
147
+ md: 0 4px 6px rgba(0, 0, 0, 0.3)
148
+ lg: 0 10px 15px rgba(0, 0, 0, 0.3)
149
+ xl: 0 20px 25px rgba(0, 0, 0, 0.4)
150
+
151
+ // Ambient glows (the signature effect)
152
+ glowSm: 0 0 20px rgba(245, 158, 11, 0.15)
153
+ glowMd: 0 0 40px rgba(245, 158, 11, 0.2)
154
+ glowLg: 0 0 60px rgba(245, 158, 11, 0.25)
155
+
156
+ // Border glow for highlighted elements
157
+ borderGlow: 0 0 0 1px rgba(245, 158, 11, 0.3), 0 0 20px rgba(245, 158, 11, 0.15)
158
+ ```
159
+
160
+ ### Textures & Patterns
161
+
162
+ **Subtle Noise Overlay** (very low opacity):
163
+
164
+ ```css
165
+ background-image: url("data:image/svg+xml,...noise...");
166
+ opacity: 0.02;
167
+ ```
168
+
169
+ **Radial Gradient Ambience** (for section backgrounds):
170
+
171
+ ```css
172
+ background: radial-gradient(ellipse at top, rgba(245, 158, 11, 0.03) 0%, transparent 50%);
173
+ ```
174
+
175
+ **Subtle Grid** (optional, for specific sections):
176
+
177
+ ```css
178
+ background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
179
+ linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
180
+ background-size: 40px 40px;
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Component Stylings
186
+
187
+ ### Buttons
188
+
189
+ **Primary Button**:
190
+
191
+ ```
192
+ - Background: #F59E0B (amber)
193
+ - Text: #0A0A0F (dark)
194
+ - Border: none
195
+ - Radius: rounded-lg (12px)
196
+ - Padding: px-6 py-3 (h-11 for default size)
197
+ - Font: font-medium, no uppercase
198
+ - Hover: brightness-110, shadow-[0_0_20px_rgba(245,158,11,0.4)]
199
+ - Active: scale-[0.98] (subtle press effect)
200
+ - Focus-visible: ring-2 ring-[var(--accent)] ring-offset-2
201
+ - Transition: all 200ms ease-out
202
+ ```
203
+
204
+ **Secondary/Outline Button**:
205
+
206
+ ```
207
+ - Background: transparent
208
+ - Text: #FAFAFA
209
+ - Border: 1px solid rgba(255,255,255,0.15)
210
+ - Hover: bg-white/5, border-white/25
211
+ - Active: scale-[0.98]
212
+ - Focus-visible: Same as primary
213
+ ```
214
+
215
+ **Ghost Button**:
216
+
217
+ ```
218
+ - Background: transparent
219
+ - Text: #FAFAFA
220
+ - Border: none
221
+ - Hover: bg-white/5
222
+ - Active: scale-[0.98]
223
+ - Focus-visible: Same as primary
224
+ ```
225
+
226
+ ### Cards (Glass Effect)
227
+
228
+ **Standard Card**:
229
+
230
+ ```css
231
+ background: rgba(26, 26, 36, 0.6);
232
+ backdrop-filter: blur(8px);
233
+ border: 1px solid rgba(255, 255, 255, 0.08);
234
+ border-radius: 12px;
235
+ transition: all 300ms ease-out;
236
+ ```
237
+
238
+ **Hover State** (when interactive):
239
+
240
+ ```css
241
+ border-color: rgba(255, 255, 255, 0.15);
242
+ background: rgba(26, 26, 36, 0.8);
243
+ transform: scale(1.02);
244
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.3);
245
+ ```
246
+
247
+ **Highlighted Card** (e.g., featured pricing tier):
248
+
249
+ ```css
250
+ /* Same as standard plus: */
251
+ border: 1px solid rgba(245, 158, 11, 0.2);
252
+ box-shadow: 0 0 0 1px rgba(245, 158, 11, 0.2), 0 0 30px rgba(245, 158, 11, 0.15);
253
+ /* On desktop, can also use scale(1.05) and translate-y for emphasis */
254
+ ```
255
+
256
+ ### Inputs
257
+
258
+ ```
259
+ - Background: rgba(26, 26, 36, 0.6)
260
+ - Backdrop-filter: blur(8px)
261
+ - Border: 1px solid rgba(255,255,255,0.08)
262
+ - Radius: rounded-lg
263
+ - Height: h-11 (44px for proper touch target)
264
+ - Text: #FAFAFA
265
+ - Placeholder: #71717A
266
+ - Focus: border-amber-500/50, ring-2 ring-amber-500/20, shadow-[0_0_20px_rgba(245,158,11,0.1)]
267
+ - Transition: all 200ms
268
+ ```
269
+
270
+ ---
271
+
272
+ ## Layout Strategy
273
+
274
+ ### Container
275
+
276
+ ```
277
+ max-width: max-w-6xl (72rem)
278
+ padding: px-6 md:px-8 lg:px-12
279
+ ```
280
+
281
+ ### Section Spacing
282
+
283
+ ```
284
+ padding: py-24 md:py-32 lg:py-40
285
+ ```
286
+
287
+ Very generous—let the dark space breathe.
288
+
289
+ ### Grid System
290
+
291
+ - Prefer simple grids: 2-col, 3-col
292
+ - Gap: gap-6 or gap-8
293
+ - Items don't need to touch—floating in space is fine
294
+
295
+ ---
296
+
297
+ ## Effects & Animation
298
+
299
+ **Motion Philosophy**: Smooth and subtle with delightful micro-interactions
300
+
301
+ - **Transitions**: 200-300ms, ease-out (cards use 300ms for smoother feel)
302
+ - **Hover effects**:
303
+ - Cards: Subtle scale (scale-[1.02]), border brightening, glow increase
304
+ - Buttons: Glow increase (shadow intensity up to 0.4), brightness boost
305
+ - Links: Color shift to accent on focus-visible
306
+ - **Active states**: Buttons have subtle press effect (scale-[0.98])
307
+ - **Animations**:
308
+ - Hero badge pulse dot (animate-pulse with glow)
309
+ - FAQ accordion smooth height transition (max-h with opacity fade)
310
+ - **No**: Bouncy animations, dramatic transforms
311
+ - **Yes**: Gentle fades, soft glows, smooth state changes, subtle scales
312
+
313
+ ```css
314
+ /* Cards */
315
+ transition: all 300ms ease-out;
316
+
317
+ /* Buttons & Quick Interactions */
318
+ transition: all 200ms ease-out;
319
+ ```
320
+
321
+ **Ambient Orbs** (decorative background elements):
322
+
323
+ - Large blurred circles with amber glow
324
+ - Very low opacity (0.02-0.04)
325
+ - Positioned strategically (top center, bottom right as fixed backgrounds)
326
+ - Blur values: 100px-150px for soft, diffused light
327
+ - Responsive: Smaller dimensions on mobile for performance (h-[400px] on mobile vs h-[600px] on desktop)
328
+
329
+ ---
330
+
331
+ ## Iconography
332
+
333
+ **Style**: Clean, thin strokes
334
+
335
+ ```tsx
336
+ <Icon size={20} strokeWidth={1.5} className="text-zinc-400" />
337
+ // Active/accent state:
338
+ <Icon size={20} strokeWidth={1.5} className="text-amber-500" />
339
+ ```
340
+
341
+ Icons should be subtle, not attention-grabbing. They support content, not dominate it.
342
+
343
+ ---
344
+
345
+ ## Responsive Strategy
346
+
347
+ **Mobile Adaptations**:
348
+
349
+ - Maintain dark palette and warm accent - no compromises on aesthetic
350
+ - Scale typography smoothly: `text-4xl sm:text-5xl md:text-6xl lg:text-7xl`
351
+ - Stack columns vertically (`lg:grid-cols-2` for two-column layouts)
352
+ - Reduce ambient glow orb sizes for performance (but keep them!)
353
+ - Generous vertical spacing maintained (`py-24 md:py-32 lg:py-40`)
354
+ - Touch targets: minimum 44px height (buttons use h-11 or h-12)
355
+ - Navigation hidden on mobile (`hidden md:flex`), hamburger menu implied
356
+ - All hover states also work as active states on touch devices
357
+ - Glass effects maintained (backdrop-blur is performant on modern mobile)
358
+
359
+ **Key Principle**: The atmospheric quality must survive on mobile. This isn't a "mobile-simplified" version—it's the same premium experience, just adapted to screen size.
360
+
361
+ ---
362
+
363
+ ## Accessibility
364
+
365
+ **Contrast**:
366
+
367
+ - Primary text (#FAFAFA) on background (#0A0A0F): 18.4:1 ratio (exceeds AAA)
368
+ - Muted text (#71717A) on background: 4.9:1 ratio (meets AA)
369
+ - Amber accent readable on both dark and light contexts
370
+
371
+ **Focus States**:
372
+ All interactive elements have clear, accessible focus states using `focus-visible`:
373
+
374
+ **Buttons**:
375
+
376
+ ```css
377
+ focus-visible:outline-none
378
+ focus-visible:ring-2
379
+ focus-visible:ring-[var(--accent)]
380
+ focus-visible:ring-offset-2
381
+ focus-visible:ring-offset-[var(--background)]
382
+ ```
383
+
384
+ **Links** (nav, footer, etc.):
385
+
386
+ ```css
387
+ focus-visible:text-[var(--accent)]
388
+ focus-visible:outline-none
389
+ ```
390
+
391
+ **Inputs**:
392
+
393
+ ```css
394
+ focus:border-[var(--accent)]/50
395
+ focus:outline-none
396
+ focus:ring-2
397
+ focus:ring-[var(--accent)]/20
398
+ ```
399
+
400
+ The amber accent color is used consistently for all focus indicators, maintaining brand coherence while ensuring visibility.
401
+
402
+ ---
403
+
404
+ ## Bold Choices (Non-Negotiable)
405
+
406
+ 1. **Layered darkness**: At least 3 distinct dark tones visible (#0A0A0F → #12121A → #1A1A24)
407
+ 2. **Warm amber accent**: No cold blues—#F59E0B amber creates the signature warmth
408
+ 3. **Ambient glow effects**:
409
+ - Hero badge: subtle glow + pulsing dot
410
+ - Buttons on hover: 0_0_20px glow at 0.4 opacity
411
+ - Testimonial accent lines: soft glow
412
+ - Background ambient orbs: massive blur (100-150px)
413
+ 4. **Glass-effect cards**: Semi-transparent (0.6 opacity) with backdrop blur (8px)
414
+ 5. **Generous spacing**: py-24 md:py-32 lg:py-40 sections feel spacious, not cramped
415
+ 6. **Subtle borders**: rgba(255,255,255,0.08) - just 8% opacity, never harsh
416
+ 7. **Geometric typography**: Space Grotesk for headlines, Inter for body, JetBrains Mono for labels
417
+ 8. **Atmospheric background**: Fixed ambient orbs + subtle noise texture (0.015 opacity)
418
+ 9. **Micro-interactions**:
419
+ - Cards scale up on hover (1.02)
420
+ - Buttons scale down on active (0.98)
421
+ - Smooth FAQ accordion with height + opacity transitions
422
+ - All focus states use amber accent
423
+
424
+ ---
425
+
426
+ ## What Success Looks Like
427
+
428
+ A successfully implemented Minimalist Dark design should feel like:
429
+
430
+ - Using Linear or Raycast at night
431
+ - A premium developer tool's marketing site
432
+ - Software designed for focus and calm
433
+ - Warm light glowing in a dark room
434
+
435
+ It should NOT feel like:
436
+
437
+ - A generic dark theme with colors inverted
438
+ - Harsh or high-contrast
439
+ - Cold or unwelcoming
440
+ - A copy of Minimalist Modern with dark colors
441
+ - Just "dark mode"—it should have its own personality
442
+ `</design-system>`