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,526 +1,490 @@
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 Modern
39
-
40
- ## Design Philosophy
41
-
42
- ### Core Principle
43
-
44
- **Clarity through structure, character through bold detail.** This design system embraces modern web layouts and dynamic interactions while honoring minimalist foundations. It operates on a fundamental tension: restraint in quantity, confidence in execution. Every element that appears has earned its place—but those elements are executed with deliberate flair and precision.
45
-
46
- Whitespace is not empty space; it's a precision instrument for directing attention. Motion is not decoration; it's communication. Color is not scattered; it's concentrated into a single, electrifying accent that commands the eye wherever it appears.
47
-
48
- ### The Visual Vibe
49
-
50
- **Professional yet design-forward. Confident and artistic. Refined but alive.**
51
-
52
- Imagine the intersection of a high-tech SaaS product's precision with a creative agency's bold portfolio sensibility. This design feels like it was crafted by someone who understands both engineering rigor and artistic expression—someone who knows the rules well enough to break them intentionally.
53
-
54
- **Emotional Keywords:**
55
-
56
- - *Confident* — Never apologetic. Elements are sized boldly, colors are vibrant, animations are purposeful.
57
- - *Sophisticated* The dual-font typography system, the considered color ratios, the layered shadows all whisper "we sweat the details."
58
- - *Alive* Subtle animations, pulsing indicators, floating elements, and hover responses create a sense that the interface is breathing.
59
- - *Premium* Generous whitespace, elevated surfaces, and accent-tinted shadows evoke quality and care.
60
- - *Contemporary* Gradient text, glassmorphic hints, and asymmetric layouts feel undeniably modern without being trendy.
61
-
62
- **What This Design Is NOT:**
63
-
64
- - Not sterile or clinical (despite being "minimal")
65
- - Not generic or template-like (bold choices prevent this)
66
- - Not busy or overwhelming (restraint in element count)
67
- - Not flat or lifeless (texture, shadow, and motion add depth)
68
- - Not cold or corporate (the warm serif headlines and vibrant blue inject personality)
69
-
70
- ### The DNA of This Style
71
-
72
- #### 1. The Signature Gradient
73
-
74
- The Electric Blue gradient (`#0052FF` → `#4D7CFF`) is the heartbeat of this design system. It's not just an accent color—it's a visual signature that creates instant recognition.
75
-
76
- **Where it appears:**
77
-
78
- - Primary button backgrounds
79
- - Text highlights on key headline words
80
- - Icon container backgrounds
81
- - Featured card border strokes
82
- - Testimonial accent bars
83
- - Trend indicator badges
84
- - CTA section buttons
85
- - Pricing tier highlights
86
-
87
- **Why it works:** A gradient feels more alive than a flat color. The subtle shift from deep Electric Blue to a lighter sky blue creates dimensionality and draws the eye along the element. It signals "this is important" without screaming.
88
-
89
- #### 2. Inverted Contrast Sections
90
-
91
- Strategic sections flip the color scheme—using the deep slate `foreground` color as a background with light text. This technique:
92
-
93
- - Creates dramatic visual rhythm as users scroll
94
- - Prevents the light theme from feeling monotonous
95
- - Provides natural section breaks without heavy dividers
96
- - Makes statistics and key metrics feel more impactful
97
- - Adds sophistication through intentional contrast
98
-
99
- **Best used for:** Stats sections, final CTAs, or any content that deserves spotlight emphasis.
100
-
101
- #### 3. Animated Depth & Living Elements
102
-
103
- This design breathes. Micro-animations and transitions create a sense that the interface is responsive and alive:
104
-
105
- - **Pulsing indicators:** Small dots in badges that gently pulse, signaling "live" or "new"
106
- - **Floating elements:** Cards in the hero that bob gently on a slow sine wave
107
- - **Rotating decorative rings:** Dashed circles that rotate infinitely at glacial speed (60+ seconds per rotation)
108
- - **Hover responses:** Elements lift, shadows deepen, icons scale, colors shift
109
- - **Entrance animations:** Content fades up into view as users scroll, with staggered timing
110
-
111
- **The philosophy:** Motion should feel natural, almost subconscious. Users shouldn't think "oh, that's animated"—they should simply feel that the interface is polished and responsive.
112
-
113
- #### 4. Sophisticated Dual-Font Typography
114
-
115
- The pairing of **Calistoga** (display) with **Inter** (UI/body) creates a memorable typographic identity:
116
-
117
- - **Calistoga** is warm, characterful, and slightly playful. Its soft serifs and sturdy construction make headlines feel approachable yet substantial. It's the "personality" voice.
118
- - **Inter** is clean, highly legible, and professional. It handles the workhorse duties of body text, labels, and UI elements. It's the "clarity" voice.
119
-
120
- This pairing creates a conversation between personality and precision—headlines grab attention with character, then body text delivers information with crystal clarity.
121
-
122
- **Monospace accents** (JetBrains Mono) appear in section labels and badges, adding a technical, modern touch that reinforces the "high-tech meets high-design" vibe.
123
-
124
- #### 5. Texture Over Flatness
125
-
126
- Minimalism often fails because it becomes sterile. This design combats flatness through layered texture:
127
-
128
- - **Dot patterns:** Subtle `radial-gradient` dot grids at 2-3% opacity on dark sections
129
- - **Radial glows:** Large, blurred circles of accent color positioned at section corners, creating ambient warmth
130
- - **Layered shadows:** Cards don't just have one shadow—they have subtle, diffuse shadows that create realistic depth
131
- - **Gradient overlays:** Hero sections use radial gradients of the accent color at low opacity for atmospheric depth
132
-
133
- These textures are felt more than seen. Users won't consciously notice the dot pattern, but they'll feel that the dark section has "something" that makes it feel richer than a flat color.
134
-
135
- #### 6. Asymmetry & Visual Tension
136
-
137
- Strict grid alignment is intentionally broken in key moments:
138
-
139
- - **Hero layout:** The asymmetric `1.1fr / 0.9fr` grid creates visual tension—the text column is subtly dominant
140
- - **Testimonial offset:** The center card is shifted vertically, breaking the rigid grid rhythm
141
- - **Pricing elevation:** The highlighted tier floats above its siblings
142
- - **Benefits visual:** Asymmetric border radii (`rounded-tl-[4rem] rounded-br-[4rem]`) create organic, memorable shapes
143
-
144
- **Why this matters:** Perfect symmetry is predictable. Strategic asymmetry creates visual interest and guides the eye in unexpected ways. It's the difference between "correct" and "designed."
145
-
146
- #### 7. The Section Label System
147
-
148
- Every major section begins with a consistent badge pattern:
149
-
150
- - Rounded pill shape with subtle accent border and tinted background
151
- - Small colored dot (optionally animated/pulsing)
152
- - Uppercase monospace text with wide letter-spacing
153
- - Positioned above the section headline
154
-
155
- This creates a visual rhythm and helps users orient themselves. It also adds a touch of UI sophistication—these feel like carefully designed interface elements, not just text.
156
-
157
- ### Differentiation: Minimalism With a Pulse
158
-
159
- This style refuses to be "just clean." Many minimal designs strip away so much that they become forgettable—white backgrounds, gray text, safe choices. This design takes the opposite approach:
160
-
161
- **Minimalism through bold choices, not absence.**
162
-
163
- - Where others use subtle gray, we use Electric Blue
164
- - Where others use flat backgrounds, we use inverted sections and gradient glows
165
- - Where others use static layouts, we use floating animations and pulsing indicators
166
- - Where others use one safe font, we use a memorable dual-font pairing
167
- - Where others center everything, we embrace asymmetry
168
-
169
- The result is a design that is unmistakably minimal in its restraint (few colors, generous whitespace, clean lines) but unmistakably bold in its execution (vibrant accent, animated hero, gradient flourishes).
170
-
171
- **It's minimalism that makes a statement.**
172
-
173
- ### Sensory Description
174
-
175
- If this design were a physical space, it would be:
176
-
177
- - A bright, airy gallery with white walls and polished concrete floors
178
- - One wall painted in deep midnight blue, dramatically lit
179
- - A single piece of art in electric blue, drawing every eye
180
- - Soft ambient lighting that makes surfaces glow
181
- - The faint hum of something technological and precise
182
- - Clean lines everywhere, but one sculptural element with an unexpected curve
183
-
184
- If it were music, it would be:
185
-
186
- - Electronic, but warm—not cold synthwave
187
- - Mostly minimal beats with generous silence
188
- - One recurring melodic hook in a bright, clear tone
189
- - Occasional swells that feel like things floating upward
190
- - Professional enough for a corporate lobby, interesting enough to actually listen to
191
-
192
- ---
193
-
194
- ## Design Token System (The DNA)
195
-
196
- ### Color Strategy
197
-
198
- **Chromatic Focus:** A warm, near-monochrome palette amplified by a dual-tone accent gradient. The accent colors are used sparingly but with maximum impact—they command attention wherever they appear.
199
-
200
- | Token | Value | Usage & Context |
201
- | :-------------------- | :-------------------------- | :----------------------------------------------------------------------------------- |
202
- | `background` | `#FAFAFA` | Primary canvas. Warmer off-white that reduces eye strain. |
203
- | `foreground` | `#0F172A` (Slate-900) | Primary text. Deep slate, not pure black. Also used as inverted section backgrounds. |
204
- | `muted` | `#F1F5F9` (Slate-100) | Secondary surfaces, card backgrounds, subtle fills. |
205
- | `muted-foreground` | `#64748B` (Slate-500) | Secondary text, descriptions, metadata. |
206
- | `accent` | `#0052FF` (Electric Blue) | **Primary action color.** CTAs, links, highlights, icon backgrounds. |
207
- | `accent-secondary` | `#4D7CFF` | Gradient endpoint. Used with `accent` for gradient effects. |
208
- | `accent-foreground` | `#FFFFFF` | Text on accent backgrounds. Always white. |
209
- | `border` | `#E2E8F0` (Slate-200) | Subtle structural borders on cards and dividers. |
210
- | `card` | `#FFFFFF` | Elevated surfaces. Pure white for maximum lift. |
211
- | `ring` | `#0052FF` | Focus rings. Matches the primary accent. |
212
-
213
- **The Signature Gradient:**
214
-
215
- ```css
216
- background: linear-gradient(to right, #0052FF, #4D7CFF);
217
- /* Or diagonal: */
218
- background: linear-gradient(135deg, #0052FF, #4D7CFF);
219
- ```
220
-
221
- This gradient appears on: primary buttons, featured badges, icon backgrounds, pricing tier borders, testimonial accent bars, trend indicators, and text highlights.
222
-
223
- ---
224
-
225
- ### Typography System
226
-
227
- **Font Pairing (Dual-Font System):**
228
-
229
- - **Display Font:** `"Calistoga", Georgia, serif` — A warm, characterful serif with personality. Used exclusively for h1/h2 headlines to create memorable anchor points.
230
- - **UI & Body Font:** `"Inter", system-ui, sans-serif` — Highly legible, clean sans-serif for all body text, UI elements, and smaller headings.
231
- - **Monospace:** `"JetBrains Mono", monospace` — For section labels, badges, and technical callouts.
232
-
233
- **Type Scale & Usage:**
234
-
235
- | Element | Size | Font | Weight | Tracking | Notes |
236
- | :---------------- | :--------------------- | :------------- | :------------- | :---------- | :------------------------------------------------------------ |
237
- | Hero Headline | `5xl` `5.25rem` | Calistoga | Normal | `-0.02em` | Tight leading (1.05). Last word gets gradient text treatment. |
238
- | Section Headlines | `3xl` `3.25rem` | Calistoga | Normal | Normal | Leading 1.15. Key word can use gradient text. |
239
- | Card Titles | `lg` → `2xl` | Inter | Semibold (600) | `-0.01em` | Tight tracking for density. |
240
- | Body Text | `base` → `lg` | Inter | Normal (400) | Normal | Relaxed line-height (1.625-1.75). |
241
- | Section Labels | `xs` (12px) | JetBrains Mono | Normal | `0.15em` | UPPERCASE. Used in pill badges with accent dot. |
242
-
243
- **Gradient Text Effect (with Enhanced Underline):**
244
-
245
- ```css
246
- .gradient-text {
247
- background: linear-gradient(to right, #0052FF, #4D7CFF);
248
- -webkit-background-clip: text;
249
- background-clip: text;
250
- color: transparent;
251
- }
252
-
253
- /* Gradient underline bar for hero headline */
254
- .gradient-underline {
255
- position: absolute;
256
- bottom: -0.25rem; /* md: -0.5rem */
257
- left: 0;
258
- height: 0.75rem; /* md: 1rem */
259
- width: 100%;
260
- border-radius: 0.125rem;
261
- background: linear-gradient(to right, rgba(0, 82, 255, 0.15), rgba(77, 124, 255, 0.1));
262
- }
263
- ```
264
-
265
- ---
266
-
267
- ### Spacing & Layout
268
-
269
- **Core Principle:** Generous, intentional whitespace is a primary design toolbut it's balanced by density within components.
270
-
271
- - **Section Spacing:** Large vertical padding (`py-28` to `py-44`) creates a calm, paced scrolling experience.
272
- - **Container Width:** `max-w-6xl` (72rem) for primary content. Centered with `mx-auto`.
273
- - **Component Density:** Within cards and components, spacing is tighter to create cohesive units that float in the generous section whitespace.
274
- - **Grid Gaps:** `gap-5` to `gap-8` between grid items. Slightly tighter than standard to maintain visual cohesion.
275
-
276
- **Asymmetry Patterns:**
277
-
278
- - Hero: `grid-cols-[1.1fr_0.9fr]` — Left-heavy for text dominance
279
- - Benefits: `grid-cols-[1.2fr_0.8fr]` — Content over visual
280
- - Use negative margins and overlapping elements to create Z-depth
281
-
282
- ---
283
-
284
- ### Borders, Surfaces & Shadows
285
-
286
- **Surfaces:**
287
-
288
- - Cards use pure white (`#FFFFFF`) with `1px` border in `border` color
289
- - Elevated cards add `shadow-lg` or `shadow-xl` for lift
290
- - Featured elements use gradient borders (2px stroke effect via nested divs)
291
-
292
- **Shadow System:**
293
-
294
- | Token | Value | Usage |
295
- | :------------------- | :--------------------------------- | :----------------- |
296
- | `shadow-sm` | `0 1px 3px rgba(0,0,0,0.06)` | Subtle lift |
297
- | `shadow-md` | `0 4px 6px rgba(0,0,0,0.07)` | Standard cards |
298
- | `shadow-lg` | `0 10px 15px rgba(0,0,0,0.08)` | Elevated cards |
299
- | `shadow-xl` | `0 20px 25px rgba(0,0,0,0.1)` | Hero elements |
300
- | `shadow-accent` | `0 4px 14px rgba(0,82,255,0.25)` | Accent-tinted lift |
301
- | `shadow-accent-lg` | `0 8px 24px rgba(0,82,255,0.35)` | Featured elements |
302
-
303
- **Textures (Critical for Avoiding Flatness):**
304
-
305
- - **Dot Pattern:** `radial-gradient(circle, white 1px, transparent 1px)` at `32px` intervals, `opacity: 0.03` — Used on dark inverted sections
306
- - **Radial Glows:** Large blurred circles (`blur-[150px]`) of accent color at `3-6%` opacity — Positioned at section corners
307
- - **Gradient Overlays:** Subtle `radial-gradient` from accent color, `8%` opacity — Used in hero graphic backgrounds
308
-
309
- ---
310
-
311
- ## Component Styling & Interactions
312
-
313
- ### Buttons
314
-
315
- **Primary Button:**
316
-
317
- - Background: Gradient from `accent` to `accent-secondary` (`bg-gradient-to-r from-[var(--accent)] to-[#4D7CFF]`)
318
- - Text: White, medium weight
319
- - Shadow: `shadow-sm` default, `shadow-accent` on hover (accent-tinted)
320
- - Border-radius: `rounded-xl` (12px)
321
- - Hover: Lifts up (`-translate-y-0.5`), `shadow-accent-lg`, brightness increase (`brightness-110`), arrow icon translates right
322
- - Active: Slight scale down (`scale-[0.98]`) for tactile feedback
323
-
324
- **Secondary/Outline Button:**
325
-
326
- - Background: Transparent → `muted` on hover
327
- - Border: `1px` in `border` color
328
- - Text: `foreground`
329
- - Hover: Border shifts to `accent/30`, shadow appears
330
-
331
- **Ghost Button:**
332
-
333
- - No background or border
334
- - Text: `muted-foreground` → `foreground` on hover
335
-
336
- **Animation:** All buttons have `transition-all duration-200`. Subtle upward translation on hover (`-translate-y-0.5`). Arrow icons translate right on hover (`group-hover:translate-x-1`).
337
-
338
- ---
339
-
340
- ### Cards
341
-
342
- **Standard Card:**
343
-
344
- - Background: `card` (white)
345
- - Border: `1px` in `border` color
346
- - Border-radius: `rounded-xl` (12px) or `rounded-2xl` (16px)
347
- - Shadow: `shadow-md` default, `shadow-xl` on hover
348
- - Padding: `p-6` to `p-10` depending on prominence
349
-
350
- **Elevated Card:**
351
-
352
- - Adds stronger shadow and optional accent tint
353
- - Used for featured items, highlighted pricing tiers
354
-
355
- **Hover Effects:**
356
-
357
- - Gradient overlay fades in: `bg-gradient-to-br from-accent/[0.03] to-transparent`
358
- - Shadow deepens
359
- - Optional icon scale: `group-hover:scale-110`
360
-
361
- **Featured Card (Gradient Border):**
362
-
363
- ```jsx
364
- <div className="rounded-xl bg-gradient-to-br from-accent via-accent-secondary to-accent p-[2px]">
365
- <div className="h-full w-full rounded-[calc(12px-2px)] bg-card">
366
- {/* content */}
367
- </div>
368
- </div>
369
- ```
370
-
371
- ---
372
-
373
- ### Inputs
374
-
375
- - Height: `h-12` to `h-14`
376
- - Border: `1px` in `border` color
377
- - Border-radius: `rounded-lg` or `rounded-xl`
378
- - Background: Transparent or very subtle `muted/10`
379
- - Focus: `ring-2 ring-accent ring-offset-2`
380
- - Placeholder: `text-muted-foreground/50`
381
-
382
- ---
383
-
384
- ### Section Labels (Badges)
385
-
386
- A consistent badge pattern appears at the start of each section:
387
-
388
- ```jsx
389
- <div className="inline-flex items-center gap-3 rounded-full border border-accent/30 bg-accent/5 px-5 py-2">
390
- <span className="h-2 w-2 rounded-full bg-accent" /> {/* Can be animated/pulsing */}
391
- <span className="font-mono text-xs uppercase tracking-[0.15em] text-accent">
392
- Section Name
393
- </span>
394
- </div>
395
- ```
396
-
397
- ---
398
-
399
- ## The "Bold Factor" (Signature Elements)
400
-
401
- These elements define this implementation and prevent generic output:
402
-
403
- 1. **Gradient Text Highlights:** Key words in headlines use the signature gradient as text color via `bg-clip-text`.
404
- 2. **Inverted Sections:** At least one section uses `bg-foreground text-background` with dot pattern texture for dramatic contrast.
405
- 3. **Animated Hero Graphic:** Abstract generative composition with:
406
-
407
- - Rotating outer ring (`animate` with 60s duration, linear)
408
- - Floating cards with staggered `y` animations (5s and 4s durations, ±10px movement)
409
- - Geometric shapes (circles, rounded rectangles, gradient fills)
410
- - Decorative dot grid (3x3)
411
- - Corner accent block in solid `accent` with shadow
412
- 4. **Gradient Icon Backgrounds:** Feature icons use full gradient backgrounds (`from-accent to-accent-secondary`) rather than translucent fills.
413
- 5. **Gradient Border Effects:** Highlighted elements (pricing tiers, featured cards) use the 2px gradient stroke technique.
414
- 6. **Large Decorative Elements:** Quote marks at `120px`, step numbers at `text-4xl`, trend arrows in badges.
415
- 7. **Pulsing Indicators:** Animated dots in badges using scale/opacity keyframes.
416
- 8. **Arrow Connectors:** Timeline steps connected by small accent-colored circular badges with arrow icons.
417
-
418
- ---
419
-
420
- ## Effects & Animation
421
-
422
- **Motion Philosophy:** Smooth, confident, and purposeful. Animations enhance understanding and add delight without being distracting. All motion follows natural easing curves.
423
-
424
- **Transition Defaults:**
425
-
426
- - Standard: `transition-all duration-200 ease-out`
427
- - Entrance: `duration-700` with stagger (`0.1s` delay between children)
428
- - Hover lifts: `duration-300`
429
- - Button active: `duration-200` with scale down
430
-
431
- **Entrance Animations (Framer Motion):**
432
-
433
- ```js
434
- const easeOut = [0.16, 1, 0.3, 1] as const;
435
-
436
- const fadeInUp = {
437
- hidden: { opacity: 0, y: 28 },
438
- visible: { opacity: 1, y: 0, transition: { duration: 0.7, ease: easeOut } }
439
- };
440
-
441
- const fadeIn = {
442
- hidden: { opacity: 0 },
443
- visible: { opacity: 1, transition: { duration: 0.7, ease: easeOut } }
444
- };
445
-
446
- const stagger = {
447
- hidden: {},
448
- visible: { transition: { staggerChildren: 0.1, delayChildren: 0.1 } }
449
- };
450
- ```
451
-
452
- **Continuous Animations:**
453
-
454
- - Rotating ring: `60s` linear infinite rotation (hero graphic)
455
- - Floating cards: `4-5s` ease-in-out infinite y-axis bobbing (±10px amplitude)
456
- - Pulsing dot: `2s` infinite scale/opacity pulse (scale: [1, 1.3, 1], opacity: [1, 0.7, 1])
457
- - Activity indicators: `3s` infinite scale/opacity pulse (subtle)
458
-
459
- ---
460
-
461
- ## Responsive Strategy
462
-
463
- **Breakpoint Philosophy:** Mobile layouts simplify structure but maintain the bold aesthetic. Touch targets are 44px+ minimum.
464
-
465
- - **Hero:** Single column. Hide abstract graphic on small screens. Stack CTAs vertically with full width (`w-full sm:w-auto`).
466
- - **Stats:** 2 columns on mobile → 4 columns on desktop with vertical dividers hidden on mobile
467
- - **Features:** 1 column 2 columns (md) 3 columns (lg) with first card spanning on larger screens
468
- - **How It Works:** Vertical stack on mobile, horizontal timeline with connecting line on desktop (md+)
469
- - **Pricing:** Stack vertically, highlighted tier maintains elevation and gradient border
470
- - **Testimonials:** Stack vertically, center card offset removed on mobile
471
- - **Final CTA:** Input and button stack vertically on mobile, horizontal on sm+, button goes full width on mobile
472
-
473
- **Key Adaptations:**
474
-
475
- - Reduce headline sizes: `text-[2.75rem]` mobile → `text-6xl` → `text-[5.25rem]` desktop
476
- - Maintain generous section padding: `py-28` `py-44` (reduce slightly, not dramatically)
477
- - Hide decorative elements on mobile: rotating rings, complex graphics (use `hidden lg:block`)
478
- - Keep gradient accents and color inversions—these define the style
479
- - Button heights: `h-12` to `h-14` for primary CTAs (44px-56px touch targets)
480
-
481
- ---
482
-
483
- ## Accessibility & Best Practices
484
-
485
- **Color Contrast:** All text meets WCAG AA. The `accent` blue (#0052FF) on white background passes at 4.5:1+. Inverted sections use near-white text (#FFFFFF or rgba(255,255,255,0.9)) on deep slate (#0F172A) for maximum contrast.
486
-
487
- **Focus States:**
488
-
489
- - Visible focus rings using `ring-2 ring-accent ring-offset-2` with `ring-offset-background`
490
- - Focus rings match the gradient accent aesthetic
491
- - Interactive elements have clear hover/focus differentiation (lift, shadow, color shift)
492
- - Buttons have `active:scale-[0.98]` for tactile feedback
493
-
494
- **Touch Targets:**
495
-
496
- - Minimum 44px height on all interactive elements
497
- - Buttons use `h-12` (48px) to `h-14` (56px) for primary CTAs
498
- - Adequate spacing between tap targets (gap-4 minimum)
499
-
500
- **Motion:**
501
-
502
- - Respect `prefers-reduced-motion` for continuous animations
503
- - Entrance animations are subtle enough to not cause issues (0.7s duration, 28px vertical movement)
504
- - No flashing or rapid movements
505
- - Continuous animations are slow and gentle (4-5s duration, ±10px movement)
506
-
507
- ---
508
-
509
- ## Implementation Notes
510
-
511
- **Component Structure:**
512
- All components (Button, Card, Input) are built locally using `cva` and `tailwind-merge`, following Shadcn API patterns but tailored to this design system.
513
-
514
- **CSS Custom Properties:**
515
- The StyleWrapper component injects all design tokens as CSS custom properties, allowing for consistent theming across all components.
516
-
517
- **Font Loading:**
518
- Fonts are loaded via Google Fonts:
519
-
520
- - Inter: weights 400, 500, 600, 700
521
- - Calistoga: default weight
522
- - JetBrains Mono: weights 400, 500
523
-
524
- **Animation Library:**
525
- Framer Motion is used for all entrance animations and continuous motion. Viewport options are set to `{ once: true, amount: 0.15, margin: "-60px" }` for optimal performance and timing.
526
- `</design-system>`
1
+ <design-system>
2
+ # Design Style: Minimalist Modern
3
+
4
+ ## Design Philosophy
5
+
6
+ ### Core Principle
7
+
8
+ **Clarity through structure, character through bold detail.** This design system embraces modern web layouts and dynamic interactions while honoring minimalist foundations. It operates on a fundamental tension: restraint in quantity, confidence in execution. Every element that appears has earned its place—but those elements are executed with deliberate flair and precision.
9
+
10
+ Whitespace is not empty space; it's a precision instrument for directing attention. Motion is not decoration; it's communication. Color is not scattered; it's concentrated into a single, electrifying accent that commands the eye wherever it appears.
11
+
12
+ ### The Visual Vibe
13
+
14
+ **Professional yet design-forward. Confident and artistic. Refined but alive.**
15
+
16
+ Imagine the intersection of a high-tech SaaS product's precision with a creative agency's bold portfolio sensibility. This design feels like it was crafted by someone who understands both engineering rigor and artistic expression—someone who knows the rules well enough to break them intentionally.
17
+
18
+ **Emotional Keywords:**
19
+
20
+ - *Confident* Never apologetic. Elements are sized boldly, colors are vibrant, animations are purposeful.
21
+ - *Sophisticated* The dual-font typography system, the considered color ratios, the layered shadows all whisper "we sweat the details."
22
+ - *Alive* Subtle animations, pulsing indicators, floating elements, and hover responses create a sense that the interface is breathing.
23
+ - *Premium* — Generous whitespace, elevated surfaces, and accent-tinted shadows evoke quality and care.
24
+ - *Contemporary* Gradient text, glassmorphic hints, and asymmetric layouts feel undeniably modern without being trendy.
25
+
26
+ **What This Design Is NOT:**
27
+
28
+ - Not sterile or clinical (despite being "minimal")
29
+ - Not generic or template-like (bold choices prevent this)
30
+ - Not busy or overwhelming (restraint in element count)
31
+ - Not flat or lifeless (texture, shadow, and motion add depth)
32
+ - Not cold or corporate (the warm serif headlines and vibrant blue inject personality)
33
+
34
+ ### The DNA of This Style
35
+
36
+ #### 1. The Signature Gradient
37
+
38
+ The Electric Blue gradient (`#0052FF` → `#4D7CFF`) is the heartbeat of this design system. It's not just an accent color—it's a visual signature that creates instant recognition.
39
+
40
+ **Where it appears:**
41
+
42
+ - Primary button backgrounds
43
+ - Text highlights on key headline words
44
+ - Icon container backgrounds
45
+ - Featured card border strokes
46
+ - Testimonial accent bars
47
+ - Trend indicator badges
48
+ - CTA section buttons
49
+ - Pricing tier highlights
50
+
51
+ **Why it works:** A gradient feels more alive than a flat color. The subtle shift from deep Electric Blue to a lighter sky blue creates dimensionality and draws the eye along the element. It signals "this is important" without screaming.
52
+
53
+ #### 2. Inverted Contrast Sections
54
+
55
+ Strategic sections flip the color scheme—using the deep slate `foreground` color as a background with light text. This technique:
56
+
57
+ - Creates dramatic visual rhythm as users scroll
58
+ - Prevents the light theme from feeling monotonous
59
+ - Provides natural section breaks without heavy dividers
60
+ - Makes statistics and key metrics feel more impactful
61
+ - Adds sophistication through intentional contrast
62
+
63
+ **Best used for:** Stats sections, final CTAs, or any content that deserves spotlight emphasis.
64
+
65
+ #### 3. Animated Depth & Living Elements
66
+
67
+ This design breathes. Micro-animations and transitions create a sense that the interface is responsive and alive:
68
+
69
+ - **Pulsing indicators:** Small dots in badges that gently pulse, signaling "live" or "new"
70
+ - **Floating elements:** Cards in the hero that bob gently on a slow sine wave
71
+ - **Rotating decorative rings:** Dashed circles that rotate infinitely at glacial speed (60+ seconds per rotation)
72
+ - **Hover responses:** Elements lift, shadows deepen, icons scale, colors shift
73
+ - **Entrance animations:** Content fades up into view as users scroll, with staggered timing
74
+
75
+ **The philosophy:** Motion should feel natural, almost subconscious. Users shouldn't think "oh, that's animated"—they should simply feel that the interface is polished and responsive.
76
+
77
+ #### 4. Sophisticated Dual-Font Typography
78
+
79
+ The pairing of **Calistoga** (display) with **Inter** (UI/body) creates a memorable typographic identity:
80
+
81
+ - **Calistoga** is warm, characterful, and slightly playful. Its soft serifs and sturdy construction make headlines feel approachable yet substantial. It's the "personality" voice.
82
+ - **Inter** is clean, highly legible, and professional. It handles the workhorse duties of body text, labels, and UI elements. It's the "clarity" voice.
83
+
84
+ This pairing creates a conversation between personality and precision—headlines grab attention with character, then body text delivers information with crystal clarity.
85
+
86
+ **Monospace accents** (JetBrains Mono) appear in section labels and badges, adding a technical, modern touch that reinforces the "high-tech meets high-design" vibe.
87
+
88
+ #### 5. Texture Over Flatness
89
+
90
+ Minimalism often fails because it becomes sterile. This design combats flatness through layered texture:
91
+
92
+ - **Dot patterns:** Subtle `radial-gradient` dot grids at 2-3% opacity on dark sections
93
+ - **Radial glows:** Large, blurred circles of accent color positioned at section corners, creating ambient warmth
94
+ - **Layered shadows:** Cards don't just have one shadow—they have subtle, diffuse shadows that create realistic depth
95
+ - **Gradient overlays:** Hero sections use radial gradients of the accent color at low opacity for atmospheric depth
96
+
97
+ These textures are felt more than seen. Users won't consciously notice the dot pattern, but they'll feel that the dark section has "something" that makes it feel richer than a flat color.
98
+
99
+ #### 6. Asymmetry & Visual Tension
100
+
101
+ Strict grid alignment is intentionally broken in key moments:
102
+
103
+ - **Hero layout:** The asymmetric `1.1fr / 0.9fr` grid creates visual tension—the text column is subtly dominant
104
+ - **Testimonial offset:** The center card is shifted vertically, breaking the rigid grid rhythm
105
+ - **Pricing elevation:** The highlighted tier floats above its siblings
106
+ - **Benefits visual:** Asymmetric border radii (`rounded-tl-[4rem] rounded-br-[4rem]`) create organic, memorable shapes
107
+
108
+ **Why this matters:** Perfect symmetry is predictable. Strategic asymmetry creates visual interest and guides the eye in unexpected ways. It's the difference between "correct" and "designed."
109
+
110
+ #### 7. The Section Label System
111
+
112
+ Every major section begins with a consistent badge pattern:
113
+
114
+ - Rounded pill shape with subtle accent border and tinted background
115
+ - Small colored dot (optionally animated/pulsing)
116
+ - Uppercase monospace text with wide letter-spacing
117
+ - Positioned above the section headline
118
+
119
+ This creates a visual rhythm and helps users orient themselves. It also adds a touch of UI sophistication—these feel like carefully designed interface elements, not just text.
120
+
121
+ ### Differentiation: Minimalism With a Pulse
122
+
123
+ This style refuses to be "just clean." Many minimal designs strip away so much that they become forgettable—white backgrounds, gray text, safe choices. This design takes the opposite approach:
124
+
125
+ **Minimalism through bold choices, not absence.**
126
+
127
+ - Where others use subtle gray, we use Electric Blue
128
+ - Where others use flat backgrounds, we use inverted sections and gradient glows
129
+ - Where others use static layouts, we use floating animations and pulsing indicators
130
+ - Where others use one safe font, we use a memorable dual-font pairing
131
+ - Where others center everything, we embrace asymmetry
132
+
133
+ The result is a design that is unmistakably minimal in its restraint (few colors, generous whitespace, clean lines) but unmistakably bold in its execution (vibrant accent, animated hero, gradient flourishes).
134
+
135
+ **It's minimalism that makes a statement.**
136
+
137
+ ### Sensory Description
138
+
139
+ If this design were a physical space, it would be:
140
+
141
+ - A bright, airy gallery with white walls and polished concrete floors
142
+ - One wall painted in deep midnight blue, dramatically lit
143
+ - A single piece of art in electric blue, drawing every eye
144
+ - Soft ambient lighting that makes surfaces glow
145
+ - The faint hum of something technological and precise
146
+ - Clean lines everywhere, but one sculptural element with an unexpected curve
147
+
148
+ If it were music, it would be:
149
+
150
+ - Electronic, but warm—not cold synthwave
151
+ - Mostly minimal beats with generous silence
152
+ - One recurring melodic hook in a bright, clear tone
153
+ - Occasional swells that feel like things floating upward
154
+ - Professional enough for a corporate lobby, interesting enough to actually listen to
155
+
156
+ ---
157
+
158
+ ## Design Token System (The DNA)
159
+
160
+ ### Color Strategy
161
+
162
+ **Chromatic Focus:** A warm, near-monochrome palette amplified by a dual-tone accent gradient. The accent colors are used sparingly but with maximum impact—they command attention wherever they appear.
163
+
164
+ | Token | Value | Usage & Context |
165
+ | :-------------------- | :-------------------------- | :----------------------------------------------------------------------------------- |
166
+ | `background` | `#FAFAFA` | Primary canvas. Warmer off-white that reduces eye strain. |
167
+ | `foreground` | `#0F172A` (Slate-900) | Primary text. Deep slate, not pure black. Also used as inverted section backgrounds. |
168
+ | `muted` | `#F1F5F9` (Slate-100) | Secondary surfaces, card backgrounds, subtle fills. |
169
+ | `muted-foreground` | `#64748B` (Slate-500) | Secondary text, descriptions, metadata. |
170
+ | `accent` | `#0052FF` (Electric Blue) | **Primary action color.** CTAs, links, highlights, icon backgrounds. |
171
+ | `accent-secondary` | `#4D7CFF` | Gradient endpoint. Used with `accent` for gradient effects. |
172
+ | `accent-foreground` | `#FFFFFF` | Text on accent backgrounds. Always white. |
173
+ | `border` | `#E2E8F0` (Slate-200) | Subtle structural borders on cards and dividers. |
174
+ | `card` | `#FFFFFF` | Elevated surfaces. Pure white for maximum lift. |
175
+ | `ring` | `#0052FF` | Focus rings. Matches the primary accent. |
176
+
177
+ **The Signature Gradient:**
178
+
179
+ ```css
180
+ background: linear-gradient(to right, #0052FF, #4D7CFF);
181
+ /* Or diagonal: */
182
+ background: linear-gradient(135deg, #0052FF, #4D7CFF);
183
+ ```
184
+
185
+ This gradient appears on: primary buttons, featured badges, icon backgrounds, pricing tier borders, testimonial accent bars, trend indicators, and text highlights.
186
+
187
+ ---
188
+
189
+ ### Typography System
190
+
191
+ **Font Pairing (Dual-Font System):**
192
+
193
+ - **Display Font:** `"Calistoga", Georgia, serif` — A warm, characterful serif with personality. Used exclusively for h1/h2 headlines to create memorable anchor points.
194
+ - **UI & Body Font:** `"Inter", system-ui, sans-serif` — Highly legible, clean sans-serif for all body text, UI elements, and smaller headings.
195
+ - **Monospace:** `"JetBrains Mono", monospace` — For section labels, badges, and technical callouts.
196
+
197
+ **Type Scale & Usage:**
198
+
199
+ | Element | Size | Font | Weight | Tracking | Notes |
200
+ | :---------------- | :--------------------- | :------------- | :------------- | :---------- | :------------------------------------------------------------ |
201
+ | Hero Headline | `5xl` → `5.25rem` | Calistoga | Normal | `-0.02em` | Tight leading (1.05). Last word gets gradient text treatment. |
202
+ | Section Headlines | `3xl` `3.25rem` | Calistoga | Normal | Normal | Leading 1.15. Key word can use gradient text. |
203
+ | Card Titles | `lg` `2xl` | Inter | Semibold (600) | `-0.01em` | Tight tracking for density. |
204
+ | Body Text | `base` `lg` | Inter | Normal (400) | Normal | Relaxed line-height (1.625-1.75). |
205
+ | Section Labels | `xs` (12px) | JetBrains Mono | Normal | `0.15em` | UPPERCASE. Used in pill badges with accent dot. |
206
+
207
+ **Gradient Text Effect (with Enhanced Underline):**
208
+
209
+ ```css
210
+ .gradient-text {
211
+ background: linear-gradient(to right, #0052FF, #4D7CFF);
212
+ -webkit-background-clip: text;
213
+ background-clip: text;
214
+ color: transparent;
215
+ }
216
+
217
+ /* Gradient underline bar for hero headline */
218
+ .gradient-underline {
219
+ position: absolute;
220
+ bottom: -0.25rem; /* md: -0.5rem */
221
+ left: 0;
222
+ height: 0.75rem; /* md: 1rem */
223
+ width: 100%;
224
+ border-radius: 0.125rem;
225
+ background: linear-gradient(to right, rgba(0, 82, 255, 0.15), rgba(77, 124, 255, 0.1));
226
+ }
227
+ ```
228
+
229
+ ---
230
+
231
+ ### Spacing & Layout
232
+
233
+ **Core Principle:** Generous, intentional whitespace is a primary design tool—but it's balanced by density within components.
234
+
235
+ - **Section Spacing:** Large vertical padding (`py-28` to `py-44`) creates a calm, paced scrolling experience.
236
+ - **Container Width:** `max-w-6xl` (72rem) for primary content. Centered with `mx-auto`.
237
+ - **Component Density:** Within cards and components, spacing is tighter to create cohesive units that float in the generous section whitespace.
238
+ - **Grid Gaps:** `gap-5` to `gap-8` between grid items. Slightly tighter than standard to maintain visual cohesion.
239
+
240
+ **Asymmetry Patterns:**
241
+
242
+ - Hero: `grid-cols-[1.1fr_0.9fr]` — Left-heavy for text dominance
243
+ - Benefits: `grid-cols-[1.2fr_0.8fr]` Content over visual
244
+ - Use negative margins and overlapping elements to create Z-depth
245
+
246
+ ---
247
+
248
+ ### Borders, Surfaces & Shadows
249
+
250
+ **Surfaces:**
251
+
252
+ - Cards use pure white (`#FFFFFF`) with `1px` border in `border` color
253
+ - Elevated cards add `shadow-lg` or `shadow-xl` for lift
254
+ - Featured elements use gradient borders (2px stroke effect via nested divs)
255
+
256
+ **Shadow System:**
257
+
258
+ | Token | Value | Usage |
259
+ | :------------------- | :--------------------------------- | :----------------- |
260
+ | `shadow-sm` | `0 1px 3px rgba(0,0,0,0.06)` | Subtle lift |
261
+ | `shadow-md` | `0 4px 6px rgba(0,0,0,0.07)` | Standard cards |
262
+ | `shadow-lg` | `0 10px 15px rgba(0,0,0,0.08)` | Elevated cards |
263
+ | `shadow-xl` | `0 20px 25px rgba(0,0,0,0.1)` | Hero elements |
264
+ | `shadow-accent` | `0 4px 14px rgba(0,82,255,0.25)` | Accent-tinted lift |
265
+ | `shadow-accent-lg` | `0 8px 24px rgba(0,82,255,0.35)` | Featured elements |
266
+
267
+ **Textures (Critical for Avoiding Flatness):**
268
+
269
+ - **Dot Pattern:** `radial-gradient(circle, white 1px, transparent 1px)` at `32px` intervals, `opacity: 0.03` Used on dark inverted sections
270
+ - **Radial Glows:** Large blurred circles (`blur-[150px]`) of accent color at `3-6%` opacity — Positioned at section corners
271
+ - **Gradient Overlays:** Subtle `radial-gradient` from accent color, `8%` opacity Used in hero graphic backgrounds
272
+
273
+ ---
274
+
275
+ ## Component Styling & Interactions
276
+
277
+ ### Buttons
278
+
279
+ **Primary Button:**
280
+
281
+ - Background: Gradient from `accent` to `accent-secondary` (`bg-gradient-to-r from-[var(--accent)] to-[#4D7CFF]`)
282
+ - Text: White, medium weight
283
+ - Shadow: `shadow-sm` default, `shadow-accent` on hover (accent-tinted)
284
+ - Border-radius: `rounded-xl` (12px)
285
+ - Hover: Lifts up (`-translate-y-0.5`), `shadow-accent-lg`, brightness increase (`brightness-110`), arrow icon translates right
286
+ - Active: Slight scale down (`scale-[0.98]`) for tactile feedback
287
+
288
+ **Secondary/Outline Button:**
289
+
290
+ - Background: Transparent `muted` on hover
291
+ - Border: `1px` in `border` color
292
+ - Text: `foreground`
293
+ - Hover: Border shifts to `accent/30`, shadow appears
294
+
295
+ **Ghost Button:**
296
+
297
+ - No background or border
298
+ - Text: `muted-foreground` `foreground` on hover
299
+
300
+ **Animation:** All buttons have `transition-all duration-200`. Subtle upward translation on hover (`-translate-y-0.5`). Arrow icons translate right on hover (`group-hover:translate-x-1`).
301
+
302
+ ---
303
+
304
+ ### Cards
305
+
306
+ **Standard Card:**
307
+
308
+ - Background: `card` (white)
309
+ - Border: `1px` in `border` color
310
+ - Border-radius: `rounded-xl` (12px) or `rounded-2xl` (16px)
311
+ - Shadow: `shadow-md` default, `shadow-xl` on hover
312
+ - Padding: `p-6` to `p-10` depending on prominence
313
+
314
+ **Elevated Card:**
315
+
316
+ - Adds stronger shadow and optional accent tint
317
+ - Used for featured items, highlighted pricing tiers
318
+
319
+ **Hover Effects:**
320
+
321
+ - Gradient overlay fades in: `bg-gradient-to-br from-accent/[0.03] to-transparent`
322
+ - Shadow deepens
323
+ - Optional icon scale: `group-hover:scale-110`
324
+
325
+ **Featured Card (Gradient Border):**
326
+
327
+ ```jsx
328
+ <div className="rounded-xl bg-gradient-to-br from-accent via-accent-secondary to-accent p-[2px]">
329
+ <div className="h-full w-full rounded-[calc(12px-2px)] bg-card">
330
+ {/* content */}
331
+ </div>
332
+ </div>
333
+ ```
334
+
335
+ ---
336
+
337
+ ### Inputs
338
+
339
+ - Height: `h-12` to `h-14`
340
+ - Border: `1px` in `border` color
341
+ - Border-radius: `rounded-lg` or `rounded-xl`
342
+ - Background: Transparent or very subtle `muted/10`
343
+ - Focus: `ring-2 ring-accent ring-offset-2`
344
+ - Placeholder: `text-muted-foreground/50`
345
+
346
+ ---
347
+
348
+ ### Section Labels (Badges)
349
+
350
+ A consistent badge pattern appears at the start of each section:
351
+
352
+ ```jsx
353
+ <div className="inline-flex items-center gap-3 rounded-full border border-accent/30 bg-accent/5 px-5 py-2">
354
+ <span className="h-2 w-2 rounded-full bg-accent" /> {/* Can be animated/pulsing */}
355
+ <span className="font-mono text-xs uppercase tracking-[0.15em] text-accent">
356
+ Section Name
357
+ </span>
358
+ </div>
359
+ ```
360
+
361
+ ---
362
+
363
+ ## The "Bold Factor" (Signature Elements)
364
+
365
+ These elements define this implementation and prevent generic output:
366
+
367
+ 1. **Gradient Text Highlights:** Key words in headlines use the signature gradient as text color via `bg-clip-text`.
368
+ 2. **Inverted Sections:** At least one section uses `bg-foreground text-background` with dot pattern texture for dramatic contrast.
369
+ 3. **Animated Hero Graphic:** Abstract generative composition with:
370
+
371
+ - Rotating outer ring (`animate` with 60s duration, linear)
372
+ - Floating cards with staggered `y` animations (5s and 4s durations, ±10px movement)
373
+ - Geometric shapes (circles, rounded rectangles, gradient fills)
374
+ - Decorative dot grid (3x3)
375
+ - Corner accent block in solid `accent` with shadow
376
+ 4. **Gradient Icon Backgrounds:** Feature icons use full gradient backgrounds (`from-accent to-accent-secondary`) rather than translucent fills.
377
+ 5. **Gradient Border Effects:** Highlighted elements (pricing tiers, featured cards) use the 2px gradient stroke technique.
378
+ 6. **Large Decorative Elements:** Quote marks at `120px`, step numbers at `text-4xl`, trend arrows in badges.
379
+ 7. **Pulsing Indicators:** Animated dots in badges using scale/opacity keyframes.
380
+ 8. **Arrow Connectors:** Timeline steps connected by small accent-colored circular badges with arrow icons.
381
+
382
+ ---
383
+
384
+ ## Effects & Animation
385
+
386
+ **Motion Philosophy:** Smooth, confident, and purposeful. Animations enhance understanding and add delight without being distracting. All motion follows natural easing curves.
387
+
388
+ **Transition Defaults:**
389
+
390
+ - Standard: `transition-all duration-200 ease-out`
391
+ - Entrance: `duration-700` with stagger (`0.1s` delay between children)
392
+ - Hover lifts: `duration-300`
393
+ - Button active: `duration-200` with scale down
394
+
395
+ **Entrance Animations (Framer Motion):**
396
+
397
+ ```js
398
+ const easeOut = [0.16, 1, 0.3, 1] as const;
399
+
400
+ const fadeInUp = {
401
+ hidden: { opacity: 0, y: 28 },
402
+ visible: { opacity: 1, y: 0, transition: { duration: 0.7, ease: easeOut } }
403
+ };
404
+
405
+ const fadeIn = {
406
+ hidden: { opacity: 0 },
407
+ visible: { opacity: 1, transition: { duration: 0.7, ease: easeOut } }
408
+ };
409
+
410
+ const stagger = {
411
+ hidden: {},
412
+ visible: { transition: { staggerChildren: 0.1, delayChildren: 0.1 } }
413
+ };
414
+ ```
415
+
416
+ **Continuous Animations:**
417
+
418
+ - Rotating ring: `60s` linear infinite rotation (hero graphic)
419
+ - Floating cards: `4-5s` ease-in-out infinite y-axis bobbing (±10px amplitude)
420
+ - Pulsing dot: `2s` infinite scale/opacity pulse (scale: [1, 1.3, 1], opacity: [1, 0.7, 1])
421
+ - Activity indicators: `3s` infinite scale/opacity pulse (subtle)
422
+
423
+ ---
424
+
425
+ ## Responsive Strategy
426
+
427
+ **Breakpoint Philosophy:** Mobile layouts simplify structure but maintain the bold aesthetic. Touch targets are 44px+ minimum.
428
+
429
+ - **Hero:** Single column. Hide abstract graphic on small screens. Stack CTAs vertically with full width (`w-full sm:w-auto`).
430
+ - **Stats:** 2 columns on mobile → 4 columns on desktop with vertical dividers hidden on mobile
431
+ - **Features:** 1 column → 2 columns (md) → 3 columns (lg) with first card spanning on larger screens
432
+ - **How It Works:** Vertical stack on mobile, horizontal timeline with connecting line on desktop (md+)
433
+ - **Pricing:** Stack vertically, highlighted tier maintains elevation and gradient border
434
+ - **Testimonials:** Stack vertically, center card offset removed on mobile
435
+ - **Final CTA:** Input and button stack vertically on mobile, horizontal on sm+, button goes full width on mobile
436
+
437
+ **Key Adaptations:**
438
+
439
+ - Reduce headline sizes: `text-[2.75rem]` mobile → `text-6xl` → `text-[5.25rem]` desktop
440
+ - Maintain generous section padding: `py-28` → `py-44` (reduce slightly, not dramatically)
441
+ - Hide decorative elements on mobile: rotating rings, complex graphics (use `hidden lg:block`)
442
+ - Keep gradient accents and color inversions—these define the style
443
+ - Button heights: `h-12` to `h-14` for primary CTAs (44px-56px touch targets)
444
+
445
+ ---
446
+
447
+ ## Accessibility & Best Practices
448
+
449
+ **Color Contrast:** All text meets WCAG AA. The `accent` blue (#0052FF) on white background passes at 4.5:1+. Inverted sections use near-white text (#FFFFFF or rgba(255,255,255,0.9)) on deep slate (#0F172A) for maximum contrast.
450
+
451
+ **Focus States:**
452
+
453
+ - Visible focus rings using `ring-2 ring-accent ring-offset-2` with `ring-offset-background`
454
+ - Focus rings match the gradient accent aesthetic
455
+ - Interactive elements have clear hover/focus differentiation (lift, shadow, color shift)
456
+ - Buttons have `active:scale-[0.98]` for tactile feedback
457
+
458
+ **Touch Targets:**
459
+
460
+ - Minimum 44px height on all interactive elements
461
+ - Buttons use `h-12` (48px) to `h-14` (56px) for primary CTAs
462
+ - Adequate spacing between tap targets (gap-4 minimum)
463
+
464
+ **Motion:**
465
+
466
+ - Respect `prefers-reduced-motion` for continuous animations
467
+ - Entrance animations are subtle enough to not cause issues (0.7s duration, 28px vertical movement)
468
+ - No flashing or rapid movements
469
+ - Continuous animations are slow and gentle (4-5s duration, ±10px movement)
470
+
471
+ ---
472
+
473
+ ## Implementation Notes
474
+
475
+ **Component Structure:**
476
+ All components (Button, Card, Input) are built locally using `cva` and `tailwind-merge`, following Shadcn API patterns but tailored to this design system.
477
+
478
+ **CSS Custom Properties:**
479
+ The StyleWrapper component injects all design tokens as CSS custom properties, allowing for consistent theming across all components.
480
+
481
+ **Font Loading:**
482
+ Fonts are loaded via Google Fonts:
483
+
484
+ - Inter: weights 400, 500, 600, 700
485
+ - Calistoga: default weight
486
+ - JetBrains Mono: weights 400, 500
487
+
488
+ **Animation Library:**
489
+ Framer Motion is used for all entrance animations and continuous motion. Viewport options are set to `{ once: true, amount: 0.15, margin: "-60px" }` for optimal performance and timing.
490
+ `</design-system>`