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,413 +1,377 @@
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
- # High-Fidelity Claymorphism Design System
39
-
40
- ## Design Philosophy
41
-
42
- **Core Concept: Digital Clay**
43
- This design system is not merely a "soft UI"—it is a high-fidelity simulation of a tangible, physical world constructed from **premium digital clay**. Every element on the screen should evoke the sensation of holding a high-end, matte-finish vinyl toy or a soft, air-filled silicone object. It rejects the flatness of modern minimalism in favor of volume, weight, and tactility.
44
-
45
- **The "High-Fidelity" Difference**:
46
- Unlike early 2020s "Neumorphism" (which felt like extruded plastic) or basic "Claymorphism" (which often feels like flat vector art), **High-Fidelity Claymorphism** relies on complex, multi-layered lighting simulation using 4-layer shadow stacks. It renders objects that feel dense, substantial, and interactive—not hollow decorations.
47
-
48
- * **Materiality**: Think of soft-touch matte silicone, marshmallow-like foam, or high-quality injection-molded plastic with a premium finish. Surfaces absorb light rather than reflecting it sharply, creating a warm, inviting aesthetic.
49
- * **Lighting**: The "world" is lit by a soft, diffused overhead light source positioned top-left, creating deep ambient occlusion shadows below objects and gentle specular highlights on their upper ridges. This creates the illusion of physical depth.
50
- * **Shadow Architecture**: Every element uses carefully crafted multi-layer shadows:
51
- - **Outer shadows**: Soft, colored drop shadows that define distance from the surface
52
- - **Highlight shadows**: Top-left highlights that simulate light reflection
53
- - **Inner shadows**: Subtle colored reflections and rim lights that add dimensionality
54
- - **Active states**: Pressed elements use inset shadows to simulate physical depression
55
-
56
- **The Sensory Vibe**:
57
-
58
- * **Playful & Optimistic**: The interface radiates joy through "candy store" colors (vivid violets, hot pinks, sky blues, emerald greens, amber oranges) and bouncy, organic motion. It feels safe, welcoming, and unpretentious—like a premium toy store display.
59
- * **Tactile & Responsive**: Elements don't just change color when interacted with—they physically react with exaggerated realism. Buttons actively "squish" (scale-[0.92] + shadow-clayPressed) and compress under the cursor. Cards lift and float towards the user (-translate-y-2 with enhanced shadows). Every interaction provides satisfying visual feedback.
60
- * **Friendly & Safe**: There are **zero sharp corners** in this universe. Every edge is aggressively rounded (`rounded-[20px]` minimum, up to `rounded-[60px]` for large containers), subconsciously signaling safety and approachability to the user. The design language speaks "friendly" and "accessible" without words.
61
- * **Premium Craft**: Despite the playfulness, this aesthetic maintains a sense of quality through careful attention to detail: consistent border radii, precise shadow layering, harmonious color relationships, and smooth micro-interactions.
62
-
63
- **The "Clay" Physics Engine**:
64
-
65
- 1. **Convexity (The Bulge)**: Primary interactive elements (Buttons, Stat orbs, Feature cards) bulge OUT towards the user with `shadow-clayButton` or `shadow-clayCard`. They capture light on their top-left edge and cast soft colored shadows below, creating the illusion of floating above the surface.
66
- 2. **Concavity (The Press)**: Secondary surfaces (Input fields, Active button states, FAQ panels when open) are pressed INTO the clay surface with `shadow-clayPressed`. They cast internal shadows on their top edge and catch light on their bottom lip, making them feel recessed.
67
- 3. **Buoyancy (The Float)**: The interface exists in a zero-gravity environment with high air resistance. Background blobs drift slowly (8-12s animations with translateY and rotate). Cards hover effortlessly with hover states that amplify the float effect. Nothing feels statically "stuck" to the grid—everything breathes and moves subtly.
68
- 4. **Micro-Physics**: Hover states consistently lift elements upward (`hover:-translate-y-1` to `-translate-y-2`) while enhancing their shadows, simulating the element floating closer to the viewer. Active/pressed states do the opposite—compressing downward with reduced shadows.
69
-
70
- ---
71
-
72
- ## Design Token System
73
-
74
- ### Colors (The "Candy Shop" Palette)
75
-
76
- **Background**:
77
-
78
- * **Canvas**: `#F4F1FA` (Very pale, cool lavender-white). This provides a cleaner, more modern base than warm beige. Never use pure white—the slight tint creates warmth.
79
-
80
- **Foreground**:
81
-
82
- * **Text (Primary)**: `#332F3A` (Soft Charcoal). High contrast (passing WCAG AA) but softer than black for a friendlier feel.
83
- * **Muted (Secondary)**: `#635F69` (Dark Lavender-Gray). Crucial for readability against light backgrounds. Use for body text, labels, and secondary information. Never go lighter than this value.
84
-
85
- **Accents (Vibrant & Saturated)**:
86
-
87
- * **Primary Accent**: `#7C3AED` (Vivid Violet). The hero color used for primary CTAs, links, and brand emphasis.
88
- * **Secondary Accent**: `#DB2777` (Hot Pink). Used in gradients and for secondary emphasis.
89
- * **Tertiary**: `#0EA5E9` (Sky Blue). For informational elements and background blobs.
90
- * **Success/Benefits**: `#10B981` (Emerald Green). For checkmarks and positive indicators.
91
- * **Warning**: `#F59E0B` (Amber). For alerts and star ratings.
92
-
93
- **Gradient Strategy**:
94
-
95
- * **Primary Buttons**: `bg-gradient-to-br from-[#A78BFA] to-[#7C3AED]` (lighter violet to primary violet). This creates depth and prevents overly dark buttons.
96
- * **Icon Orbs**: `bg-gradient-to-br` from light pastel (400) to saturated hue (600) with varied colors for visual interest (e.g., `from-blue-400 to-blue-600`, `from-purple-400 to-purple-600`, `from-pink-400 to-pink-600`).
97
- * **Text Highlights**: Use multi-stop gradients for hero text (`clay-text-gradient`): `from-clay-foreground 20%, to-clay-accent 60%, to-clay-accent-alt`. Keep gradient text large (text-5xl+) for readability.
98
- * **Background Blobs**: Semi-transparent accent colors with 10% opacity and blur-3xl for soft ambient lighting.
99
-
100
- ### Typography
101
-
102
- **Font Selection**:
103
-
104
- * **Headings**: **Nunito** (Google Fonts, Weights: 700/800/900). The rounded terminals perfectly complement the soft clay aesthetic. Apply via inline styles: `style={{ fontFamily: "Nunito, sans-serif" }}` for all headings, stat numbers, and emphasis text.
105
- * **Body**: **DM Sans** (Google Fonts, Weights: 400/500/700). Geometric, clean, and highly readable. Applied globally via body font-family.
106
-
107
- **Hierarchy (Mobile-First with Progressive Enhancement)**:
108
-
109
- * **Hero Headline**: `text-5xl sm:text-6xl md:text-7xl lg:text-8xl`, Black weight (font-black), tight tracking (tracking-tight), line-height 1.1. Always use Nunito.
110
- * **Section Titles**: `text-3xl sm:text-4xl md:text-5xl`, Extrabold (font-extrabold) or Black. Always use Nunito.
111
- * **Card Titles**: `text-xl` to `text-2xl` (larger for hero cards: `text-3xl`), Bold (font-bold) to Extrabold. Use Nunito.
112
- * **Body Text**: `text-base` to `text-lg`, Medium weight (font-medium), relaxed leading (leading-relaxed). Use DM Sans.
113
- * **Small Text**: `text-sm` to `text-xs`, Medium to Bold weight. Use for labels, metadata, uppercase tracking-wide treatments.
114
-
115
- **Typography Best Practices**:
116
-
117
- * Always pair Nunito headings with DM Sans body for optimal hierarchy.
118
- * Use `font-black` (900 weight) for maximum impact on large headings and numbers.
119
- * Ensure line-height is generous: `leading-relaxed` (1.625) for body, `leading-[1.1]` for tight display headings.
120
- * Limit line length to 60-75 characters with max-w-2xl to max-w-3xl containers for optimal readability.
121
- * Use `tracking-tight` on large headings to maintain visual density, `tracking-wide` or `tracking-widest` on small caps/labels.
122
-
123
- ### Shapes & Radii
124
-
125
- **The "Super-Rounded" Rule** (Absolute Values Only):
126
-
127
- * **Large Containers/Hero Sections**: `rounded-[48px]` to `rounded-[60px]`
128
- * **Standard Cards**: `rounded-[32px]` (the default for most cards)
129
- * **Medium Elements** (Benefits pills, Blog cards): `rounded-[24px]`
130
- * **Buttons & Inputs**: `rounded-[20px]` or `rounded-2xl`
131
- * **Icon Containers**: `rounded-2xl` (16px) for square icons, `rounded-full` for circular
132
- * **Small Badges**: `rounded-lg` (8px) minimum, `rounded-full` preferred
133
- * **Stat Orbs**: `rounded-full` (perfect circles)
134
-
135
- **Critical Rules**:
136
-
137
- * Never use `rounded-md` (4px) or `rounded-sm`. They appear too sharp and generic for this aesthetic.
138
- * Maintain consistency: if a card uses `rounded-[32px]`, its nested image should use `rounded-[24px]` (8px less) to create visual hierarchy.
139
- * On mobile, you may reduce radii slightly (e.g., `rounded-[32px] sm:rounded-[40px]`) to maximize screen real estate while maintaining the soft aesthetic.
140
-
141
- ### Shadows (The Engine of Clay)
142
-
143
- This system uses a **High-Fidelity Shadow Stack** to simulate complex lighting.
144
-
145
- **1. Deep Clay (Surface)**:
146
- For the main background elements or large containers.
147
-
148
- ```css
149
- box-shadow:
150
- 30px 30px 60px #cdc6d9, /* Deep, soft ambient occlusion */
151
- -30px -30px 60px #ffffff, /* Top-left ambient light */
152
- inset 10px 10px 20px rgba(139, 92, 246, 0.05), /* Subtle color reflection */
153
- inset -10px -10px 20px rgba(255, 255, 255, 0.8); /* Surface specularity */
154
- ```
155
-
156
- **2. Clay Card (Floating)**:
157
- For standard content cards.
158
-
159
- ```css
160
- box-shadow:
161
- 16px 16px 32px rgba(160, 150, 180, 0.2), /* Soft purple-gray drop shadow */
162
- -10px -10px 24px rgba(255, 255, 255, 0.9), /* Strong top-left highlight */
163
- inset 6px 6px 12px rgba(139, 92, 246, 0.03), /* Inner colored bounce light */
164
- inset -6px -6px 12px rgba(255, 255, 255, 1); /* Inner rim light */
165
- ```
166
-
167
- **3. Clay Button (High Convexity)**:
168
- For clickable elements.
169
-
170
- ```css
171
- box-shadow:
172
- 12px 12px 24px rgba(139, 92, 246, 0.3), /* Strong colored drop shadow */
173
- -8px -8px 16px rgba(255, 255, 255, 0.4), /* Top-left highlight */
174
- inset 4px 4px 8px rgba(255, 255, 255, 0.4), /* Inner rim */
175
- inset -4px -4px 8px rgba(0, 0, 0, 0.1); /* Bottom-right shading */
176
- ```
177
-
178
- **4. Clay Pressed (Recessed)**:
179
- For inputs and active states.
180
-
181
- ```css
182
- box-shadow:
183
- inset 10px 10px 20px #d9d4e3, /* Deep inner shadow top-left */
184
- inset -10px -10px 20px #ffffff; /* Inner highlight bottom-right */
185
- ```
186
-
187
- ---
188
-
189
- ## Component Architecture
190
-
191
- ### 1. The Universal Card (`Card`)
192
-
193
- * **Base Styles**: `relative overflow-hidden rounded-[32px] bg-clay-cardBg p-8 text-clay-foreground shadow-clayCard backdrop-blur-xl`
194
- * **Interactive States**:
195
- * Default: `shadow-clayCard` (4-layer shadow with soft depth)
196
- * Hover: `hover:-translate-y-2 hover:shadow-[enhanced]` (lifted with stronger shadow)
197
- * Transition: `transition-all duration-500` (smooth, premium feel)
198
- * **Structure**:
199
- * Outer wrapper handles positioning, overflow, shadows
200
- * **Inner Content Wrapper**: `<div className="relative z-10 flex h-full flex-col">{children}</div>` to support absolute positioned decorative elements
201
- * **Decorations**: Use absolute positioned panels with negative margins (`-bottom-8 -left-8 -right-8`) to create "peeking" UI elements that emerge from card bottoms
202
- * **Variants**:
203
- * Glass effect: `bg-white/60` to `bg-white/80`
204
- * Solid: `bg-white`
205
- * Feature hero card: `md:col-span-2 md:row-span-2` with larger internal padding
206
-
207
- ### 2. The Clay Button (`Button`)
208
-
209
- * **Base Shape**: `rounded-[20px]` with chunky height (`h-14` default, `h-16` for lg)
210
- * **Base Styles**: `inline-flex items-center justify-center font-bold tracking-wide transition-all duration-200`
211
- * **Variants**:
212
- * **Primary/Default**: `bg-gradient-to-br from-[#A78BFA] to-[#7C3AED] text-white shadow-clayButton hover:shadow-clayButtonHover`
213
- * **Secondary**: `bg-white text-clay-foreground shadow-clayButton`
214
- * **Outline**: `border-2 border-clay-accent/20 bg-transparent text-clay-accent hover:border-clay-accent hover:bg-clay-accent/5`
215
- * **Ghost**: `text-clay-foreground hover:bg-clay-accent/10 hover:text-clay-accent`
216
- * **Interactive States**:
217
- * Hover: `hover:-translate-y-1` (lift up 4px) + Enhanced shadow
218
- * Active: `active:scale-[0.92] active:shadow-clayPressed` (pronounced squish effect)
219
- * Focus: `focus-visible:ring-4 focus-visible:ring-clay-accent/30 focus-visible:ring-offset-2`
220
- * **Sizing**: Use `size` prop: `sm` (h-11), `default` (h-14), `lg` (h-16)
221
-
222
- ### 3. The Recessed Input (`Input`)
223
-
224
- * **Base Shape**: `rounded-2xl` with generous height `h-16`
225
- * **Base Styles**: `flex w-full border-0 bg-[#EFEBF5] px-6 py-4 text-clay-foreground text-lg shadow-clayPressed`
226
- * **States**:
227
- * Default: Recessed with `shadow-clayPressed` (inset shadows)
228
- * Focus: `focus:bg-white focus:ring-4 focus:ring-clay-accent/20` (transforms to raised white surface)
229
- * Placeholder: `placeholder:text-clay-muted`
230
- * **Accessibility**: `transition-all duration-200` for smooth state changes
231
-
232
- ### 4. Floating 3D Blobs (Background)
233
-
234
- **Never use a flat background.** Always include 3-4 large, animated blobs.
235
-
236
- * **Container**: `<div className="pointer-events-none fixed inset-0 overflow-hidden -z-10">`
237
- * **Individual Blobs**:
238
- * Classes: `absolute h-[60vh] w-[60vh] rounded-full blur-3xl`
239
- * Colors: Accent colors with `/10` opacity (e.g., `bg-[#8B5CF6]/10`, `bg-[#EC4899]/10`, `bg-[#0EA5E9]/10`)
240
- * Positioning: Negative margins to bleed off edges (`-top-[10%] -left-[10%]`, `-right-[10%] top-[20%]`)
241
- * Animation: `clay-blob` or `clay-blob-alt` with staggered `animation-delay-2000` or `animation-delay-4000`
242
- * **Purpose**: Creates ambient colored lighting that shows through glass-morphic cards
243
-
244
- ---
245
-
246
- ## Animation System
247
-
248
- **1. Clay Float (`clay-float`)**:
249
- Simulates zero-gravity drift for background blobs. 8 second duration.
250
-
251
- ```css
252
- @keyframes clay-float {
253
- 0%, 100% { transform: translateY(0) rotate(0deg); }
254
- 50% { transform: translateY(-20px) rotate(2deg); }
255
- }
256
- ```
257
-
258
- **2. Clay Float Delayed (`clay-float-delayed`)**:
259
- Alternative animation with opposite rotation. 10 second duration.
260
-
261
- ```css
262
- @keyframes clay-float-delayed {
263
- 0%, 100% { transform: translateY(0) rotate(0deg); }
264
- 50% { transform: translateY(-15px) rotate(-2deg); }
265
- }
266
- ```
267
-
268
- **3. Clay Float Slow (`clay-float-slow`)**:
269
- For hero decorative elements that orbit the headline. 12 second duration with more pronounced movement.
270
-
271
- ```css
272
- @keyframes clay-float-slow {
273
- 0%, 100% { transform: translateY(0) rotate(0deg); }
274
- 50% { transform: translateY(-30px) rotate(5deg); }
275
- }
276
- ```
277
-
278
- **4. Clay Breathe (`clay-breathe`)**:
279
- Simulates an object inflating/deflating slightly. 6 second duration. Used on stat orbs.
280
-
281
- ```css
282
- @keyframes clay-breathe {
283
- 0%, 100% { transform: scale(1); }
284
- 50% { transform: scale(1.02); }
285
- }
286
- ```
287
-
288
- **5. Hover Lift**:
289
- Standard interactive elements should lift upward on hover:
290
-
291
- * Cards: `hover:-translate-y-2` (8px) with enhanced shadow
292
- * Benefits pills: `hover:-translate-y-1` (4px)
293
- * Testimonials: `hover:-translate-y-2` (8px)
294
- * Blog posts: `hover:-translate-y-3` (12px) for dramatic effect
295
- * Buttons: `hover:-translate-y-1` (4px) with shadow enhancement
296
-
297
- **6. Active Press**:
298
- Buttons use `active:scale-[0.92]` combined with `active:shadow-clayPressed` to simulate a physical squish when clicked. Duration should be fast (200ms) for immediate feedback.
299
-
300
- **7. Scale Transforms**:
301
-
302
- * Stat orbs: `hover:scale-110` (10% growth)
303
- * How It Works circles: `group-hover:scale-110` with 300ms duration
304
- * Pricing cards (non-highlighted): `hover:scale-105` (5% subtle growth)
305
- * Featured card in Bento grid: `hover:scale-[1.02]` (minimal growth due to large size)
306
-
307
- **8. Animation Delays**:
308
- Use staggered animations for visual rhythm:
309
-
310
- * `.animation-delay-2000` (2s delay)
311
- * `.animation-delay-4000` (4s delay)
312
-
313
- **9. Reduced Motion**:
314
- Always include `@media (prefers-reduced-motion: reduce)` to disable all animations for accessibility.
315
-
316
- ---
317
-
318
- ## Layout Patterns
319
-
320
- **1. Masonry / Bento Grid**:
321
-
322
- * Don't use uniform grids. Mix `col-span-1` with `col-span-2` or `row-span-2` cards.
323
- * Use `hover:scale-[1.02]` on large grid items for a tactile feel.
324
-
325
- **2. Split Layouts**:
326
-
327
- * Use 50/50 splits for "Product" or "Benefits" sections.
328
- * One side text, one side **Abstract 3D Composition** (nested clay shapes, not just an image).
329
-
330
- **3. Overlapping Elements**:
331
-
332
- * Allow elements to break their containers (e.g., a "Popular" badge floating *above* a pricing card).
333
- * Use negative margins to pull decorative elements to the edges.
334
-
335
- ---
336
-
337
- ## Responsive Strategy
338
-
339
- **Mobile-First Approach with Progressive Enhancement**
340
-
341
- The Clay design system maintains its playful, tactile personality across all screen sizes while adapting layouts and sizing for optimal mobile experience.
342
-
343
- **Typography Scaling**:
344
-
345
- * Hero headlines: `text-5xl sm:text-6xl md:text-7xl → lg:text-8xl`
346
- * Section titles: `text-3xl sm:text-4xl md:text-5xl`
347
- * Body text: `text-base sm:text-lg md:text-xl` where appropriate
348
- * Always maintain `leading-relaxed` and proper line length constraints
349
-
350
- **Layout Transformations**:
351
-
352
- * **Navigation**: Compact on mobile (`h-16 rounded-[32px] px-4`) → Larger on desktop (`sm:h-20 sm:rounded-[40px] sm:px-8`). Hide non-essential nav items on mobile.
353
- * **Hero**: Stack CTAs vertically (`flex-col gap-6`) → Horizontal on desktop (`sm:flex-row`)
354
- * **Stats**: 2-column grid on mobile (`grid-cols-2 gap-6`) 4 columns on desktop (`md:grid-cols-4 gap-8`)
355
- * **Features**: Single column Bento layout with spans on desktop (`md:grid-cols-2 lg:grid-cols-3` with hero card `md:col-span-2 md:row-span-2`)
356
- * **Benefits/Product Detail**: Stack vertically on mobile → Side-by-side split on desktop (`lg:grid-cols-2`)
357
- * **Pricing**: Stack cards on mobile 3 columns on desktop (`md:grid-cols-3`). Scale effect for highlighted card only applies on desktop (`md:scale-110`)
358
-
359
- **Component Adjustments**:
360
-
361
- * **Cards**: Reduce padding on mobile (`p-6 sm:p-8`)
362
- * **Border Radii**: Maintain generous radii even on mobile (never less than `rounded-[20px]`)
363
- * **Buttons**: Full width on mobile (`w-full sm:w-auto`) for primary CTAs
364
- * **Decorative Elements**: Hide some floating shapes on mobile (`hidden lg:block`)
365
- * **Shadows**: Keep full shadow stacksthey're essential to the aesthetic
366
-
367
- **Touch Targets**:
368
-
369
- * All interactive elements meet 44px minimum tap target (buttons are `h-14+`)
370
- * Increase spacing in mobile navigation for easier tapping
371
- * Ensure accordion FAQ items have adequate vertical spacing
372
-
373
- **Performance**:
374
-
375
- * Animations still run on mobile but respect `prefers-reduced-motion`
376
- * Blur effects (`backdrop-blur-xl`) remain—they're critical to the glass-clay aesthetic
377
- * Background blobs scale with viewport units (`vh`) so they adapt naturally
378
-
379
- **What NOT to Change on Mobile**:
380
-
381
- * Don't flatten the design—keep the shadows and depth
382
- * Don't reduce border radii to generic values
383
- * Don't remove the candy-store colors or make them muted
384
- * Don't disable all animations (only simplify if performance issues arise)
385
-
386
- ---
387
-
388
- ## Dos and Don'ts
389
-
390
- * **DO** use pronounced "Squish" animations on click (`active:scale-[0.92]` combined with `shadow-clayPressed`).
391
- * **DO** use varying border radii within components (e.g., `rounded-[48px]` for outer container, `rounded-[32px]` for card, `rounded-[24px]` for inner image).
392
- * **DO** use "Glass-Clay" hybrid (semi-transparent white `bg-white/60` to `/80` + `backdrop-blur-xl`) for cards to reveal background blobs.
393
- * **DO** use multi-layer shadow stacks (4 shadows minimum) to achieve high-fidelity depth.
394
- * **DO** apply Nunito font family explicitly to all headings, numbers, and labels via inline styles.
395
- * **DO** use vibrant gradient backgrounds for icon containers with varied colors (blue, purple, pink, green, cyan, amber).
396
- * **DON'T** use gray text lighter than `#635F69`. This is the minimum for accessibility against light backgrounds.
397
- * **DON'T** use sharp corners anywhere. Minimum radius is `rounded-[20px]`, never `rounded-md` or `rounded-lg`.
398
- * **DON'T** use flat colors for backgrounds. Always include animated blobs or subtle gradients.
399
- * **DON'T** use gradient text for font sizes smaller than `text-5xl` (readability risk).
400
- * **DON'T** make buttons too small. Minimum height is `h-11` (44px) for accessibility.
401
- * **DON'T** skip the hover lift effect on interactive elements—it's core to the tactile feel.
402
-
403
- ---
404
-
405
- ## Implementation Checklist
406
-
407
- - [ ] **Background**: Canvas `#F4F1FA` + Animated Blobs.
408
- - [ ] **Shadows**: 4-layer box-shadows defined in CSS.
409
- - [ ] **Typography**: Nunito Black (Headings) + DM Sans (Body).
410
- - [ ] **Buttons**: Gradient, rounded-2xl, click-squish.
411
- - [ ] **Cards**: White/60%, backdrop-blur, rounded-3xl.
412
- - [ ] **Text**: High contrast charcoal/slate, no light grays.
413
- `</design-system>`
1
+ <design-system>
2
+ # High-Fidelity Claymorphism Design System
3
+
4
+ ## Design Philosophy
5
+
6
+ **Core Concept: Digital Clay**
7
+ This design system is not merely a "soft UI"—it is a high-fidelity simulation of a tangible, physical world constructed from **premium digital clay**. Every element on the screen should evoke the sensation of holding a high-end, matte-finish vinyl toy or a soft, air-filled silicone object. It rejects the flatness of modern minimalism in favor of volume, weight, and tactility.
8
+
9
+ **The "High-Fidelity" Difference**:
10
+ Unlike early 2020s "Neumorphism" (which felt like extruded plastic) or basic "Claymorphism" (which often feels like flat vector art), **High-Fidelity Claymorphism** relies on complex, multi-layered lighting simulation using 4-layer shadow stacks. It renders objects that feel dense, substantial, and interactive—not hollow decorations.
11
+
12
+ * **Materiality**: Think of soft-touch matte silicone, marshmallow-like foam, or high-quality injection-molded plastic with a premium finish. Surfaces absorb light rather than reflecting it sharply, creating a warm, inviting aesthetic.
13
+ * **Lighting**: The "world" is lit by a soft, diffused overhead light source positioned top-left, creating deep ambient occlusion shadows below objects and gentle specular highlights on their upper ridges. This creates the illusion of physical depth.
14
+ * **Shadow Architecture**: Every element uses carefully crafted multi-layer shadows:
15
+ - **Outer shadows**: Soft, colored drop shadows that define distance from the surface
16
+ - **Highlight shadows**: Top-left highlights that simulate light reflection
17
+ - **Inner shadows**: Subtle colored reflections and rim lights that add dimensionality
18
+ - **Active states**: Pressed elements use inset shadows to simulate physical depression
19
+
20
+ **The Sensory Vibe**:
21
+
22
+ * **Playful & Optimistic**: The interface radiates joy through "candy store" colors (vivid violets, hot pinks, sky blues, emerald greens, amber oranges) and bouncy, organic motion. It feels safe, welcoming, and unpretentious—like a premium toy store display.
23
+ * **Tactile & Responsive**: Elements don't just change color when interacted with—they physically react with exaggerated realism. Buttons actively "squish" (scale-[0.92] + shadow-clayPressed) and compress under the cursor. Cards lift and float towards the user (-translate-y-2 with enhanced shadows). Every interaction provides satisfying visual feedback.
24
+ * **Friendly & Safe**: There are **zero sharp corners** in this universe. Every edge is aggressively rounded (`rounded-[20px]` minimum, up to `rounded-[60px]` for large containers), subconsciously signaling safety and approachability to the user. The design language speaks "friendly" and "accessible" without words.
25
+ * **Premium Craft**: Despite the playfulness, this aesthetic maintains a sense of quality through careful attention to detail: consistent border radii, precise shadow layering, harmonious color relationships, and smooth micro-interactions.
26
+
27
+ **The "Clay" Physics Engine**:
28
+
29
+ 1. **Convexity (The Bulge)**: Primary interactive elements (Buttons, Stat orbs, Feature cards) bulge OUT towards the user with `shadow-clayButton` or `shadow-clayCard`. They capture light on their top-left edge and cast soft colored shadows below, creating the illusion of floating above the surface.
30
+ 2. **Concavity (The Press)**: Secondary surfaces (Input fields, Active button states, FAQ panels when open) are pressed INTO the clay surface with `shadow-clayPressed`. They cast internal shadows on their top edge and catch light on their bottom lip, making them feel recessed.
31
+ 3. **Buoyancy (The Float)**: The interface exists in a zero-gravity environment with high air resistance. Background blobs drift slowly (8-12s animations with translateY and rotate). Cards hover effortlessly with hover states that amplify the float effect. Nothing feels statically "stuck" to the grid—everything breathes and moves subtly.
32
+ 4. **Micro-Physics**: Hover states consistently lift elements upward (`hover:-translate-y-1` to `-translate-y-2`) while enhancing their shadows, simulating the element floating closer to the viewer. Active/pressed states do the opposite—compressing downward with reduced shadows.
33
+
34
+ ---
35
+
36
+ ## Design Token System
37
+
38
+ ### Colors (The "Candy Shop" Palette)
39
+
40
+ **Background**:
41
+
42
+ * **Canvas**: `#F4F1FA` (Very pale, cool lavender-white). This provides a cleaner, more modern base than warm beige. Never use pure white—the slight tint creates warmth.
43
+
44
+ **Foreground**:
45
+
46
+ * **Text (Primary)**: `#332F3A` (Soft Charcoal). High contrast (passing WCAG AA) but softer than black for a friendlier feel.
47
+ * **Muted (Secondary)**: `#635F69` (Dark Lavender-Gray). Crucial for readability against light backgrounds. Use for body text, labels, and secondary information. Never go lighter than this value.
48
+
49
+ **Accents (Vibrant & Saturated)**:
50
+
51
+ * **Primary Accent**: `#7C3AED` (Vivid Violet). The hero color used for primary CTAs, links, and brand emphasis.
52
+ * **Secondary Accent**: `#DB2777` (Hot Pink). Used in gradients and for secondary emphasis.
53
+ * **Tertiary**: `#0EA5E9` (Sky Blue). For informational elements and background blobs.
54
+ * **Success/Benefits**: `#10B981` (Emerald Green). For checkmarks and positive indicators.
55
+ * **Warning**: `#F59E0B` (Amber). For alerts and star ratings.
56
+
57
+ **Gradient Strategy**:
58
+
59
+ * **Primary Buttons**: `bg-gradient-to-br from-[#A78BFA] to-[#7C3AED]` (lighter violet to primary violet). This creates depth and prevents overly dark buttons.
60
+ * **Icon Orbs**: `bg-gradient-to-br` from light pastel (400) to saturated hue (600) with varied colors for visual interest (e.g., `from-blue-400 to-blue-600`, `from-purple-400 to-purple-600`, `from-pink-400 to-pink-600`).
61
+ * **Text Highlights**: Use multi-stop gradients for hero text (`clay-text-gradient`): `from-clay-foreground 20%, to-clay-accent 60%, to-clay-accent-alt`. Keep gradient text large (text-5xl+) for readability.
62
+ * **Background Blobs**: Semi-transparent accent colors with 10% opacity and blur-3xl for soft ambient lighting.
63
+
64
+ ### Typography
65
+
66
+ **Font Selection**:
67
+
68
+ * **Headings**: **Nunito** (Google Fonts, Weights: 700/800/900). The rounded terminals perfectly complement the soft clay aesthetic. Apply via inline styles: `style={{ fontFamily: "Nunito, sans-serif" }}` for all headings, stat numbers, and emphasis text.
69
+ * **Body**: **DM Sans** (Google Fonts, Weights: 400/500/700). Geometric, clean, and highly readable. Applied globally via body font-family.
70
+
71
+ **Hierarchy (Mobile-First with Progressive Enhancement)**:
72
+
73
+ * **Hero Headline**: `text-5xl sm:text-6xl md:text-7xl lg:text-8xl`, Black weight (font-black), tight tracking (tracking-tight), line-height 1.1. Always use Nunito.
74
+ * **Section Titles**: `text-3xl sm:text-4xl md:text-5xl`, Extrabold (font-extrabold) or Black. Always use Nunito.
75
+ * **Card Titles**: `text-xl` to `text-2xl` (larger for hero cards: `text-3xl`), Bold (font-bold) to Extrabold. Use Nunito.
76
+ * **Body Text**: `text-base` to `text-lg`, Medium weight (font-medium), relaxed leading (leading-relaxed). Use DM Sans.
77
+ * **Small Text**: `text-sm` to `text-xs`, Medium to Bold weight. Use for labels, metadata, uppercase tracking-wide treatments.
78
+
79
+ **Typography Best Practices**:
80
+
81
+ * Always pair Nunito headings with DM Sans body for optimal hierarchy.
82
+ * Use `font-black` (900 weight) for maximum impact on large headings and numbers.
83
+ * Ensure line-height is generous: `leading-relaxed` (1.625) for body, `leading-[1.1]` for tight display headings.
84
+ * Limit line length to 60-75 characters with max-w-2xl to max-w-3xl containers for optimal readability.
85
+ * Use `tracking-tight` on large headings to maintain visual density, `tracking-wide` or `tracking-widest` on small caps/labels.
86
+
87
+ ### Shapes & Radii
88
+
89
+ **The "Super-Rounded" Rule** (Absolute Values Only):
90
+
91
+ * **Large Containers/Hero Sections**: `rounded-[48px]` to `rounded-[60px]`
92
+ * **Standard Cards**: `rounded-[32px]` (the default for most cards)
93
+ * **Medium Elements** (Benefits pills, Blog cards): `rounded-[24px]`
94
+ * **Buttons & Inputs**: `rounded-[20px]` or `rounded-2xl`
95
+ * **Icon Containers**: `rounded-2xl` (16px) for square icons, `rounded-full` for circular
96
+ * **Small Badges**: `rounded-lg` (8px) minimum, `rounded-full` preferred
97
+ * **Stat Orbs**: `rounded-full` (perfect circles)
98
+
99
+ **Critical Rules**:
100
+
101
+ * Never use `rounded-md` (4px) or `rounded-sm`. They appear too sharp and generic for this aesthetic.
102
+ * Maintain consistency: if a card uses `rounded-[32px]`, its nested image should use `rounded-[24px]` (8px less) to create visual hierarchy.
103
+ * On mobile, you may reduce radii slightly (e.g., `rounded-[32px] sm:rounded-[40px]`) to maximize screen real estate while maintaining the soft aesthetic.
104
+
105
+ ### Shadows (The Engine of Clay)
106
+
107
+ This system uses a **High-Fidelity Shadow Stack** to simulate complex lighting.
108
+
109
+ **1. Deep Clay (Surface)**:
110
+ For the main background elements or large containers.
111
+
112
+ ```css
113
+ box-shadow:
114
+ 30px 30px 60px #cdc6d9, /* Deep, soft ambient occlusion */
115
+ -30px -30px 60px #ffffff, /* Top-left ambient light */
116
+ inset 10px 10px 20px rgba(139, 92, 246, 0.05), /* Subtle color reflection */
117
+ inset -10px -10px 20px rgba(255, 255, 255, 0.8); /* Surface specularity */
118
+ ```
119
+
120
+ **2. Clay Card (Floating)**:
121
+ For standard content cards.
122
+
123
+ ```css
124
+ box-shadow:
125
+ 16px 16px 32px rgba(160, 150, 180, 0.2), /* Soft purple-gray drop shadow */
126
+ -10px -10px 24px rgba(255, 255, 255, 0.9), /* Strong top-left highlight */
127
+ inset 6px 6px 12px rgba(139, 92, 246, 0.03), /* Inner colored bounce light */
128
+ inset -6px -6px 12px rgba(255, 255, 255, 1); /* Inner rim light */
129
+ ```
130
+
131
+ **3. Clay Button (High Convexity)**:
132
+ For clickable elements.
133
+
134
+ ```css
135
+ box-shadow:
136
+ 12px 12px 24px rgba(139, 92, 246, 0.3), /* Strong colored drop shadow */
137
+ -8px -8px 16px rgba(255, 255, 255, 0.4), /* Top-left highlight */
138
+ inset 4px 4px 8px rgba(255, 255, 255, 0.4), /* Inner rim */
139
+ inset -4px -4px 8px rgba(0, 0, 0, 0.1); /* Bottom-right shading */
140
+ ```
141
+
142
+ **4. Clay Pressed (Recessed)**:
143
+ For inputs and active states.
144
+
145
+ ```css
146
+ box-shadow:
147
+ inset 10px 10px 20px #d9d4e3, /* Deep inner shadow top-left */
148
+ inset -10px -10px 20px #ffffff; /* Inner highlight bottom-right */
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Component Architecture
154
+
155
+ ### 1. The Universal Card (`Card`)
156
+
157
+ * **Base Styles**: `relative overflow-hidden rounded-[32px] bg-clay-cardBg p-8 text-clay-foreground shadow-clayCard backdrop-blur-xl`
158
+ * **Interactive States**:
159
+ * Default: `shadow-clayCard` (4-layer shadow with soft depth)
160
+ * Hover: `hover:-translate-y-2 hover:shadow-[enhanced]` (lifted with stronger shadow)
161
+ * Transition: `transition-all duration-500` (smooth, premium feel)
162
+ * **Structure**:
163
+ * Outer wrapper handles positioning, overflow, shadows
164
+ * **Inner Content Wrapper**: `<div className="relative z-10 flex h-full flex-col">{children}</div>` to support absolute positioned decorative elements
165
+ * **Decorations**: Use absolute positioned panels with negative margins (`-bottom-8 -left-8 -right-8`) to create "peeking" UI elements that emerge from card bottoms
166
+ * **Variants**:
167
+ * Glass effect: `bg-white/60` to `bg-white/80`
168
+ * Solid: `bg-white`
169
+ * Feature hero card: `md:col-span-2 md:row-span-2` with larger internal padding
170
+
171
+ ### 2. The Clay Button (`Button`)
172
+
173
+ * **Base Shape**: `rounded-[20px]` with chunky height (`h-14` default, `h-16` for lg)
174
+ * **Base Styles**: `inline-flex items-center justify-center font-bold tracking-wide transition-all duration-200`
175
+ * **Variants**:
176
+ * **Primary/Default**: `bg-gradient-to-br from-[#A78BFA] to-[#7C3AED] text-white shadow-clayButton hover:shadow-clayButtonHover`
177
+ * **Secondary**: `bg-white text-clay-foreground shadow-clayButton`
178
+ * **Outline**: `border-2 border-clay-accent/20 bg-transparent text-clay-accent hover:border-clay-accent hover:bg-clay-accent/5`
179
+ * **Ghost**: `text-clay-foreground hover:bg-clay-accent/10 hover:text-clay-accent`
180
+ * **Interactive States**:
181
+ * Hover: `hover:-translate-y-1` (lift up 4px) + Enhanced shadow
182
+ * Active: `active:scale-[0.92] active:shadow-clayPressed` (pronounced squish effect)
183
+ * Focus: `focus-visible:ring-4 focus-visible:ring-clay-accent/30 focus-visible:ring-offset-2`
184
+ * **Sizing**: Use `size` prop: `sm` (h-11), `default` (h-14), `lg` (h-16)
185
+
186
+ ### 3. The Recessed Input (`Input`)
187
+
188
+ * **Base Shape**: `rounded-2xl` with generous height `h-16`
189
+ * **Base Styles**: `flex w-full border-0 bg-[#EFEBF5] px-6 py-4 text-clay-foreground text-lg shadow-clayPressed`
190
+ * **States**:
191
+ * Default: Recessed with `shadow-clayPressed` (inset shadows)
192
+ * Focus: `focus:bg-white focus:ring-4 focus:ring-clay-accent/20` (transforms to raised white surface)
193
+ * Placeholder: `placeholder:text-clay-muted`
194
+ * **Accessibility**: `transition-all duration-200` for smooth state changes
195
+
196
+ ### 4. Floating 3D Blobs (Background)
197
+
198
+ **Never use a flat background.** Always include 3-4 large, animated blobs.
199
+
200
+ * **Container**: `<div className="pointer-events-none fixed inset-0 overflow-hidden -z-10">`
201
+ * **Individual Blobs**:
202
+ * Classes: `absolute h-[60vh] w-[60vh] rounded-full blur-3xl`
203
+ * Colors: Accent colors with `/10` opacity (e.g., `bg-[#8B5CF6]/10`, `bg-[#EC4899]/10`, `bg-[#0EA5E9]/10`)
204
+ * Positioning: Negative margins to bleed off edges (`-top-[10%] -left-[10%]`, `-right-[10%] top-[20%]`)
205
+ * Animation: `clay-blob` or `clay-blob-alt` with staggered `animation-delay-2000` or `animation-delay-4000`
206
+ * **Purpose**: Creates ambient colored lighting that shows through glass-morphic cards
207
+
208
+ ---
209
+
210
+ ## Animation System
211
+
212
+ **1. Clay Float (`clay-float`)**:
213
+ Simulates zero-gravity drift for background blobs. 8 second duration.
214
+
215
+ ```css
216
+ @keyframes clay-float {
217
+ 0%, 100% { transform: translateY(0) rotate(0deg); }
218
+ 50% { transform: translateY(-20px) rotate(2deg); }
219
+ }
220
+ ```
221
+
222
+ **2. Clay Float Delayed (`clay-float-delayed`)**:
223
+ Alternative animation with opposite rotation. 10 second duration.
224
+
225
+ ```css
226
+ @keyframes clay-float-delayed {
227
+ 0%, 100% { transform: translateY(0) rotate(0deg); }
228
+ 50% { transform: translateY(-15px) rotate(-2deg); }
229
+ }
230
+ ```
231
+
232
+ **3. Clay Float Slow (`clay-float-slow`)**:
233
+ For hero decorative elements that orbit the headline. 12 second duration with more pronounced movement.
234
+
235
+ ```css
236
+ @keyframes clay-float-slow {
237
+ 0%, 100% { transform: translateY(0) rotate(0deg); }
238
+ 50% { transform: translateY(-30px) rotate(5deg); }
239
+ }
240
+ ```
241
+
242
+ **4. Clay Breathe (`clay-breathe`)**:
243
+ Simulates an object inflating/deflating slightly. 6 second duration. Used on stat orbs.
244
+
245
+ ```css
246
+ @keyframes clay-breathe {
247
+ 0%, 100% { transform: scale(1); }
248
+ 50% { transform: scale(1.02); }
249
+ }
250
+ ```
251
+
252
+ **5. Hover Lift**:
253
+ Standard interactive elements should lift upward on hover:
254
+
255
+ * Cards: `hover:-translate-y-2` (8px) with enhanced shadow
256
+ * Benefits pills: `hover:-translate-y-1` (4px)
257
+ * Testimonials: `hover:-translate-y-2` (8px)
258
+ * Blog posts: `hover:-translate-y-3` (12px) for dramatic effect
259
+ * Buttons: `hover:-translate-y-1` (4px) with shadow enhancement
260
+
261
+ **6. Active Press**:
262
+ Buttons use `active:scale-[0.92]` combined with `active:shadow-clayPressed` to simulate a physical squish when clicked. Duration should be fast (200ms) for immediate feedback.
263
+
264
+ **7. Scale Transforms**:
265
+
266
+ * Stat orbs: `hover:scale-110` (10% growth)
267
+ * How It Works circles: `group-hover:scale-110` with 300ms duration
268
+ * Pricing cards (non-highlighted): `hover:scale-105` (5% subtle growth)
269
+ * Featured card in Bento grid: `hover:scale-[1.02]` (minimal growth due to large size)
270
+
271
+ **8. Animation Delays**:
272
+ Use staggered animations for visual rhythm:
273
+
274
+ * `.animation-delay-2000` (2s delay)
275
+ * `.animation-delay-4000` (4s delay)
276
+
277
+ **9. Reduced Motion**:
278
+ Always include `@media (prefers-reduced-motion: reduce)` to disable all animations for accessibility.
279
+
280
+ ---
281
+
282
+ ## Layout Patterns
283
+
284
+ **1. Masonry / Bento Grid**:
285
+
286
+ * Don't use uniform grids. Mix `col-span-1` with `col-span-2` or `row-span-2` cards.
287
+ * Use `hover:scale-[1.02]` on large grid items for a tactile feel.
288
+
289
+ **2. Split Layouts**:
290
+
291
+ * Use 50/50 splits for "Product" or "Benefits" sections.
292
+ * One side text, one side **Abstract 3D Composition** (nested clay shapes, not just an image).
293
+
294
+ **3. Overlapping Elements**:
295
+
296
+ * Allow elements to break their containers (e.g., a "Popular" badge floating *above* a pricing card).
297
+ * Use negative margins to pull decorative elements to the edges.
298
+
299
+ ---
300
+
301
+ ## Responsive Strategy
302
+
303
+ **Mobile-First Approach with Progressive Enhancement**
304
+
305
+ The Clay design system maintains its playful, tactile personality across all screen sizes while adapting layouts and sizing for optimal mobile experience.
306
+
307
+ **Typography Scaling**:
308
+
309
+ * Hero headlines: `text-5xl → sm:text-6xl → md:text-7xl → lg:text-8xl`
310
+ * Section titles: `text-3xl → sm:text-4xl md:text-5xl`
311
+ * Body text: `text-base → sm:text-lg → md:text-xl` where appropriate
312
+ * Always maintain `leading-relaxed` and proper line length constraints
313
+
314
+ **Layout Transformations**:
315
+
316
+ * **Navigation**: Compact on mobile (`h-16 rounded-[32px] px-4`) → Larger on desktop (`sm:h-20 sm:rounded-[40px] sm:px-8`). Hide non-essential nav items on mobile.
317
+ * **Hero**: Stack CTAs vertically (`flex-col gap-6`) → Horizontal on desktop (`sm:flex-row`)
318
+ * **Stats**: 2-column grid on mobile (`grid-cols-2 gap-6`) → 4 columns on desktop (`md:grid-cols-4 gap-8`)
319
+ * **Features**: Single column → Bento layout with spans on desktop (`md:grid-cols-2 lg:grid-cols-3` with hero card `md:col-span-2 md:row-span-2`)
320
+ * **Benefits/Product Detail**: Stack vertically on mobile → Side-by-side split on desktop (`lg:grid-cols-2`)
321
+ * **Pricing**: Stack cards on mobile → 3 columns on desktop (`md:grid-cols-3`). Scale effect for highlighted card only applies on desktop (`md:scale-110`)
322
+
323
+ **Component Adjustments**:
324
+
325
+ * **Cards**: Reduce padding on mobile (`p-6 sm:p-8`)
326
+ * **Border Radii**: Maintain generous radii even on mobile (never less than `rounded-[20px]`)
327
+ * **Buttons**: Full width on mobile (`w-full sm:w-auto`) for primary CTAs
328
+ * **Decorative Elements**: Hide some floating shapes on mobile (`hidden lg:block`)
329
+ * **Shadows**: Keep full shadow stacks—they're essential to the aesthetic
330
+
331
+ **Touch Targets**:
332
+
333
+ * All interactive elements meet 44px minimum tap target (buttons are `h-14+`)
334
+ * Increase spacing in mobile navigation for easier tapping
335
+ * Ensure accordion FAQ items have adequate vertical spacing
336
+
337
+ **Performance**:
338
+
339
+ * Animations still run on mobile but respect `prefers-reduced-motion`
340
+ * Blur effects (`backdrop-blur-xl`) remain—they're critical to the glass-clay aesthetic
341
+ * Background blobs scale with viewport units (`vh`) so they adapt naturally
342
+
343
+ **What NOT to Change on Mobile**:
344
+
345
+ * Don't flatten the design—keep the shadows and depth
346
+ * Don't reduce border radii to generic values
347
+ * Don't remove the candy-store colors or make them muted
348
+ * Don't disable all animations (only simplify if performance issues arise)
349
+
350
+ ---
351
+
352
+ ## Dos and Don'ts
353
+
354
+ * **DO** use pronounced "Squish" animations on click (`active:scale-[0.92]` combined with `shadow-clayPressed`).
355
+ * **DO** use varying border radii within components (e.g., `rounded-[48px]` for outer container, `rounded-[32px]` for card, `rounded-[24px]` for inner image).
356
+ * **DO** use "Glass-Clay" hybrid (semi-transparent white `bg-white/60` to `/80` + `backdrop-blur-xl`) for cards to reveal background blobs.
357
+ * **DO** use multi-layer shadow stacks (4 shadows minimum) to achieve high-fidelity depth.
358
+ * **DO** apply Nunito font family explicitly to all headings, numbers, and labels via inline styles.
359
+ * **DO** use vibrant gradient backgrounds for icon containers with varied colors (blue, purple, pink, green, cyan, amber).
360
+ * **DON'T** use gray text lighter than `#635F69`. This is the minimum for accessibility against light backgrounds.
361
+ * **DON'T** use sharp corners anywhere. Minimum radius is `rounded-[20px]`, never `rounded-md` or `rounded-lg`.
362
+ * **DON'T** use flat colors for backgrounds. Always include animated blobs or subtle gradients.
363
+ * **DON'T** use gradient text for font sizes smaller than `text-5xl` (readability risk).
364
+ * **DON'T** make buttons too small. Minimum height is `h-11` (44px) for accessibility.
365
+ * **DON'T** skip the hover lift effect on interactive elementsit's core to the tactile feel.
366
+
367
+ ---
368
+
369
+ ## Implementation Checklist
370
+
371
+ - [ ] **Background**: Canvas `#F4F1FA` + Animated Blobs.
372
+ - [ ] **Shadows**: 4-layer box-shadows defined in CSS.
373
+ - [ ] **Typography**: Nunito Black (Headings) + DM Sans (Body).
374
+ - [ ] **Buttons**: Gradient, rounded-2xl, click-squish.
375
+ - [ ] **Cards**: White/60%, backdrop-blur, rounded-3xl.
376
+ - [ ] **Text**: High contrast charcoal/slate, no light grays.
377
+ `</design-system>`