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,213 +1,177 @@
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: Organic / Natural
39
-
40
- ## 1. Design Philosophy
41
-
42
- This style embraces **wabi-sabi**—the acceptance of transience and imperfection. It rejects the cold precision of digital interfaces in favor of **warmth, softness, and natural connection**. It feels **tactile, grounded, and calming**.
43
-
44
- ### Visual DNA
45
-
46
- * **Core Signature**: Soft, amorphous blob shapes with varied organic border radii (using complex percentages like `60% 40% 30% 70% / 60% 30% 70% 40%`)
47
- * **Texture is Essential**: Global grain/noise texture overlay at 3-4% opacity with multiply blend mode creates paper-like quality
48
- * **Color Psychology**: Earth-drawn palette evokes forest floors, clay pottery, unbleached paper, dried grass, and river stones
49
- * **Shadow Philosophy**: Soft, diffused shadows with natural color tints (moss green, clay orange) instead of pure black
50
- * **Typography Emotion**: Fraunces serif brings old-world warmth with modern softness; Nunito's rounded terminals echo organic shapes
51
-
52
- ### Design Principles
53
-
54
- * **Vibe**: Peaceful, sustainable, handcrafted, authentic, rooted, welcoming, human
55
- * **Core Tenet**: "There are no straight lines in nature." Avoid sharp 90-degree angles. Everything should feel eroded by wind or water, or shaped by hand.
56
- * **Rhythm**: Generous whitespace creates breathing room. Staggered grids and varied border radii prevent mechanical uniformity.
57
- * **Interaction**: Gentle, natural motion—elements scale and lift on hover like picking up a river stone. No harsh snaps.
58
- * **Asymmetry**: Intentional imperfection through rotated images, offset elements, and varied card shapes creates organic authenticity
59
- * **Depth**: Multiple z-layers with blurred blobs, translucent overlays, and soft shadows create atmospheric depth without harsh contrast
60
-
61
- ## 2. Design Token System (The DNA)
62
-
63
- ### Colors (Single Palette - Light Mode)
64
-
65
- A palette drawn from the forest floor, clay, and unbleached paper.
66
-
67
- * `background`: `#FDFCF8` (Off-white, Rice Paper)
68
- * `foreground`: `#2C2C24` (Deep Loam / Charcoal)
69
- * `primary`: `#5D7052` (Moss Green)
70
- * `primary-foreground`: `#F3F4F1` (Pale Mist)
71
- * `secondary`: `#C18C5D` (Terracotta / Clay)
72
- * `secondary-foreground`: `#FFFFFF` (White)
73
- * `accent`: `#E6DCCD` (Sand / Beige)
74
- * `accent-foreground`: `#4A4A40` (Bark)
75
- * `muted`: `#F0EBE5` (Stone)
76
- * `muted-foreground`: `#78786C` (Dried Grass)
77
- * `border`: `#DED8CF` (Raw Timber)
78
- * `destructive`: `#A85448` (Burnt Sienna)
79
-
80
- ### Typography
81
-
82
- Combining a characterful serif with a clean, rounded sans-serif.
83
-
84
- * **Headings**: **'Fraunces'** (Google Font). A variable font with "soft" axes. It has a distinct, old-style warmth but feels modern. Use weights 600-800.
85
- * **Body**: **'Nunito'** or **'Quicksand'**. Rounded terminals are essential to match the organic shapes.
86
- * **Scale**: Moderate, not aggressive. 1.25 scale.
87
-
88
- ### Radius & Shapes
89
-
90
- * **Standard Radius**: `rounded-2xl` (16px) or `rounded-3xl` (24px).
91
- * **Organic Shapes**: Use custom classes or inline styles for specific elements to create blob shapes.
92
- * Example: `border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;`
93
- * **Borders**: Soft, sometimes slightly imperfect (simulated via double borders or slightly transparent thick borders).
94
-
95
- ### Shadows & Effects
96
-
97
- * **Shadows**: Soft, diffused, colored shadows. Never pure black.
98
- * `shadow-soft`: `0 4px 20px -2px rgba(93, 112, 82, 0.15)` (Moss tinted)
99
- * `shadow-float`: `0 10px 40px -10px rgba(193, 140, 93, 0.2)` (Clay tinted)
100
- * **Textures**: **CRITICAL**. The background should have a subtle noise or paper grain overlay.
101
- * Implementation: Use a fixed pseudo-element on the body or main container with a base64 noise pattern set to `mix-blend-mode: multiply` and very low opacity (3-5%).
102
-
103
- ## 3. Component Stylings
104
-
105
- ### Buttons
106
-
107
- * **Shape**: Fully rounded pills (`rounded-full`) for all variants
108
- * **Primary**: Moss Green (#5D7052) background with Pale Mist (#F3F4F1) text. Soft colored shadow: `shadow-[0_4px_20px_-2px_rgba(93,112,82,0.15)]`
109
- * **Outline**: 2px Terracotta (#C18C5D) border, transparent background, Terracotta text
110
- * **Ghost**: Transparent with Moss Green text, hover fills with Moss/10 background
111
- * **Interaction**: `hover:scale-105` with deepened shadow `hover:shadow-[0_6px_24px_-4px_rgba(93,112,82,0.25)]`. Active state: `active:scale-95` for tactile feedback
112
- * **Sizes**: Default h-12, sm h-10, lg h-14. Generous horizontal padding (px-8 to px-10)
113
- * **Typography**: Bold weight, base to lg sizing
114
-
115
- ### Cards / Containers
116
-
117
- * **Background**: Extremely light beige (#FEFEFA) over off-white page background
118
- * **Border**: Soft timber border (#DED8CF) at 50% opacity: `border-[#DED8CF]/50`
119
- * **Shape**: `rounded-[2rem]` base with asymmetric variations using custom values like `rounded-tl-[4rem]` on specific corners
120
- * **Shadows**: Moss-tinted soft shadow: `shadow-[0_4px_20px_-2px_rgba(93,112,82,0.15)]`
121
- * **Texture**: Fixed noise overlay layer at 3% opacity with multiply blend mode
122
- * **Interaction**: Feature cards lift with `hover:-translate-y-1` and shadow deepens to `hover:shadow-[0_20px_40px_-10px_rgba(93,112,82,0.15)]`
123
-
124
- ### Inputs
125
-
126
- * **Shape**: Pill-shaped with `rounded-full`
127
- * **Border**: Timber border (#DED8CF)
128
- * **Background**: `bg-white/50` (semi-transparent) revealing page grain texture beneath
129
- * **Focus State**: `focus-visible:ring-2 ring-[#5D7052]/30` with `ring-offset-2` for soft, natural glow (not sharp outline)
130
- * **Typography**: Sans-serif body font, text-sm
131
- * **Height**: h-12 for comfortable touch target
132
-
133
- ### Navigation
134
-
135
- * **Style**: Sticky floating pill (`sticky top-4`) with glassmorphism
136
- * **Background**: `bg-white/70` with `backdrop-blur-md` for frosted effect
137
- * **Border**: Soft timber border at 50% opacity with subtle shadow
138
- * **Shape**: `rounded-full`
139
- * **Logo**: Circular moss green container with white icon
140
- * **Mobile**: Full menu dropdown with organic rounded borders (`rounded-[2rem]`)
141
-
142
- ## 4. Layout & Spacing
143
-
144
- * **Container Widths**: Vary by section for visual rhythm
145
- * Primary content: `max-w-7xl` (hero, features, blog, pricing)
146
- * Focused content: `max-w-6xl` (how it works, FAQ)
147
- * Intimate content: `max-w-5xl` (final CTA)
148
- * Text-heavy sections: `max-w-4xl` (hero inner), `max-w-2xl` (product detail text)
149
- * **Section Padding**: Consistent `py-32` vertical spacing with `px-4 sm:px-6 lg:px-8` horizontal
150
- * **Grid Patterns**:
151
- * Stats: `grid-cols-2 md:grid-cols-4`
152
- * Features/Blog/Testimonials: `md:grid-cols-3` (or `md:grid-cols-2 lg:grid-cols-3`)
153
- * Two-column layouts: `lg:grid-cols-2`
154
- * Grid gaps: Consistent `gap-8` with optional `md:gap-12` for stats
155
- * **Whitespace Philosophy**: Use generous gaps (gap-8, gap-12, gap-16) to let design breathe. Space is a design element, not empty canvas.
156
-
157
- ## 5. Non-Genericness (The Bold Factors)
158
-
159
- * **Blob Backgrounds**: Large absolute-positioned blobs with `blur-3xl` create ambient color washes. Multiple shapes (via shapeIndex prop) with varied organic border radii. Used in Hero (2 blobs), Product Detail, Features, and Final CTA sections.
160
- * **Rotated Image Frames**: Product detail image rotated `-2deg` with thick 4px white border creates handcrafted photo feel
161
- * **Organic Image Masks**: Benefits section image uses complex blob border-radius: `rounded-[30%_70%_70%_30%_/_30%_30%_70%_70%]`
162
- * **Asymmetric Card Radii**: Feature cards cycle through 6 different border-radius patterns, mixing large corner curves (4rem, 5rem) with standard (2rem)
163
- * **Curved SVG Connectors**: How It Works uses hand-drawn looking curved dashed SVG path instead of straight lines
164
- * **Hover Micro-rotations**: Testimonial cards subtly rotate on hover (`hover:rotate-1`) mimicking picking up a physical card
165
- * **Varied Section Backgrounds**: Alternating between off-white, stone tint (#F0EBE5/30), sand (#E6DCCD/30), moss green (#5D7052), and terracotta (#C18C5D)
166
- * **Dual Texture Layers**: Global grain texture PLUS section-specific noise overlays and blob backgrounds create rich depth
167
-
168
- ## 6. Effects & Animation
169
-
170
- * **Transition Philosophy**: Natural, gentle motion. Use `transition-all duration-300` or `duration-500` for smooth changes
171
- * **Hover Animations**:
172
- * Buttons: `hover:scale-105` with shadow increase
173
- * Cards: `hover:-translate-y-1` (lift) or `hover:rotate-1` (subtle tilt)
174
- * Stats: `group-hover:scale-110` on numbers
175
- * Images: `hover:scale-105` with 700ms duration for slow reveal
176
- * Icon containers: Background color fill transition
177
- * **Active States**: `active:scale-95` on buttons for tactile press feedback
178
- * **Entrance/Exit**: Details accordion uses native `open:` state with chevron rotation
179
- * **Image Overlays**: Fade overlays on hover (blog cards) using `group-hover:bg-transparent`
180
- * **No Harsh Snaps**: All transitions eased, duration 300-700ms range for organic feel
181
-
182
- ## 7. Icons (Lucide React)
183
-
184
- * **Style**: Default stroke width (2px)
185
- * **Color**: Moss Green (#5D7052) as default, white on dark backgrounds
186
- * **Containers**: Icons sit in `h-14 w-14` rounded-2xl containers with `bg-[#5D7052]/10` background
187
- * **Hover Effect**: Container fills completely to solid moss green while icon switches to white
188
- * **Sizing**: 28px (size={28}) for feature icons, 24px for benefit checkmarks, responsive sizing for navigation
189
- * **Usage**: Social icons in footer, feature icons, benefit checkmarks, navigation menu toggle, arrows in CTAs
190
-
191
- ## 8. Accessibility
192
-
193
- * **Contrast Ratios**:
194
- * Primary text (#2C2C24) on background (#FDFCF8): 14.5:1 (AAA)
195
- * Moss (#5D7052) on background: 6.2:1 (AA)
196
- * Muted text (#78786C) on background: 4.8:1 (AA)
197
- * **Focus States**: `focus-visible:ring-2 ring-[#5D7052] ring-offset-2` provides clear, soft focus indicator
198
- * **Touch Targets**: All interactive elements meet 44px minimum (buttons h-12 = 48px)
199
- * **Semantic HTML**: Proper heading hierarchy, nav landmarks, alt text for images, aria-labels where needed
200
- * **Keyboard Navigation**: All interactive elements keyboard accessible, details/summary for FAQ accordion
201
-
202
- ## 9. Responsive Strategy
203
-
204
- * **Mobile-First Approach**: Base styles mobile-optimized, enhanced at breakpoints
205
- * **Breakpoint Usage**:
206
- * `sm:` (640px): Horizontal padding increases, some flex-row layouts
207
- * `md:` (768px): Major grid transitions (2-3 columns), nav reveals desktop version
208
- * `lg:` (1024px): 3-column grids, 2-column hero/benefits layouts
209
- * **Typography Scaling**: Hero headline `text-5xl md:text-7xl`, sections `text-4xl md:text-5xl`
210
- * **Stack Behavior**: All grids collapse to single column on mobile, flex layouts switch to `flex-col`
211
- * **Navigation**: Mobile uses hamburger menu with slide-out panel, desktop inline nav
212
- * **Blob Simplification**: Blobs remain but overflow hidden on mobile to prevent layout issues
213
- `</design-system>`
1
+ <design-system>
2
+ # Design Style: Organic / Natural
3
+
4
+ ## 1. Design Philosophy
5
+
6
+ This style embraces **wabi-sabi**—the acceptance of transience and imperfection. It rejects the cold precision of digital interfaces in favor of **warmth, softness, and natural connection**. It feels **tactile, grounded, and calming**.
7
+
8
+ ### Visual DNA
9
+
10
+ * **Core Signature**: Soft, amorphous blob shapes with varied organic border radii (using complex percentages like `60% 40% 30% 70% / 60% 30% 70% 40%`)
11
+ * **Texture is Essential**: Global grain/noise texture overlay at 3-4% opacity with multiply blend mode creates paper-like quality
12
+ * **Color Psychology**: Earth-drawn palette evokes forest floors, clay pottery, unbleached paper, dried grass, and river stones
13
+ * **Shadow Philosophy**: Soft, diffused shadows with natural color tints (moss green, clay orange) instead of pure black
14
+ * **Typography Emotion**: Fraunces serif brings old-world warmth with modern softness; Nunito's rounded terminals echo organic shapes
15
+
16
+ ### Design Principles
17
+
18
+ * **Vibe**: Peaceful, sustainable, handcrafted, authentic, rooted, welcoming, human
19
+ * **Core Tenet**: "There are no straight lines in nature." Avoid sharp 90-degree angles. Everything should feel eroded by wind or water, or shaped by hand.
20
+ * **Rhythm**: Generous whitespace creates breathing room. Staggered grids and varied border radii prevent mechanical uniformity.
21
+ * **Interaction**: Gentle, natural motion—elements scale and lift on hover like picking up a river stone. No harsh snaps.
22
+ * **Asymmetry**: Intentional imperfection through rotated images, offset elements, and varied card shapes creates organic authenticity
23
+ * **Depth**: Multiple z-layers with blurred blobs, translucent overlays, and soft shadows create atmospheric depth without harsh contrast
24
+
25
+ ## 2. Design Token System (The DNA)
26
+
27
+ ### Colors (Single Palette - Light Mode)
28
+
29
+ A palette drawn from the forest floor, clay, and unbleached paper.
30
+
31
+ * `background`: `#FDFCF8` (Off-white, Rice Paper)
32
+ * `foreground`: `#2C2C24` (Deep Loam / Charcoal)
33
+ * `primary`: `#5D7052` (Moss Green)
34
+ * `primary-foreground`: `#F3F4F1` (Pale Mist)
35
+ * `secondary`: `#C18C5D` (Terracotta / Clay)
36
+ * `secondary-foreground`: `#FFFFFF` (White)
37
+ * `accent`: `#E6DCCD` (Sand / Beige)
38
+ * `accent-foreground`: `#4A4A40` (Bark)
39
+ * `muted`: `#F0EBE5` (Stone)
40
+ * `muted-foreground`: `#78786C` (Dried Grass)
41
+ * `border`: `#DED8CF` (Raw Timber)
42
+ * `destructive`: `#A85448` (Burnt Sienna)
43
+
44
+ ### Typography
45
+
46
+ Combining a characterful serif with a clean, rounded sans-serif.
47
+
48
+ * **Headings**: **'Fraunces'** (Google Font). A variable font with "soft" axes. It has a distinct, old-style warmth but feels modern. Use weights 600-800.
49
+ * **Body**: **'Nunito'** or **'Quicksand'**. Rounded terminals are essential to match the organic shapes.
50
+ * **Scale**: Moderate, not aggressive. 1.25 scale.
51
+
52
+ ### Radius & Shapes
53
+
54
+ * **Standard Radius**: `rounded-2xl` (16px) or `rounded-3xl` (24px).
55
+ * **Organic Shapes**: Use custom classes or inline styles for specific elements to create blob shapes.
56
+ * Example: `border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;`
57
+ * **Borders**: Soft, sometimes slightly imperfect (simulated via double borders or slightly transparent thick borders).
58
+
59
+ ### Shadows & Effects
60
+
61
+ * **Shadows**: Soft, diffused, colored shadows. Never pure black.
62
+ * `shadow-soft`: `0 4px 20px -2px rgba(93, 112, 82, 0.15)` (Moss tinted)
63
+ * `shadow-float`: `0 10px 40px -10px rgba(193, 140, 93, 0.2)` (Clay tinted)
64
+ * **Textures**: **CRITICAL**. The background should have a subtle noise or paper grain overlay.
65
+ * Implementation: Use a fixed pseudo-element on the body or main container with a base64 noise pattern set to `mix-blend-mode: multiply` and very low opacity (3-5%).
66
+
67
+ ## 3. Component Stylings
68
+
69
+ ### Buttons
70
+
71
+ * **Shape**: Fully rounded pills (`rounded-full`) for all variants
72
+ * **Primary**: Moss Green (#5D7052) background with Pale Mist (#F3F4F1) text. Soft colored shadow: `shadow-[0_4px_20px_-2px_rgba(93,112,82,0.15)]`
73
+ * **Outline**: 2px Terracotta (#C18C5D) border, transparent background, Terracotta text
74
+ * **Ghost**: Transparent with Moss Green text, hover fills with Moss/10 background
75
+ * **Interaction**: `hover:scale-105` with deepened shadow `hover:shadow-[0_6px_24px_-4px_rgba(93,112,82,0.25)]`. Active state: `active:scale-95` for tactile feedback
76
+ * **Sizes**: Default h-12, sm h-10, lg h-14. Generous horizontal padding (px-8 to px-10)
77
+ * **Typography**: Bold weight, base to lg sizing
78
+
79
+ ### Cards / Containers
80
+
81
+ * **Background**: Extremely light beige (#FEFEFA) over off-white page background
82
+ * **Border**: Soft timber border (#DED8CF) at 50% opacity: `border-[#DED8CF]/50`
83
+ * **Shape**: `rounded-[2rem]` base with asymmetric variations using custom values like `rounded-tl-[4rem]` on specific corners
84
+ * **Shadows**: Moss-tinted soft shadow: `shadow-[0_4px_20px_-2px_rgba(93,112,82,0.15)]`
85
+ * **Texture**: Fixed noise overlay layer at 3% opacity with multiply blend mode
86
+ * **Interaction**: Feature cards lift with `hover:-translate-y-1` and shadow deepens to `hover:shadow-[0_20px_40px_-10px_rgba(93,112,82,0.15)]`
87
+
88
+ ### Inputs
89
+
90
+ * **Shape**: Pill-shaped with `rounded-full`
91
+ * **Border**: Timber border (#DED8CF)
92
+ * **Background**: `bg-white/50` (semi-transparent) revealing page grain texture beneath
93
+ * **Focus State**: `focus-visible:ring-2 ring-[#5D7052]/30` with `ring-offset-2` for soft, natural glow (not sharp outline)
94
+ * **Typography**: Sans-serif body font, text-sm
95
+ * **Height**: h-12 for comfortable touch target
96
+
97
+ ### Navigation
98
+
99
+ * **Style**: Sticky floating pill (`sticky top-4`) with glassmorphism
100
+ * **Background**: `bg-white/70` with `backdrop-blur-md` for frosted effect
101
+ * **Border**: Soft timber border at 50% opacity with subtle shadow
102
+ * **Shape**: `rounded-full`
103
+ * **Logo**: Circular moss green container with white icon
104
+ * **Mobile**: Full menu dropdown with organic rounded borders (`rounded-[2rem]`)
105
+
106
+ ## 4. Layout & Spacing
107
+
108
+ * **Container Widths**: Vary by section for visual rhythm
109
+ * Primary content: `max-w-7xl` (hero, features, blog, pricing)
110
+ * Focused content: `max-w-6xl` (how it works, FAQ)
111
+ * Intimate content: `max-w-5xl` (final CTA)
112
+ * Text-heavy sections: `max-w-4xl` (hero inner), `max-w-2xl` (product detail text)
113
+ * **Section Padding**: Consistent `py-32` vertical spacing with `px-4 sm:px-6 lg:px-8` horizontal
114
+ * **Grid Patterns**:
115
+ * Stats: `grid-cols-2 md:grid-cols-4`
116
+ * Features/Blog/Testimonials: `md:grid-cols-3` (or `md:grid-cols-2 lg:grid-cols-3`)
117
+ * Two-column layouts: `lg:grid-cols-2`
118
+ * Grid gaps: Consistent `gap-8` with optional `md:gap-12` for stats
119
+ * **Whitespace Philosophy**: Use generous gaps (gap-8, gap-12, gap-16) to let design breathe. Space is a design element, not empty canvas.
120
+
121
+ ## 5. Non-Genericness (The Bold Factors)
122
+
123
+ * **Blob Backgrounds**: Large absolute-positioned blobs with `blur-3xl` create ambient color washes. Multiple shapes (via shapeIndex prop) with varied organic border radii. Used in Hero (2 blobs), Product Detail, Features, and Final CTA sections.
124
+ * **Rotated Image Frames**: Product detail image rotated `-2deg` with thick 4px white border creates handcrafted photo feel
125
+ * **Organic Image Masks**: Benefits section image uses complex blob border-radius: `rounded-[30%_70%_70%_30%_/_30%_30%_70%_70%]`
126
+ * **Asymmetric Card Radii**: Feature cards cycle through 6 different border-radius patterns, mixing large corner curves (4rem, 5rem) with standard (2rem)
127
+ * **Curved SVG Connectors**: How It Works uses hand-drawn looking curved dashed SVG path instead of straight lines
128
+ * **Hover Micro-rotations**: Testimonial cards subtly rotate on hover (`hover:rotate-1`) mimicking picking up a physical card
129
+ * **Varied Section Backgrounds**: Alternating between off-white, stone tint (#F0EBE5/30), sand (#E6DCCD/30), moss green (#5D7052), and terracotta (#C18C5D)
130
+ * **Dual Texture Layers**: Global grain texture PLUS section-specific noise overlays and blob backgrounds create rich depth
131
+
132
+ ## 6. Effects & Animation
133
+
134
+ * **Transition Philosophy**: Natural, gentle motion. Use `transition-all duration-300` or `duration-500` for smooth changes
135
+ * **Hover Animations**:
136
+ * Buttons: `hover:scale-105` with shadow increase
137
+ * Cards: `hover:-translate-y-1` (lift) or `hover:rotate-1` (subtle tilt)
138
+ * Stats: `group-hover:scale-110` on numbers
139
+ * Images: `hover:scale-105` with 700ms duration for slow reveal
140
+ * Icon containers: Background color fill transition
141
+ * **Active States**: `active:scale-95` on buttons for tactile press feedback
142
+ * **Entrance/Exit**: Details accordion uses native `open:` state with chevron rotation
143
+ * **Image Overlays**: Fade overlays on hover (blog cards) using `group-hover:bg-transparent`
144
+ * **No Harsh Snaps**: All transitions eased, duration 300-700ms range for organic feel
145
+
146
+ ## 7. Icons (Lucide React)
147
+
148
+ * **Style**: Default stroke width (2px)
149
+ * **Color**: Moss Green (#5D7052) as default, white on dark backgrounds
150
+ * **Containers**: Icons sit in `h-14 w-14` rounded-2xl containers with `bg-[#5D7052]/10` background
151
+ * **Hover Effect**: Container fills completely to solid moss green while icon switches to white
152
+ * **Sizing**: 28px (size={28}) for feature icons, 24px for benefit checkmarks, responsive sizing for navigation
153
+ * **Usage**: Social icons in footer, feature icons, benefit checkmarks, navigation menu toggle, arrows in CTAs
154
+
155
+ ## 8. Accessibility
156
+
157
+ * **Contrast Ratios**:
158
+ * Primary text (#2C2C24) on background (#FDFCF8): 14.5:1 (AAA)
159
+ * Moss (#5D7052) on background: 6.2:1 (AA)
160
+ * Muted text (#78786C) on background: 4.8:1 (AA)
161
+ * **Focus States**: `focus-visible:ring-2 ring-[#5D7052] ring-offset-2` provides clear, soft focus indicator
162
+ * **Touch Targets**: All interactive elements meet 44px minimum (buttons h-12 = 48px)
163
+ * **Semantic HTML**: Proper heading hierarchy, nav landmarks, alt text for images, aria-labels where needed
164
+ * **Keyboard Navigation**: All interactive elements keyboard accessible, details/summary for FAQ accordion
165
+
166
+ ## 9. Responsive Strategy
167
+
168
+ * **Mobile-First Approach**: Base styles mobile-optimized, enhanced at breakpoints
169
+ * **Breakpoint Usage**:
170
+ * `sm:` (640px): Horizontal padding increases, some flex-row layouts
171
+ * `md:` (768px): Major grid transitions (2-3 columns), nav reveals desktop version
172
+ * `lg:` (1024px): 3-column grids, 2-column hero/benefits layouts
173
+ * **Typography Scaling**: Hero headline `text-5xl md:text-7xl`, sections `text-4xl md:text-5xl`
174
+ * **Stack Behavior**: All grids collapse to single column on mobile, flex layouts switch to `flex-col`
175
+ * **Navigation**: Mobile uses hamburger menu with slide-out panel, desktop inline nav
176
+ * **Blob Simplification**: Blobs remain but overflow hidden on mobile to prevent layout issues
177
+ `</design-system>`