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,591 +1,555 @@
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: Material You (Material Design 3)
39
-
40
- ## Design Philosophy
41
-
42
- **Core Principles**: Personal, adaptive, and spirited. Material You (MD3) represents a shift from Material Design 2's rigid "paper and ink" metaphor to a more organic, expressive system. The design extracts color palettes from seed colors (simulating the wallpaper-based personalization), emphasizes tonal surfaces over stark whites, and uses organic shapes with soft curves.
43
-
44
- **Vibe**: Friendly, soft, rounded, colorful, and personal. The aesthetic feels modern yet approachable, with generous use of color through tonal surfaces rather than just accent highlights. Movement is smooth and confident, never jarring. Every interaction feels tactile and responsive, with micro-animations that provide satisfying feedback.
45
-
46
- **Enhanced Implementation Details**:
47
- This implementation goes beyond the baseline Material Design 3 specifications by incorporating:
48
-
49
- - **Layered depth**: Multiple blur shapes, radial gradients, and shadow combinations create atmospheric backgrounds
50
- - **Rich micro-interactions**: Hover states include scale transforms, shadow elevations, glow effects, and smooth color transitions
51
- - **Asymmetric elevation**: Featured cards (like pricing tiers) use vertical translation to create visual hierarchy
52
- - **Progressive disclosure**: Elements reveal depth on interaction through shadow transitions and background opacity changes
53
- - **Tactile feedback**: All interactive elements include active:scale-95 for press feedback, enhancing the physical feel
54
-
55
- **Key Differentiators from MD2**:
56
-
57
- - Tonal surface system replaces pure white backgrounds
58
- - Pill-shaped buttons replace rounded rectangles
59
- - Organic shapes and blur effects replace flat geometric patterns
60
- - State layers (opacity overlays) replace solid color changes
61
- - Multi-layered atmospheric effects create rich visual depth
62
- - Micro-interactions on every interactive element enhance perceived quality
63
-
64
- ## Design Token System (The DNA)
65
-
66
- ### Colors (Light Mode)
67
-
68
- Material You uses a sophisticated tonal palette derived from a seed color. For this implementation, use a **Purple/Violet seed** (#6750A4).
69
-
70
- **Core Palette Structure**:
71
-
72
- - **Background (Surface)**: `#FFFBFE` - Slightly warm off-white, not pure white
73
- - **Foreground (On Surface)**: `#1C1B1F` - Near-black with slight warmth
74
- - **Primary**: `#6750A4` - Rich purple (seed color)
75
- - **On Primary**: `#FFFFFF` - Pure white for text on primary
76
- - **Secondary Container**: `#E8DEF8` - Light lavender tint
77
- - **On Secondary Container**: `#1D192B` - Dark text for secondary surfaces
78
- - **Tertiary**: `#7D5260` - Complementary mauve/dusty rose
79
- - **Surface Container**: `#F3EDF7` - Subtle tinted surface, one step darker than background
80
- - **Surface Container Low (Muted)**: `#E7E0EC` - For inputs and recessed surfaces
81
- - **Outline (Border)**: `#79747E` - Medium gray for borders
82
- - **On Surface Variant**: `#49454F` - For secondary text and icons
83
-
84
- **Color Relationship Rules**:
85
-
86
- - Use surface tones to create depth hierarchy: Background → Surface Container → Surface Container Low
87
- - Primary color should appear in CTAs, focus states, and key interactive elements
88
- - Secondary Container is for pills, chips, and less prominent containers
89
- - Tertiary is for accent elements and FABs (Floating Action Buttons)
90
- - Never use pure white (#FFFFFF) for backgrounds - always use the tinted Surface color
91
- - On colored backgrounds (primary/tertiary), use transparent white/black overlays for states
92
-
93
- **Opacity Patterns for State Layers**:
94
-
95
- - Hover on solid colors: 90% of base color (`bg-md-primary/90`)
96
- - Active/pressed on solid colors: 80% of base color (`bg-md-primary/80`)
97
- - Hover on transparent surfaces: 10% of primary (`bg-md-primary/10`)
98
- - Focus on transparent surfaces: 5% of primary (`bg-md-primary/5`)
99
- - Subtle overlay effects: 20% opacity with backdrop-blur
100
-
101
- ### Typography
102
-
103
- **Font Family**: **Roboto** (Google Fonts) - The canonical Material Design typeface
104
-
105
- - Load weights: 400 (Regular), 500 (Medium), 700 (Bold)
106
- - Use Medium (500) as default for headings to maintain the friendly, approachable feel
107
- - Body text uses Regular (400)
108
-
109
- **Type Scale** (Material Design 3 scale):
110
-
111
- - **Display Large**: 3.5rem / 56px (Hero headlines)
112
- - **Headline Large**: 3rem / 48px (Section titles)
113
- - **Headline Medium**: 2rem / 32px (Subsection titles)
114
- - **Title Large**: 1.5rem / 24px (Card titles)
115
- - **Body Large**: 1.25rem / 20px (Lead paragraphs)
116
- - **Body Medium**: 1rem / 16px (Standard body text)
117
- - **Label Medium**: 0.875rem / 14px (Button text)
118
- - **Label Small**: 0.75rem / 12px (Captions, metadata)
119
-
120
- **Letter Spacing**:
121
-
122
- - Headings: Normal to tight (0 to -0.01em)
123
- - Body text: Normal (0)
124
- - Labels/buttons: Slightly wide (0.01em) for Medium weight at small sizes
125
-
126
- **Line Height**:
127
-
128
- - Display/Headlines: 1.2 to 1.3 (tight for impact)
129
- - Body text: 1.5 to 1.6 (relaxed for readability)
130
- - Compact UI elements: 1.4
131
-
132
- ### Radius & Borders
133
-
134
- Material You uses **organic, generous rounding** to create a friendly aesthetic.
135
-
136
- **Radius Values**:
137
-
138
- - **Extra Small**: `8px` - Minimal UI elements, chips
139
- - **Small**: `12px` - Small cards, compact elements
140
- - **Medium**: `16px` - Default card radius
141
- - **Large**: `24px` - Prominent cards, containers
142
- - **Extra Large**: `28px` - Dialogs, sheets, large surfaces
143
- - **Extra Extra Large**: `32px` to `48px` - Hero sections, major containers
144
- - **Full (Pills)**: `9999px` or `rounded-full` - All buttons, chips, badges, FABs
145
-
146
- **When to Use Each**:
147
-
148
- - Buttons, chips, badges: Always `full` (pill-shaped)
149
- - Standard cards: `24px` (Large)
150
- - Feature cards, FAQ items: `24px` (Large)
151
- - Hero containers, major sections: `48px` (Extra Extra Large)
152
- - Nested content cards: `32px`
153
- - Input fields: Top corners `12px`, bottom corners `0px` (Material 3 filled text field style)
154
-
155
- **Borders**:
156
-
157
- - Use sparingly - tonal surfaces are preferred over borders
158
- - When needed, use `#79747E` (Outline) color
159
- - Thickness: 1px standard, 2px for focus states (bottom border on inputs)
160
- - On colored backgrounds, use `white/10` or `white/20` for subtle borders
161
-
162
- ### Shadows & Effects
163
-
164
- Material You uses **elevation** through subtle shadows combined with tonal surfaces, not dramatic drop shadows. This implementation enhances the baseline with progressive shadow transitions.
165
-
166
- **Shadow Philosophy**:
167
-
168
- - **Elevation 0** (Default): No shadow or `shadow-sm` - use tonal surface difference for depth
169
- - **Elevation 1**: `shadow-sm` - Subtle lift for cards at rest (default state for most cards)
170
- - **Elevation 2**: `shadow-md` - Hover state for interactive cards, default for important containers
171
- - **Elevation 3**: `shadow-lg` to `shadow-xl` - FABs, major sections, raised buttons on hover
172
- - **Elevation 4+**: Reserved for modals, dialogs (not common in base design)
173
-
174
- **Enhanced Shadow Patterns**:
175
-
176
- - All interactive cards transition from `shadow-sm` to `shadow-md` on hover
177
- - Important sections (Benefits, Final CTA) start at `shadow-lg`
178
- - Combined with scale transforms (`hover:scale-[1.02]`) for depth enhancement
179
- - Shadow transitions use 300ms duration for smooth, confident movement
180
-
181
- **Shadow Composition**:
182
-
183
- - Soft, diffuse shadows (large blur, minimal spread)
184
- - Shadow colors should be near-black with low opacity (5-15%)
185
- - Combine with tonal surface colors for best effect
186
- - Layer shadows with background blur shapes for atmospheric richness
187
-
188
- **Blur Effects** (Signature Technique):
189
-
190
- - Large organic shapes: `blur-3xl` (64px+)
191
- - Background decorative elements: Colored circles/shapes at 10-30% opacity with heavy blur
192
- - Atmospheric effect: Multiple overlapping blurred shapes with radial gradients
193
- - Glass-morphism cards: `backdrop-blur-sm` with `bg-white/10` to `bg-white/15` and borders at `border-white/10` to `border-white/20`
194
- - Hero sections: Multiple blur shapes positioned off-canvas with transforms
195
-
196
- **Glow/Aura Effects**:
197
-
198
- - Use radial gradients with transparency for ambient light
199
- - Color: Primary, secondary, or tertiary at 10-30% opacity
200
- - Position: Behind hero content, in major sections (Benefits, Final CTA), or on hover states
201
- - Animated glow: `opacity-0 group-hover:opacity-30` for progressive disclosure
202
- - Example: Numbered badges in How It Works section have hidden blur that reveals on hover
203
-
204
- ### Textures & Patterns
205
-
206
- **Organic Decorative Shapes**:
207
-
208
- - Large rounded rectangles (`rounded-[100px]`) with one corner less rounded (`rounded-tr-[20px]`)
209
- - Perfect circles (`rounded-full`)
210
- - Layered with `mix-blend-multiply` for color richness
211
- - Use primary, secondary, and tertiary colors at 80-90% opacity
212
- - Apply `blur-3xl` for soft, atmospheric quality
213
- - Position partially off-canvas (using negative translate values)
214
-
215
- **Background Treatment**:
216
-
217
- - Never use solid white - always use Surface color (#FFFBFE)
218
- - Radial gradients for subtle color washes: `bg-[radial-gradient(circle_at_top_right,_var(--color-md-secondary)_0%,_transparent_40%)]`
219
- - Opacity: 10-20% for background patterns
220
-
221
- **Layering Strategy**:
222
-
223
- 1. Base surface (tinted off-white)
224
- 2. Decorative organic shapes (blurred, multiply blend)
225
- 3. Surface container (content backgrounds)
226
- 4. Content
227
- 5. Interactive elements with state layers
228
-
229
- ## Component Styling Principles
230
-
231
- ### Buttons
232
-
233
- Material You buttons are **pill-shaped** and use a state layer system.
234
-
235
- **Variants**:
236
-
237
- 1. **Filled (Primary)**:
238
-
239
- - Background: Primary color
240
- - Text: White
241
- - Shape: `rounded-full` (pill)
242
- - Shadow: None at rest, `shadow-md` on hover
243
- - State layer: `bg-md-primary/90` on hover, `/80` on active
244
- - Scale: `active:scale-95` for tactile feedback
245
- 2. **Tonal (Secondary)**:
246
-
247
- - Background: Secondary Container color
248
- - Text: On Secondary Container color
249
- - Shape: `rounded-full`
250
- - State layer: Similar to filled
251
- - Use for less prominent actions
252
- 3. **Outlined**:
253
-
254
- - Background: Transparent
255
- - Border: 1px Outline color
256
- - Text: Primary color
257
- - Shape: `rounded-full`
258
- - State layer: `bg-md-primary/5` on hover
259
- 4. **Text/Ghost**:
260
-
261
- - Background: Transparent
262
- - Text: Primary color
263
- - State layer: `bg-md-primary/10` on hover
264
- - Shape: `rounded-full`
265
- 5. **FAB (Floating Action Button)**:
266
-
267
- - Background: Tertiary color
268
- - Text: White
269
- - Shape: `rounded-2xl` (28px) for square FABs, `rounded-full` for circular
270
- - Shadow: `shadow-md` at rest, `shadow-xl` on hover
271
- - Size: 56x56px (h-14 w-14)
272
-
273
- **Animation**:
274
-
275
- - Transition: 300ms duration
276
- - Easing: `cubic-bezier(0.2, 0, 0, 1)` - Material You's signature easing
277
- - Scale on active: `scale-95` for press feedback
278
- - Shadow should animate smoothly with same timing
279
-
280
- **Sizing**:
281
-
282
- - Small: `h-9` (36px)
283
- - Default: `h-10` (40px)
284
- - Large: `h-12` (48px)
285
- - Horizontal padding: Generous (`px-6` to `px-8`)
286
-
287
- ### Cards/Containers
288
-
289
- **Visual Treatment**:
290
-
291
- - Background: Surface Container (`#F3EDF7`), never pure white
292
- - Border radius: `24px` (Large) for standard cards
293
- - Border: None by default - use tonal background for separation
294
- - Shadow: `shadow-sm` at rest, `shadow-md` on hover
295
- - Padding: Generous (`p-6` to `p-8`)
296
-
297
- **State Transitions**:
298
-
299
- - Hover: `hover:bg-md-surface-variant/20` or `hover:shadow-md`, combined with transforms
300
- - Duration: 300ms with standard easing (`transition-all duration-300`)
301
- - Scale: `hover:scale-[1.02]` for feature cards and interactive elements
302
- - Shadow elevation: `shadow-sm` to `shadow-md` on hover for all interactive cards
303
- - Group pattern: Use `group` class and `group-hover:` modifiers for coordinated animations
304
-
305
- **Nested Cards**:
306
-
307
- - Use even lighter backgrounds or transparent with borders
308
- - Example: On colored container, use `bg-white/10` with `border-white/10`
309
-
310
- **Special Containers**:
311
-
312
- - Hero sections: Extra large radius (`rounded-[48px]`), surface container background
313
- - Section backgrounds: Tonal fills with decorative blur shapes
314
- - Glass-morphism effects: `bg-white/10 backdrop-blur-sm border border-white/10`
315
-
316
- ### Inputs (Material 3 Filled Text Field)
317
-
318
- **Distinctive Style**:
319
-
320
- - Top corners rounded (`rounded-t-lg` / 12px)
321
- - Bottom corners square
322
- - Bottom border: 2px solid Outline color
323
- - Background: Muted (Surface Container Low) color
324
- - Height: Tall (`h-14` / 56px)
325
- - Focus state: Bottom border changes to Primary color
326
-
327
- **Structure**:
328
-
329
- ```
330
- ┌─────────────┐ ← Rounded top
331
- │ Input │ ← Muted background fill
332
- └─────────────┘ ← Square bottom with 2px border
333
-
334
- Focus: Primary color
335
- ```
336
-
337
- **State Handling**:
338
-
339
- - Rest: `border-md-border` (bottom)
340
- - Focus: `border-md-primary` (bottom)
341
- - Transition: 200ms color transition
342
- - Label: Placeholder uses `text-md-on-background/50`
343
-
344
- ### Interactive States
345
-
346
- **State Layer System** (Key Material You Concept):
347
- Instead of changing the base color, overlay a semi-transparent layer:
348
-
349
- 1. **Solid Color Elements** (buttons with bg):
350
-
351
- - Hover: Base color at 90% (`bg-md-primary/90`)
352
- - Active: Base color at 80% (`bg-md-primary/80`)
353
- 2. **Transparent Elements** (ghost buttons, text buttons):
354
-
355
- - Hover: Primary at 10% (`bg-md-primary/10`)
356
- - Active: Primary at 5% (`bg-md-primary/5`)
357
- 3. **Focus States**:
358
-
359
- - Ring: 2px Primary color with 2px offset
360
- - Additional: Can combine with hover state
361
- 4. **Disabled States**:
362
-
363
- - Opacity: 50% on entire element
364
- - Cursor: `cursor-not-allowed`
365
- - Pointer events: None
366
-
367
- **Transition Timing**:
368
-
369
- - Standard: `transition-all duration-300 ease-[cubic-bezier(0.2,0,0,1)]`
370
- - Fast interactions (clicks): `duration-200`
371
- - Color transitions only: `transition-colors duration-200`
372
-
373
- ## Layout Principles
374
-
375
- **Grid Usage**:
376
-
377
- - Use CSS Grid for card layouts: `grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3`
378
- - Gap: Consistent spacing, typically `gap-6` (24px) or `gap-8` (32px)
379
- - Container: Use `.container` with `mx-auto` for centered max-width layouts
380
-
381
- **Spacing Rhythm**:
382
-
383
- - Base unit: 4px (Tailwind default)
384
- - Component internal padding: `p-6` (24px) to `p-8` (32px)
385
- - Section padding: `py-12` (48px) to `py-24` (96px)
386
- - Between sections: `mb-12` or `mb-24`
387
- - Generous whitespace is encouraged - don't cram content
388
-
389
- **Section Flow**:
390
-
391
- - Alternate between tonal backgrounds and default background
392
- - Hero in large rounded container with surface-container background
393
- - Some sections on default background, others on surface-container
394
- - Use full-width colored containers (primary/tertiary) sparingly for emphasis
395
-
396
- **Responsive Behavior**:
397
-
398
- - Border radius scales down on mobile (48px → 24px)
399
- - Padding reduces proportionally
400
- - Grid collapses gracefully to single column
401
- - Text sizes scale down one step on mobile
402
-
403
- ## The "Bold Factor" (Non-Genericness)
404
-
405
- These signature elements MUST be present to achieve authentic Material You aesthetic with enhanced visual richness:
406
-
407
- 1. **Organic Blur Shapes with Layering**:
408
-
409
- - Large circular or pill-shaped divs with heavy blur (`blur-3xl`)
410
- - Use primary, secondary, tertiary colors at 10-30% opacity
411
- - Layer multiple shapes in major sections (Hero, Benefits, Final CTA)
412
- - Combine with radial gradients for atmospheric depth
413
- - Position partially off-canvas with transforms (`-translate-x-1/4`, `translate-y-1/3`)
414
- - Creates atmospheric, dynamic backgrounds that feel alive
415
- 2. **Tonal Surface System with Shadow Progression**:
416
-
417
- - NEVER use pure white backgrounds
418
- - Layer surfaces: Background → Surface Container → Surface Container Low
419
- - Color difference is subtle but creates depth without heavy shadows
420
- - All cards use surface-container color by default
421
- - Progressive shadows: `shadow-sm` at rest, `shadow-md` on hover, `shadow-lg` for important sections
422
- 3. **Pill-Shaped Buttons with Active Feedback**:
423
-
424
- - ALL buttons must be `rounded-full` (except FABs which are rounded-2xl)
425
- - No rectangular or lightly rounded buttons
426
- - Active state: `active:scale-95` for tactile press feedback
427
- - This is the most instantly recognizable Material You characteristic
428
- 4. **Large Organic Border Radii**:
429
-
430
- - Hero sections and major containers use 32px to 48px radius
431
- - Regular cards use 24px radius
432
- - This isn't just "rounded corners" - it's architectural, shaping the entire layout
433
- - Creates a friendly, approachable feel vs. the rigid rectangles of MD2
434
- 5. **State Layer Interaction Model with Micro-Animations**:
435
-
436
- - Hover/press states use opacity overlays, not color shifts
437
- - Visible as `bg-color/90` or `bg-color/10` patterns
438
- - Smooth cubic-bezier easing: `cubic-bezier(0.2, 0, 0, 1)`
439
- - Enhanced with scale transforms, shadow elevations, and glow effects
440
- - Group interactions: Use `group` and `group-hover:` for coordinated animations
441
- 6. **Asymmetric Elevation** (Enhancement):
442
-
443
- - Featured pricing tier: `md:-translate-y-4` to lift above siblings
444
- - Creates visual hierarchy through vertical positioning
445
- - Combined with ring highlight (`ring-2 ring-md-primary`) for emphasis
446
- 7. **Rich Micro-Interactions** (Enhancement):
447
-
448
- - Blog cards: Image zoom on hover (`group-hover:scale-105`)
449
- - Feature cards: Hover scale on entire card (`hover:scale-[1.02]`)
450
- - How It Works badges: Glow effect reveals on hover
451
- - Pricing features: Translate-x on hover for list items
452
- - Every interactive element has smooth, satisfying feedback
453
-
454
- ## Anti-Patterns (What to Avoid)
455
-
456
- **Don't:**
457
-
458
- - Use pure white (#FFFFFF) for backgrounds - breaks the tonal system
459
- - Use rectangular or slightly rounded buttons - must be pill-shaped
460
- - ❌ Use heavy drop shadows - MD3 prefers subtle elevation with tonal surfaces
461
- - ❌ Change button colors on hover - use state layers (opacity overlays) instead
462
- - ❌ Use sharp corners on major containers - generosity with border radius is key
463
- - Ignore the organic blur shapes - they're signature to the style
464
- - Use pure black text - use the On Surface color (#1C1B1F) with warmth
465
- - Flatten inputs - use the distinctive filled text field style with bottom border
466
- - Create harsh geometric patterns - shapes should feel organic, soft, flowing
467
- - ❌ Rely on borders for container separation - use tonal backgrounds instead
468
-
469
- **Common Mistakes**:
470
-
471
- - Making border radius too small (16px is minimum for cards, 24px+ is better)
472
- - Forgetting to round top corners but square bottom corners on inputs
473
- - Using hover color changes instead of state layers
474
- - Over-using shadows when tonal surfaces would work better
475
- - Not layering enough organic shapes in backgrounds
476
- - Making the color palette too muted - MD3 is expressive and colorful
477
- - Missing micro-interactions - every interactive element should have smooth feedback
478
- - Forgetting the `group` pattern for coordinated hover effects
479
- - Not using `active:scale-95` on clickable elements for tactile feedback
480
- - Static cards without hover states - breaks the interactive, responsive feel
481
-
482
- ## Animation & Motion
483
-
484
- **Easing Function**:
485
-
486
- - Standard: `cubic-bezier(0.2, 0, 0, 1)` - Material You's signature easing
487
- - This creates smooth, confident movement that feels neither robotic nor bouncy
488
- - Also known as "Emphasized Decelerate" in Material specs
489
-
490
- **Duration**:
491
-
492
- - Micro-interactions (button hover): 200ms
493
- - Standard transitions (cards, surfaces): 300ms
494
- - Large surfaces (modals, sheets): 400-500ms
495
- - Never exceed 500ms for UI transitions
496
-
497
- **Transform Patterns**:
498
-
499
- - Scale on press: `active:scale-95` for tactile feedback
500
- - Hover lift: Can use subtle `translate-y` (1-2px) combined with shadow increase
501
- - Entrance animations: Fade + slight scale or slide
502
- - Exit animations: Faster than entrance (200ms vs 300ms)
503
-
504
- **What Animates**:
505
-
506
- - Background color (state layers)
507
- - Shadow elevation
508
- - Scale (on press)
509
- - Opacity (for overlays, toasts)
510
- - Transform (for FABs, special interactions)
511
-
512
- **What Doesn't Animate**:
513
-
514
- - Border radius (stays constant)
515
- - Layout shifts (use fixed dimensions or smooth height transitions)
516
- - Color hue shifts (only opacity changes for state layers)
517
-
518
- ## Accessibility Considerations
519
-
520
- **Contrast Requirements**:
521
-
522
- - Text on Surface background: 4.5:1 minimum (On Surface color: #1C1B1F)
523
- - Text on Primary: AAA level (pure white #FFFFFF)
524
- - Outline color for borders: 3:1 against surfaces
525
- - Ensure tonal surface differences are visible (not just decorative)
526
-
527
- **Focus States**:
528
-
529
- - All interactive elements must have visible focus ring
530
- - Use `focus-visible:ring-2 focus-visible:ring-md-primary focus-visible:ring-offset-2`
531
- - Ring color: Primary
532
- - Ring offset: 2px for separation from element
533
-
534
- **Touch Targets**:
535
-
536
- - Minimum: 44x44px (follows WCAG guidelines)
537
- - Default button height: 40-48px (meets minimum)
538
- - FABs: 56x56px (generous touch target)
539
- - Add padding around small interactive elements if needed
540
-
541
- **Motion Preferences**:
542
-
543
- - Respect `prefers-reduced-motion` for users with vestibular disorders
544
- - Reduce or remove scale transforms, translate animations
545
- - Keep color transitions but remove movement
546
- - Example: `@media (prefers-reduced-motion: reduce) { * { animation: none; transition-duration: 0.01ms; } }`
547
-
548
- **Screen Reader Considerations**:
549
-
550
- - Decorative organic shapes should have `aria-hidden="true"`
551
- - Ensure color isn't the only indicator of state
552
- - Icon-only buttons must have accessible labels
553
- - Form inputs need associated labels (visible or aria-label)
554
-
555
- ---
556
-
557
- ## Implementation Checklist
558
-
559
- To ensure full Material You compliance with enhanced depth and interactivity:
560
-
561
- **Core Material You Elements**:
562
-
563
- - [ ] Using Roboto font (400, 500, 700 weights)
564
- - [ ] All buttons are `rounded-full` (pill-shaped)
565
- - [ ] Background is #FFFBFE (not pure white)
566
- - [ ] Cards use Surface Container (#F3EDF7) backgrounds
567
- - [ ] Organic blur shapes present in hero/key sections
568
- - [ ] State layers (opacity overlays) for hover/active states
569
- - [ ] Cubic-bezier(0.2, 0, 0, 1) easing on transitions
570
- - [ ] Large border radii on major containers (32-48px)
571
- - [ ] Inputs use filled text field style (rounded top, border bottom)
572
- - [ ] Focus rings on all interactive elements
573
- - [ ] Generous spacing and padding throughout
574
-
575
- **Enhanced Implementation**:
576
-
577
- - [ ] Progressive shadow system: `shadow-sm` → `shadow-md` on hover
578
- - [ ] Multiple blur shapes with radial gradients in major sections
579
- - [ ] `active:scale-95` on all clickable elements for tactile feedback
580
- - [ ] `group` pattern with coordinated hover animations
581
- - [ ] Hover scale (`hover:scale-[1.02]`) on feature cards
582
- - [ ] Image zoom on blog card hover (`group-hover:scale-105`)
583
- - [ ] Asymmetric elevation on featured pricing tier (`md:-translate-y-4`)
584
- - [ ] Glow effects that reveal on hover (How It Works badges)
585
- - [ ] Glass-morphism cards in Benefits section with backdrop-blur
586
- - [ ] Shadow-inner on Product Detail visualization container
587
- - [ ] Header with border-bottom and backdrop-blur
588
- - [ ] All transitions use 300ms duration minimum
589
- - [ ] Hover states on FAQ items with color transitions
590
- - [ ] Input focus states include ring for enhanced visibility
591
- `</design-system>`
1
+ <design-system>
2
+ # Design Style: Material You (Material Design 3)
3
+
4
+ ## Design Philosophy
5
+
6
+ **Core Principles**: Personal, adaptive, and spirited. Material You (MD3) represents a shift from Material Design 2's rigid "paper and ink" metaphor to a more organic, expressive system. The design extracts color palettes from seed colors (simulating the wallpaper-based personalization), emphasizes tonal surfaces over stark whites, and uses organic shapes with soft curves.
7
+
8
+ **Vibe**: Friendly, soft, rounded, colorful, and personal. The aesthetic feels modern yet approachable, with generous use of color through tonal surfaces rather than just accent highlights. Movement is smooth and confident, never jarring. Every interaction feels tactile and responsive, with micro-animations that provide satisfying feedback.
9
+
10
+ **Enhanced Implementation Details**:
11
+ This implementation goes beyond the baseline Material Design 3 specifications by incorporating:
12
+
13
+ - **Layered depth**: Multiple blur shapes, radial gradients, and shadow combinations create atmospheric backgrounds
14
+ - **Rich micro-interactions**: Hover states include scale transforms, shadow elevations, glow effects, and smooth color transitions
15
+ - **Asymmetric elevation**: Featured cards (like pricing tiers) use vertical translation to create visual hierarchy
16
+ - **Progressive disclosure**: Elements reveal depth on interaction through shadow transitions and background opacity changes
17
+ - **Tactile feedback**: All interactive elements include active:scale-95 for press feedback, enhancing the physical feel
18
+
19
+ **Key Differentiators from MD2**:
20
+
21
+ - Tonal surface system replaces pure white backgrounds
22
+ - Pill-shaped buttons replace rounded rectangles
23
+ - Organic shapes and blur effects replace flat geometric patterns
24
+ - State layers (opacity overlays) replace solid color changes
25
+ - Multi-layered atmospheric effects create rich visual depth
26
+ - Micro-interactions on every interactive element enhance perceived quality
27
+
28
+ ## Design Token System (The DNA)
29
+
30
+ ### Colors (Light Mode)
31
+
32
+ Material You uses a sophisticated tonal palette derived from a seed color. For this implementation, use a **Purple/Violet seed** (#6750A4).
33
+
34
+ **Core Palette Structure**:
35
+
36
+ - **Background (Surface)**: `#FFFBFE` - Slightly warm off-white, not pure white
37
+ - **Foreground (On Surface)**: `#1C1B1F` - Near-black with slight warmth
38
+ - **Primary**: `#6750A4` - Rich purple (seed color)
39
+ - **On Primary**: `#FFFFFF` - Pure white for text on primary
40
+ - **Secondary Container**: `#E8DEF8` - Light lavender tint
41
+ - **On Secondary Container**: `#1D192B` - Dark text for secondary surfaces
42
+ - **Tertiary**: `#7D5260` - Complementary mauve/dusty rose
43
+ - **Surface Container**: `#F3EDF7` - Subtle tinted surface, one step darker than background
44
+ - **Surface Container Low (Muted)**: `#E7E0EC` - For inputs and recessed surfaces
45
+ - **Outline (Border)**: `#79747E` - Medium gray for borders
46
+ - **On Surface Variant**: `#49454F` - For secondary text and icons
47
+
48
+ **Color Relationship Rules**:
49
+
50
+ - Use surface tones to create depth hierarchy: Background Surface Container Surface Container Low
51
+ - Primary color should appear in CTAs, focus states, and key interactive elements
52
+ - Secondary Container is for pills, chips, and less prominent containers
53
+ - Tertiary is for accent elements and FABs (Floating Action Buttons)
54
+ - Never use pure white (#FFFFFF) for backgrounds - always use the tinted Surface color
55
+ - On colored backgrounds (primary/tertiary), use transparent white/black overlays for states
56
+
57
+ **Opacity Patterns for State Layers**:
58
+
59
+ - Hover on solid colors: 90% of base color (`bg-md-primary/90`)
60
+ - Active/pressed on solid colors: 80% of base color (`bg-md-primary/80`)
61
+ - Hover on transparent surfaces: 10% of primary (`bg-md-primary/10`)
62
+ - Focus on transparent surfaces: 5% of primary (`bg-md-primary/5`)
63
+ - Subtle overlay effects: 20% opacity with backdrop-blur
64
+
65
+ ### Typography
66
+
67
+ **Font Family**: **Roboto** (Google Fonts) - The canonical Material Design typeface
68
+
69
+ - Load weights: 400 (Regular), 500 (Medium), 700 (Bold)
70
+ - Use Medium (500) as default for headings to maintain the friendly, approachable feel
71
+ - Body text uses Regular (400)
72
+
73
+ **Type Scale** (Material Design 3 scale):
74
+
75
+ - **Display Large**: 3.5rem / 56px (Hero headlines)
76
+ - **Headline Large**: 3rem / 48px (Section titles)
77
+ - **Headline Medium**: 2rem / 32px (Subsection titles)
78
+ - **Title Large**: 1.5rem / 24px (Card titles)
79
+ - **Body Large**: 1.25rem / 20px (Lead paragraphs)
80
+ - **Body Medium**: 1rem / 16px (Standard body text)
81
+ - **Label Medium**: 0.875rem / 14px (Button text)
82
+ - **Label Small**: 0.75rem / 12px (Captions, metadata)
83
+
84
+ **Letter Spacing**:
85
+
86
+ - Headings: Normal to tight (0 to -0.01em)
87
+ - Body text: Normal (0)
88
+ - Labels/buttons: Slightly wide (0.01em) for Medium weight at small sizes
89
+
90
+ **Line Height**:
91
+
92
+ - Display/Headlines: 1.2 to 1.3 (tight for impact)
93
+ - Body text: 1.5 to 1.6 (relaxed for readability)
94
+ - Compact UI elements: 1.4
95
+
96
+ ### Radius & Borders
97
+
98
+ Material You uses **organic, generous rounding** to create a friendly aesthetic.
99
+
100
+ **Radius Values**:
101
+
102
+ - **Extra Small**: `8px` - Minimal UI elements, chips
103
+ - **Small**: `12px` - Small cards, compact elements
104
+ - **Medium**: `16px` - Default card radius
105
+ - **Large**: `24px` - Prominent cards, containers
106
+ - **Extra Large**: `28px` - Dialogs, sheets, large surfaces
107
+ - **Extra Extra Large**: `32px` to `48px` - Hero sections, major containers
108
+ - **Full (Pills)**: `9999px` or `rounded-full` - All buttons, chips, badges, FABs
109
+
110
+ **When to Use Each**:
111
+
112
+ - Buttons, chips, badges: Always `full` (pill-shaped)
113
+ - Standard cards: `24px` (Large)
114
+ - Feature cards, FAQ items: `24px` (Large)
115
+ - Hero containers, major sections: `48px` (Extra Extra Large)
116
+ - Nested content cards: `32px`
117
+ - Input fields: Top corners `12px`, bottom corners `0px` (Material 3 filled text field style)
118
+
119
+ **Borders**:
120
+
121
+ - Use sparingly - tonal surfaces are preferred over borders
122
+ - When needed, use `#79747E` (Outline) color
123
+ - Thickness: 1px standard, 2px for focus states (bottom border on inputs)
124
+ - On colored backgrounds, use `white/10` or `white/20` for subtle borders
125
+
126
+ ### Shadows & Effects
127
+
128
+ Material You uses **elevation** through subtle shadows combined with tonal surfaces, not dramatic drop shadows. This implementation enhances the baseline with progressive shadow transitions.
129
+
130
+ **Shadow Philosophy**:
131
+
132
+ - **Elevation 0** (Default): No shadow or `shadow-sm` - use tonal surface difference for depth
133
+ - **Elevation 1**: `shadow-sm` - Subtle lift for cards at rest (default state for most cards)
134
+ - **Elevation 2**: `shadow-md` - Hover state for interactive cards, default for important containers
135
+ - **Elevation 3**: `shadow-lg` to `shadow-xl` - FABs, major sections, raised buttons on hover
136
+ - **Elevation 4+**: Reserved for modals, dialogs (not common in base design)
137
+
138
+ **Enhanced Shadow Patterns**:
139
+
140
+ - All interactive cards transition from `shadow-sm` to `shadow-md` on hover
141
+ - Important sections (Benefits, Final CTA) start at `shadow-lg`
142
+ - Combined with scale transforms (`hover:scale-[1.02]`) for depth enhancement
143
+ - Shadow transitions use 300ms duration for smooth, confident movement
144
+
145
+ **Shadow Composition**:
146
+
147
+ - Soft, diffuse shadows (large blur, minimal spread)
148
+ - Shadow colors should be near-black with low opacity (5-15%)
149
+ - Combine with tonal surface colors for best effect
150
+ - Layer shadows with background blur shapes for atmospheric richness
151
+
152
+ **Blur Effects** (Signature Technique):
153
+
154
+ - Large organic shapes: `blur-3xl` (64px+)
155
+ - Background decorative elements: Colored circles/shapes at 10-30% opacity with heavy blur
156
+ - Atmospheric effect: Multiple overlapping blurred shapes with radial gradients
157
+ - Glass-morphism cards: `backdrop-blur-sm` with `bg-white/10` to `bg-white/15` and borders at `border-white/10` to `border-white/20`
158
+ - Hero sections: Multiple blur shapes positioned off-canvas with transforms
159
+
160
+ **Glow/Aura Effects**:
161
+
162
+ - Use radial gradients with transparency for ambient light
163
+ - Color: Primary, secondary, or tertiary at 10-30% opacity
164
+ - Position: Behind hero content, in major sections (Benefits, Final CTA), or on hover states
165
+ - Animated glow: `opacity-0 group-hover:opacity-30` for progressive disclosure
166
+ - Example: Numbered badges in How It Works section have hidden blur that reveals on hover
167
+
168
+ ### Textures & Patterns
169
+
170
+ **Organic Decorative Shapes**:
171
+
172
+ - Large rounded rectangles (`rounded-[100px]`) with one corner less rounded (`rounded-tr-[20px]`)
173
+ - Perfect circles (`rounded-full`)
174
+ - Layered with `mix-blend-multiply` for color richness
175
+ - Use primary, secondary, and tertiary colors at 80-90% opacity
176
+ - Apply `blur-3xl` for soft, atmospheric quality
177
+ - Position partially off-canvas (using negative translate values)
178
+
179
+ **Background Treatment**:
180
+
181
+ - Never use solid white - always use Surface color (#FFFBFE)
182
+ - Radial gradients for subtle color washes: `bg-[radial-gradient(circle_at_top_right,_var(--color-md-secondary)_0%,_transparent_40%)]`
183
+ - Opacity: 10-20% for background patterns
184
+
185
+ **Layering Strategy**:
186
+
187
+ 1. Base surface (tinted off-white)
188
+ 2. Decorative organic shapes (blurred, multiply blend)
189
+ 3. Surface container (content backgrounds)
190
+ 4. Content
191
+ 5. Interactive elements with state layers
192
+
193
+ ## Component Styling Principles
194
+
195
+ ### Buttons
196
+
197
+ Material You buttons are **pill-shaped** and use a state layer system.
198
+
199
+ **Variants**:
200
+
201
+ 1. **Filled (Primary)**:
202
+
203
+ - Background: Primary color
204
+ - Text: White
205
+ - Shape: `rounded-full` (pill)
206
+ - Shadow: None at rest, `shadow-md` on hover
207
+ - State layer: `bg-md-primary/90` on hover, `/80` on active
208
+ - Scale: `active:scale-95` for tactile feedback
209
+ 2. **Tonal (Secondary)**:
210
+
211
+ - Background: Secondary Container color
212
+ - Text: On Secondary Container color
213
+ - Shape: `rounded-full`
214
+ - State layer: Similar to filled
215
+ - Use for less prominent actions
216
+ 3. **Outlined**:
217
+
218
+ - Background: Transparent
219
+ - Border: 1px Outline color
220
+ - Text: Primary color
221
+ - Shape: `rounded-full`
222
+ - State layer: `bg-md-primary/5` on hover
223
+ 4. **Text/Ghost**:
224
+
225
+ - Background: Transparent
226
+ - Text: Primary color
227
+ - State layer: `bg-md-primary/10` on hover
228
+ - Shape: `rounded-full`
229
+ 5. **FAB (Floating Action Button)**:
230
+
231
+ - Background: Tertiary color
232
+ - Text: White
233
+ - Shape: `rounded-2xl` (28px) for square FABs, `rounded-full` for circular
234
+ - Shadow: `shadow-md` at rest, `shadow-xl` on hover
235
+ - Size: 56x56px (h-14 w-14)
236
+
237
+ **Animation**:
238
+
239
+ - Transition: 300ms duration
240
+ - Easing: `cubic-bezier(0.2, 0, 0, 1)` - Material You's signature easing
241
+ - Scale on active: `scale-95` for press feedback
242
+ - Shadow should animate smoothly with same timing
243
+
244
+ **Sizing**:
245
+
246
+ - Small: `h-9` (36px)
247
+ - Default: `h-10` (40px)
248
+ - Large: `h-12` (48px)
249
+ - Horizontal padding: Generous (`px-6` to `px-8`)
250
+
251
+ ### Cards/Containers
252
+
253
+ **Visual Treatment**:
254
+
255
+ - Background: Surface Container (`#F3EDF7`), never pure white
256
+ - Border radius: `24px` (Large) for standard cards
257
+ - Border: None by default - use tonal background for separation
258
+ - Shadow: `shadow-sm` at rest, `shadow-md` on hover
259
+ - Padding: Generous (`p-6` to `p-8`)
260
+
261
+ **State Transitions**:
262
+
263
+ - Hover: `hover:bg-md-surface-variant/20` or `hover:shadow-md`, combined with transforms
264
+ - Duration: 300ms with standard easing (`transition-all duration-300`)
265
+ - Scale: `hover:scale-[1.02]` for feature cards and interactive elements
266
+ - Shadow elevation: `shadow-sm` to `shadow-md` on hover for all interactive cards
267
+ - Group pattern: Use `group` class and `group-hover:` modifiers for coordinated animations
268
+
269
+ **Nested Cards**:
270
+
271
+ - Use even lighter backgrounds or transparent with borders
272
+ - Example: On colored container, use `bg-white/10` with `border-white/10`
273
+
274
+ **Special Containers**:
275
+
276
+ - Hero sections: Extra large radius (`rounded-[48px]`), surface container background
277
+ - Section backgrounds: Tonal fills with decorative blur shapes
278
+ - Glass-morphism effects: `bg-white/10 backdrop-blur-sm border border-white/10`
279
+
280
+ ### Inputs (Material 3 Filled Text Field)
281
+
282
+ **Distinctive Style**:
283
+
284
+ - Top corners rounded (`rounded-t-lg` / 12px)
285
+ - Bottom corners square
286
+ - Bottom border: 2px solid Outline color
287
+ - Background: Muted (Surface Container Low) color
288
+ - Height: Tall (`h-14` / 56px)
289
+ - Focus state: Bottom border changes to Primary color
290
+
291
+ **Structure**:
292
+
293
+ ```
294
+ ┌─────────────┐ ← Rounded top
295
+ │ Input │ ← Muted background fill
296
+ └─────────────┘ ← Square bottom with 2px border
297
+
298
+ Focus: Primary color
299
+ ```
300
+
301
+ **State Handling**:
302
+
303
+ - Rest: `border-md-border` (bottom)
304
+ - Focus: `border-md-primary` (bottom)
305
+ - Transition: 200ms color transition
306
+ - Label: Placeholder uses `text-md-on-background/50`
307
+
308
+ ### Interactive States
309
+
310
+ **State Layer System** (Key Material You Concept):
311
+ Instead of changing the base color, overlay a semi-transparent layer:
312
+
313
+ 1. **Solid Color Elements** (buttons with bg):
314
+
315
+ - Hover: Base color at 90% (`bg-md-primary/90`)
316
+ - Active: Base color at 80% (`bg-md-primary/80`)
317
+ 2. **Transparent Elements** (ghost buttons, text buttons):
318
+
319
+ - Hover: Primary at 10% (`bg-md-primary/10`)
320
+ - Active: Primary at 5% (`bg-md-primary/5`)
321
+ 3. **Focus States**:
322
+
323
+ - Ring: 2px Primary color with 2px offset
324
+ - Additional: Can combine with hover state
325
+ 4. **Disabled States**:
326
+
327
+ - Opacity: 50% on entire element
328
+ - Cursor: `cursor-not-allowed`
329
+ - Pointer events: None
330
+
331
+ **Transition Timing**:
332
+
333
+ - Standard: `transition-all duration-300 ease-[cubic-bezier(0.2,0,0,1)]`
334
+ - Fast interactions (clicks): `duration-200`
335
+ - Color transitions only: `transition-colors duration-200`
336
+
337
+ ## Layout Principles
338
+
339
+ **Grid Usage**:
340
+
341
+ - Use CSS Grid for card layouts: `grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3`
342
+ - Gap: Consistent spacing, typically `gap-6` (24px) or `gap-8` (32px)
343
+ - Container: Use `.container` with `mx-auto` for centered max-width layouts
344
+
345
+ **Spacing Rhythm**:
346
+
347
+ - Base unit: 4px (Tailwind default)
348
+ - Component internal padding: `p-6` (24px) to `p-8` (32px)
349
+ - Section padding: `py-12` (48px) to `py-24` (96px)
350
+ - Between sections: `mb-12` or `mb-24`
351
+ - Generous whitespace is encouraged - don't cram content
352
+
353
+ **Section Flow**:
354
+
355
+ - Alternate between tonal backgrounds and default background
356
+ - Hero in large rounded container with surface-container background
357
+ - Some sections on default background, others on surface-container
358
+ - Use full-width colored containers (primary/tertiary) sparingly for emphasis
359
+
360
+ **Responsive Behavior**:
361
+
362
+ - Border radius scales down on mobile (48px → 24px)
363
+ - Padding reduces proportionally
364
+ - Grid collapses gracefully to single column
365
+ - Text sizes scale down one step on mobile
366
+
367
+ ## The "Bold Factor" (Non-Genericness)
368
+
369
+ These signature elements MUST be present to achieve authentic Material You aesthetic with enhanced visual richness:
370
+
371
+ 1. **Organic Blur Shapes with Layering**:
372
+
373
+ - Large circular or pill-shaped divs with heavy blur (`blur-3xl`)
374
+ - Use primary, secondary, tertiary colors at 10-30% opacity
375
+ - Layer multiple shapes in major sections (Hero, Benefits, Final CTA)
376
+ - Combine with radial gradients for atmospheric depth
377
+ - Position partially off-canvas with transforms (`-translate-x-1/4`, `translate-y-1/3`)
378
+ - Creates atmospheric, dynamic backgrounds that feel alive
379
+ 2. **Tonal Surface System with Shadow Progression**:
380
+
381
+ - NEVER use pure white backgrounds
382
+ - Layer surfaces: Background → Surface Container → Surface Container Low
383
+ - Color difference is subtle but creates depth without heavy shadows
384
+ - All cards use surface-container color by default
385
+ - Progressive shadows: `shadow-sm` at rest, `shadow-md` on hover, `shadow-lg` for important sections
386
+ 3. **Pill-Shaped Buttons with Active Feedback**:
387
+
388
+ - ALL buttons must be `rounded-full` (except FABs which are rounded-2xl)
389
+ - No rectangular or lightly rounded buttons
390
+ - Active state: `active:scale-95` for tactile press feedback
391
+ - This is the most instantly recognizable Material You characteristic
392
+ 4. **Large Organic Border Radii**:
393
+
394
+ - Hero sections and major containers use 32px to 48px radius
395
+ - Regular cards use 24px radius
396
+ - This isn't just "rounded corners" - it's architectural, shaping the entire layout
397
+ - Creates a friendly, approachable feel vs. the rigid rectangles of MD2
398
+ 5. **State Layer Interaction Model with Micro-Animations**:
399
+
400
+ - Hover/press states use opacity overlays, not color shifts
401
+ - Visible as `bg-color/90` or `bg-color/10` patterns
402
+ - Smooth cubic-bezier easing: `cubic-bezier(0.2, 0, 0, 1)`
403
+ - Enhanced with scale transforms, shadow elevations, and glow effects
404
+ - Group interactions: Use `group` and `group-hover:` for coordinated animations
405
+ 6. **Asymmetric Elevation** (Enhancement):
406
+
407
+ - Featured pricing tier: `md:-translate-y-4` to lift above siblings
408
+ - Creates visual hierarchy through vertical positioning
409
+ - Combined with ring highlight (`ring-2 ring-md-primary`) for emphasis
410
+ 7. **Rich Micro-Interactions** (Enhancement):
411
+
412
+ - Blog cards: Image zoom on hover (`group-hover:scale-105`)
413
+ - Feature cards: Hover scale on entire card (`hover:scale-[1.02]`)
414
+ - How It Works badges: Glow effect reveals on hover
415
+ - Pricing features: Translate-x on hover for list items
416
+ - Every interactive element has smooth, satisfying feedback
417
+
418
+ ## Anti-Patterns (What to Avoid)
419
+
420
+ **Don't:**
421
+
422
+ - ❌ Use pure white (#FFFFFF) for backgrounds - breaks the tonal system
423
+ - ❌ Use rectangular or slightly rounded buttons - must be pill-shaped
424
+ - Use heavy drop shadows - MD3 prefers subtle elevation with tonal surfaces
425
+ - Change button colors on hover - use state layers (opacity overlays) instead
426
+ - Use sharp corners on major containers - generosity with border radius is key
427
+ - Ignore the organic blur shapes - they're signature to the style
428
+ - Use pure black text - use the On Surface color (#1C1B1F) with warmth
429
+ - ❌ Flatten inputs - use the distinctive filled text field style with bottom border
430
+ - Create harsh geometric patterns - shapes should feel organic, soft, flowing
431
+ - Rely on borders for container separation - use tonal backgrounds instead
432
+
433
+ **Common Mistakes**:
434
+
435
+ - Making border radius too small (16px is minimum for cards, 24px+ is better)
436
+ - Forgetting to round top corners but square bottom corners on inputs
437
+ - Using hover color changes instead of state layers
438
+ - Over-using shadows when tonal surfaces would work better
439
+ - Not layering enough organic shapes in backgrounds
440
+ - Making the color palette too muted - MD3 is expressive and colorful
441
+ - Missing micro-interactions - every interactive element should have smooth feedback
442
+ - Forgetting the `group` pattern for coordinated hover effects
443
+ - Not using `active:scale-95` on clickable elements for tactile feedback
444
+ - Static cards without hover states - breaks the interactive, responsive feel
445
+
446
+ ## Animation & Motion
447
+
448
+ **Easing Function**:
449
+
450
+ - Standard: `cubic-bezier(0.2, 0, 0, 1)` - Material You's signature easing
451
+ - This creates smooth, confident movement that feels neither robotic nor bouncy
452
+ - Also known as "Emphasized Decelerate" in Material specs
453
+
454
+ **Duration**:
455
+
456
+ - Micro-interactions (button hover): 200ms
457
+ - Standard transitions (cards, surfaces): 300ms
458
+ - Large surfaces (modals, sheets): 400-500ms
459
+ - Never exceed 500ms for UI transitions
460
+
461
+ **Transform Patterns**:
462
+
463
+ - Scale on press: `active:scale-95` for tactile feedback
464
+ - Hover lift: Can use subtle `translate-y` (1-2px) combined with shadow increase
465
+ - Entrance animations: Fade + slight scale or slide
466
+ - Exit animations: Faster than entrance (200ms vs 300ms)
467
+
468
+ **What Animates**:
469
+
470
+ - Background color (state layers)
471
+ - Shadow elevation
472
+ - Scale (on press)
473
+ - Opacity (for overlays, toasts)
474
+ - Transform (for FABs, special interactions)
475
+
476
+ **What Doesn't Animate**:
477
+
478
+ - Border radius (stays constant)
479
+ - Layout shifts (use fixed dimensions or smooth height transitions)
480
+ - Color hue shifts (only opacity changes for state layers)
481
+
482
+ ## Accessibility Considerations
483
+
484
+ **Contrast Requirements**:
485
+
486
+ - Text on Surface background: 4.5:1 minimum (On Surface color: #1C1B1F)
487
+ - Text on Primary: AAA level (pure white #FFFFFF)
488
+ - Outline color for borders: 3:1 against surfaces
489
+ - Ensure tonal surface differences are visible (not just decorative)
490
+
491
+ **Focus States**:
492
+
493
+ - All interactive elements must have visible focus ring
494
+ - Use `focus-visible:ring-2 focus-visible:ring-md-primary focus-visible:ring-offset-2`
495
+ - Ring color: Primary
496
+ - Ring offset: 2px for separation from element
497
+
498
+ **Touch Targets**:
499
+
500
+ - Minimum: 44x44px (follows WCAG guidelines)
501
+ - Default button height: 40-48px (meets minimum)
502
+ - FABs: 56x56px (generous touch target)
503
+ - Add padding around small interactive elements if needed
504
+
505
+ **Motion Preferences**:
506
+
507
+ - Respect `prefers-reduced-motion` for users with vestibular disorders
508
+ - Reduce or remove scale transforms, translate animations
509
+ - Keep color transitions but remove movement
510
+ - Example: `@media (prefers-reduced-motion: reduce) { * { animation: none; transition-duration: 0.01ms; } }`
511
+
512
+ **Screen Reader Considerations**:
513
+
514
+ - Decorative organic shapes should have `aria-hidden="true"`
515
+ - Ensure color isn't the only indicator of state
516
+ - Icon-only buttons must have accessible labels
517
+ - Form inputs need associated labels (visible or aria-label)
518
+
519
+ ---
520
+
521
+ ## Implementation Checklist
522
+
523
+ To ensure full Material You compliance with enhanced depth and interactivity:
524
+
525
+ **Core Material You Elements**:
526
+
527
+ - [ ] Using Roboto font (400, 500, 700 weights)
528
+ - [ ] All buttons are `rounded-full` (pill-shaped)
529
+ - [ ] Background is #FFFBFE (not pure white)
530
+ - [ ] Cards use Surface Container (#F3EDF7) backgrounds
531
+ - [ ] Organic blur shapes present in hero/key sections
532
+ - [ ] State layers (opacity overlays) for hover/active states
533
+ - [ ] Cubic-bezier(0.2, 0, 0, 1) easing on transitions
534
+ - [ ] Large border radii on major containers (32-48px)
535
+ - [ ] Inputs use filled text field style (rounded top, border bottom)
536
+ - [ ] Focus rings on all interactive elements
537
+ - [ ] Generous spacing and padding throughout
538
+
539
+ **Enhanced Implementation**:
540
+
541
+ - [ ] Progressive shadow system: `shadow-sm` → `shadow-md` on hover
542
+ - [ ] Multiple blur shapes with radial gradients in major sections
543
+ - [ ] `active:scale-95` on all clickable elements for tactile feedback
544
+ - [ ] `group` pattern with coordinated hover animations
545
+ - [ ] Hover scale (`hover:scale-[1.02]`) on feature cards
546
+ - [ ] Image zoom on blog card hover (`group-hover:scale-105`)
547
+ - [ ] Asymmetric elevation on featured pricing tier (`md:-translate-y-4`)
548
+ - [ ] Glow effects that reveal on hover (How It Works badges)
549
+ - [ ] Glass-morphism cards in Benefits section with backdrop-blur
550
+ - [ ] Shadow-inner on Product Detail visualization container
551
+ - [ ] Header with border-bottom and backdrop-blur
552
+ - [ ] All transitions use 300ms duration minimum
553
+ - [ ] Hover states on FAQ items with color transitions
554
+ - [ ] Input focus states include ring for enhanced visibility
555
+ `</design-system>`