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.
Files changed (106) hide show
  1. package/README.md +13 -28
  2. package/gsp/agents/gsp-accessibility-auditor.md +1 -60
  3. package/gsp/agents/gsp-brand-auditor.md +1 -61
  4. package/gsp/agents/gsp-brand-creative-director.md +10 -0
  5. package/gsp/agents/gsp-brand-engineer.md +1 -122
  6. package/gsp/agents/gsp-brand-researcher.md +11 -0
  7. package/gsp/agents/gsp-brand-strategist.md +1 -65
  8. package/gsp/agents/gsp-project-builder.md +17 -0
  9. package/gsp/agents/gsp-project-critic.md +11 -0
  10. package/gsp/agents/gsp-project-designer.md +11 -0
  11. package/gsp/agents/gsp-project-researcher.md +1 -74
  12. package/gsp/agents/gsp-project-reviewer.md +12 -0
  13. package/gsp/hooks/hooks.json +10 -28
  14. package/gsp/skills/get-shit-pretty/SKILL.md +2 -5
  15. package/gsp/skills/gsp-accessibility/SKILL.md +0 -1
  16. package/gsp/skills/gsp-accessibility-audit/SKILL.md +9 -8
  17. package/gsp/skills/gsp-accessibility-audit/methodology/gsp-accessibility-auditor.md +59 -0
  18. package/gsp/skills/gsp-add-reference/SKILL.md +0 -1
  19. package/gsp/skills/gsp-art/SKILL.md +13 -10
  20. package/gsp/skills/gsp-brand-audit/SKILL.md +4 -2
  21. package/gsp/skills/gsp-brand-audit/methodology/gsp-brand-auditor.md +61 -0
  22. package/gsp/skills/gsp-brand-brief/SKILL.md +129 -0
  23. package/gsp/skills/gsp-brand-guidelines/SKILL.md +13 -11
  24. package/gsp/skills/gsp-brand-guidelines/methodology/gsp-brand-engineer.md +122 -0
  25. package/gsp/skills/gsp-brand-identity/SKILL.md +12 -11
  26. package/gsp/{agents/gsp-creative-director.md → skills/gsp-brand-identity/methodology/gsp-brand-creative-director.md} +0 -9
  27. package/gsp/skills/gsp-brand-refine/SKILL.md +0 -1
  28. package/gsp/skills/gsp-brand-research/SKILL.md +13 -13
  29. package/gsp/{agents/gsp-researcher.md → skills/gsp-brand-research/methodology/gsp-brand-researcher.md} +0 -10
  30. package/gsp/skills/gsp-brand-strategy/SKILL.md +14 -14
  31. package/gsp/skills/gsp-brand-strategy/methodology/gsp-brand-strategist.md +65 -0
  32. package/gsp/skills/gsp-brand-sync/SKILL.md +60 -10
  33. package/gsp/skills/gsp-color/SKILL.md +0 -1
  34. package/gsp/skills/gsp-design-system/SKILL.md +0 -1
  35. package/gsp/skills/gsp-doctor/SKILL.md +0 -1
  36. package/gsp/skills/gsp-help/SKILL.md +0 -2
  37. package/gsp/skills/gsp-icons/SKILL.md +0 -1
  38. package/gsp/skills/gsp-logo/SKILL.md +0 -1
  39. package/gsp/skills/gsp-phase-transition/SKILL.md +0 -3
  40. package/gsp/skills/gsp-pretty/SKILL.md +25 -24
  41. package/gsp/skills/gsp-progress/SKILL.md +0 -1
  42. package/gsp/skills/gsp-project-brief/SKILL.md +51 -22
  43. package/gsp/skills/gsp-project-build/SKILL.md +18 -14
  44. package/gsp/{agents/gsp-builder.md → skills/gsp-project-build/methodology/gsp-project-builder.md} +0 -16
  45. package/gsp/skills/gsp-project-critique/SKILL.md +13 -13
  46. package/gsp/{agents/gsp-critic.md → skills/gsp-project-critique/methodology/gsp-project-critic.md} +0 -11
  47. package/gsp/skills/gsp-project-design/SKILL.md +9 -6
  48. package/gsp/{agents/gsp-designer.md → skills/gsp-project-design/methodology/gsp-project-designer.md} +0 -11
  49. package/gsp/skills/gsp-project-research/SKILL.md +4 -2
  50. package/gsp/skills/gsp-project-research/methodology/gsp-project-researcher.md +73 -0
  51. package/gsp/skills/gsp-project-review/SKILL.md +8 -5
  52. package/gsp/{agents/gsp-reviewer.md → skills/gsp-project-review/methodology/gsp-project-reviewer.md} +0 -12
  53. package/gsp/skills/gsp-scaffold/SKILL.md +0 -1
  54. package/gsp/skills/gsp-start/SKILL.md +59 -210
  55. package/gsp/skills/gsp-style/SKILL.md +1 -2
  56. package/gsp/skills/gsp-style/styles/academia.md +751 -787
  57. package/gsp/skills/gsp-style/styles/art-deco.md +316 -352
  58. package/gsp/skills/gsp-style/styles/bauhaus.md +189 -225
  59. package/gsp/skills/gsp-style/styles/bold-typography.md +433 -469
  60. package/gsp/skills/gsp-style/styles/botanical.md +141 -177
  61. package/gsp/skills/gsp-style/styles/claymorphism.md +377 -413
  62. package/gsp/skills/gsp-style/styles/cyberpunk.md +419 -455
  63. package/gsp/skills/gsp-style/styles/enterprise.md +224 -260
  64. package/gsp/skills/gsp-style/styles/flat-design.md +119 -155
  65. package/gsp/skills/gsp-style/styles/fluent.md +0 -31
  66. package/gsp/skills/gsp-style/styles/glassmorphism.md +0 -36
  67. package/gsp/skills/gsp-style/styles/humanist-literary.md +0 -28
  68. package/gsp/skills/gsp-style/styles/industrial.md +406 -438
  69. package/gsp/skills/gsp-style/styles/kinetic.md +531 -563
  70. package/gsp/skills/gsp-style/styles/liquid-glass.md +0 -36
  71. package/gsp/skills/gsp-style/styles/luxury.md +402 -438
  72. package/gsp/skills/gsp-style/styles/material.md +555 -591
  73. package/gsp/skills/gsp-style/styles/maximalism.md +875 -911
  74. package/gsp/skills/gsp-style/styles/minimal-dark.md +442 -478
  75. package/gsp/skills/gsp-style/styles/modern-dark.md +390 -426
  76. package/gsp/skills/gsp-style/styles/monochrome.md +472 -504
  77. package/gsp/skills/gsp-style/styles/neubrutalism.md +354 -390
  78. package/gsp/skills/gsp-style/styles/neumorphism.md +195 -231
  79. package/gsp/skills/gsp-style/styles/newsprint.md +529 -565
  80. package/gsp/skills/gsp-style/styles/organic.md +177 -213
  81. package/gsp/skills/gsp-style/styles/playful-geometric.md +211 -247
  82. package/gsp/skills/gsp-style/styles/professional.md +503 -539
  83. package/gsp/skills/gsp-style/styles/retro.md +664 -700
  84. package/gsp/skills/gsp-style/styles/saas.md +490 -526
  85. package/gsp/skills/gsp-style/styles/sketch.md +189 -225
  86. package/gsp/skills/gsp-style/styles/swiss-minimalist.md +195 -227
  87. package/gsp/skills/gsp-style/styles/terminal.md +99 -135
  88. package/gsp/skills/gsp-style/styles/vaporwave.md +356 -392
  89. package/gsp/skills/gsp-style/styles/web3.md +337 -373
  90. package/gsp/skills/gsp-typography/SKILL.md +0 -1
  91. package/gsp/skills/gsp-update/SKILL.md +0 -1
  92. package/gsp/skills/gsp-visuals/SKILL.md +0 -1
  93. package/gsp/templates/branding/config.json +1 -1
  94. package/gsp/templates/exports-index.md +0 -7
  95. package/gsp/templates/projects/config.json +1 -1
  96. package/gsp/templates/projects/roadmap.md +0 -7
  97. package/gsp/templates/projects/state.md +0 -4
  98. package/package.json +1 -1
  99. package/scripts/lint-check.sh +1 -1
  100. package/gsp/agents/gsp-ascii-artist.md +0 -66
  101. package/gsp/agents/gsp-brand-syncer.md +0 -126
  102. package/gsp/agents/gsp-campaign-director.md +0 -79
  103. package/gsp/agents/gsp-scoper.md +0 -85
  104. package/gsp/skills/gsp-launch/SKILL.md +0 -97
  105. package/gsp/skills/gsp-start/questioning.md +0 -87
  106. package/gsp/templates/phases/launch.md +0 -55
