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,225 +1,189 @@
|
|
|
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
|
-
-
|
|
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
|
-
- Dashed
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
-
|
|
180
|
-
-
|
|
181
|
-
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
-
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
- **Max Width**: `max-w-5xl` (Keep it contained like a sketchbook).
|
|
192
|
-
- **Icons**: `lucide-react` icons with `stroke-width={2.5}` or `3`.
|
|
193
|
-
- **Icon Style**: Enclose key icons in rough circles.
|
|
194
|
-
|
|
195
|
-
# Responsive Strategy
|
|
196
|
-
|
|
197
|
-
**Mobile-First Approach:**
|
|
198
|
-
|
|
199
|
-
- **Typography Scaling**:
|
|
200
|
-
- Headings: `text-4xl md:text-5xl` or `text-5xl md:text-6xl`
|
|
201
|
-
- Body text: `text-lg md:text-xl` or `text-base md:text-xl`
|
|
202
|
-
- Buttons: `text-lg md:text-2xl`
|
|
203
|
-
- **Layout Stacking**:
|
|
204
|
-
- All grids collapse to single column on mobile, expand to 2-3 columns on `md:` breakpoint
|
|
205
|
-
- Hero switches from 2-column to stacked with `md:grid-cols-2`
|
|
206
|
-
- Stats: 2-column grid on mobile (`grid-cols-2`), 4-column on desktop (`md:grid-cols-4`)
|
|
207
|
-
- **Hide Decorative Elements**:
|
|
208
|
-
- Hand-drawn arrow near CTA: `hidden md:block`
|
|
209
|
-
- Bouncing decorative circle: `hidden md:block`
|
|
210
|
-
- Squiggly connecting line in "How It Works": `hidden md:block`
|
|
211
|
-
- Dashed circle on pricing card: `hidden md:block`
|
|
212
|
-
- **Maintain Core Aesthetic**:
|
|
213
|
-
- Keep wobbly borders and handwritten fonts on all screen sizes
|
|
214
|
-
- Reduce rotation slightly if needed (`-rotate-1` instead of `-rotate-2`)
|
|
215
|
-
- Maintain hard offset shadows (never add blur)
|
|
216
|
-
- Preserve playful personality and irregular shapes
|
|
217
|
-
- **Touch-Friendly Targets**:
|
|
218
|
-
- Buttons use minimum `h-12` (48px) for accessibility
|
|
219
|
-
- Adequate spacing between interactive elements with `gap-8`
|
|
220
|
-
- **Spacing Adjustments**:
|
|
221
|
-
- Section padding remains `py-20` for vertical rhythm
|
|
222
|
-
- Reduce horizontal padding when needed: `px-6`
|
|
223
|
-
- Stats scale down: `h-24 w-24 md:h-32 md:w-32`
|
|
224
|
-
- Pricing cards: `p-6 md:p-8` for better mobile fit
|
|
225
|
-
`</design-system>`
|
|
1
|
+
<design-system>
|
|
2
|
+
# Design Philosophy
|
|
3
|
+
|
|
4
|
+
The Hand-Drawn design style celebrates authentic imperfection and human touch in a digital world. It rejects the clinical precision of modern UI design in favor of organic, playful irregularity that evokes sketches on paper, sticky notes on a wall, and napkin diagrams from a brainstorming session.
|
|
5
|
+
|
|
6
|
+
**Core Principles:**
|
|
7
|
+
|
|
8
|
+
- **No Straight Lines**: Every border, shape, and container uses irregular border-radius values to create wobbly, hand-drawn edges that reject geometric perfection
|
|
9
|
+
- **Authentic Texture**: The design layer paper grain, dot patterns, and subtle background textures to simulate physical media (notebook paper, post-its, sketch pads)
|
|
10
|
+
- **Playful Rotation**: Elements are deliberately tilted using small rotation transforms (-2deg to 2deg) to break rigid grid alignment and create casual energy
|
|
11
|
+
- **Hard Offset Shadows**: Reject soft blur shadows entirely. Use solid, offset box-shadows (4px 4px 0px) to create a cut-paper, layered collage aesthetic
|
|
12
|
+
- **Handwritten Typography**: Use exclusively handwritten or marker-style fonts (Kalam, Patrick Hand) that feel human and approachable, never corporate or sterile
|
|
13
|
+
- **Scribbled Decoration**: Add visual flourishes like dashed lines, hand-drawn arrows, tape effects, thumbtacks, and irregular shapes to reinforce the sketched aesthetic
|
|
14
|
+
- **Limited Color Palette**: Stick to pencil blacks, paper whites, correction marker red, and post-it yellow for bold but cohesive simplicity
|
|
15
|
+
- **Intentional Messiness**: Embrace overlap, asymmetry, and visual "mistakes" that make the design feel spontaneous and creative rather than manufactured
|
|
16
|
+
|
|
17
|
+
**Emotional Intent:**
|
|
18
|
+
This style should feel approachable, creative, human-centered, and fun. It lowers barriers and invites interaction by appearing unfinished and work-in-progress, making users feel like collaborators rather than consumers. Perfect for creative tools, brainstorming platforms, educational content, or any product that wants to emphasize human creativity over corporate polish.
|
|
19
|
+
|
|
20
|
+
# Design Token System
|
|
21
|
+
|
|
22
|
+
## Colors (Single Palette - Light Mode)
|
|
23
|
+
|
|
24
|
+
- **Background**: `#fdfbf7` (Warm Paper)
|
|
25
|
+
- **Foreground**: `#2d2d2d` (Soft Pencil Black - never pure black)
|
|
26
|
+
- **Muted**: `#e5e0d8` (Old Paper / Erased Pencil)
|
|
27
|
+
- **Accent**: `#ff4d4d` (Red Correction Marker)
|
|
28
|
+
- **Border**: `#2d2d2d` (Pencil Lead)
|
|
29
|
+
- **Secondary Accent**: `#2d5da1` (Blue Ballpoint Pen)
|
|
30
|
+
|
|
31
|
+
## Typography
|
|
32
|
+
|
|
33
|
+
- **Headings**: `Kalam` (wght 700) - Looks like a thick felt-tip marker.
|
|
34
|
+
- **Body**: `Patrick Hand` (wght 400) - Legible but distinctly handwritten.
|
|
35
|
+
- **Scale**: Large and readable. Headings should vary in size dramatically to look like emphasized notes.
|
|
36
|
+
|
|
37
|
+
## Radius & Border
|
|
38
|
+
|
|
39
|
+
- **Wobbly Borders**: CRITICAL. Do NOT use standard `rounded-*` classes alone.
|
|
40
|
+
- **Technique**: Use inline `style={{ borderRadius: ... }}` with multiple values to create irregular organic ellipses.
|
|
41
|
+
- Example: `border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px;`
|
|
42
|
+
- Store reusable radius values in config as `wobbly` and `wobblyMd`
|
|
43
|
+
- **Border Width**: Thick and variable. `border-2` is the minimum. Use `border-[3px]` or `border-4` for emphasis.
|
|
44
|
+
- **Style**: `border-solid` is default for most elements. Use `border-dashed` for secondary elements, dividers, and sketchy overlays.
|
|
45
|
+
|
|
46
|
+
## Shadows/Effects
|
|
47
|
+
|
|
48
|
+
- **Hard Offset Shadows**: No blur. Just a solid offset to create a cut-paper, layered collage aesthetic.
|
|
49
|
+
- Standard: `box-shadow: 4px 4px 0px 0px #2d2d2d;`
|
|
50
|
+
- Emphasized: `box-shadow: 8px 8px 0px 0px #2d2d2d;`
|
|
51
|
+
- Hover State: Reduce offset `2px 2px` or `6px 6px` to create "lifting" effect
|
|
52
|
+
- **Paper Texture**: Use `radial-gradient` dot pattern on body background to simulate notebook paper grain
|
|
53
|
+
- `backgroundImage: radial-gradient(#e5e0d8 1px, transparent 1px)`
|
|
54
|
+
- `backgroundSize: 24px 24px`
|
|
55
|
+
- **Subtle Animations**: Gentle bounce (3s duration) for decorative elements, rotation on hover for playful interaction
|
|
56
|
+
|
|
57
|
+
# Component Stylings
|
|
58
|
+
|
|
59
|
+
## Buttons
|
|
60
|
+
|
|
61
|
+
- **Shape**: Irregular wobbly oval using custom border-radius from config
|
|
62
|
+
- **Normal State**:
|
|
63
|
+
- White background, `border-[3px]` black border, black text
|
|
64
|
+
- Hard offset shadow: `shadow-[4px_4px_0px_0px_#2d2d2d]`
|
|
65
|
+
- Font: Patrick Hand (body font)
|
|
66
|
+
- **Hover State**:
|
|
67
|
+
- Background fills with Accent red `#ff4d4d`, text turns white
|
|
68
|
+
- Shadow reduces to `shadow-[2px_2px_0px_0px_#2d2d2d]`
|
|
69
|
+
- Subtle translate: `translate-x-[2px] translate-y-[2px]`
|
|
70
|
+
- **Active State**:
|
|
71
|
+
- Shadow disappears completely (button "presses flat")
|
|
72
|
+
- Translate increases: `translate-x-[4px] translate-y-[4px]`
|
|
73
|
+
- **Secondary Variant**: Uses muted background `#e5e0d8`, hovers to blue `#2d5da1`
|
|
74
|
+
|
|
75
|
+
## Cards/Containers
|
|
76
|
+
|
|
77
|
+
- **Base Style**: White background (`#ffffff`) with wobbly black border (`border-2`)
|
|
78
|
+
- **Border Radius**: Use `wobblyMd` radius from config for medium containers
|
|
79
|
+
- **Shadow**: Subtle `3px 3px 0px 0px rgba(45, 45, 45, 0.1)` for depth
|
|
80
|
+
- **Decoration Options**:
|
|
81
|
+
- `decoration="tape"`: Translucent gray bar positioned at top center with slight rotation
|
|
82
|
+
- `decoration="tack"`: Red circular thumbtack at top center
|
|
83
|
+
- No decoration for minimal aesthetic
|
|
84
|
+
- **Special Treatments**:
|
|
85
|
+
- Post-it yellow background `#fff9c4` for feature cards
|
|
86
|
+
- Speech bubble style for testimonials with geometric tail using border-based triangle
|
|
87
|
+
- Sticky-note tags for section labels
|
|
88
|
+
|
|
89
|
+
## Inputs
|
|
90
|
+
|
|
91
|
+
- **Style**: Full box with wobbly borders (not just underline)
|
|
92
|
+
- **Border**: `border-2` with wobbly radius matching button aesthetic
|
|
93
|
+
- **Font**: Patrick Hand (body font) for authentic hand-written feel
|
|
94
|
+
- **Background**: White with placeholder text in muted color `#2d2d2d/40`
|
|
95
|
+
- **Focus State**:
|
|
96
|
+
- Border changes to blue `#2d5da1`
|
|
97
|
+
- Ring effect: `ring-2 ring-[#2d5da1]/20`
|
|
98
|
+
- No standard outline, maintains wobbly aesthetic
|
|
99
|
+
|
|
100
|
+
# Layout Strategy
|
|
101
|
+
|
|
102
|
+
- **Grid System**: Use Tailwind's responsive grid (`md:grid-cols-2`, `md:grid-cols-3`) but add visual irregularity
|
|
103
|
+
- **Rotation**: Apply small rotations (`rotate-1`, `-rotate-2`) to cards, images, and decorative elements
|
|
104
|
+
- **Breaking Alignment**:
|
|
105
|
+
- Stats: Organic shapes with varied border-radius instead of perfect circles
|
|
106
|
+
- Cards: Slight rotation on hover (`hover:rotate-1` or `hover:-rotate-1`)
|
|
107
|
+
- Pricing: Scale up highlighted card slightly on desktop (`md:scale-105`)
|
|
108
|
+
- **Overlap & Layering**:
|
|
109
|
+
- Overlapping avatar circles with negative margin (`-space-x-4`)
|
|
110
|
+
- Decorative elements positioned absolutely outside parent bounds
|
|
111
|
+
- Speech bubble tails extending beyond card borders
|
|
112
|
+
- **Whitespace**:
|
|
113
|
+
- Consistent section padding (`py-20`) for rhythm
|
|
114
|
+
- Generous gap in grids (`gap-8`) to prevent crowding
|
|
115
|
+
- Max-width containers (`max-w-5xl`, `max-w-3xl`) for focused content
|
|
116
|
+
- **Z-Index Layering**: Decorative SVG backgrounds at low z-index, step numbers elevated with `z-10`
|
|
117
|
+
|
|
118
|
+
# Non-Genericness (Bold Choices)
|
|
119
|
+
|
|
120
|
+
**Unique Visual Signatures:**
|
|
121
|
+
|
|
122
|
+
- **NO STRAIGHT LINES**: Every container, button, card, and frame uses irregular border-radius values—never standard Tailwind rounded classes
|
|
123
|
+
- **Hand-Drawn SVG Decorations**:
|
|
124
|
+
- Arrow pointing to hero CTA with dashed path
|
|
125
|
+
- Squiggly connecting line between "How It Works" steps
|
|
126
|
+
- Corner frame marks on hero image placeholder
|
|
127
|
+
- **Authentic Paper Effects**:
|
|
128
|
+
- Tape strips (translucent gray rectangles) on feature cards
|
|
129
|
+
- Thumbtack pins (colored circles) for card decoration
|
|
130
|
+
- Dashed circle overlay highlighting popular pricing tier
|
|
131
|
+
- Speech bubble geometric tails on testimonials
|
|
132
|
+
- **Playful Typography Treatments**:
|
|
133
|
+
- Rotating exclamation mark in hero headline
|
|
134
|
+
- Wavy underline decoration on navigation links and footer headers
|
|
135
|
+
- Drop-cap first letter treatment in Product Detail section
|
|
136
|
+
- Post-it yellow sticky-note tag on Product Detail card
|
|
137
|
+
- **Scribbled Accents**:
|
|
138
|
+
- Bouncing decorative circle near hero image (desktop only)
|
|
139
|
+
- Dashed borders on secondary elements and dividers
|
|
140
|
+
- Emoji sketches in blog post placeholders
|
|
141
|
+
- Line-through hover effect on footer links
|
|
142
|
+
- **Interactive Personality**:
|
|
143
|
+
- Buttons "press flat" by eliminating shadow on active state
|
|
144
|
+
- Cards rotate slightly on hover
|
|
145
|
+
- Blog cards increase shadow offset on hover for "lift" effect
|
|
146
|
+
- Grayscale-to-color transition on blog images (removed in final implementation for simplicity)
|
|
147
|
+
|
|
148
|
+
# Effects & Animation
|
|
149
|
+
|
|
150
|
+
- **Hover**: "Jiggle" effect. `hover:rotate-1` or `hover:-rotate-2`.
|
|
151
|
+
- **Transition**: `transition-transform duration-100` (Fast and snappy).
|
|
152
|
+
|
|
153
|
+
# Spacing, Layout & Iconography
|
|
154
|
+
|
|
155
|
+
- **Max Width**: `max-w-5xl` (Keep it contained like a sketchbook).
|
|
156
|
+
- **Icons**: `lucide-react` icons with `stroke-width={2.5}` or `3`.
|
|
157
|
+
- **Icon Style**: Enclose key icons in rough circles.
|
|
158
|
+
|
|
159
|
+
# Responsive Strategy
|
|
160
|
+
|
|
161
|
+
**Mobile-First Approach:**
|
|
162
|
+
|
|
163
|
+
- **Typography Scaling**:
|
|
164
|
+
- Headings: `text-4xl md:text-5xl` or `text-5xl md:text-6xl`
|
|
165
|
+
- Body text: `text-lg md:text-xl` or `text-base md:text-xl`
|
|
166
|
+
- Buttons: `text-lg md:text-2xl`
|
|
167
|
+
- **Layout Stacking**:
|
|
168
|
+
- All grids collapse to single column on mobile, expand to 2-3 columns on `md:` breakpoint
|
|
169
|
+
- Hero switches from 2-column to stacked with `md:grid-cols-2`
|
|
170
|
+
- Stats: 2-column grid on mobile (`grid-cols-2`), 4-column on desktop (`md:grid-cols-4`)
|
|
171
|
+
- **Hide Decorative Elements**:
|
|
172
|
+
- Hand-drawn arrow near CTA: `hidden md:block`
|
|
173
|
+
- Bouncing decorative circle: `hidden md:block`
|
|
174
|
+
- Squiggly connecting line in "How It Works": `hidden md:block`
|
|
175
|
+
- Dashed circle on pricing card: `hidden md:block`
|
|
176
|
+
- **Maintain Core Aesthetic**:
|
|
177
|
+
- Keep wobbly borders and handwritten fonts on all screen sizes
|
|
178
|
+
- Reduce rotation slightly if needed (`-rotate-1` instead of `-rotate-2`)
|
|
179
|
+
- Maintain hard offset shadows (never add blur)
|
|
180
|
+
- Preserve playful personality and irregular shapes
|
|
181
|
+
- **Touch-Friendly Targets**:
|
|
182
|
+
- Buttons use minimum `h-12` (48px) for accessibility
|
|
183
|
+
- Adequate spacing between interactive elements with `gap-8`
|
|
184
|
+
- **Spacing Adjustments**:
|
|
185
|
+
- Section padding remains `py-20` for vertical rhythm
|
|
186
|
+
- Reduce horizontal padding when needed: `px-6`
|
|
187
|
+
- Stats scale down: `h-24 w-24 md:h-32 md:w-32`
|
|
188
|
+
- Pricing cards: `p-6 md:p-8` for better mobile fit
|
|
189
|
+
`</design-system>`
|