get-shit-pretty 0.7.0 → 0.7.1
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.
- package/README.md +13 -28
- package/gsp/agents/gsp-accessibility-auditor.md +1 -60
- package/gsp/agents/gsp-brand-auditor.md +1 -61
- package/gsp/agents/gsp-brand-creative-director.md +10 -0
- package/gsp/agents/gsp-brand-engineer.md +1 -122
- package/gsp/agents/gsp-brand-researcher.md +11 -0
- package/gsp/agents/gsp-brand-strategist.md +1 -65
- package/gsp/agents/gsp-project-builder.md +17 -0
- package/gsp/agents/gsp-project-critic.md +11 -0
- package/gsp/agents/gsp-project-designer.md +11 -0
- package/gsp/agents/gsp-project-researcher.md +1 -74
- package/gsp/agents/gsp-project-reviewer.md +12 -0
- package/gsp/hooks/hooks.json +10 -28
- package/gsp/skills/get-shit-pretty/SKILL.md +2 -5
- package/gsp/skills/gsp-accessibility/SKILL.md +0 -1
- package/gsp/skills/gsp-accessibility-audit/SKILL.md +9 -8
- package/gsp/skills/gsp-accessibility-audit/methodology/gsp-accessibility-auditor.md +59 -0
- package/gsp/skills/gsp-add-reference/SKILL.md +0 -1
- package/gsp/skills/gsp-art/SKILL.md +13 -10
- package/gsp/skills/gsp-brand-audit/SKILL.md +4 -2
- package/gsp/skills/gsp-brand-audit/methodology/gsp-brand-auditor.md +61 -0
- package/gsp/skills/gsp-brand-brief/SKILL.md +129 -0
- package/gsp/skills/gsp-brand-guidelines/SKILL.md +13 -11
- package/gsp/skills/gsp-brand-guidelines/methodology/gsp-brand-engineer.md +122 -0
- package/gsp/skills/gsp-brand-identity/SKILL.md +12 -11
- package/gsp/{agents/gsp-creative-director.md → skills/gsp-brand-identity/methodology/gsp-brand-creative-director.md} +0 -9
- package/gsp/skills/gsp-brand-refine/SKILL.md +0 -1
- package/gsp/skills/gsp-brand-research/SKILL.md +13 -13
- package/gsp/{agents/gsp-researcher.md → skills/gsp-brand-research/methodology/gsp-brand-researcher.md} +0 -10
- package/gsp/skills/gsp-brand-strategy/SKILL.md +14 -14
- package/gsp/skills/gsp-brand-strategy/methodology/gsp-brand-strategist.md +65 -0
- package/gsp/skills/gsp-brand-sync/SKILL.md +60 -10
- package/gsp/skills/gsp-color/SKILL.md +0 -1
- package/gsp/skills/gsp-design-system/SKILL.md +0 -1
- package/gsp/skills/gsp-doctor/SKILL.md +0 -1
- package/gsp/skills/gsp-help/SKILL.md +0 -2
- package/gsp/skills/gsp-icons/SKILL.md +0 -1
- package/gsp/skills/gsp-logo/SKILL.md +0 -1
- package/gsp/skills/gsp-phase-transition/SKILL.md +0 -3
- package/gsp/skills/gsp-pretty/SKILL.md +25 -24
- package/gsp/skills/gsp-progress/SKILL.md +0 -1
- package/gsp/skills/gsp-project-brief/SKILL.md +51 -22
- package/gsp/skills/gsp-project-build/SKILL.md +18 -14
- package/gsp/{agents/gsp-builder.md → skills/gsp-project-build/methodology/gsp-project-builder.md} +0 -16
- package/gsp/skills/gsp-project-critique/SKILL.md +13 -13
- package/gsp/{agents/gsp-critic.md → skills/gsp-project-critique/methodology/gsp-project-critic.md} +0 -11
- package/gsp/skills/gsp-project-design/SKILL.md +9 -6
- package/gsp/{agents/gsp-designer.md → skills/gsp-project-design/methodology/gsp-project-designer.md} +0 -11
- package/gsp/skills/gsp-project-research/SKILL.md +4 -2
- package/gsp/skills/gsp-project-research/methodology/gsp-project-researcher.md +73 -0
- package/gsp/skills/gsp-project-review/SKILL.md +8 -5
- package/gsp/{agents/gsp-reviewer.md → skills/gsp-project-review/methodology/gsp-project-reviewer.md} +0 -12
- package/gsp/skills/gsp-scaffold/SKILL.md +0 -1
- package/gsp/skills/gsp-start/SKILL.md +59 -210
- package/gsp/skills/gsp-style/SKILL.md +1 -2
- package/gsp/skills/gsp-style/styles/academia.md +751 -787
- package/gsp/skills/gsp-style/styles/art-deco.md +316 -352
- package/gsp/skills/gsp-style/styles/bauhaus.md +189 -225
- package/gsp/skills/gsp-style/styles/bold-typography.md +433 -469
- package/gsp/skills/gsp-style/styles/botanical.md +141 -177
- package/gsp/skills/gsp-style/styles/claymorphism.md +377 -413
- package/gsp/skills/gsp-style/styles/cyberpunk.md +419 -455
- package/gsp/skills/gsp-style/styles/enterprise.md +224 -260
- package/gsp/skills/gsp-style/styles/flat-design.md +119 -155
- package/gsp/skills/gsp-style/styles/fluent.md +0 -31
- package/gsp/skills/gsp-style/styles/glassmorphism.md +0 -36
- package/gsp/skills/gsp-style/styles/humanist-literary.md +0 -28
- package/gsp/skills/gsp-style/styles/industrial.md +406 -438
- package/gsp/skills/gsp-style/styles/kinetic.md +531 -563
- package/gsp/skills/gsp-style/styles/liquid-glass.md +0 -36
- package/gsp/skills/gsp-style/styles/luxury.md +402 -438
- package/gsp/skills/gsp-style/styles/material.md +555 -591
- package/gsp/skills/gsp-style/styles/maximalism.md +875 -911
- package/gsp/skills/gsp-style/styles/minimal-dark.md +442 -478
- package/gsp/skills/gsp-style/styles/modern-dark.md +390 -426
- package/gsp/skills/gsp-style/styles/monochrome.md +472 -504
- package/gsp/skills/gsp-style/styles/neubrutalism.md +354 -390
- package/gsp/skills/gsp-style/styles/neumorphism.md +195 -231
- package/gsp/skills/gsp-style/styles/newsprint.md +529 -565
- package/gsp/skills/gsp-style/styles/organic.md +177 -213
- package/gsp/skills/gsp-style/styles/playful-geometric.md +211 -247
- package/gsp/skills/gsp-style/styles/professional.md +503 -539
- package/gsp/skills/gsp-style/styles/retro.md +664 -700
- package/gsp/skills/gsp-style/styles/saas.md +490 -526
- package/gsp/skills/gsp-style/styles/sketch.md +189 -225
- package/gsp/skills/gsp-style/styles/swiss-minimalist.md +195 -227
- package/gsp/skills/gsp-style/styles/terminal.md +99 -135
- package/gsp/skills/gsp-style/styles/vaporwave.md +356 -392
- package/gsp/skills/gsp-style/styles/web3.md +337 -373
- package/gsp/skills/gsp-typography/SKILL.md +0 -1
- package/gsp/skills/gsp-update/SKILL.md +0 -1
- package/gsp/skills/gsp-visuals/SKILL.md +0 -1
- package/gsp/templates/branding/config.json +1 -1
- package/gsp/templates/exports-index.md +0 -7
- package/gsp/templates/projects/config.json +1 -1
- package/gsp/templates/projects/roadmap.md +0 -7
- package/gsp/templates/projects/state.md +0 -4
- package/package.json +1 -1
- package/scripts/lint-check.sh +1 -1
- package/gsp/agents/gsp-ascii-artist.md +0 -66
- package/gsp/agents/gsp-brand-syncer.md +0 -126
- package/gsp/agents/gsp-campaign-director.md +0 -79
- package/gsp/agents/gsp-scoper.md +0 -85
- package/gsp/skills/gsp-launch/SKILL.md +0 -97
- package/gsp/skills/gsp-start/questioning.md +0 -87
- package/gsp/templates/phases/launch.md +0 -55
|
@@ -1,247 +1,211 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
- **
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
###
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
- **
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
###
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
- Border: 2px solid #
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
###
|
|
159
|
-
|
|
160
|
-
**
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
|
|
168
|
-
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
- **
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
**
|
|
211
|
-
|
|
212
|
-
- **Hover**: `transition-all duration-300 ease-[cubic-bezier(0.34,1.56,0.64,1)]` (Overshoot/Bounciness).
|
|
213
|
-
- **Entrance**: Elements shouldn't just fade in; they should **pop** in (Scale 0->1 with bounce).
|
|
214
|
-
- **Marquee**: Use infinite scrolling text for client logos or keywords.
|
|
215
|
-
- **Wiggle**: Keyframe animation `rotate: 0deg -> 3deg -> -3deg -> 0deg` on hover for icons.
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Iconography
|
|
220
|
-
|
|
221
|
-
**Lucide React** settings:
|
|
222
|
-
|
|
223
|
-
- **Stroke Width**: `2.5px` (Bold/Chunky).
|
|
224
|
-
- **Style**: Round line caps, round line joins.
|
|
225
|
-
- **Color**: Often white inside a colored circle, or the dark foreground color.
|
|
226
|
-
- **Usage**: Enclosed in shapes. Never floating alone. A "Check" icon isn't just a check; it's a check inside a green circle.
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## Responsive Strategy
|
|
231
|
-
|
|
232
|
-
- **Mobile**:
|
|
233
|
-
- Stack everything.
|
|
234
|
-
- Reduce "pop" shadows to 2px to save space.
|
|
235
|
-
- Turn horizontal squiggle lines into vertical dividers.
|
|
236
|
-
- Keep buttons big and tappable (min 48px height).
|
|
237
|
-
- Hide complex background floating shapes that might overlap text.
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## Accessibility & Best Practices
|
|
242
|
-
|
|
243
|
-
- **Contrast**: The text is slate-800 on off-white/white, which is AAA.
|
|
244
|
-
- **Color**: Never rely *only* on color. Use shapes and text labels.
|
|
245
|
-
- **Motion**: Respect `prefers-reduced-motion`. Disable the "bounce" and "wiggle" effects if preferred.
|
|
246
|
-
- **Focus**: The focus state is high-contrast (thick colored border + hard shadow).
|
|
247
|
-
`</design-system>`
|
|
1
|
+
<design-system>
|
|
2
|
+
# Playful Geometric Design System
|
|
3
|
+
|
|
4
|
+
## Design Philosophy
|
|
5
|
+
|
|
6
|
+
**Playful Geometric** is the antidote to sterile, corporate minimalism. It creates an emotional connection through **optimism, clarity, and tactile fun**.
|
|
7
|
+
|
|
8
|
+
The core concept is **"Stable Grid, Wild Decoration"**. The content itself (text, forms) lives in clean, readable areas, but the world around it is alive with movement and shape. It references the **Memphis Group** (80s) but cleans it up for modern digital screens—removing the chaos while keeping the energy.
|
|
9
|
+
|
|
10
|
+
### The Vibe
|
|
11
|
+
|
|
12
|
+
**Friendly. Tactile. Pop. Energetic.**
|
|
13
|
+
It feels like a playground or a well-organized sticker book. It invites clicking. It smiles at you.
|
|
14
|
+
|
|
15
|
+
### Visual Signatures
|
|
16
|
+
|
|
17
|
+
- **Primitive Shapes**: Circles, triangles, squares, pill shapes, and squiggles used as background elements, masks, or icons.
|
|
18
|
+
- **Hard Shadows**: Elements often have a hard, offset drop shadow (no blur) giving a sticker or cut-out paper feel.
|
|
19
|
+
- **Pattern Fills**: Polka dots, grid lines, and diagonal stripes used to fill shapes or backgrounds.
|
|
20
|
+
- **Varied Radii**: Mixing fully rounded corners with sharp ones to create "leaf" shapes or asymmetric blobs.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Design Token System
|
|
25
|
+
|
|
26
|
+
### Colors (Light Mode)
|
|
27
|
+
|
|
28
|
+
A punchy, high-saturation palette anchored by strong neutrals.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
background: #FFFDF5 // Warm Cream/Off-White (Paper feel)
|
|
32
|
+
foreground: #1E293B // Slate 800 (Softer than black)
|
|
33
|
+
muted: #F1F5F9 // Slate 100
|
|
34
|
+
mutedForeground: #64748B // Slate 500
|
|
35
|
+
accent: #8B5CF6 // Vivid Violet (Primary Brand)
|
|
36
|
+
accentForeground: #FFFFFF // White
|
|
37
|
+
secondary: #F472B6 // Hot Pink (Playful pop)
|
|
38
|
+
tertiary: #FBBF24 // Amber/Yellow (Optimism)
|
|
39
|
+
quaternary: #34D399 // Emerald/Mint (Freshness)
|
|
40
|
+
border: #E2E8F0 // Slate 200
|
|
41
|
+
input: #FFFFFF // White
|
|
42
|
+
card: #FFFFFF // White
|
|
43
|
+
ring: #8B5CF6 // Violet Focus
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Usage Rule**: Use `accent` for primary actions. Use `secondary`, `tertiary`, and `quaternary` rotationally for decorative shapes, icons, or emphasized words to create a "confetti" effect.
|
|
47
|
+
|
|
48
|
+
### Typography
|
|
49
|
+
|
|
50
|
+
**Headings**: `"Outfit", system-ui, sans-serif`
|
|
51
|
+
|
|
52
|
+
- A geometric sans with character. Rounded corners on letters make it friendly.
|
|
53
|
+
- **Weights**: Bold (700) or ExtraBold (800).
|
|
54
|
+
|
|
55
|
+
**Body**: `"Plus Jakarta Sans", system-ui, sans-serif`
|
|
56
|
+
|
|
57
|
+
- Highly legible, modern, geometric but humanist.
|
|
58
|
+
- **Weights**: Regular (400), Medium (500).
|
|
59
|
+
|
|
60
|
+
**Scale Ratio**: 1.25 (Major Third) - melodic and harmonious.
|
|
61
|
+
|
|
62
|
+
### Radius & Border
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
radius-sm: 8px
|
|
66
|
+
radius-md: 16px
|
|
67
|
+
radius-lg: 24px
|
|
68
|
+
radius-full: 9999px
|
|
69
|
+
border-width: 2px // Chunky borders by default
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Special "Blob" Radius**: `rounded-tl-2xl rounded-tr-2xl rounded-br-2xl rounded-bl-none` (Speech bubble style) or `rounded-t-full rounded-b-none` (Arch).
|
|
73
|
+
|
|
74
|
+
### Shadows & Effects
|
|
75
|
+
|
|
76
|
+
**The "Pop" Shadow (Hard Shadow)**:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
box-shadow: 4px 4px 0px 0px #1E293B; // Dark hard shadow
|
|
80
|
+
box-shadow-hover: 6px 6px 0px 0px #1E293B; // Lift effect
|
|
81
|
+
box-shadow-active: 2px 2px 0px 0px #1E293B; // Press effect
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
No blur. Solid offset colors.
|
|
85
|
+
|
|
86
|
+
### Textures & Patterns
|
|
87
|
+
|
|
88
|
+
- **Dot Grid**: A background of small dots (`bg-[url(...)]`) in strict formation.
|
|
89
|
+
- **Squiggles**: SVG paths used as section dividers or underlining for headings.
|
|
90
|
+
- **Confetti**: Small SVG shapes (triangles, circles) absolutely positioned behind main content blocks.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Component Stylings
|
|
95
|
+
|
|
96
|
+
### Buttons
|
|
97
|
+
|
|
98
|
+
**Primary Button ("The Candy Button")**:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
- Bg: accent (#8B5CF6)
|
|
102
|
+
- Text: white, font-weight: 700
|
|
103
|
+
- Radius: rounded-full (Pill)
|
|
104
|
+
- Border: 2px solid #1E293B (Dark border around color)
|
|
105
|
+
- Shadow: 4px 4px 0px #1E293B (Hard shadow)
|
|
106
|
+
- Hover: translate-x-[-2px] translate-y-[-2px], shadow extends to 6px 6px
|
|
107
|
+
- Active: translate-x-[2px] translate-y-[2px], shadow shrinks to 2px 2px
|
|
108
|
+
- Icon: ArrowRight, circular background (white) inside button
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Secondary Button**:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
- Bg: transparent
|
|
115
|
+
- Text: foreground
|
|
116
|
+
- Border: 2px solid #1E293B
|
|
117
|
+
- Radius: rounded-full
|
|
118
|
+
- Shadow: none
|
|
119
|
+
- Hover: bg-tertiary (#FBBF24) - Fills with yellow on hover
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Cards
|
|
123
|
+
|
|
124
|
+
**The "Sticker" Card**:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
- Bg: white
|
|
128
|
+
- Border: 2px solid #1E293B
|
|
129
|
+
- Radius: rounded-xl
|
|
130
|
+
- Shadow: 8px 8px 0px #E2E8F0 (Soft hard shadow) or #F472B6 (Pink shadow for featured)
|
|
131
|
+
- Hover: Rotate -1deg, Scale 1.02 (Wiggle effect)
|
|
132
|
+
- Title: Bold Outfit font
|
|
133
|
+
- Icon: Floating circle div with centered icon, sitting half-in/half-out of the top border.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Inputs
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
- Bg: white
|
|
140
|
+
- Border: 2px solid #CBD5E1
|
|
141
|
+
- Radius: rounded-lg
|
|
142
|
+
- Text: foreground
|
|
143
|
+
- Shadow: 4px 4px 0px transparent (hidden initially)
|
|
144
|
+
- Focus: Border accent, Shadow 4px 4px 0px accent (Hard color shadow on focus)
|
|
145
|
+
- Label: Bold, uppercase, small tracking-wide.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Layout Strategy
|
|
151
|
+
|
|
152
|
+
### General
|
|
153
|
+
|
|
154
|
+
- **Container**: `max-w-6xl` (Generous width).
|
|
155
|
+
- **Spacing**: `py-24` (96px). Spacious but not empty; filled with patterns.
|
|
156
|
+
- **Grid**: 12-column logic, but grouped into big blocks (6/6 or 4/4/4).
|
|
157
|
+
|
|
158
|
+
### Unique Section Layouts
|
|
159
|
+
|
|
160
|
+
1. **Hero**:
|
|
161
|
+
- Text left, Image right.
|
|
162
|
+
- **Decoration**: A massive yellow circle behind the text. A dotted pattern behind the image. The image itself has a "blob" mask (CSS clip-path or border-radius manipulation).
|
|
163
|
+
2. **Features**:
|
|
164
|
+
- Grid of 3.
|
|
165
|
+
- **Decoration**: Each card is connected by a dashed SVG line drawn in the background.
|
|
166
|
+
- Alternating colors for card headers (Violet, Pink, Yellow).
|
|
167
|
+
3. **Pricing**:
|
|
168
|
+
- The middle card is scaled up (1.1) and has a massive yellow star badge "MOST POPULAR" rotated 15deg.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Effects & Animation
|
|
173
|
+
|
|
174
|
+
**Feel**: Bouncy, Elastic, Fun.
|
|
175
|
+
|
|
176
|
+
- **Hover**: `transition-all duration-300 ease-[cubic-bezier(0.34,1.56,0.64,1)]` (Overshoot/Bounciness).
|
|
177
|
+
- **Entrance**: Elements shouldn't just fade in; they should **pop** in (Scale 0->1 with bounce).
|
|
178
|
+
- **Marquee**: Use infinite scrolling text for client logos or keywords.
|
|
179
|
+
- **Wiggle**: Keyframe animation `rotate: 0deg -> 3deg -> -3deg -> 0deg` on hover for icons.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Iconography
|
|
184
|
+
|
|
185
|
+
**Lucide React** settings:
|
|
186
|
+
|
|
187
|
+
- **Stroke Width**: `2.5px` (Bold/Chunky).
|
|
188
|
+
- **Style**: Round line caps, round line joins.
|
|
189
|
+
- **Color**: Often white inside a colored circle, or the dark foreground color.
|
|
190
|
+
- **Usage**: Enclosed in shapes. Never floating alone. A "Check" icon isn't just a check; it's a check inside a green circle.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Responsive Strategy
|
|
195
|
+
|
|
196
|
+
- **Mobile**:
|
|
197
|
+
- Stack everything.
|
|
198
|
+
- Reduce "pop" shadows to 2px to save space.
|
|
199
|
+
- Turn horizontal squiggle lines into vertical dividers.
|
|
200
|
+
- Keep buttons big and tappable (min 48px height).
|
|
201
|
+
- Hide complex background floating shapes that might overlap text.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Accessibility & Best Practices
|
|
206
|
+
|
|
207
|
+
- **Contrast**: The text is slate-800 on off-white/white, which is AAA.
|
|
208
|
+
- **Color**: Never rely *only* on color. Use shapes and text labels.
|
|
209
|
+
- **Motion**: Respect `prefers-reduced-motion`. Disable the "bounce" and "wiggle" effects if preferred.
|
|
210
|
+
- **Focus**: The focus state is high-contrast (thick colored border + hard shadow).
|
|
211
|
+
`</design-system>`
|