@@ -1,426 +1,390 @@
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: Linear / Modern
39
-
40
- ## Design Philosophy
41
-
42
- **Core Principles:** Precision, depth, and fluidity define this design system. Every surface exists in three-dimensional space, illuminated by soft ambient light sources that breathe and move. The design communicates "premium developer tools"—fast, responsive, and obsessively crafted like Linear, Vercel, or Raycast. Nothing is arbitrary: every shadow has three layers, every gradient transitions through multiple colors, every animation uses refined expo-out easing. The goal is software that feels expensive without feeling ostentatious.
43
-
44
- **Vibe:** Cinematic meets technical minimalism. Imagine a developer's code editor crossed with a Blade Runner interface—deep near-blacks (#050506, never pure black) punctuated by soft pools of indigo light. The aesthetic is sophisticated but never cold, using warmth from accent glows (#5E6AD2 at varying opacities) to create inviting depth. It should feel like looking through frosted glass into a high-end application running at night. Dark, but not oppressive. Technical, but not sterile. Precise, but not rigid.
45
-
46
- **Differentiation:** The signature of this style is **layered ambient lighting and interactive depth**. Unlike flat dark modes or simple gradient overlays, this creates genuine atmospheric presence through:
47
-
48
- 1. **Multi-layer background system:** Four stacked gradients + noise texture + grid overlay create depth without any single dominant element
49
- 2. **Animated gradient blobs:** Large (900-1400px), heavily blurred shapes float slowly across the canvas, simulating cinematic lighting pools
50
- 3. **Mouse-tracking spotlights:** Interactive surfaces respond to cursor position with radial gradient glows (300px diameter, 15% opacity)
51
- 4. **Scroll-linked parallax:** Hero content fades, scales, and translates based on scroll position for cinematic depth
52
- 5. **Multi-layer shadows:** Every elevated surface uses 3-4 shadow layers: border highlight + soft diffuse + ambient darkness + optional accent glow
53
- 6. **Precision micro-interactions:** All animations are 200-300ms with expo-out easing. Movements are tiny (4-8px max). Scale changes are subtle (0.98-1.02). Nothing bounces or overshoots.
54
-
55
- **The "Software Feel":** This design should feel like using a desktop application, not a website. Interactions are instant and precise. Hover states are immediate. Focus rings are prominent. Everything responds to the cursor. The aesthetic borrows from native macOS/Windows design systems—subtle transparency, soft glows, refined typography, obsessive attention to 1px details.
56
-
57
- ---
58
-
59
- ## Design Token System (The DNA)
60
-
61
- ### Color Strategy: Deep Space with Ambient Light
62
-
63
- The palette is built on near-black bases with a single saturated indigo accent. Depth comes from layered translucency and soft light sources, not harsh shadows.
64
-
65
- | Token | Value | Usage |
66
- | :---------------------- | :------------------------- | :------------------------------------------------- |
67
- | `background-deep` | `#020203` | Absolute darkest footer, deepest layers |
68
- | `background-base` | `#050506` | Primary page canvas |
69
- | `background-elevated` | `#0a0a0c` | Elevated surfaces, mock interfaces |
70
- | `surface` | `rgba(255,255,255,0.05)` | Card backgrounds, containers |
71
- | `surface-hover` | `rgba(255,255,255,0.08)` | Hovered card state |
72
- | `foreground` | `#EDEDEF` | Primary text — bright but not pure white |
73
- | `foreground-muted` | `#8A8F98` | Body text, descriptions, metadata |
74
- | `foreground-subtle` | `rgba(255,255,255,0.60)` | Tertiary text, placeholders |
75
- | `accent` | `#5E6AD2` | Primary interactive color — buttons, links, glows |
76
- | `accent-bright` | `#6872D9` | Hover state for accent |
77
- | `accent-glow` | `rgba(94,106,210,0.3)` | Glow effects, ambient lighting |
78
- | `border-default` | `rgba(255,255,255,0.06)` | Subtle hairline borders |
79
- | `border-hover` | `rgba(255,255,255,0.10)` | Border on hover |
80
- | `border-accent` | `rgba(94,106,210,0.30)` | Accent-tinted borders for emphasis |
81
-
82
- ### Background System: Layered Ambient Lighting
83
-
84
- The background is never flat. It's a composition of multiple layers:
85
-
86
- **Layer 1 Base Gradient:**
87
-
88
- ```
89
- bg-[radial-gradient(ellipse_at_top,#0a0a0f_0%,#050506_50%,#020203_100%)]
90
- ```
91
-
92
- A radial gradient emanating from top-center creates vertical depth.
93
-
94
- **Layer 2 Noise Texture:**
95
- A subtle SVG noise pattern at `opacity: 0.015` adds tactile quality and prevents banding.
96
-
97
- **Layer 3 Animated Gradient Blobs:**
98
- Multiple large, heavily blurred shapes create ambient "light pools":
99
-
100
- - Primary blob: Top-center, `blur-[150px]`, 900×1400px, accent color at 25% opacity
101
- - Secondary blob: Left side, `blur-[120px]`, 600×800px, purple/pink mix at 15% opacity
102
- - Tertiary blob: Right side, `blur-[100px]`, 500×700px, indigo/blue mix at 12% opacity
103
- - Bottom accent: Lower area, pulsing animation, accent at 10% opacity
104
-
105
- **Blob Animation:** Blobs float slowly using keyframe animations:
106
-
107
- ```css
108
- @keyframes float {
109
- 0%, 100% { transform: translateY(0) rotate(0deg); }
110
- 50% { transform: translateY(-20px) rotate(1deg); }
111
- }
112
- /* Duration: 8-10s, ease-in-out, infinite */
113
- ```
114
-
115
- **Layer 4 — Grid Overlay:**
116
- A subtle 64px grid pattern at `opacity: 0.02` adds technical precision.
117
-
118
- ---
119
-
120
- ### Typography System
121
-
122
- **Font Stack:** `"Inter", "Geist Sans", system-ui, sans-serif`
123
-
124
- **Type Scale & Weights:**
125
-
126
- | Level | Size | Weight | Tracking | Usage |
127
- | :--------- | :--------------------------- | :---------------- | :--------------------- | :--------------------- |
128
- | Display | `text-7xl` to `text-8xl` | `font-semibold` | `tracking-[-0.03em]` | Hero headlines |
129
- | H1 | `text-5xl` to `text-6xl` | `font-semibold` | `tracking-tight` | Section headers |
130
- | H2 | `text-3xl` to `text-4xl` | `font-semibold` | `tracking-tight` | Subsection headers |
131
- | H3 | `text-xl` to `text-2xl` | `font-semibold` | `tracking-tight` | Card titles |
132
- | Body Large | `text-lg` to `text-xl` | `font-normal` | default | Lead paragraphs |
133
- | Body | `text-sm` to `text-base` | `font-normal` | default | Standard content |
134
- | Label | `text-xs` | `font-mono` | `tracking-widest` | Section tags, metadata |
135
-
136
- **Gradient Text Treatment:**
137
- Headlines use gradient fills for dimensionality:
138
-
139
- ```
140
- bg-gradient-to-b from-white via-white/95 to-white/70 bg-clip-text text-transparent
141
- ```
142
-
143
- For accent emphasis, use animated gradient:
144
-
145
- ```
146
- bg-gradient-to-r from-[#5E6AD2] via-indigo-400 to-[#5E6AD2] bg-clip-text text-transparent
147
- /* With background-size: 200% and animation for shimmer effect */
148
- ```
149
-
150
- **Line Heights:**
151
-
152
- - Headlines: `leading-tight` or `leading-none`
153
- - Body text: `leading-relaxed`
154
-
155
- ---
156
-
157
- ### Radius & Border System
158
-
159
- | Element | Radius | Border |
160
- | :--------------- | :--------------------- | :----------------------------- |
161
- | Large containers | `rounded-2xl` (16px) | `border border-white/[0.06]` |
162
- | Cards | `rounded-2xl` (16px) | `border border-white/[0.06]` |
163
- | Buttons | `rounded-lg` (8px) | Inset shadow instead of border |
164
- | Inputs | `rounded-lg` (8px) | `border border-white/10` |
165
- | Badges/Pills | `rounded-full` | `border border-accent/30` |
166
- | Icons containers | `rounded-xl` (12px) | `border border-white/10` |
167
-
168
- **Border Gradients on Hover:**
169
- Cards can have animated gradient borders that fade in on hover:
170
-
171
- ```css
172
- background: linear-gradient(to bottom, rgba(94,106,210,0.3), transparent);
173
- mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
174
- mask-composite: exclude;
175
- padding: 1px;
176
- ```
177
-
178
- ---
179
-
180
- ### Shadow & Glow System
181
-
182
- **Multi-Layer Shadow Formula:**
183
- Shadows combine multiple layers for realistic depth:
184
-
185
- ```
186
- /* Card default */
187
- shadow-[0_0_0_1px_rgba(255,255,255,0.06),0_2px_20px_rgba(0,0,0,0.4),0_0_40px_rgba(0,0,0,0.2)]
188
-
189
- /* Card hover */
190
- shadow-[0_0_0_1px_rgba(255,255,255,0.1),0_8px_40px_rgba(0,0,0,0.5),0_0_80px_rgba(94,106,210,0.1)]
191
- ```
192
-
193
- **Accent Glow for CTAs:**
194
-
195
- ```
196
- shadow-[0_0_0_1px_rgba(94,106,210,0.5),0_4px_12px_rgba(94,106,210,0.3),inset_0_1px_0_0_rgba(255,255,255,0.2)]
197
- ```
198
-
199
- **Inner Highlight:**
200
- Buttons and elevated surfaces get a subtle top edge highlight:
201
-
202
- ```
203
- shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)]
204
- ```
205
-
206
- ---
207
-
208
- ## Component Styling Principles
209
-
210
- ### Buttons
211
-
212
- **Primary Button:**
213
-
214
- - Background: Solid accent color (`bg-[#5E6AD2]`)
215
- - Text: White
216
- - Shadow: Multi-layer with accent glow
217
- - Hover: Slightly brighter (`bg-[#6872D9]`), increased glow
218
- - Active: `scale-[0.98]`, reduced shadow
219
- - Shine effect: Pseudo-element gradient sweep on hover
220
-
221
- **Secondary Button:**
222
-
223
- - Background: `bg-white/[0.05]`
224
- - Text: `text-[#EDEDEF]`
225
- - Border: Inset shadow only
226
- - Hover: `bg-white/[0.08]`, subtle outer glow
227
-
228
- **Ghost Button:**
229
-
230
- - Background: Transparent
231
- - Text: Muted foreground
232
- - Hover: `bg-white/[0.05]`, text brightens
233
-
234
- ### Cards & Containers
235
-
236
- **Base Card:**
237
-
238
- - Background: `bg-gradient-to-b from-white/[0.08] to-white/[0.02]`
239
- - Border: 1px at 6% white opacity
240
- - Radius: `rounded-2xl`
241
- - Inner glow line: 1px gradient at top edge
242
- - Mouse-tracking spotlight effect (optional)
243
-
244
- **Spotlight Effect:**
245
- Cards track mouse position and render a radial gradient that follows the cursor:
246
-
247
- ```jsx
248
- // Radial gradient, 300px diameter, accent color at 15% opacity
249
- // Positioned at mouse coordinates relative to card
250
- // Opacity transitions on hover
251
- ```
252
-
253
- **Card Variants:**
254
-
255
- - `default`: Standard glass effect
256
- - `glass`: More translucent with backdrop blur
257
- - `gradient`: Subtle accent gradient overlay
258
-
259
- ### Form Inputs
260
-
261
- - Background: `bg-[#0F0F12]`
262
- - Border: `border-white/10`
263
- - Focus: `border-[#5E6AD2]` with accent glow ring
264
- - Text: `text-gray-100`
265
- - Placeholder: `text-gray-500`
266
-
267
- ### Interactive States
268
-
269
- **Hover Principles:**
270
-
271
- - Movement is minimal: `y: -4px` to `y: -8px` maximum
272
- - Duration: `200-300ms`
273
- - Easing: `[0.16, 1, 0.3, 1]` (expo out)
274
- - Changes: Border brightens, glow increases, subtle scale
275
-
276
- **Focus States:**
277
-
278
- - Ring: `ring-2 ring-[#5E6AD2]/50 ring-offset-2 ring-offset-[#050506]`
279
-
280
- **Active States:**
281
-
282
- - Scale: `scale-[0.98]`
283
- - Shadow: Reduced depth
284
-
285
- **Mobile Menu:**
286
-
287
- - Toggle button appears on screens < 768px
288
- - Animated dropdown with `opacity` and `y` transform (0.2s duration)
289
- - Semi-transparent backdrop: `bg-[#050506]/95` with `backdrop-blur-xl`
290
- - Vertical navigation links with hover states
291
- - Full-width CTA button at bottom
292
- - Menu icon transitions between hamburger (`Menu`) and close (`X`) icons
293
-
294
- ---
295
-
296
- ## Layout Principles
297
-
298
- ### Spacing Scale
299
-
300
- Base unit: 4px. Use Tailwind's default scale consistently.
301
-
302
- | Context | Spacing |
303
- | :------------------ | :------------------------------------ |
304
- | Section padding | `py-24` to `py-32` |
305
- | Container max-width | `container` with responsive padding |
306
- | Card padding | `p-6` to `p-8` |
307
- | Element gaps | `gap-4` to `gap-8` |
308
- | Between sections | `py-32` (128px) |
309
-
310
- ### Grid Philosophy
311
-
312
- **Asymmetric Bento Grids:**
313
- Feature grids should NOT be uniform. Use varying spans:
314
-
315
- - 6-column base grid on desktop
316
- - Mix of `col-span-2`, `col-span-3`, `col-span-4`
317
- - Variable row heights with `auto-rows-[180px]` as baseline
318
- - One "hero" card spanning 4 columns and 2 rows
319
-
320
- **Responsive Breakpoints:**
321
-
322
- - Mobile (`< 768px`): Single column, stacked layout with reduced padding
323
- - Tablet (`md: 768px`): 2-3 columns, intermediate grid layouts
324
- - Desktop (`lg: 1024px+`): Full grid expression with asymmetric layouts
325
-
326
- **Mobile-Specific Adjustments:**
327
-
328
- - Section padding scales: `py-16` (mobile) `py-24` (tablet) `py-32` (desktop)
329
- - Hero typography: `text-4xl` (mobile) `text-5xl` (tablet) `text-7xl`/`text-8xl` (desktop)
330
- - Body text: `text-base` (mobile) `text-lg` (tablet) `text-xl` (desktop)
331
- - Navigation: Hamburger menu with animated slide-down panel on mobile (`Menu`/`X` icons), inline links on desktop
332
- - Cards: Full-width on mobile, grid on desktop
333
- - Bento grids: Single column mobile, full asymmetric layout desktop
334
-
335
- ### Section Flow
336
-
337
- - Sections separated by subtle `border-t border-white/[0.06]`
338
- - Gradient line accents: `bg-gradient-to-r from-transparent via-white/10 to-transparent`
339
- - Occasional overlapping sections using negative margins
340
-
341
- ---
342
-
343
- ## The "Bold Factor" (Signature Elements)
344
-
345
- These elements MUST be present for authenticity:
346
-
347
- 1. **Animated Ambient Blobs:** Multiple layered, floating gradient shapes create cinematic lighting. Without these, the design becomes flat and generic.
348
- 2. **Mouse-Tracking Spotlights:** Interactive surfaces respond to cursor position with soft radial glow effects. This creates the "magical" interaction feel.
349
- 3. **Gradient Typography:** Headlines use vertical gradients (white to semi-transparent) and accent gradients with animation for key phrases.
350
- 4. **Multi-Layer Shadows:** Never single shadows. Always combine: border highlight + soft diffuse shadow + optional accent glow.
351
- 5. **Parallax/Scroll Effects:** Hero content fades and scales on scroll. Elements reveal with staggered animations. This adds cinematic depth.
352
- 6. **Precision Micro-Interactions:** All animations are quick (200-300ms), use expo-out easing, and movements are tiny (4-8px). Never bouncy or exaggerated.
353
-
354
- ---
355
-
356
- ## Anti-Patterns (What to Avoid)
357
-
358
- 1. **Flat backgrounds:** Never use a single solid color. Always layer gradients, noise, and ambient light.
359
- 2. **Pure black (`#000000`):** Use near-blacks like `#050506` or `#020203` for softer appearance.
360
- 3. **Pure white text:** Use `#EDEDEF` or similar off-white to reduce harshness.
361
- 4. **Large hover movements:** Keep transforms under 8px. This isn't playful—it's precise.
362
- 5. **Uniform grids:** Bento layouts should have variety in card sizes. Avoid same-size-everything.
363
- 6. **Harsh borders:** Borders should be nearly invisible (`6-10%` white opacity), not prominent.
364
- 7. **Colorful accent overuse:** The accent color is for highlights and interaction, not decoration. Most of the UI is monochromatic.
365
- 8. **Bouncy animations:** Use expo-out easing, not spring physics. Movements should be swift and decisive.
366
- 9. **Missing glow effects:** Accent buttons without glow look incomplete. The soft light emission is part of the language.
367
-
368
- ---
369
-
370
- ## Animation & Motion
371
-
372
- **Timing:**
373
-
374
- - Quick interactions: `200ms`
375
- - Standard transitions: `300ms`
376
- - Entrance animations: `600ms`
377
- - Background blob float: `8000-10000ms`
378
-
379
- **Easing:**
380
-
381
- - Primary: `[0.16, 1, 0.3, 1]` (expo-out)
382
- - Hover: `ease-out`
383
-
384
- **Entrance Patterns:**
385
-
386
- - Fade up: `opacity: 0 → 1`, `y: 24px → 0`
387
- - Scale in: `opacity: 0 → 1`, `scale: 0.95 → 1`
388
- - Stagger children: `0.08s` delay between items
389
-
390
- **Scroll-Triggered:**
391
-
392
- - Viewport threshold: `15-20%` visibility
393
- - Once: true (don't re-animate on scroll back)
394
-
395
- **Parallax (Hero):**
396
-
397
- - Opacity: Fades from `1 → 0` over first 50% of scroll
398
- - Scale: Shrinks from `1 → 0.95`
399
- - Y position: Moves down `0 → 100px`
400
-
401
- ---
402
-
403
- ## Accessibility Considerations
404
-
405
- **Contrast:**
406
-
407
- - Primary text (`#EDEDEF` on `#050506`): ~15:1 ratio ✓
408
- - Muted text (`#8A8F98` on `#050506`): ~6:1 ratio ✓
409
- - Accent on dark: Ensure 4.5:1 minimum for interactive elements
410
-
411
- **Focus States:**
412
-
413
- - Always visible focus rings using accent color
414
- - `ring-offset` matches background color
415
-
416
- **Motion:**
417
-
418
- - Respect `prefers-reduced-motion`
419
- - Provide fallbacks for parallax and floating animations
420
- - Essential interactions should work without animation
421
-
422
- **Color Independence:**
423
-
424
- - Don't rely solely on accent color for meaning
425
- - Use icons, labels, and position to reinforce state
426
- `</design-system>`
1
+ <design-system>
2
+ # Design Style: Linear / Modern
3
+
4
+ ## Design Philosophy
5
+
6
+ **Core Principles:** Precision, depth, and fluidity define this design system. Every surface exists in three-dimensional space, illuminated by soft ambient light sources that breathe and move. The design communicates "premium developer tools"—fast, responsive, and obsessively crafted like Linear, Vercel, or Raycast. Nothing is arbitrary: every shadow has three layers, every gradient transitions through multiple colors, every animation uses refined expo-out easing. The goal is software that feels expensive without feeling ostentatious.
7
+
8
+ **Vibe:** Cinematic meets technical minimalism. Imagine a developer's code editor crossed with a Blade Runner interface—deep near-blacks (#050506, never pure black) punctuated by soft pools of indigo light. The aesthetic is sophisticated but never cold, using warmth from accent glows (#5E6AD2 at varying opacities) to create inviting depth. It should feel like looking through frosted glass into a high-end application running at night. Dark, but not oppressive. Technical, but not sterile. Precise, but not rigid.
9
+
10
+ **Differentiation:** The signature of this style is **layered ambient lighting and interactive depth**. Unlike flat dark modes or simple gradient overlays, this creates genuine atmospheric presence through:
11
+
12
+ 1. **Multi-layer background system:** Four stacked gradients + noise texture + grid overlay create depth without any single dominant element
13
+ 2. **Animated gradient blobs:** Large (900-1400px), heavily blurred shapes float slowly across the canvas, simulating cinematic lighting pools
14
+ 3. **Mouse-tracking spotlights:** Interactive surfaces respond to cursor position with radial gradient glows (300px diameter, 15% opacity)
15
+ 4. **Scroll-linked parallax:** Hero content fades, scales, and translates based on scroll position for cinematic depth
16
+ 5. **Multi-layer shadows:** Every elevated surface uses 3-4 shadow layers: border highlight + soft diffuse + ambient darkness + optional accent glow
17
+ 6. **Precision micro-interactions:** All animations are 200-300ms with expo-out easing. Movements are tiny (4-8px max). Scale changes are subtle (0.98-1.02). Nothing bounces or overshoots.
18
+
19
+ **The "Software Feel":** This design should feel like using a desktop application, not a website. Interactions are instant and precise. Hover states are immediate. Focus rings are prominent. Everything responds to the cursor. The aesthetic borrows from native macOS/Windows design systems—subtle transparency, soft glows, refined typography, obsessive attention to 1px details.
20
+
21
+ ---
22
+
23
+ ## Design Token System (The DNA)
24
+
25
+ ### Color Strategy: Deep Space with Ambient Light
26
+
27
+ The palette is built on near-black bases with a single saturated indigo accent. Depth comes from layered translucency and soft light sources, not harsh shadows.
28
+
29
+ | Token | Value | Usage |
30
+ | :---------------------- | :------------------------- | :------------------------------------------------- |
31
+ | `background-deep` | `#020203` | Absolute darkest footer, deepest layers |
32
+ | `background-base` | `#050506` | Primary page canvas |
33
+ | `background-elevated` | `#0a0a0c` | Elevated surfaces, mock interfaces |
34
+ | `surface` | `rgba(255,255,255,0.05)` | Card backgrounds, containers |
35
+ | `surface-hover` | `rgba(255,255,255,0.08)` | Hovered card state |
36
+ | `foreground` | `#EDEDEF` | Primary text — bright but not pure white |
37
+ | `foreground-muted` | `#8A8F98` | Body text, descriptions, metadata |
38
+ | `foreground-subtle` | `rgba(255,255,255,0.60)` | Tertiary text, placeholders |
39
+ | `accent` | `#5E6AD2` | Primary interactive color — buttons, links, glows |
40
+ | `accent-bright` | `#6872D9` | Hover state for accent |
41
+ | `accent-glow` | `rgba(94,106,210,0.3)` | Glow effects, ambient lighting |
42
+ | `border-default` | `rgba(255,255,255,0.06)` | Subtle hairline borders |
43
+ | `border-hover` | `rgba(255,255,255,0.10)` | Border on hover |
44
+ | `border-accent` | `rgba(94,106,210,0.30)` | Accent-tinted borders for emphasis |
45
+
46
+ ### Background System: Layered Ambient Lighting
47
+
48
+ The background is never flat. It's a composition of multiple layers:
49
+
50
+ **Layer 1 Base Gradient:**
51
+
52
+ ```
53
+ bg-[radial-gradient(ellipse_at_top,#0a0a0f_0%,#050506_50%,#020203_100%)]
54
+ ```
55
+
56
+ A radial gradient emanating from top-center creates vertical depth.
57
+
58
+ **Layer 2 — Noise Texture:**
59
+ A subtle SVG noise pattern at `opacity: 0.015` adds tactile quality and prevents banding.
60
+
61
+ **Layer 3 Animated Gradient Blobs:**
62
+ Multiple large, heavily blurred shapes create ambient "light pools":
63
+
64
+ - Primary blob: Top-center, `blur-[150px]`, 900×1400px, accent color at 25% opacity
65
+ - Secondary blob: Left side, `blur-[120px]`, 600×800px, purple/pink mix at 15% opacity
66
+ - Tertiary blob: Right side, `blur-[100px]`, 500×700px, indigo/blue mix at 12% opacity
67
+ - Bottom accent: Lower area, pulsing animation, accent at 10% opacity
68
+
69
+ **Blob Animation:** Blobs float slowly using keyframe animations:
70
+
71
+ ```css
72
+ @keyframes float {
73
+ 0%, 100% { transform: translateY(0) rotate(0deg); }
74
+ 50% { transform: translateY(-20px) rotate(1deg); }
75
+ }
76
+ /* Duration: 8-10s, ease-in-out, infinite */
77
+ ```
78
+
79
+ **Layer 4 Grid Overlay:**
80
+ A subtle 64px grid pattern at `opacity: 0.02` adds technical precision.
81
+
82
+ ---
83
+
84
+ ### Typography System
85
+
86
+ **Font Stack:** `"Inter", "Geist Sans", system-ui, sans-serif`
87
+
88
+ **Type Scale & Weights:**
89
+
90
+ | Level | Size | Weight | Tracking | Usage |
91
+ | :--------- | :--------------------------- | :---------------- | :--------------------- | :--------------------- |
92
+ | Display | `text-7xl` to `text-8xl` | `font-semibold` | `tracking-[-0.03em]` | Hero headlines |
93
+ | H1 | `text-5xl` to `text-6xl` | `font-semibold` | `tracking-tight` | Section headers |
94
+ | H2 | `text-3xl` to `text-4xl` | `font-semibold` | `tracking-tight` | Subsection headers |
95
+ | H3 | `text-xl` to `text-2xl` | `font-semibold` | `tracking-tight` | Card titles |
96
+ | Body Large | `text-lg` to `text-xl` | `font-normal` | default | Lead paragraphs |
97
+ | Body | `text-sm` to `text-base` | `font-normal` | default | Standard content |
98
+ | Label | `text-xs` | `font-mono` | `tracking-widest` | Section tags, metadata |
99
+
100
+ **Gradient Text Treatment:**
101
+ Headlines use gradient fills for dimensionality:
102
+
103
+ ```
104
+ bg-gradient-to-b from-white via-white/95 to-white/70 bg-clip-text text-transparent
105
+ ```
106
+
107
+ For accent emphasis, use animated gradient:
108
+
109
+ ```
110
+ bg-gradient-to-r from-[#5E6AD2] via-indigo-400 to-[#5E6AD2] bg-clip-text text-transparent
111
+ /* With background-size: 200% and animation for shimmer effect */
112
+ ```
113
+
114
+ **Line Heights:**
115
+
116
+ - Headlines: `leading-tight` or `leading-none`
117
+ - Body text: `leading-relaxed`
118
+
119
+ ---
120
+
121
+ ### Radius & Border System
122
+
123
+ | Element | Radius | Border |
124
+ | :--------------- | :--------------------- | :----------------------------- |
125
+ | Large containers | `rounded-2xl` (16px) | `border border-white/[0.06]` |
126
+ | Cards | `rounded-2xl` (16px) | `border border-white/[0.06]` |
127
+ | Buttons | `rounded-lg` (8px) | Inset shadow instead of border |
128
+ | Inputs | `rounded-lg` (8px) | `border border-white/10` |
129
+ | Badges/Pills | `rounded-full` | `border border-accent/30` |
130
+ | Icons containers | `rounded-xl` (12px) | `border border-white/10` |
131
+
132
+ **Border Gradients on Hover:**
133
+ Cards can have animated gradient borders that fade in on hover:
134
+
135
+ ```css
136
+ background: linear-gradient(to bottom, rgba(94,106,210,0.3), transparent);
137
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
138
+ mask-composite: exclude;
139
+ padding: 1px;
140
+ ```
141
+
142
+ ---
143
+
144
+ ### Shadow & Glow System
145
+
146
+ **Multi-Layer Shadow Formula:**
147
+ Shadows combine multiple layers for realistic depth:
148
+
149
+ ```
150
+ /* Card default */
151
+ shadow-[0_0_0_1px_rgba(255,255,255,0.06),0_2px_20px_rgba(0,0,0,0.4),0_0_40px_rgba(0,0,0,0.2)]
152
+
153
+ /* Card hover */
154
+ shadow-[0_0_0_1px_rgba(255,255,255,0.1),0_8px_40px_rgba(0,0,0,0.5),0_0_80px_rgba(94,106,210,0.1)]
155
+ ```
156
+
157
+ **Accent Glow for CTAs:**
158
+
159
+ ```
160
+ shadow-[0_0_0_1px_rgba(94,106,210,0.5),0_4px_12px_rgba(94,106,210,0.3),inset_0_1px_0_0_rgba(255,255,255,0.2)]
161
+ ```
162
+
163
+ **Inner Highlight:**
164
+ Buttons and elevated surfaces get a subtle top edge highlight:
165
+
166
+ ```
167
+ shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)]
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Component Styling Principles
173
+
174
+ ### Buttons
175
+
176
+ **Primary Button:**
177
+
178
+ - Background: Solid accent color (`bg-[#5E6AD2]`)
179
+ - Text: White
180
+ - Shadow: Multi-layer with accent glow
181
+ - Hover: Slightly brighter (`bg-[#6872D9]`), increased glow
182
+ - Active: `scale-[0.98]`, reduced shadow
183
+ - Shine effect: Pseudo-element gradient sweep on hover
184
+
185
+ **Secondary Button:**
186
+
187
+ - Background: `bg-white/[0.05]`
188
+ - Text: `text-[#EDEDEF]`
189
+ - Border: Inset shadow only
190
+ - Hover: `bg-white/[0.08]`, subtle outer glow
191
+
192
+ **Ghost Button:**
193
+
194
+ - Background: Transparent
195
+ - Text: Muted foreground
196
+ - Hover: `bg-white/[0.05]`, text brightens
197
+
198
+ ### Cards & Containers
199
+
200
+ **Base Card:**
201
+
202
+ - Background: `bg-gradient-to-b from-white/[0.08] to-white/[0.02]`
203
+ - Border: 1px at 6% white opacity
204
+ - Radius: `rounded-2xl`
205
+ - Inner glow line: 1px gradient at top edge
206
+ - Mouse-tracking spotlight effect (optional)
207
+
208
+ **Spotlight Effect:**
209
+ Cards track mouse position and render a radial gradient that follows the cursor:
210
+
211
+ ```jsx
212
+ // Radial gradient, 300px diameter, accent color at 15% opacity
213
+ // Positioned at mouse coordinates relative to card
214
+ // Opacity transitions on hover
215
+ ```
216
+
217
+ **Card Variants:**
218
+
219
+ - `default`: Standard glass effect
220
+ - `glass`: More translucent with backdrop blur
221
+ - `gradient`: Subtle accent gradient overlay
222
+
223
+ ### Form Inputs
224
+
225
+ - Background: `bg-[#0F0F12]`
226
+ - Border: `border-white/10`
227
+ - Focus: `border-[#5E6AD2]` with accent glow ring
228
+ - Text: `text-gray-100`
229
+ - Placeholder: `text-gray-500`
230
+
231
+ ### Interactive States
232
+
233
+ **Hover Principles:**
234
+
235
+ - Movement is minimal: `y: -4px` to `y: -8px` maximum
236
+ - Duration: `200-300ms`
237
+ - Easing: `[0.16, 1, 0.3, 1]` (expo out)
238
+ - Changes: Border brightens, glow increases, subtle scale
239
+
240
+ **Focus States:**
241
+
242
+ - Ring: `ring-2 ring-[#5E6AD2]/50 ring-offset-2 ring-offset-[#050506]`
243
+
244
+ **Active States:**
245
+
246
+ - Scale: `scale-[0.98]`
247
+ - Shadow: Reduced depth
248
+
249
+ **Mobile Menu:**
250
+
251
+ - Toggle button appears on screens < 768px
252
+ - Animated dropdown with `opacity` and `y` transform (0.2s duration)
253
+ - Semi-transparent backdrop: `bg-[#050506]/95` with `backdrop-blur-xl`
254
+ - Vertical navigation links with hover states
255
+ - Full-width CTA button at bottom
256
+ - Menu icon transitions between hamburger (`Menu`) and close (`X`) icons
257
+
258
+ ---
259
+
260
+ ## Layout Principles
261
+
262
+ ### Spacing Scale
263
+
264
+ Base unit: 4px. Use Tailwind's default scale consistently.
265
+
266
+ | Context | Spacing |
267
+ | :------------------ | :------------------------------------ |
268
+ | Section padding | `py-24` to `py-32` |
269
+ | Container max-width | `container` with responsive padding |
270
+ | Card padding | `p-6` to `p-8` |
271
+ | Element gaps | `gap-4` to `gap-8` |
272
+ | Between sections | `py-32` (128px) |
273
+
274
+ ### Grid Philosophy
275
+
276
+ **Asymmetric Bento Grids:**
277
+ Feature grids should NOT be uniform. Use varying spans:
278
+
279
+ - 6-column base grid on desktop
280
+ - Mix of `col-span-2`, `col-span-3`, `col-span-4`
281
+ - Variable row heights with `auto-rows-[180px]` as baseline
282
+ - One "hero" card spanning 4 columns and 2 rows
283
+
284
+ **Responsive Breakpoints:**
285
+
286
+ - Mobile (`< 768px`): Single column, stacked layout with reduced padding
287
+ - Tablet (`md: 768px`): 2-3 columns, intermediate grid layouts
288
+ - Desktop (`lg: 1024px+`): Full grid expression with asymmetric layouts
289
+
290
+ **Mobile-Specific Adjustments:**
291
+
292
+ - Section padding scales: `py-16` (mobile) `py-24` (tablet) `py-32` (desktop)
293
+ - Hero typography: `text-4xl` (mobile) → `text-5xl` (tablet) → `text-7xl`/`text-8xl` (desktop)
294
+ - Body text: `text-base` (mobile) → `text-lg` (tablet) → `text-xl` (desktop)
295
+ - Navigation: Hamburger menu with animated slide-down panel on mobile (`Menu`/`X` icons), inline links on desktop
296
+ - Cards: Full-width on mobile, grid on desktop
297
+ - Bento grids: Single column mobile, full asymmetric layout desktop
298
+
299
+ ### Section Flow
300
+
301
+ - Sections separated by subtle `border-t border-white/[0.06]`
302
+ - Gradient line accents: `bg-gradient-to-r from-transparent via-white/10 to-transparent`
303
+ - Occasional overlapping sections using negative margins
304
+
305
+ ---
306
+
307
+ ## The "Bold Factor" (Signature Elements)
308
+
309
+ These elements MUST be present for authenticity:
310
+
311
+ 1. **Animated Ambient Blobs:** Multiple layered, floating gradient shapes create cinematic lighting. Without these, the design becomes flat and generic.
312
+ 2. **Mouse-Tracking Spotlights:** Interactive surfaces respond to cursor position with soft radial glow effects. This creates the "magical" interaction feel.
313
+ 3. **Gradient Typography:** Headlines use vertical gradients (white to semi-transparent) and accent gradients with animation for key phrases.
314
+ 4. **Multi-Layer Shadows:** Never single shadows. Always combine: border highlight + soft diffuse shadow + optional accent glow.
315
+ 5. **Parallax/Scroll Effects:** Hero content fades and scales on scroll. Elements reveal with staggered animations. This adds cinematic depth.
316
+ 6. **Precision Micro-Interactions:** All animations are quick (200-300ms), use expo-out easing, and movements are tiny (4-8px). Never bouncy or exaggerated.
317
+
318
+ ---
319
+
320
+ ## Anti-Patterns (What to Avoid)
321
+
322
+ 1. **Flat backgrounds:** Never use a single solid color. Always layer gradients, noise, and ambient light.
323
+ 2. **Pure black (`#000000`):** Use near-blacks like `#050506` or `#020203` for softer appearance.
324
+ 3. **Pure white text:** Use `#EDEDEF` or similar off-white to reduce harshness.
325
+ 4. **Large hover movements:** Keep transforms under 8px. This isn't playful—it's precise.
326
+ 5. **Uniform grids:** Bento layouts should have variety in card sizes. Avoid same-size-everything.
327
+ 6. **Harsh borders:** Borders should be nearly invisible (`6-10%` white opacity), not prominent.
328
+ 7. **Colorful accent overuse:** The accent color is for highlights and interaction, not decoration. Most of the UI is monochromatic.
329
+ 8. **Bouncy animations:** Use expo-out easing, not spring physics. Movements should be swift and decisive.
330
+ 9. **Missing glow effects:** Accent buttons without glow look incomplete. The soft light emission is part of the language.
331
+
332
+ ---
333
+
334
+ ## Animation & Motion
335
+
336
+ **Timing:**
337
+
338
+ - Quick interactions: `200ms`
339
+ - Standard transitions: `300ms`
340
+ - Entrance animations: `600ms`
341
+ - Background blob float: `8000-10000ms`
342
+
343
+ **Easing:**
344
+
345
+ - Primary: `[0.16, 1, 0.3, 1]` (expo-out)
346
+ - Hover: `ease-out`
347
+
348
+ **Entrance Patterns:**
349
+
350
+ - Fade up: `opacity: 0 1`, `y: 24px 0`
351
+ - Scale in: `opacity: 0 1`, `scale: 0.95 1`
352
+ - Stagger children: `0.08s` delay between items
353
+
354
+ **Scroll-Triggered:**
355
+
356
+ - Viewport threshold: `15-20%` visibility
357
+ - Once: true (don't re-animate on scroll back)
358
+
359
+ **Parallax (Hero):**
360
+
361
+ - Opacity: Fades from `1 0` over first 50% of scroll
362
+ - Scale: Shrinks from `1 0.95`
363
+ - Y position: Moves down `0 100px`
364
+
365
+ ---
366
+
367
+ ## Accessibility Considerations
368
+
369
+ **Contrast:**
370
+
371
+ - Primary text (`#EDEDEF` on `#050506`): ~15:1 ratio ✓
372
+ - Muted text (`#8A8F98` on `#050506`): ~6:1 ratio ✓
373
+ - Accent on dark: Ensure 4.5:1 minimum for interactive elements
374
+
375
+ **Focus States:**
376
+
377
+ - Always visible focus rings using accent color
378
+ - `ring-offset` matches background color
379
+
380
+ **Motion:**
381
+
382
+ - Respect `prefers-reduced-motion`
383
+ - Provide fallbacks for parallax and floating animations
384
+ - Essential interactions should work without animation
385
+
386
+ **Color Independence:**
387
+
388
+ - Don't rely solely on accent color for meaning
389
+ - Use icons, labels, and position to reinforce state
390
+ `</design-system>`