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,504 +1,472 @@
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
- - Identify the tech stack (e.g. React, Next.js, Vue, Tailwind, shadcn/ui, etc.).
6
- - Understand the existing design tokens (colors, spacing, typography, radii, shadows), global styles, and utility patterns.
7
- - Review the current component architecture (atoms/molecules/organisms, layout primitives, etc.) and naming conventions.
8
- - Note any constraints (legacy CSS, design library in use, performance or bundle-size considerations).
9
-
10
- Ask the user focused questions to understand the user's goals. Do they want:
11
- - a specific component or page redesigned in the new style,
12
- - existing components refactored to the new system, or
13
- - new pages/features built entirely in the new style?
14
-
15
- Once you understand the context and scope, do the following:
16
- - Propose a concise implementation plan that follows best practices, prioritizing:
17
- - centralizing design tokens,
18
- - reusability and composability of components,
19
- - minimizing duplication and one-off styles,
20
- - long-term maintainability and clear naming.
21
- - When writing code, match the user’s existing patterns (folder structure, naming, styling approach, and component patterns).
22
- - Explain your reasoning briefly as you go, so the user understands *why* you’re making certain architectural or design choices.
23
-
24
- Always aim to:
25
- - Preserve or improve accessibility.
26
- - Maintain visual consistency with the provided design system.
27
- - Leave the codebase in a cleaner, more coherent state than you found it.
28
- - Ensure layouts are responsive and usable across devices.
29
- - 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.
30
-
31
- </role>
32
-
33
- <design-system>
34
- # Design Style: Minimalist Monochrome
35
-
36
- ## Design Philosophy
37
-
38
- ### Core Principle
39
-
40
- **Reduction to Essence.** Minimalist Monochrome strips design down to its most fundamental elements: black, white, and typography. There are no accent colors to hide behind, no gradients to soften edges, no shadows to create false depth. Every design decision must stand on its own merit. This is design as discipline—where restraint becomes the ultimate form of expression.
41
-
42
- ### Visual Vibe
43
-
44
- **Emotional Keywords**: Austere, Authoritative, Timeless, Editorial, Intellectual, Dramatic, Refined, Stark, Confident, Uncompromising
45
-
46
- This is the visual language of:
47
- - High-end fashion editorials (Vogue, Harper's Bazaar covers)
48
- - Architectural monographs and museum catalogs
49
- - Luxury brand identities (Chanel, Celine, Bottega Veneta)
50
- - Award-winning book design and fine typography
51
- - Gallery exhibition materials
52
-
53
- The design commands respect through its confidence. It doesn't need color to be interesting—it uses scale, contrast, rhythm, and negative space to create visual drama.
54
-
55
- ### What This Design Is NOT
56
-
57
- - ❌ Colorful or playful
58
- - Soft, rounded, or friendly
59
- - ❌ Gradient-based or with accent colors
60
- - Shadow-heavy or "elevated"
61
- - Generic or template-like
62
- - Busy or cluttered
63
- - Similar to "Minimalist Modern" (no blue accents, no gradients, no rounded corners)
64
-
65
- ### The DNA of Minimalist Monochrome
66
-
67
- #### 1. Pure Black & White Palette
68
- No grays for primary elements—use true black (#000000) and true white (#FFFFFF). Gray is reserved only for secondary text and borders. The stark contrast creates immediate visual impact and forces deliberate hierarchy decisions.
69
-
70
- #### 2. Serif Typography as Hero
71
- Unlike modern sans-serif minimalism, this style embraces classical serif typefaces. The serif adds sophistication, editorial weight, and timeless elegance. Typography isn't just content—it's the primary visual element.
72
-
73
- #### 3. Oversized Type Scale
74
- Headlines don't just inform—they dominate. Expect 8xl, 9xl, and custom larger sizes. Words become graphic elements. Single words or short phrases can fill entire viewport widths.
75
-
76
- #### 4. Line-Based Visual System
77
- Instead of filled shapes, shadows, or backgrounds, this design uses lines: hairlines, thick rules, borders, underlines, strikethroughs. Lines create structure without mass.
78
-
79
- #### 5. Sharp Geometric Precision
80
- Zero border radius everywhere. Perfect 90-degree corners. Precise alignments. The geometry is architectural—think Bauhaus meets editorial print design.
81
-
82
- #### 6. Dramatic Negative Space
83
- Whitespace isn't empty—it's active. Generous margins and padding create breathing room that makes the black elements more impactful. The page breathes.
84
-
85
- #### 7. Inversion for Emphasis
86
- Instead of accent colors, use color inversion (black background, white text) to highlight important elements. This creates drama without breaking the monochrome rule.
87
-
88
- ### Differentiation from Minimalist Modern
89
-
90
- | Aspect | Minimalist Modern | Minimalist Monochrome |
91
- |--------|-------------------|----------------------|
92
- | Colors | Blue accent + gradients | Pure black & white only |
93
- | Typography | Sans-serif (Inter) | Serif (Playfair Display) |
94
- | Corners | Rounded (lg, xl, 2xl) | Sharp (0px everywhere) |
95
- | Depth | Shadows, glows, elevation | Flat, 2D, no shadows |
96
- | Visual elements | Gradient fills, colored icons | Lines, borders, typography |
97
- | Vibe | Contemporary tech | Editorial luxury |
98
- | Personality | Confident & approachable | Austere & commanding |
99
-
100
- ---
101
-
102
- ## Design Token System
103
-
104
- ### Colors (Strictly Monochrome)
105
-
106
- ```
107
- background: #FFFFFF (Pure white)
108
- foreground: #000000 (Pure black)
109
- muted: #F5F5F5 (Off-white for subtle backgrounds)
110
- mutedForeground: #525252 (Dark gray for secondary text)
111
- accent: #000000 (Black IS the accent)
112
- accentForeground: #FFFFFF (White on black)
113
- border: #000000 (Black borders)
114
- borderLight: #E5E5E5 (Light gray for subtle dividers)
115
- card: #FFFFFF (White cards)
116
- cardForeground: #000000 (Black text)
117
- ring: #000000 (Black focus rings)
118
- ```
119
-
120
- **Rule**: No other colors. Ever. The palette is absolute.
121
-
122
- ### Typography
123
-
124
- **Font Stack**:
125
- - **Display/Headlines**: `"Playfair Display", Georgia, serif` - Elegant, high-contrast serif with beautiful italics
126
- - **Body**: `"Source Serif 4", Georgia, serif` - Highly readable serif for long-form text
127
- - **Mono/Labels**: `"JetBrains Mono", monospace` - For dates, metadata, technical details
128
-
129
- **Type Scale** (Dramatic range):
130
- ```
131
- xs: 0.75rem (12px) - Fine print, metadata
132
- sm: 0.875rem (14px) - Captions, labels
133
- base: 1rem (16px) - Body text minimum
134
- lg: 1.125rem (18px) - Body text preferred
135
- xl: 1.25rem (20px) - Lead paragraphs
136
- 2xl: 1.5rem (24px) - Section intros
137
- 3xl: 2rem (32px) - Subheadings
138
- 4xl: 2.5rem (40px) - Section titles
139
- 5xl: 3.5rem (56px) - Page titles
140
- 6xl: 4.5rem (72px) - Hero subheadings
141
- 7xl: 6rem (96px) - Hero headlines
142
- 8xl: 8rem (128px) - Display headlines
143
- 9xl: 10rem (160px) - Oversized statements
144
- ```
145
-
146
- **Tracking & Leading**:
147
- - Headlines: `tracking-tight` (-0.025em) or `tracking-tighter` (-0.05em)
148
- - Body: `tracking-normal` (0)
149
- - Small caps/Labels: `tracking-widest` (0.1em)
150
- - Line heights: `leading-none` (1) for display, `leading-relaxed` (1.625) for body
151
-
152
- ### Border Radius
153
-
154
- ```
155
- ALL VALUES: 0px
156
- ```
157
-
158
- No exceptions. Every element has sharp, 90-degree corners. This is non-negotiable and defines the style's architectural character.
159
-
160
- ### Borders & Lines
161
-
162
- ```
163
- hairline: 1px solid #E5E5E5 (Subtle dividers)
164
- thin: 1px solid #000000 (Standard borders)
165
- medium: 2px solid #000000 (Emphasis borders)
166
- thick: 4px solid #000000 (Heavy rules, section dividers)
167
- ultra: 8px solid #000000 (Maximum impact)
168
- ```
169
-
170
- **Usage**:
171
- - Horizontal rules between sections (thick or ultra)
172
- - Vertical dividers between columns (thin)
173
- - Card borders (thin or medium)
174
- - Underlines for links (thin, on hover)
175
-
176
- ### Shadows
177
-
178
- ```
179
- NONE
180
- ```
181
-
182
- This design has zero drop shadows. Depth is created through:
183
- - Color inversion (black/white swap)
184
- - Border weight variation
185
- - Scale contrast
186
- - Negative space
187
-
188
- ### Textures & Patterns
189
-
190
- **CRITICAL**: These textures are REQUIRED to prevent flat design. Apply strategically across sections.
191
-
192
- **Primary Pattern: Horizontal Lines (Global)**
193
- ```css
194
- background-image: repeating-linear-gradient(
195
- 0deg,
196
- transparent,
197
- transparent 1px,
198
- #000 1px,
199
- #000 2px
200
- );
201
- background-size: 100% 4px;
202
- opacity: 0.015;
203
- ```
204
-
205
- **Secondary Pattern: Grid (for editorial sections like Product Detail)**
206
- ```css
207
- background-image:
208
- linear-gradient(#00000008 1px, transparent 1px),
209
- linear-gradient(90deg, #00000008 1px, transparent 1px);
210
- background-size: 40px 40px;
211
- opacity: 0.015;
212
- ```
213
-
214
- **Diagonal Lines (for process/timeline sections)**
215
- ```css
216
- background-image: repeating-linear-gradient(
217
- 45deg,
218
- transparent,
219
- transparent 40px,
220
- #00000008 40px,
221
- #00000008 42px
222
- );
223
- opacity: 0.01;
224
- ```
225
-
226
- **Noise Texture (global, for paper-like quality)**
227
- ```css
228
- background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
229
- opacity: 0.02;
230
- ```
231
-
232
- **Inverted Section Textures**
233
- For dark backgrounds (Stats, Final CTA), use white-based textures:
234
- ```css
235
- /* Vertical lines for Stats */
236
- background-image: repeating-linear-gradient(
237
- 90deg,
238
- transparent,
239
- transparent 1px,
240
- #fff 1px,
241
- #fff 2px
242
- );
243
- background-size: 4px 100%;
244
- opacity: 0.03;
245
-
246
- /* Radial gradient for Final CTA */
247
- background-image: radial-gradient(
248
- circle at top center,
249
- #ffffff,
250
- transparent 70%
251
- );
252
- opacity: 0.05;
253
- ```
254
-
255
- ---
256
-
257
- ## Component Stylings
258
-
259
- ### Buttons
260
-
261
- **Primary Button**:
262
- ```
263
- - Background: #000000 (black)
264
- - Text: #FFFFFF (white)
265
- - Border: none
266
- - Padding: px-8 py-4 (generous)
267
- - Font: uppercase, tracking-widest, font-medium, text-sm
268
- - Hover: Invert to white bg, black text, black border
269
- - Transition: Instant (no easing, 0ms or 100ms max)
270
- ```
271
-
272
- **Secondary/Outline Button**:
273
- ```
274
- - Background: transparent
275
- - Text: #000000
276
- - Border: 2px solid #000000
277
- - Hover: Fill black, text white
278
- ```
279
-
280
- **Ghost Button**:
281
- ```
282
- - Background: transparent
283
- - Text: #000000
284
- - Border: none
285
- - Text decoration: underline on hover
286
- - Style: Looks like a text link
287
- ```
288
-
289
- **Button Shape**: Always rectangular, never rounded. Consider adding a small arrow (→) for CTAs.
290
-
291
- ### Cards/Containers
292
-
293
- **Standard Card**:
294
- ```
295
- - Background: #FFFFFF
296
- - Border: 1px solid #000000
297
- - Padding: p-6 or p-8
298
- - No shadow, no radius
299
- ```
300
-
301
- **Inverted Card** (for emphasis):
302
- ```
303
- - Background: #000000
304
- - Text: #FFFFFF
305
- - Border: none
306
- - Use sparingly for highlighted content
307
- ```
308
-
309
- **Borderless Card**:
310
- ```
311
- - No border, no background
312
- - Content separated by generous whitespace
313
- - Use horizontal rules above/below if needed
314
- ```
315
-
316
- ### Inputs
317
-
318
- **Text Input**:
319
- ```
320
- - Background: #FFFFFF
321
- - Border: 2px solid #000000 (bottom only, or full)
322
- - No radius
323
- - Placeholder: #525252 italic
324
- - Focus: Border thickens to 3px or 4px
325
- - No colored focus ring—just border change
326
- ```
327
-
328
- **Textarea**: Same as input, with visible resize handle.
329
-
330
- ---
331
-
332
- ## Layout Strategy
333
-
334
- ### Container
335
- ```
336
- max-width: max-w-6xl (72rem / 1152px)
337
- padding: px-6 md:px-8 lg:px-12
338
- ```
339
-
340
- ### Section Spacing
341
- ```
342
- Vertical padding: py-24 md:py-32 lg:py-40
343
- Between sections: Thick horizontal rule (4px or 8px black)
344
- ```
345
-
346
- ### Grid System
347
- - Use CSS Grid for precise control
348
- - 12-column base grid for flexibility
349
- - Strong alignment to vertical rhythm
350
-
351
- ---
352
-
353
- ## Effects & Animation
354
-
355
- **Motion Philosophy**: **Minimal and Instant**
356
-
357
- This design favors stillness and instant state changes. When animation exists, it's:
358
- - **Instant**: 0-100ms transitions maximum
359
- - **Binary**: Sharp on/off states, not gradual
360
- - **Purposeful**: Only for state changes (hover, focus)
361
-
362
- **Hover Effects** (Applied):
363
- - **Cards/Features**: Full color inversion (bg, text, borders) with 100ms transition
364
- - **Buttons**: Color inversion with transition-none for instant feedback
365
- - **Blog Images**: Border thickens (2px → 4px), image scales 105% and removes grayscale (300ms)
366
- - **Links**: Underline appearance (instant)
367
- - **Testimonials**: Quote mark opacity increases, bottom border thickens
368
-
369
- **Focus States** (Accessibility Required):
370
- - **Buttons**: 3px solid outline with 3px offset
371
- - **Inputs**: Border thickens from 2px to 4px (bottom only)
372
- - **Links**: Border appears/thickens
373
- - **Interactive elements**: 3px solid outline with 2px offset
374
- - All outlines use `focus-visible` to avoid mouse click outlines
375
-
376
- **Specific Implementations**:
377
- ```tsx
378
- // Feature card hover
379
- className="group bg-[var(--background)] p-8 transition-colors duration-100 hover:bg-[var(--foreground)] hover:text-[var(--background)]"
380
-
381
- // Blog image hover
382
- className="border-2 transition-all duration-100 group-hover:border-[4px]"
383
- className="grayscale transition-all duration-300 group-hover:scale-105 group-hover:grayscale-0"
384
-
385
- // Testimonial hover
386
- className="group-hover:opacity-20 transition-opacity duration-100" // quote mark
387
- className="transition-all duration-100 group-hover:border-t-[3px]" // border
388
- ```
389
-
390
- **No**:
391
- - Bouncy animations
392
- - Floating elements
393
- - Parallax scrolling
394
- - Slow easing functions
395
- - Gradient animations
396
-
397
- ---
398
-
399
- ## Iconography
400
-
401
- **Style**: Outlined, thin strokes (strokeWidth: 1 or 1.5)
402
-
403
- **Usage**:
404
- - Icons inside circles with black stroke, white fill
405
- - Or standalone with no container
406
- - Size: Consistent 20px or 24px
407
- - Color: Always black (#000000)
408
-
409
- **Lucide Icons Settings**:
410
- ```tsx
411
- <Icon size={20} strokeWidth={1.5} className="text-black" />
412
- ```
413
-
414
- ---
415
-
416
- ## Responsive Strategy
417
-
418
- **Mobile Adaptations**:
419
- - Maintain sharp corners and black/white palette
420
- - Reduce oversized headlines (9xl → 5xl on mobile)
421
- - Stack columns vertically
422
- - Borders become full-width horizontal rules
423
- - Generous vertical spacing maintained
424
-
425
- **Key Principle**: The monochrome drama must survive on mobile. Don't default to generic mobile patterns.
426
-
427
- ---
428
-
429
- ## Accessibility
430
-
431
- **Contrast**: Pure black on white exceeds WCAG AAA requirements (21:1 ratio).
432
-
433
- **Focus States** (REQUIRED for all interactive elements):
434
- ```
435
- Buttons & Primary Interactive Elements:
436
- - Outline: 3px solid #000000
437
- - Outline-offset: 3px
438
- - Use focus-visible to prevent mouse click outlines
439
-
440
- Text Inputs:
441
- - Border thickens from 2px to 4px on focus
442
- - Bottom border only
443
- - No outline (border change is sufficient)
444
-
445
- Links in Navigation:
446
- - Border appears/thickens on focus-visible
447
- - Consistent with hover state
448
-
449
- Secondary Interactive Elements (social icons, FAQ buttons):
450
- - Outline: 3px solid #000000
451
- - Outline-offset: 2px
452
- ```
453
-
454
- **Implementation**:
455
- ```tsx
456
- // Button focus
457
- focus-visible:outline focus-visible:outline-3 focus-visible:outline-[var(--foreground)] focus-visible:outline-offset-3
458
-
459
- // Input focus
460
- focus:border-b-[4px] focus:outline-none focus-visible:border-b-[4px]
461
-
462
- // Link focus
463
- focus-visible:border-[var(--foreground)] focus-visible:outline-none
464
- ```
465
-
466
- **Skip Links**: Visible, black button at top of page.
467
-
468
- **Touch Targets**: Minimum 44px×44px for all interactive elements on mobile.
469
-
470
- ---
471
-
472
- ## Bold Choices (Non-Negotiable)
473
-
474
- 1. **Oversized Hero Typography**: At least one word in 8xl or larger (9xl on desktop)
475
- 2. **Hero Decorative Elements**: Thick rule with small bordered square for visual punctuation
476
- 3. **Inverted Stats Section**: Black background, white text, with subtle vertical line texture
477
- 4. **No Accent Colors**: Resist the temptation—black IS the accent
478
- 5. **Heavy Horizontal Rules**: 4px black lines between ALL major sections
479
- 6. **Editorial Pull Quotes**: Testimonials as large italic serif with oversized quotation marks
480
- 7. **Sharp Everything**: Zero border-radius across all elements
481
- 8. **Instant Interactions**: 100ms transitions maximum, mostly instant
482
- 9. **Typography as Graphics**: Headlines that function as visual elements, not just text
483
- 10. **Layered Textures**: Multiple subtle patterns for depth (NOT flat design)
484
- 11. **Boxed Drop Cap**: First paragraph of Product Detail has bordered box drop cap
485
- 12. **Elevated Pricing Tier**: Highlighted tier extends vertically on desktop
486
- 13. **Hover Inversions**: Feature cards and pricing tiers invert on hover
487
- 14. **Image Borders Thicken**: Blog images border weight increases on hover with scale effect
488
-
489
- ---
490
-
491
- ## What Success Looks Like
492
-
493
- A successfully implemented Minimalist Monochrome design should feel like:
494
- - Opening a high-end fashion magazine
495
- - Walking through a modern art gallery
496
- - Reading an award-winning architectural monograph
497
- - Browsing a luxury brand's website
498
-
499
- It should NOT feel like:
500
- - A generic website template
501
- - A tech startup landing page
502
- - Something that "needs a pop of color"
503
- - Minimalist Modern with the colors removed
504
- </design-system>
1
+ <design-system>
2
+ # Design Style: Minimalist Monochrome
3
+
4
+ ## Design Philosophy
5
+
6
+ ### Core Principle
7
+
8
+ **Reduction to Essence.** Minimalist Monochrome strips design down to its most fundamental elements: black, white, and typography. There are no accent colors to hide behind, no gradients to soften edges, no shadows to create false depth. Every design decision must stand on its own merit. This is design as discipline—where restraint becomes the ultimate form of expression.
9
+
10
+ ### Visual Vibe
11
+
12
+ **Emotional Keywords**: Austere, Authoritative, Timeless, Editorial, Intellectual, Dramatic, Refined, Stark, Confident, Uncompromising
13
+
14
+ This is the visual language of:
15
+ - High-end fashion editorials (Vogue, Harper's Bazaar covers)
16
+ - Architectural monographs and museum catalogs
17
+ - Luxury brand identities (Chanel, Celine, Bottega Veneta)
18
+ - Award-winning book design and fine typography
19
+ - Gallery exhibition materials
20
+
21
+ The design commands respect through its confidence. It doesn't need color to be interesting—it uses scale, contrast, rhythm, and negative space to create visual drama.
22
+
23
+ ### What This Design Is NOT
24
+
25
+ - Colorful or playful
26
+ - Soft, rounded, or friendly
27
+ - Gradient-based or with accent colors
28
+ - Shadow-heavy or "elevated"
29
+ - Generic or template-like
30
+ - ❌ Busy or cluttered
31
+ - ❌ Similar to "Minimalist Modern" (no blue accents, no gradients, no rounded corners)
32
+
33
+ ### The DNA of Minimalist Monochrome
34
+
35
+ #### 1. Pure Black & White Palette
36
+ No grays for primary elements—use true black (#000000) and true white (#FFFFFF). Gray is reserved only for secondary text and borders. The stark contrast creates immediate visual impact and forces deliberate hierarchy decisions.
37
+
38
+ #### 2. Serif Typography as Hero
39
+ Unlike modern sans-serif minimalism, this style embraces classical serif typefaces. The serif adds sophistication, editorial weight, and timeless elegance. Typography isn't just content—it's the primary visual element.
40
+
41
+ #### 3. Oversized Type Scale
42
+ Headlines don't just inform—they dominate. Expect 8xl, 9xl, and custom larger sizes. Words become graphic elements. Single words or short phrases can fill entire viewport widths.
43
+
44
+ #### 4. Line-Based Visual System
45
+ Instead of filled shapes, shadows, or backgrounds, this design uses lines: hairlines, thick rules, borders, underlines, strikethroughs. Lines create structure without mass.
46
+
47
+ #### 5. Sharp Geometric Precision
48
+ Zero border radius everywhere. Perfect 90-degree corners. Precise alignments. The geometry is architectural—think Bauhaus meets editorial print design.
49
+
50
+ #### 6. Dramatic Negative Space
51
+ Whitespace isn't empty—it's active. Generous margins and padding create breathing room that makes the black elements more impactful. The page breathes.
52
+
53
+ #### 7. Inversion for Emphasis
54
+ Instead of accent colors, use color inversion (black background, white text) to highlight important elements. This creates drama without breaking the monochrome rule.
55
+
56
+ ### Differentiation from Minimalist Modern
57
+
58
+ | Aspect | Minimalist Modern | Minimalist Monochrome |
59
+ |--------|-------------------|----------------------|
60
+ | Colors | Blue accent + gradients | Pure black & white only |
61
+ | Typography | Sans-serif (Inter) | Serif (Playfair Display) |
62
+ | Corners | Rounded (lg, xl, 2xl) | Sharp (0px everywhere) |
63
+ | Depth | Shadows, glows, elevation | Flat, 2D, no shadows |
64
+ | Visual elements | Gradient fills, colored icons | Lines, borders, typography |
65
+ | Vibe | Contemporary tech | Editorial luxury |
66
+ | Personality | Confident & approachable | Austere & commanding |
67
+
68
+ ---
69
+
70
+ ## Design Token System
71
+
72
+ ### Colors (Strictly Monochrome)
73
+
74
+ ```
75
+ background: #FFFFFF (Pure white)
76
+ foreground: #000000 (Pure black)
77
+ muted: #F5F5F5 (Off-white for subtle backgrounds)
78
+ mutedForeground: #525252 (Dark gray for secondary text)
79
+ accent: #000000 (Black IS the accent)
80
+ accentForeground: #FFFFFF (White on black)
81
+ border: #000000 (Black borders)
82
+ borderLight: #E5E5E5 (Light gray for subtle dividers)
83
+ card: #FFFFFF (White cards)
84
+ cardForeground: #000000 (Black text)
85
+ ring: #000000 (Black focus rings)
86
+ ```
87
+
88
+ **Rule**: No other colors. Ever. The palette is absolute.
89
+
90
+ ### Typography
91
+
92
+ **Font Stack**:
93
+ - **Display/Headlines**: `"Playfair Display", Georgia, serif` - Elegant, high-contrast serif with beautiful italics
94
+ - **Body**: `"Source Serif 4", Georgia, serif` - Highly readable serif for long-form text
95
+ - **Mono/Labels**: `"JetBrains Mono", monospace` - For dates, metadata, technical details
96
+
97
+ **Type Scale** (Dramatic range):
98
+ ```
99
+ xs: 0.75rem (12px) - Fine print, metadata
100
+ sm: 0.875rem (14px) - Captions, labels
101
+ base: 1rem (16px) - Body text minimum
102
+ lg: 1.125rem (18px) - Body text preferred
103
+ xl: 1.25rem (20px) - Lead paragraphs
104
+ 2xl: 1.5rem (24px) - Section intros
105
+ 3xl: 2rem (32px) - Subheadings
106
+ 4xl: 2.5rem (40px) - Section titles
107
+ 5xl: 3.5rem (56px) - Page titles
108
+ 6xl: 4.5rem (72px) - Hero subheadings
109
+ 7xl: 6rem (96px) - Hero headlines
110
+ 8xl: 8rem (128px) - Display headlines
111
+ 9xl: 10rem (160px) - Oversized statements
112
+ ```
113
+
114
+ **Tracking & Leading**:
115
+ - Headlines: `tracking-tight` (-0.025em) or `tracking-tighter` (-0.05em)
116
+ - Body: `tracking-normal` (0)
117
+ - Small caps/Labels: `tracking-widest` (0.1em)
118
+ - Line heights: `leading-none` (1) for display, `leading-relaxed` (1.625) for body
119
+
120
+ ### Border Radius
121
+
122
+ ```
123
+ ALL VALUES: 0px
124
+ ```
125
+
126
+ No exceptions. Every element has sharp, 90-degree corners. This is non-negotiable and defines the style's architectural character.
127
+
128
+ ### Borders & Lines
129
+
130
+ ```
131
+ hairline: 1px solid #E5E5E5 (Subtle dividers)
132
+ thin: 1px solid #000000 (Standard borders)
133
+ medium: 2px solid #000000 (Emphasis borders)
134
+ thick: 4px solid #000000 (Heavy rules, section dividers)
135
+ ultra: 8px solid #000000 (Maximum impact)
136
+ ```
137
+
138
+ **Usage**:
139
+ - Horizontal rules between sections (thick or ultra)
140
+ - Vertical dividers between columns (thin)
141
+ - Card borders (thin or medium)
142
+ - Underlines for links (thin, on hover)
143
+
144
+ ### Shadows
145
+
146
+ ```
147
+ NONE
148
+ ```
149
+
150
+ This design has zero drop shadows. Depth is created through:
151
+ - Color inversion (black/white swap)
152
+ - Border weight variation
153
+ - Scale contrast
154
+ - Negative space
155
+
156
+ ### Textures & Patterns
157
+
158
+ **CRITICAL**: These textures are REQUIRED to prevent flat design. Apply strategically across sections.
159
+
160
+ **Primary Pattern: Horizontal Lines (Global)**
161
+ ```css
162
+ background-image: repeating-linear-gradient(
163
+ 0deg,
164
+ transparent,
165
+ transparent 1px,
166
+ #000 1px,
167
+ #000 2px
168
+ );
169
+ background-size: 100% 4px;
170
+ opacity: 0.015;
171
+ ```
172
+
173
+ **Secondary Pattern: Grid (for editorial sections like Product Detail)**
174
+ ```css
175
+ background-image:
176
+ linear-gradient(#00000008 1px, transparent 1px),
177
+ linear-gradient(90deg, #00000008 1px, transparent 1px);
178
+ background-size: 40px 40px;
179
+ opacity: 0.015;
180
+ ```
181
+
182
+ **Diagonal Lines (for process/timeline sections)**
183
+ ```css
184
+ background-image: repeating-linear-gradient(
185
+ 45deg,
186
+ transparent,
187
+ transparent 40px,
188
+ #00000008 40px,
189
+ #00000008 42px
190
+ );
191
+ opacity: 0.01;
192
+ ```
193
+
194
+ **Noise Texture (global, for paper-like quality)**
195
+ ```css
196
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
197
+ opacity: 0.02;
198
+ ```
199
+
200
+ **Inverted Section Textures**
201
+ For dark backgrounds (Stats, Final CTA), use white-based textures:
202
+ ```css
203
+ /* Vertical lines for Stats */
204
+ background-image: repeating-linear-gradient(
205
+ 90deg,
206
+ transparent,
207
+ transparent 1px,
208
+ #fff 1px,
209
+ #fff 2px
210
+ );
211
+ background-size: 4px 100%;
212
+ opacity: 0.03;
213
+
214
+ /* Radial gradient for Final CTA */
215
+ background-image: radial-gradient(
216
+ circle at top center,
217
+ #ffffff,
218
+ transparent 70%
219
+ );
220
+ opacity: 0.05;
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Component Stylings
226
+
227
+ ### Buttons
228
+
229
+ **Primary Button**:
230
+ ```
231
+ - Background: #000000 (black)
232
+ - Text: #FFFFFF (white)
233
+ - Border: none
234
+ - Padding: px-8 py-4 (generous)
235
+ - Font: uppercase, tracking-widest, font-medium, text-sm
236
+ - Hover: Invert to white bg, black text, black border
237
+ - Transition: Instant (no easing, 0ms or 100ms max)
238
+ ```
239
+
240
+ **Secondary/Outline Button**:
241
+ ```
242
+ - Background: transparent
243
+ - Text: #000000
244
+ - Border: 2px solid #000000
245
+ - Hover: Fill black, text white
246
+ ```
247
+
248
+ **Ghost Button**:
249
+ ```
250
+ - Background: transparent
251
+ - Text: #000000
252
+ - Border: none
253
+ - Text decoration: underline on hover
254
+ - Style: Looks like a text link
255
+ ```
256
+
257
+ **Button Shape**: Always rectangular, never rounded. Consider adding a small arrow (→) for CTAs.
258
+
259
+ ### Cards/Containers
260
+
261
+ **Standard Card**:
262
+ ```
263
+ - Background: #FFFFFF
264
+ - Border: 1px solid #000000
265
+ - Padding: p-6 or p-8
266
+ - No shadow, no radius
267
+ ```
268
+
269
+ **Inverted Card** (for emphasis):
270
+ ```
271
+ - Background: #000000
272
+ - Text: #FFFFFF
273
+ - Border: none
274
+ - Use sparingly for highlighted content
275
+ ```
276
+
277
+ **Borderless Card**:
278
+ ```
279
+ - No border, no background
280
+ - Content separated by generous whitespace
281
+ - Use horizontal rules above/below if needed
282
+ ```
283
+
284
+ ### Inputs
285
+
286
+ **Text Input**:
287
+ ```
288
+ - Background: #FFFFFF
289
+ - Border: 2px solid #000000 (bottom only, or full)
290
+ - No radius
291
+ - Placeholder: #525252 italic
292
+ - Focus: Border thickens to 3px or 4px
293
+ - No colored focus ring—just border change
294
+ ```
295
+
296
+ **Textarea**: Same as input, with visible resize handle.
297
+
298
+ ---
299
+
300
+ ## Layout Strategy
301
+
302
+ ### Container
303
+ ```
304
+ max-width: max-w-6xl (72rem / 1152px)
305
+ padding: px-6 md:px-8 lg:px-12
306
+ ```
307
+
308
+ ### Section Spacing
309
+ ```
310
+ Vertical padding: py-24 md:py-32 lg:py-40
311
+ Between sections: Thick horizontal rule (4px or 8px black)
312
+ ```
313
+
314
+ ### Grid System
315
+ - Use CSS Grid for precise control
316
+ - 12-column base grid for flexibility
317
+ - Strong alignment to vertical rhythm
318
+
319
+ ---
320
+
321
+ ## Effects & Animation
322
+
323
+ **Motion Philosophy**: **Minimal and Instant**
324
+
325
+ This design favors stillness and instant state changes. When animation exists, it's:
326
+ - **Instant**: 0-100ms transitions maximum
327
+ - **Binary**: Sharp on/off states, not gradual
328
+ - **Purposeful**: Only for state changes (hover, focus)
329
+
330
+ **Hover Effects** (Applied):
331
+ - **Cards/Features**: Full color inversion (bg, text, borders) with 100ms transition
332
+ - **Buttons**: Color inversion with transition-none for instant feedback
333
+ - **Blog Images**: Border thickens (2px → 4px), image scales 105% and removes grayscale (300ms)
334
+ - **Links**: Underline appearance (instant)
335
+ - **Testimonials**: Quote mark opacity increases, bottom border thickens
336
+
337
+ **Focus States** (Accessibility Required):
338
+ - **Buttons**: 3px solid outline with 3px offset
339
+ - **Inputs**: Border thickens from 2px to 4px (bottom only)
340
+ - **Links**: Border appears/thickens
341
+ - **Interactive elements**: 3px solid outline with 2px offset
342
+ - All outlines use `focus-visible` to avoid mouse click outlines
343
+
344
+ **Specific Implementations**:
345
+ ```tsx
346
+ // Feature card hover
347
+ className="group bg-[var(--background)] p-8 transition-colors duration-100 hover:bg-[var(--foreground)] hover:text-[var(--background)]"
348
+
349
+ // Blog image hover
350
+ className="border-2 transition-all duration-100 group-hover:border-[4px]"
351
+ className="grayscale transition-all duration-300 group-hover:scale-105 group-hover:grayscale-0"
352
+
353
+ // Testimonial hover
354
+ className="group-hover:opacity-20 transition-opacity duration-100" // quote mark
355
+ className="transition-all duration-100 group-hover:border-t-[3px]" // border
356
+ ```
357
+
358
+ **No**:
359
+ - Bouncy animations
360
+ - Floating elements
361
+ - Parallax scrolling
362
+ - Slow easing functions
363
+ - Gradient animations
364
+
365
+ ---
366
+
367
+ ## Iconography
368
+
369
+ **Style**: Outlined, thin strokes (strokeWidth: 1 or 1.5)
370
+
371
+ **Usage**:
372
+ - Icons inside circles with black stroke, white fill
373
+ - Or standalone with no container
374
+ - Size: Consistent 20px or 24px
375
+ - Color: Always black (#000000)
376
+
377
+ **Lucide Icons Settings**:
378
+ ```tsx
379
+ <Icon size={20} strokeWidth={1.5} className="text-black" />
380
+ ```
381
+
382
+ ---
383
+
384
+ ## Responsive Strategy
385
+
386
+ **Mobile Adaptations**:
387
+ - Maintain sharp corners and black/white palette
388
+ - Reduce oversized headlines (9xl → 5xl on mobile)
389
+ - Stack columns vertically
390
+ - Borders become full-width horizontal rules
391
+ - Generous vertical spacing maintained
392
+
393
+ **Key Principle**: The monochrome drama must survive on mobile. Don't default to generic mobile patterns.
394
+
395
+ ---
396
+
397
+ ## Accessibility
398
+
399
+ **Contrast**: Pure black on white exceeds WCAG AAA requirements (21:1 ratio).
400
+
401
+ **Focus States** (REQUIRED for all interactive elements):
402
+ ```
403
+ Buttons & Primary Interactive Elements:
404
+ - Outline: 3px solid #000000
405
+ - Outline-offset: 3px
406
+ - Use focus-visible to prevent mouse click outlines
407
+
408
+ Text Inputs:
409
+ - Border thickens from 2px to 4px on focus
410
+ - Bottom border only
411
+ - No outline (border change is sufficient)
412
+
413
+ Links in Navigation:
414
+ - Border appears/thickens on focus-visible
415
+ - Consistent with hover state
416
+
417
+ Secondary Interactive Elements (social icons, FAQ buttons):
418
+ - Outline: 3px solid #000000
419
+ - Outline-offset: 2px
420
+ ```
421
+
422
+ **Implementation**:
423
+ ```tsx
424
+ // Button focus
425
+ focus-visible:outline focus-visible:outline-3 focus-visible:outline-[var(--foreground)] focus-visible:outline-offset-3
426
+
427
+ // Input focus
428
+ focus:border-b-[4px] focus:outline-none focus-visible:border-b-[4px]
429
+
430
+ // Link focus
431
+ focus-visible:border-[var(--foreground)] focus-visible:outline-none
432
+ ```
433
+
434
+ **Skip Links**: Visible, black button at top of page.
435
+
436
+ **Touch Targets**: Minimum 44px×44px for all interactive elements on mobile.
437
+
438
+ ---
439
+
440
+ ## Bold Choices (Non-Negotiable)
441
+
442
+ 1. **Oversized Hero Typography**: At least one word in 8xl or larger (9xl on desktop)
443
+ 2. **Hero Decorative Elements**: Thick rule with small bordered square for visual punctuation
444
+ 3. **Inverted Stats Section**: Black background, white text, with subtle vertical line texture
445
+ 4. **No Accent Colors**: Resist the temptation—black IS the accent
446
+ 5. **Heavy Horizontal Rules**: 4px black lines between ALL major sections
447
+ 6. **Editorial Pull Quotes**: Testimonials as large italic serif with oversized quotation marks
448
+ 7. **Sharp Everything**: Zero border-radius across all elements
449
+ 8. **Instant Interactions**: 100ms transitions maximum, mostly instant
450
+ 9. **Typography as Graphics**: Headlines that function as visual elements, not just text
451
+ 10. **Layered Textures**: Multiple subtle patterns for depth (NOT flat design)
452
+ 11. **Boxed Drop Cap**: First paragraph of Product Detail has bordered box drop cap
453
+ 12. **Elevated Pricing Tier**: Highlighted tier extends vertically on desktop
454
+ 13. **Hover Inversions**: Feature cards and pricing tiers invert on hover
455
+ 14. **Image Borders Thicken**: Blog images border weight increases on hover with scale effect
456
+
457
+ ---
458
+
459
+ ## What Success Looks Like
460
+
461
+ A successfully implemented Minimalist Monochrome design should feel like:
462
+ - Opening a high-end fashion magazine
463
+ - Walking through a modern art gallery
464
+ - Reading an award-winning architectural monograph
465
+ - Browsing a luxury brand's website
466
+
467
+ It should NOT feel like:
468
+ - A generic website template
469
+ - A tech startup landing page
470
+ - Something that "needs a pop of color"
471
+ - Minimalist Modern with the colors removed
472
+ </design-system>