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,438 +1,406 @@
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
- - Identify the tech stack (e.g. React, Next.js, Vue, Tailwind, shadcn/ui, etc.).
6
- - Understand the existing design tokens (colors, spacing, typography, radii, shadows), global styles, and utility patterns.
7
- - Review the current component architecture (atoms/molecules/organisms, layout primitives, etc.) and naming conventions.
8
- - Note any constraints (legacy CSS, design library in use, performance or bundle-size considerations).
9
-
10
- Ask the user focused questions to understand the user's goals. Do they want:
11
- - a specific component or page redesigned in the new style,
12
- - existing components refactored to the new system, or
13
- - new pages/features built entirely in the new style?
14
-
15
- Once you understand the context and scope, do the following:
16
- - Propose a concise implementation plan that follows best practices, prioritizing:
17
- - centralizing design tokens,
18
- - reusability and composability of components,
19
- - minimizing duplication and one-off styles,
20
- - long-term maintainability and clear naming.
21
- - When writing code, match the user’s existing patterns (folder structure, naming, styling approach, and component patterns).
22
- - Explain your reasoning briefly as you go, so the user understands *why* you’re making certain architectural or design choices.
23
-
24
- Always aim to:
25
- - Preserve or improve accessibility.
26
- - Maintain visual consistency with the provided design system.
27
- - Leave the codebase in a cleaner, more coherent state than you found it.
28
- - Ensure layouts are responsive and usable across devices.
29
- - 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.
30
-
31
- </role>
32
-
33
- <design-system>
34
- # Design Style: Industrial Skeuomorphism
35
-
36
- ## 1. Design Philosophy
37
-
38
- This style transcends simple skeuomorphism into **Industrial Realism**—a celebration of **tactile precision, mechanical reliability, and the soul of physical objects**. In an era of ephemeral flat digital experiences, this aesthetic offers something solid, grounded, and permanent. It doesn't just *look* like a machine; it *feels* like one.
39
-
40
- ### The Core DNA
41
-
42
- **Physicality Through Light**: Every element exists in three-dimensional space defined by consistent top-left lighting. Shadows aren't decorative—they're structural. Highlights reveal form. The interplay of light and shadow creates the illusion of mass, depth, and material.
43
-
44
- **Mechanical Authenticity**: Interactions mimic real-world physics. Buttons depress with translation and shadow inversion. Cards elevate on hover. Icons rotate subtly. Every animation reinforces the metaphor of physical manipulation—springs, clicks, and tactile feedback encoded in motion curves.
45
-
46
- **Manufacturing Details Matter**: The difference between generic and exceptional lies in the details. Corner screws (rendered as radial gradients), ventilation slots, LED status indicators, scanlines on screens, push-pin shadows, hanging holes on price tags—these are not optional flourishes. They are the **signature elements** that make this style instantly recognizable.
47
-
48
- **Material Honesty**: The palette and textures evoke specific materials—matte ABS plastic chassis, brushed aluminum panels, powder-coated steel, and safety-orange injection-molded controls. A subtle noise texture across the background simulates the microscopic imperfections of real plastic surfaces. External texture patterns (carbon fiber, diagmonds) add authenticity to specific components.
49
-
50
- ### The Vibe
51
-
52
- Picture the control panel of a spacecraft, a 1980s Braun synthesizer, or a Teenage Engineering OP-1. It's **functional, organized, precise, and effortlessly cool**.
53
-
54
- **Dieter Rams Heritage**: Maximum clarity with minimum ornamentation. Typography is legible and hierarchical. Color is used sparingly—only where necessary for function (the safety-orange accent for interactive triggers and alerts).
55
-
56
- **Teenage Engineering Playfulness**: Modular construction. Professional-grade precision with a sense of joy. Components feel like they could be swapped, rearranged, or upgraded.
57
-
58
- **Timeless Futurism**: Not retro or nostalgic in a kitschy sense. This is the industrial design aesthetic that transcends trends—equally at home in 1985 or 2035.
59
-
60
- ### The Physics Engine
61
-
62
- The interface obeys immutable physical laws:
63
-
64
- 1. **Consistent Light Source**: All lighting originates from the **top-left at 45 degrees**. This determines every highlight (top/left edges) and every shadow (bottom/right edges). Deviation breaks the illusion.
65
-
66
- 2. **Material Conservation**: Elements don't magically appear. They slide from behind panels, lights turn on, drawers open. Animations respect causality.
67
-
68
- 3. **Elevation Hierarchy**:
69
- - **Level -1 (Recessed)**: Inputs, screens, slots, grooves. Inner shadows create depth below the surface.
70
- - **Level 0 (Chassis)**: The base layer—the matte plastic background that everything is mounted to.
71
- - **Level +1 (Panels)**: Cards, modules, sections. Dual shadows (dark below, light above) create lift.
72
- - **Level +2 (Floating Controls)**: Buttons, knobs, badges. Enhanced shadows with optional glow for active states.
73
-
74
- 4. **Interaction Physics**: Active states reverse shadow direction (pressed elements get inner shadows). Hover states increase elevation. Transitions use mechanical easing with subtle bounce—mimicking spring-loaded switches.
75
-
76
- ## 2. Design Token System (The DNA)
77
-
78
- ### Colors (Industrial Palette)
79
-
80
- The palette is **strictly light mode** and mimics physical materials under diffuse workshop lighting:
81
-
82
- - **Background (Chassis)**: `#e0e5ec` - Cool mid-tone industrial grey. The base "plastic" material everything is mounted to. This is Level 0.
83
- - **Foreground (Panel)**: `#f0f2f5` - Slightly lighter raised panel surface. Used sparingly for contrast.
84
- - **Muted (Recessed)**: `#d1d9e6` - Darker grey for sunken areas (input fields, screen bezels, grooves). Creates the "below surface" appearance.
85
- - **Text (Primary)**: `#2d3436` - Dark charcoal ink. High contrast but softer than pure black for reduced eye strain.
86
- - **Text Muted (Labels)**: `#4a5568` - Darker slate grey (improved from `#636e72` for WCAG AA compliance). Used for secondary text, labels, and metadata.
87
- - **Accent (Safety Orange)**: `#ff4757` - High-visibility "Braun Red" / "Safety Orange". Reserved exclusively for:
88
- - Interactive elements (primary buttons, links, toggles)
89
- - Status indicators (active LEDs, online badges)
90
- - Critical alerts or highlights
91
- This color should appear sparingly—it's the "emergency stop button" of the palette.
92
- - **Accent Foreground**: `#ffffff` - White text on accent backgrounds for maximum legibility.
93
- - **Border (Shadow)**: `#babecc` - The shadow color in neumorphic pairs. Represents the darker half of the lighting equation.
94
- - **Border Light (Highlight)**: `#ffffff` - The highlight color. The brighter half that creates dimensionality.
95
- - **Border Dark (Deep Shadow)**: `#a3b1c6` - Used for prominent borders and dividers where extra contrast is needed.
96
-
97
- **Dark Accent Surfaces**: For dark technical panels (stats strip, benefits section), use:
98
- - Background: `#2d3436` or `#2c3e50` (charcoal to slate)
99
- - Text: `#ffffff`, `#e0e5ec`, or `#a8b2d1` (graded whites)
100
- - Accent: Same `#ff4757` maintains brand consistency
101
-
102
- ### Typography
103
-
104
- **Font Pairing**:
105
- - **Primary (Sans-serif)**: **Inter** (weights 400/500/600/700/800) - Humanist sans-serif with excellent legibility. Objective, neutral, and highly functional. Perfect for body text, headings, and UI labels.
106
- - **Technical (Monospace)**: **JetBrains Mono** or **Roboto Mono** (weights 400/500) - Engineered typeface optimized for code and data. Use exclusively for:
107
- - All numeric displays (stats, pricing, dates)
108
- - Technical labels and badges
109
- - Small uppercase metadata ("SYSTEM OPERATIONAL", "LOG #123")
110
- - Input fields (simulates terminal/data entry aesthetic)
111
-
112
- **Hierarchy & Application**:
113
- - **Hero Headings**: 5xl–7xl (3rem–4.5rem on desktop), font-weight 800, tight tracking (-0.03em), with white text-shadow for embossed effect: `drop-shadow-[0_1px_1px_#ffffff]`
114
- - **Section Headings**: 3xl–4xl (2rem–2.5rem), font-weight 700, tight tracking
115
- - **Body Text**: Base to lg (1rem–1.125rem), font-weight 400–500, normal tracking, optimal line-height 1.6–1.75, **max line length 60-65 characters** for readability
116
- - **Labels & Metadata**: xs–sm (0.75rem–0.875rem), font-weight 700, uppercase, wide tracking (0.05em–0.08em), monospace. Creates a "stamped" or "printed label" appearance
117
- - **Buttons**: Uppercase, wide tracking (0.05em), font-weight 700, xs–base depending on button size
118
-
119
- **Text Shadows for Depth**:
120
- - Light text on dark backgrounds: `drop-shadow-md` or `drop-shadow-[0_2px_4px_rgba(0,0,0,0.3)]`
121
- - Dark text on light backgrounds: `drop-shadow-[0_1px_0_#ffffff]` (subtle embossed highlight below text)
122
-
123
- ### Radius & Depth
124
-
125
- **Border Radius Scale**:
126
- - **sm**: `4px` - Tight mechanical edges (small buttons, badges)
127
- - **md**: `8px` - Standard controls (inputs, small cards)
128
- - **lg**: `16px` - Large panels (cards, modals)
129
- - **xl**: `24px` - Hero components (device bezels, major sections)
130
- - **2xl**: `30px+` - Oversized containers (benefit panels, final CTA)
131
- - **full**: `9999px` - Perfect circles (icon housings, LEDs, step indicators)
132
-
133
- Curves are soft and organic—mimicking injection-molded plastic, not sharp machined metal.
134
-
135
- **Neumorphic Shadow System** (The Core Visual Signature):
136
-
137
- These dual-shadow combinations create depth through light simulation:
138
-
139
- - **Card (Base Lift)**: `8px 8px 16px #babecc, -8px -8px 16px #ffffff`
140
- - Standard elevation for panels and cards. Dark shadow bottom-right, light highlight top-left.
141
-
142
- - **Floating (High Elevation)**: `12px 12px 24px #babecc, -12px -12px 24px #ffffff, inset 1px 1px 0 rgba(255,255,255,0.5)`
143
- - Enhanced lift for interactive elements (buttons, elevated cards). Optional inner highlight rim for extra polish.
144
-
145
- - **Pressed (Active State)**: `inset 6px 6px 12px #babecc, inset -6px -6px 12px #ffffff`
146
- - Shadow direction reverses—element appears pushed INTO the surface. Critical for button interactions.
147
-
148
- - **Recessed (Inputs/Screens)**: `inset 4px 4px 8px #babecc, inset -4px -4px 8px #ffffff`
149
- - Subtle inward depth for input fields, grooves, and display panels.
150
-
151
- - **Sharp (Mechanical Edge)**: `4px 4px 8px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.8)`
152
- - Harder-edged shadow for specific components (metal tags, borders).
153
-
154
- - **Glow (LED/Status Indicator)**: `0 0 10px 2px rgba(255, 71, 87, 0.6)`
155
- - Colored bloom for active LEDs, focus states, and alerts. Can adjust color to green (`rgba(34,197,94,1)`) for "online" states.
156
-
157
- **Layered Shadows**: On hover, add additional shadows or increase spread to simulate elevation change. Example:
158
- ```css
159
- transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
160
- hover:shadow-[var(--shadow-floating)]
161
- ```
162
-
163
- ### Textures & Patterns
164
-
165
- Textures differentiate this style from flat competitors. Apply strategically:
166
-
167
- - **Noise Overlay (Background)**: SVG-based fractal noise at 20-30% opacity with `mix-blend-overlay`. Simulates the micro-texture of matte plastic. Applied to entire page background via StyleWrapper.
168
-
169
- - **Carbon Fiber Pattern**: External texture URL (`transparenttextures.com/patterns/carbon-fibre.png`) at 10-20% opacity on tech-heavy sections (device bezels, dark panels). Use `mix-blend-overlay` or `mix-blend-multiply`.
170
-
171
- - **Scanlines (CRT Screens)**: Linear gradients simulating old monitor scanlines:
172
- ```css
173
- background: linear-gradient(rgba(18,16,16,0) 50%, rgba(0,0,0,0.25) 50%);
174
- background-size: 100% 4px;
175
- ```
176
- Overlay on digital displays or "screen" elements.
177
-
178
- - **Grid Patterns (Blueprint/Schematic Backgrounds)**:
179
- ```css
180
- background-image: linear-gradient(#636e72 1px, transparent 1px),
181
- linear-gradient(90deg, #636e72 1px, transparent 1px);
182
- background-size: 40px 40px;
183
- opacity: 0.1;
184
- ```
185
- Use for technical documentation sections (product detail).
186
-
187
- - **Radial Gradients (Lighting Hotspots)**: Subtle `radial-gradient` from white/transparent to add dimensionality to flat backgrounds. Place top-left to reinforce lighting direction.
188
-
189
- ## 3. Component Stylings
190
-
191
- ### Buttons ("Physical Keys")
192
-
193
- Buttons are **tactile 3D objects**, not flat rectangles. They must convey pressability.
194
-
195
- **Visual Structure**:
196
- - **Primary (Accent)**: Background `#ff4757`, white text, uppercase, wide tracking. Border with `rgba(255,255,255,0.2)` for subtle rim. Shadow: `4px 4px 8px rgba(166,50,60,0.4), -4px -4px 8px rgba(255,100,110,0.4)` (neumorphic red-tinted shadows).
197
- - **Secondary (Chassis)**: Background matches chassis (`#e0e5ec`), dark text, base lift shadow. Hover darkens text to accent color.
198
- - **Ghost (Flat Label)**: No background initially. Text muted. Hover applies muted background and recessed shadow.
199
-
200
- **Interaction Physics (CRITICAL)**:
201
- - **Hover**: Slight brightness increase (`brightness-110`) or text color change. Shadow remains.
202
- - **Active (Pressed)**:
203
- - `translate-y-[2px]` - Button moves down 2px
204
- - Shadow inverts to `inset 6px 6px 12px #babecc, inset -6px -6px 12px #ffffff`
205
- - Border may vanish or thin
206
- - Transition is fast (`150ms`) for immediate tactile feedback
207
- - **Focus**: Accent-colored ring with offset: `ring-2 ring-[var(--ring)] ring-offset-2`
208
-
209
- **Sizing**:
210
- - All buttons have minimum 48px height on mobile (touch-friendly)
211
- - Padding is generous for premium feel
212
- - Border radius: `md` for small, `lg` for default, `xl` for large
213
-
214
- ### Cards ("Bolted Modules")
215
-
216
- Cards are **physical panels bolted onto the chassis background**.
217
-
218
- **Construction**:
219
- - Base shadow: `shadow-[var(--shadow-card)]` (neumorphic dual shadow)
220
- - Border radius: `lg` (16px)
221
- - Background: Chassis color (`#e0e5ec`)
222
- - Optional: `elevated` prop increases shadow to `--shadow-floating`
223
-
224
- **Manufacturing Details**:
225
- - **Corner Screws**: CSS radial gradients simulate screw indentations:
226
- ```css
227
- background: radial-gradient(circle at 12px 12px, rgba(0,0,0,0.15) 2px, transparent 3px),
228
- radial-gradient(circle at calc(100%-12px) 12px, rgba(0,0,0,0.15) 2px, transparent 3px),
229
- /* repeat for bottom corners */
230
- ```
231
- Positioned at exactly 12px from edges.
232
-
233
- - **Vent Slots**: Vertical pill-shaped divs (1px width, 24px height) in top-right corner with `inset` shadows to appear recessed:
234
- ```tsx
235
- <div className="h-6 w-1 rounded-full bg-[var(--muted)] shadow-[inset_1px_1px_2px_rgba(0,0,0,0.1)]" />
236
- ```
237
- Place 3 in a row with `gap-1`.
238
-
239
- **Hover Interaction**:
240
- - Cards lift on hover: `hover:-translate-y-1` with shadow transition to `--shadow-floating`
241
- - Duration 300ms with ease-out
242
- - Group child elements (icons) can rotate or scale on card hover using Tailwind group utilities
243
-
244
- ### Inputs ("Data Slots")
245
-
246
- Inputs are **recessed wells** machined into the chassis surface.
247
-
248
- **Visual Treatment**:
249
- - Deeply inset shadow: `shadow-[var(--shadow-recessed)]`
250
- - No visible border (border-none) - depth is communicated through shadow alone
251
- - Background: Chassis color (matches surface level for subtle integration)
252
- - Border radius: `md` (8px)
253
- - Monospace font for technical data entry feel
254
- - Placeholder: Muted text at 50% opacity
255
-
256
- **States**:
257
- - **Focus**: Accent-colored glow appears: `focus-visible:shadow-[var(--shadow-recessed),0_0_0_2px_var(--accent)]`
258
- - Simulates LED backlight activating behind input
259
- - **Disabled**: Reduced opacity (50%), cursor-not-allowed
260
-
261
- **Sizing**: Minimum 56px height (14 in Tailwind) for comfortable typing. Generous padding (24px horizontal).
262
-
263
- ## 4. Layout Strategy
264
-
265
- **Container System**:
266
- - Max width: `72rem` (1152px) for primary content
267
- - Horizontal padding: `px-6` (24px) mobile, `px-12` (48px) desktop
268
- - Vertical spacing between sections: `space-y-24` (96px)
269
-
270
- **Grid Discipline**:
271
- - Use precise Tailwind grid classes: `grid-cols-2`, `grid-cols-3`, `md:grid-cols-4`
272
- - Gap consistency: `gap-6` (24px) for tight layouts, `gap-8` (32px) for breathing room
273
- - Alignment is critical—elements should feel "mounted" to an invisible grid structure
274
-
275
- **Asymmetry & Balance**:
276
- - Hero is asymmetric (60/40 split on desktop, stacked on mobile)
277
- - Alternate left/right image placement in multi-column sections
278
- - Testimonial cards have intentional slight rotation (±1deg) for realism
279
- - Use `order-1/order-2` with responsive modifiers to control stacking order
280
-
281
- ## 5. Non-Genericness (Signature Elements)
282
-
283
- These details separate this style from generic neumorphic templates:
284
-
285
- **The Hero "Device" Visualization**:
286
- - Not a simple image—construct a **3D device mockup** entirely in CSS
287
- - Components:
288
- - Outer bezel: Dark border (4px), rounded corners, carbon fiber texture overlay
289
- - Inner screen: Black background with `inset` shadow, CRT scanline overlay
290
- - Hardware details: Physical buttons on side edges, power LED in corner
291
- - Screen content: Abstract dashboard with glowing elements, spinning loaders, status bars
292
- - Hover effect: Slight scale increase for interactivity
293
-
294
- **LED Status Indicators**:
295
- - Small circular divs (8-12px) with:
296
- - Solid color fill (green for online, red for alert, yellow for warning)
297
- - `animate-pulse` for breathing effect
298
- - Glow shadow: `shadow-[0_0_10px_rgba(color,1)]`
299
- - Place on: Navbar, hero badge, footer, device visualization
300
- - Always pair with monospace label ("SYSTEM OPERATIONAL", "PWR", "ONLINE")
301
-
302
- **Physical Connectors & Pipes**:
303
- - "How It Works" uses horizontal cylindrical pipe connecting step nodes
304
- - CSS: `h-3 w-full rounded-full bg-[#d1d9e6] shadow-[inset_0_1px_3px_rgba(0,0,0,0.2)]`
305
- - Hidden on mobile (`hidden md:block`)
306
-
307
- **Masking Tape & Stickers**:
308
- - For metadata overlays (blog dates, testimonial labels)
309
- - Skewed yellow/white rectangles with `backdrop-blur-sm`
310
- - Example: `<div className="skew-x-12 bg-[rgba(255,230,0,0.3)] backdrop-blur-sm" />`
311
-
312
- **Push Pins & Hanging Holes**:
313
- - Testimonials: Red circular push-pin at top center with highlight shine
314
- - Pricing cards: Circular hole at top with inner shadow to simulate punched metal
315
-
316
- **Screw Heads & Vent Slots** (detailed in Cards section):
317
- - Never omit these—they're the DNA of the style
318
- - Place consistently in same positions across all cards
319
-
320
- **Grayscale-to-Color Image Treatment**:
321
- - Blog and testimonial images start grayscale: `grayscale`
322
- - Transition to color on hover: `group-hover:grayscale-0 transition-all duration-500`
323
- - Adds subtle interactivity while maintaining industrial monotone baseline
324
-
325
- ## 6. Effects & Animation
326
-
327
- **Motion Philosophy**: Mechanical spring physics with subtle bounce—mimicking real physical switches and buttons.
328
-
329
- **Easing Curve**:
330
- - Primary: `cubic-bezier(0.175, 0.885, 0.32, 1.275)` - Slight overshoot/bounce
331
- - Fast interactions: `duration-150` to `duration-200`
332
- - Smooth transitions: `duration-300`
333
- - Image/scale effects: `duration-500`
334
-
335
- **Framer Motion Integration**:
336
- - Hero section uses staggered entrance animations
337
- - Mechanical easing constant: `[0.175, 0.885, 0.32, 1.275]`
338
- - Variants: `slideUp` (opacity + y-translate), `stagger` (staggerChildren)
339
-
340
- **Key Micro-interactions**:
341
- - **Button Press**: `active:translate-y-[2px]` + shadow inversion (150ms)
342
- - **Card Hover**: `-translate-y-1` elevation with shadow upgrade (300ms)
343
- - **Icon Hover**: `group-hover:scale-110` + `group-hover:rotate-12` (200ms)
344
- - **Image Hover**: Grayscale to color (500ms)
345
- - **LED Pulse**: `animate-pulse` (Tailwind default, ~2s cycle)
346
- - **Loading Spinner**: `animate-spin` on border technique (1s linear)
347
-
348
- **Advanced Animations**:
349
- - Radar sweep in benefits: `animate-spin` with `conic-gradient` and long duration (4s)
350
- - Device screen scanlines: Static background pattern (no animation needed)
351
- - Mobile menu: Slide down with opacity fade (200ms ease-out)
352
-
353
- ## 7. Iconography & Icon Integration
354
-
355
- **Icon Library**: `lucide-react` exclusively
356
-
357
- **Styling Rules**:
358
- - **Stroke Width**: 1.5px standard, 1px for thin/delicate icons, 2-4px for bold/emphasis
359
- - **Size**: 20-24px for UI elements, 28-32px for feature icons, 16-18px for inline text icons
360
- - **Color**: Match text color or use accent color for interactive/highlighted icons
361
-
362
- **Integration Patterns** (never leave icons floating):
363
-
364
- 1. **Recessed Icon Housing** (Feature cards):
365
- ```tsx
366
- <div className="flex h-14 w-14 items-center justify-center rounded-full
367
- bg-[var(--background)] shadow-[var(--shadow-floating)]">
368
- <Icon className="text-[var(--accent)]" size={28} />
369
- </div>
370
- ```
371
-
372
- 2. **Inline with Text** (Metadata, labels):
373
- ```tsx
374
- <Zap className="inline h-4 w-4 text-[var(--accent)]" />
375
- ```
376
-
377
- 3. **Navigation Icons** (Social links):
378
- ```tsx
379
- <Twitter className="h-5 w-5 transition-all hover:text-[var(--accent)]" />
380
- ```
381
-
382
- 4. **LED-style Indicators**:
383
- - Solid fill instead of stroke
384
- - Pair with glow shadow
385
- - Small size (12-16px)
386
-
387
- ## 8. Responsive Strategy
388
-
389
- The physical metaphor **must persist** across all breakpoints—no sudden shifts to "generic mobile design."
390
-
391
- **Breakpoint System**:
392
- - **Mobile-first**: Base styles assume narrow viewports
393
- - **Tablet**: `md:` prefix (768px+)
394
- - **Desktop**: `lg:` and `xl:` (1024px+, 1280px+)
395
-
396
- **Adaptations**:
397
-
398
- **Navigation**:
399
- - Desktop: Horizontal menu with ghost buttons
400
- - Mobile: Hamburger menu button (neumorphic) reveals vertical drawer
401
-
402
- **Hero**:
403
- - Desktop: Side-by-side (lg:grid-cols-2)
404
- - Mobile: Stacked (text first, device second). Device aspect ratio shifts to reduce height.
405
-
406
- **Grids**:
407
- - Features: 3 cols desktop → 1 col mobile
408
- - Stats: 4 cols desktop → 2 cols mobile
409
- - Pricing: 3 cols → 1 col stack
410
- - Testimonials: 3 cols → 1 col
411
-
412
- **Images & Devices**:
413
- - Device graphic scales proportionally but may adjust aspect-ratio (aspect-square on mobile, aspect-video on desktop)
414
- - Blog/testimonial images maintain aspect ratios
415
-
416
- **Touch Targets**:
417
- - **Minimum 48px height** for all interactive elements on mobile
418
- - Buttons expand to full width on mobile: `w-full sm:w-auto`
419
- - Increased padding on mobile CTAs for easier tapping
420
-
421
- **Typography**:
422
- - Hero heading reduces from 7xl → 5xl on mobile
423
- - Body text remains lg for readability (don't shrink below 16px)
424
-
425
- **Spacing**:
426
- - Section gaps reduce from 96px → 64px on mobile
427
- - Card padding reduces from 32px → 24px
428
-
429
- **Hidden Elements**:
430
- - Physical connector pipes between steps: `hidden md:block`
431
- - Desktop-only navigation labels
432
- - Some decorative screws/vents can hide on small screens if needed
433
-
434
- **Performance**:
435
- - External texture images are small and cached
436
- - Animations use `transform` and `opacity` for GPU acceleration
437
- - Neumorphic shadows are CSS-only (no JS calculations)
438
- </design-system>
1
+ <design-system>
2
+ # Design Style: Industrial Skeuomorphism
3
+
4
+ ## 1. Design Philosophy
5
+
6
+ This style transcends simple skeuomorphism into **Industrial Realism**—a celebration of **tactile precision, mechanical reliability, and the soul of physical objects**. In an era of ephemeral flat digital experiences, this aesthetic offers something solid, grounded, and permanent. It doesn't just *look* like a machine; it *feels* like one.
7
+
8
+ ### The Core DNA
9
+
10
+ **Physicality Through Light**: Every element exists in three-dimensional space defined by consistent top-left lighting. Shadows aren't decorative—they're structural. Highlights reveal form. The interplay of light and shadow creates the illusion of mass, depth, and material.
11
+
12
+ **Mechanical Authenticity**: Interactions mimic real-world physics. Buttons depress with translation and shadow inversion. Cards elevate on hover. Icons rotate subtly. Every animation reinforces the metaphor of physical manipulation—springs, clicks, and tactile feedback encoded in motion curves.
13
+
14
+ **Manufacturing Details Matter**: The difference between generic and exceptional lies in the details. Corner screws (rendered as radial gradients), ventilation slots, LED status indicators, scanlines on screens, push-pin shadows, hanging holes on price tags—these are not optional flourishes. They are the **signature elements** that make this style instantly recognizable.
15
+
16
+ **Material Honesty**: The palette and textures evoke specific materials—matte ABS plastic chassis, brushed aluminum panels, powder-coated steel, and safety-orange injection-molded controls. A subtle noise texture across the background simulates the microscopic imperfections of real plastic surfaces. External texture patterns (carbon fiber, diagmonds) add authenticity to specific components.
17
+
18
+ ### The Vibe
19
+
20
+ Picture the control panel of a spacecraft, a 1980s Braun synthesizer, or a Teenage Engineering OP-1. It's **functional, organized, precise, and effortlessly cool**.
21
+
22
+ **Dieter Rams Heritage**: Maximum clarity with minimum ornamentation. Typography is legible and hierarchical. Color is used sparingly—only where necessary for function (the safety-orange accent for interactive triggers and alerts).
23
+
24
+ **Teenage Engineering Playfulness**: Modular construction. Professional-grade precision with a sense of joy. Components feel like they could be swapped, rearranged, or upgraded.
25
+
26
+ **Timeless Futurism**: Not retro or nostalgic in a kitschy sense. This is the industrial design aesthetic that transcends trends—equally at home in 1985 or 2035.
27
+
28
+ ### The Physics Engine
29
+
30
+ The interface obeys immutable physical laws:
31
+
32
+ 1. **Consistent Light Source**: All lighting originates from the **top-left at 45 degrees**. This determines every highlight (top/left edges) and every shadow (bottom/right edges). Deviation breaks the illusion.
33
+
34
+ 2. **Material Conservation**: Elements don't magically appear. They slide from behind panels, lights turn on, drawers open. Animations respect causality.
35
+
36
+ 3. **Elevation Hierarchy**:
37
+ - **Level -1 (Recessed)**: Inputs, screens, slots, grooves. Inner shadows create depth below the surface.
38
+ - **Level 0 (Chassis)**: The base layer—the matte plastic background that everything is mounted to.
39
+ - **Level +1 (Panels)**: Cards, modules, sections. Dual shadows (dark below, light above) create lift.
40
+ - **Level +2 (Floating Controls)**: Buttons, knobs, badges. Enhanced shadows with optional glow for active states.
41
+
42
+ 4. **Interaction Physics**: Active states reverse shadow direction (pressed elements get inner shadows). Hover states increase elevation. Transitions use mechanical easing with subtle bounce—mimicking spring-loaded switches.
43
+
44
+ ## 2. Design Token System (The DNA)
45
+
46
+ ### Colors (Industrial Palette)
47
+
48
+ The palette is **strictly light mode** and mimics physical materials under diffuse workshop lighting:
49
+
50
+ - **Background (Chassis)**: `#e0e5ec` - Cool mid-tone industrial grey. The base "plastic" material everything is mounted to. This is Level 0.
51
+ - **Foreground (Panel)**: `#f0f2f5` - Slightly lighter raised panel surface. Used sparingly for contrast.
52
+ - **Muted (Recessed)**: `#d1d9e6` - Darker grey for sunken areas (input fields, screen bezels, grooves). Creates the "below surface" appearance.
53
+ - **Text (Primary)**: `#2d3436` - Dark charcoal ink. High contrast but softer than pure black for reduced eye strain.
54
+ - **Text Muted (Labels)**: `#4a5568` - Darker slate grey (improved from `#636e72` for WCAG AA compliance). Used for secondary text, labels, and metadata.
55
+ - **Accent (Safety Orange)**: `#ff4757` - High-visibility "Braun Red" / "Safety Orange". Reserved exclusively for:
56
+ - Interactive elements (primary buttons, links, toggles)
57
+ - Status indicators (active LEDs, online badges)
58
+ - Critical alerts or highlights
59
+ This color should appear sparingly—it's the "emergency stop button" of the palette.
60
+ - **Accent Foreground**: `#ffffff` - White text on accent backgrounds for maximum legibility.
61
+ - **Border (Shadow)**: `#babecc` - The shadow color in neumorphic pairs. Represents the darker half of the lighting equation.
62
+ - **Border Light (Highlight)**: `#ffffff` - The highlight color. The brighter half that creates dimensionality.
63
+ - **Border Dark (Deep Shadow)**: `#a3b1c6` - Used for prominent borders and dividers where extra contrast is needed.
64
+
65
+ **Dark Accent Surfaces**: For dark technical panels (stats strip, benefits section), use:
66
+ - Background: `#2d3436` or `#2c3e50` (charcoal to slate)
67
+ - Text: `#ffffff`, `#e0e5ec`, or `#a8b2d1` (graded whites)
68
+ - Accent: Same `#ff4757` maintains brand consistency
69
+
70
+ ### Typography
71
+
72
+ **Font Pairing**:
73
+ - **Primary (Sans-serif)**: **Inter** (weights 400/500/600/700/800) - Humanist sans-serif with excellent legibility. Objective, neutral, and highly functional. Perfect for body text, headings, and UI labels.
74
+ - **Technical (Monospace)**: **JetBrains Mono** or **Roboto Mono** (weights 400/500) - Engineered typeface optimized for code and data. Use exclusively for:
75
+ - All numeric displays (stats, pricing, dates)
76
+ - Technical labels and badges
77
+ - Small uppercase metadata ("SYSTEM OPERATIONAL", "LOG #123")
78
+ - Input fields (simulates terminal/data entry aesthetic)
79
+
80
+ **Hierarchy & Application**:
81
+ - **Hero Headings**: 5xl–7xl (3rem–4.5rem on desktop), font-weight 800, tight tracking (-0.03em), with white text-shadow for embossed effect: `drop-shadow-[0_1px_1px_#ffffff]`
82
+ - **Section Headings**: 3xl–4xl (2rem–2.5rem), font-weight 700, tight tracking
83
+ - **Body Text**: Base to lg (1rem–1.125rem), font-weight 400–500, normal tracking, optimal line-height 1.6–1.75, **max line length 60-65 characters** for readability
84
+ - **Labels & Metadata**: xs–sm (0.75rem–0.875rem), font-weight 700, uppercase, wide tracking (0.05em–0.08em), monospace. Creates a "stamped" or "printed label" appearance
85
+ - **Buttons**: Uppercase, wide tracking (0.05em), font-weight 700, xs–base depending on button size
86
+
87
+ **Text Shadows for Depth**:
88
+ - Light text on dark backgrounds: `drop-shadow-md` or `drop-shadow-[0_2px_4px_rgba(0,0,0,0.3)]`
89
+ - Dark text on light backgrounds: `drop-shadow-[0_1px_0_#ffffff]` (subtle embossed highlight below text)
90
+
91
+ ### Radius & Depth
92
+
93
+ **Border Radius Scale**:
94
+ - **sm**: `4px` - Tight mechanical edges (small buttons, badges)
95
+ - **md**: `8px` - Standard controls (inputs, small cards)
96
+ - **lg**: `16px` - Large panels (cards, modals)
97
+ - **xl**: `24px` - Hero components (device bezels, major sections)
98
+ - **2xl**: `30px+` - Oversized containers (benefit panels, final CTA)
99
+ - **full**: `9999px` - Perfect circles (icon housings, LEDs, step indicators)
100
+
101
+ Curves are soft and organic—mimicking injection-molded plastic, not sharp machined metal.
102
+
103
+ **Neumorphic Shadow System** (The Core Visual Signature):
104
+
105
+ These dual-shadow combinations create depth through light simulation:
106
+
107
+ - **Card (Base Lift)**: `8px 8px 16px #babecc, -8px -8px 16px #ffffff`
108
+ - Standard elevation for panels and cards. Dark shadow bottom-right, light highlight top-left.
109
+
110
+ - **Floating (High Elevation)**: `12px 12px 24px #babecc, -12px -12px 24px #ffffff, inset 1px 1px 0 rgba(255,255,255,0.5)`
111
+ - Enhanced lift for interactive elements (buttons, elevated cards). Optional inner highlight rim for extra polish.
112
+
113
+ - **Pressed (Active State)**: `inset 6px 6px 12px #babecc, inset -6px -6px 12px #ffffff`
114
+ - Shadow direction reverses—element appears pushed INTO the surface. Critical for button interactions.
115
+
116
+ - **Recessed (Inputs/Screens)**: `inset 4px 4px 8px #babecc, inset -4px -4px 8px #ffffff`
117
+ - Subtle inward depth for input fields, grooves, and display panels.
118
+
119
+ - **Sharp (Mechanical Edge)**: `4px 4px 8px rgba(0,0,0,0.15), -1px -1px 1px rgba(255,255,255,0.8)`
120
+ - Harder-edged shadow for specific components (metal tags, borders).
121
+
122
+ - **Glow (LED/Status Indicator)**: `0 0 10px 2px rgba(255, 71, 87, 0.6)`
123
+ - Colored bloom for active LEDs, focus states, and alerts. Can adjust color to green (`rgba(34,197,94,1)`) for "online" states.
124
+
125
+ **Layered Shadows**: On hover, add additional shadows or increase spread to simulate elevation change. Example:
126
+ ```css
127
+ transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
128
+ hover:shadow-[var(--shadow-floating)]
129
+ ```
130
+
131
+ ### Textures & Patterns
132
+
133
+ Textures differentiate this style from flat competitors. Apply strategically:
134
+
135
+ - **Noise Overlay (Background)**: SVG-based fractal noise at 20-30% opacity with `mix-blend-overlay`. Simulates the micro-texture of matte plastic. Applied to entire page background via StyleWrapper.
136
+
137
+ - **Carbon Fiber Pattern**: External texture URL (`transparenttextures.com/patterns/carbon-fibre.png`) at 10-20% opacity on tech-heavy sections (device bezels, dark panels). Use `mix-blend-overlay` or `mix-blend-multiply`.
138
+
139
+ - **Scanlines (CRT Screens)**: Linear gradients simulating old monitor scanlines:
140
+ ```css
141
+ background: linear-gradient(rgba(18,16,16,0) 50%, rgba(0,0,0,0.25) 50%);
142
+ background-size: 100% 4px;
143
+ ```
144
+ Overlay on digital displays or "screen" elements.
145
+
146
+ - **Grid Patterns (Blueprint/Schematic Backgrounds)**:
147
+ ```css
148
+ background-image: linear-gradient(#636e72 1px, transparent 1px),
149
+ linear-gradient(90deg, #636e72 1px, transparent 1px);
150
+ background-size: 40px 40px;
151
+ opacity: 0.1;
152
+ ```
153
+ Use for technical documentation sections (product detail).
154
+
155
+ - **Radial Gradients (Lighting Hotspots)**: Subtle `radial-gradient` from white/transparent to add dimensionality to flat backgrounds. Place top-left to reinforce lighting direction.
156
+
157
+ ## 3. Component Stylings
158
+
159
+ ### Buttons ("Physical Keys")
160
+
161
+ Buttons are **tactile 3D objects**, not flat rectangles. They must convey pressability.
162
+
163
+ **Visual Structure**:
164
+ - **Primary (Accent)**: Background `#ff4757`, white text, uppercase, wide tracking. Border with `rgba(255,255,255,0.2)` for subtle rim. Shadow: `4px 4px 8px rgba(166,50,60,0.4), -4px -4px 8px rgba(255,100,110,0.4)` (neumorphic red-tinted shadows).
165
+ - **Secondary (Chassis)**: Background matches chassis (`#e0e5ec`), dark text, base lift shadow. Hover darkens text to accent color.
166
+ - **Ghost (Flat Label)**: No background initially. Text muted. Hover applies muted background and recessed shadow.
167
+
168
+ **Interaction Physics (CRITICAL)**:
169
+ - **Hover**: Slight brightness increase (`brightness-110`) or text color change. Shadow remains.
170
+ - **Active (Pressed)**:
171
+ - `translate-y-[2px]` - Button moves down 2px
172
+ - Shadow inverts to `inset 6px 6px 12px #babecc, inset -6px -6px 12px #ffffff`
173
+ - Border may vanish or thin
174
+ - Transition is fast (`150ms`) for immediate tactile feedback
175
+ - **Focus**: Accent-colored ring with offset: `ring-2 ring-[var(--ring)] ring-offset-2`
176
+
177
+ **Sizing**:
178
+ - All buttons have minimum 48px height on mobile (touch-friendly)
179
+ - Padding is generous for premium feel
180
+ - Border radius: `md` for small, `lg` for default, `xl` for large
181
+
182
+ ### Cards ("Bolted Modules")
183
+
184
+ Cards are **physical panels bolted onto the chassis background**.
185
+
186
+ **Construction**:
187
+ - Base shadow: `shadow-[var(--shadow-card)]` (neumorphic dual shadow)
188
+ - Border radius: `lg` (16px)
189
+ - Background: Chassis color (`#e0e5ec`)
190
+ - Optional: `elevated` prop increases shadow to `--shadow-floating`
191
+
192
+ **Manufacturing Details**:
193
+ - **Corner Screws**: CSS radial gradients simulate screw indentations:
194
+ ```css
195
+ background: radial-gradient(circle at 12px 12px, rgba(0,0,0,0.15) 2px, transparent 3px),
196
+ radial-gradient(circle at calc(100%-12px) 12px, rgba(0,0,0,0.15) 2px, transparent 3px),
197
+ /* repeat for bottom corners */
198
+ ```
199
+ Positioned at exactly 12px from edges.
200
+
201
+ - **Vent Slots**: Vertical pill-shaped divs (1px width, 24px height) in top-right corner with `inset` shadows to appear recessed:
202
+ ```tsx
203
+ <div className="h-6 w-1 rounded-full bg-[var(--muted)] shadow-[inset_1px_1px_2px_rgba(0,0,0,0.1)]" />
204
+ ```
205
+ Place 3 in a row with `gap-1`.
206
+
207
+ **Hover Interaction**:
208
+ - Cards lift on hover: `hover:-translate-y-1` with shadow transition to `--shadow-floating`
209
+ - Duration 300ms with ease-out
210
+ - Group child elements (icons) can rotate or scale on card hover using Tailwind group utilities
211
+
212
+ ### Inputs ("Data Slots")
213
+
214
+ Inputs are **recessed wells** machined into the chassis surface.
215
+
216
+ **Visual Treatment**:
217
+ - Deeply inset shadow: `shadow-[var(--shadow-recessed)]`
218
+ - No visible border (border-none) - depth is communicated through shadow alone
219
+ - Background: Chassis color (matches surface level for subtle integration)
220
+ - Border radius: `md` (8px)
221
+ - Monospace font for technical data entry feel
222
+ - Placeholder: Muted text at 50% opacity
223
+
224
+ **States**:
225
+ - **Focus**: Accent-colored glow appears: `focus-visible:shadow-[var(--shadow-recessed),0_0_0_2px_var(--accent)]`
226
+ - Simulates LED backlight activating behind input
227
+ - **Disabled**: Reduced opacity (50%), cursor-not-allowed
228
+
229
+ **Sizing**: Minimum 56px height (14 in Tailwind) for comfortable typing. Generous padding (24px horizontal).
230
+
231
+ ## 4. Layout Strategy
232
+
233
+ **Container System**:
234
+ - Max width: `72rem` (1152px) for primary content
235
+ - Horizontal padding: `px-6` (24px) mobile, `px-12` (48px) desktop
236
+ - Vertical spacing between sections: `space-y-24` (96px)
237
+
238
+ **Grid Discipline**:
239
+ - Use precise Tailwind grid classes: `grid-cols-2`, `grid-cols-3`, `md:grid-cols-4`
240
+ - Gap consistency: `gap-6` (24px) for tight layouts, `gap-8` (32px) for breathing room
241
+ - Alignment is critical—elements should feel "mounted" to an invisible grid structure
242
+
243
+ **Asymmetry & Balance**:
244
+ - Hero is asymmetric (60/40 split on desktop, stacked on mobile)
245
+ - Alternate left/right image placement in multi-column sections
246
+ - Testimonial cards have intentional slight rotation (±1deg) for realism
247
+ - Use `order-1/order-2` with responsive modifiers to control stacking order
248
+
249
+ ## 5. Non-Genericness (Signature Elements)
250
+
251
+ These details separate this style from generic neumorphic templates:
252
+
253
+ **The Hero "Device" Visualization**:
254
+ - Not a simple image—construct a **3D device mockup** entirely in CSS
255
+ - Components:
256
+ - Outer bezel: Dark border (4px), rounded corners, carbon fiber texture overlay
257
+ - Inner screen: Black background with `inset` shadow, CRT scanline overlay
258
+ - Hardware details: Physical buttons on side edges, power LED in corner
259
+ - Screen content: Abstract dashboard with glowing elements, spinning loaders, status bars
260
+ - Hover effect: Slight scale increase for interactivity
261
+
262
+ **LED Status Indicators**:
263
+ - Small circular divs (8-12px) with:
264
+ - Solid color fill (green for online, red for alert, yellow for warning)
265
+ - `animate-pulse` for breathing effect
266
+ - Glow shadow: `shadow-[0_0_10px_rgba(color,1)]`
267
+ - Place on: Navbar, hero badge, footer, device visualization
268
+ - Always pair with monospace label ("SYSTEM OPERATIONAL", "PWR", "ONLINE")
269
+
270
+ **Physical Connectors & Pipes**:
271
+ - "How It Works" uses horizontal cylindrical pipe connecting step nodes
272
+ - CSS: `h-3 w-full rounded-full bg-[#d1d9e6] shadow-[inset_0_1px_3px_rgba(0,0,0,0.2)]`
273
+ - Hidden on mobile (`hidden md:block`)
274
+
275
+ **Masking Tape & Stickers**:
276
+ - For metadata overlays (blog dates, testimonial labels)
277
+ - Skewed yellow/white rectangles with `backdrop-blur-sm`
278
+ - Example: `<div className="skew-x-12 bg-[rgba(255,230,0,0.3)] backdrop-blur-sm" />`
279
+
280
+ **Push Pins & Hanging Holes**:
281
+ - Testimonials: Red circular push-pin at top center with highlight shine
282
+ - Pricing cards: Circular hole at top with inner shadow to simulate punched metal
283
+
284
+ **Screw Heads & Vent Slots** (detailed in Cards section):
285
+ - Never omit these—they're the DNA of the style
286
+ - Place consistently in same positions across all cards
287
+
288
+ **Grayscale-to-Color Image Treatment**:
289
+ - Blog and testimonial images start grayscale: `grayscale`
290
+ - Transition to color on hover: `group-hover:grayscale-0 transition-all duration-500`
291
+ - Adds subtle interactivity while maintaining industrial monotone baseline
292
+
293
+ ## 6. Effects & Animation
294
+
295
+ **Motion Philosophy**: Mechanical spring physics with subtle bounce—mimicking real physical switches and buttons.
296
+
297
+ **Easing Curve**:
298
+ - Primary: `cubic-bezier(0.175, 0.885, 0.32, 1.275)` - Slight overshoot/bounce
299
+ - Fast interactions: `duration-150` to `duration-200`
300
+ - Smooth transitions: `duration-300`
301
+ - Image/scale effects: `duration-500`
302
+
303
+ **Framer Motion Integration**:
304
+ - Hero section uses staggered entrance animations
305
+ - Mechanical easing constant: `[0.175, 0.885, 0.32, 1.275]`
306
+ - Variants: `slideUp` (opacity + y-translate), `stagger` (staggerChildren)
307
+
308
+ **Key Micro-interactions**:
309
+ - **Button Press**: `active:translate-y-[2px]` + shadow inversion (150ms)
310
+ - **Card Hover**: `-translate-y-1` elevation with shadow upgrade (300ms)
311
+ - **Icon Hover**: `group-hover:scale-110` + `group-hover:rotate-12` (200ms)
312
+ - **Image Hover**: Grayscale to color (500ms)
313
+ - **LED Pulse**: `animate-pulse` (Tailwind default, ~2s cycle)
314
+ - **Loading Spinner**: `animate-spin` on border technique (1s linear)
315
+
316
+ **Advanced Animations**:
317
+ - Radar sweep in benefits: `animate-spin` with `conic-gradient` and long duration (4s)
318
+ - Device screen scanlines: Static background pattern (no animation needed)
319
+ - Mobile menu: Slide down with opacity fade (200ms ease-out)
320
+
321
+ ## 7. Iconography & Icon Integration
322
+
323
+ **Icon Library**: `lucide-react` exclusively
324
+
325
+ **Styling Rules**:
326
+ - **Stroke Width**: 1.5px standard, 1px for thin/delicate icons, 2-4px for bold/emphasis
327
+ - **Size**: 20-24px for UI elements, 28-32px for feature icons, 16-18px for inline text icons
328
+ - **Color**: Match text color or use accent color for interactive/highlighted icons
329
+
330
+ **Integration Patterns** (never leave icons floating):
331
+
332
+ 1. **Recessed Icon Housing** (Feature cards):
333
+ ```tsx
334
+ <div className="flex h-14 w-14 items-center justify-center rounded-full
335
+ bg-[var(--background)] shadow-[var(--shadow-floating)]">
336
+ <Icon className="text-[var(--accent)]" size={28} />
337
+ </div>
338
+ ```
339
+
340
+ 2. **Inline with Text** (Metadata, labels):
341
+ ```tsx
342
+ <Zap className="inline h-4 w-4 text-[var(--accent)]" />
343
+ ```
344
+
345
+ 3. **Navigation Icons** (Social links):
346
+ ```tsx
347
+ <Twitter className="h-5 w-5 transition-all hover:text-[var(--accent)]" />
348
+ ```
349
+
350
+ 4. **LED-style Indicators**:
351
+ - Solid fill instead of stroke
352
+ - Pair with glow shadow
353
+ - Small size (12-16px)
354
+
355
+ ## 8. Responsive Strategy
356
+
357
+ The physical metaphor **must persist** across all breakpoints—no sudden shifts to "generic mobile design."
358
+
359
+ **Breakpoint System**:
360
+ - **Mobile-first**: Base styles assume narrow viewports
361
+ - **Tablet**: `md:` prefix (768px+)
362
+ - **Desktop**: `lg:` and `xl:` (1024px+, 1280px+)
363
+
364
+ **Adaptations**:
365
+
366
+ **Navigation**:
367
+ - Desktop: Horizontal menu with ghost buttons
368
+ - Mobile: Hamburger menu button (neumorphic) reveals vertical drawer
369
+
370
+ **Hero**:
371
+ - Desktop: Side-by-side (lg:grid-cols-2)
372
+ - Mobile: Stacked (text first, device second). Device aspect ratio shifts to reduce height.
373
+
374
+ **Grids**:
375
+ - Features: 3 cols desktop → 1 col mobile
376
+ - Stats: 4 cols desktop → 2 cols mobile
377
+ - Pricing: 3 cols 1 col stack
378
+ - Testimonials: 3 cols → 1 col
379
+
380
+ **Images & Devices**:
381
+ - Device graphic scales proportionally but may adjust aspect-ratio (aspect-square on mobile, aspect-video on desktop)
382
+ - Blog/testimonial images maintain aspect ratios
383
+
384
+ **Touch Targets**:
385
+ - **Minimum 48px height** for all interactive elements on mobile
386
+ - Buttons expand to full width on mobile: `w-full sm:w-auto`
387
+ - Increased padding on mobile CTAs for easier tapping
388
+
389
+ **Typography**:
390
+ - Hero heading reduces from 7xl → 5xl on mobile
391
+ - Body text remains lg for readability (don't shrink below 16px)
392
+
393
+ **Spacing**:
394
+ - Section gaps reduce from 96px → 64px on mobile
395
+ - Card padding reduces from 32px → 24px
396
+
397
+ **Hidden Elements**:
398
+ - Physical connector pipes between steps: `hidden md:block`
399
+ - Desktop-only navigation labels
400
+ - Some decorative screws/vents can hide on small screens if needed
401
+
402
+ **Performance**:
403
+ - External texture images are small and cached
404
+ - Animations use `transform` and `opacity` for GPU acceleration
405
+ - Neumorphic shadows are CSS-only (no JS calculations)
406
+ </design-system>