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,227 +1,195 @@
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: Swiss International (International Typographic Style)
35
-
36
- ## Design Philosophy
37
-
38
- **The International Typographic Style (Swiss Style)** is not merely a visual trend; it is a philosophy of objective communication born in 1950s Switzerland. It rejects personal expression and subjectivity in favor of universal clarity, mathematical precision, and logical structure.
39
-
40
- **Core Tenets:**
41
-
42
- 1. **Objectivity over Subjectivity**: The design must recede to let the content speak. Every visual decision must be justifiable by the content's needs. Personal ornamentation is eliminated in favor of functional communication. The designer is not an artist expressing themselves, but a conduit for information.
43
-
44
- 2. **The Grid as Law**: The grid is the absolute authority. It is not a guideline; it is the visible skeleton of the information. We generally avoid static center-alignment in favor of **asymmetrical organization** to create dynamic visual rhythm and tension. Grid patterns are made visible through subtle background textures.
45
-
46
- 3. **Typography is the Interface**: Type is not just for reading; it is the primary structural and graphical element. We use grotesque sans-serif typefaces (Inter, Helvetica) because they are neutral vessels for meaning. Scale, weight, and position are the only tools needed to create hierarchy.
47
-
48
- 4. **Active Negative Space**: White space is not "empty"; it is an active structural element. It defines boundaries, gives weight to the massive typography, and creates breathing room for the intellect.
49
-
50
- 5. **Layered Texture & Depth**: While maintaining flatness (no shadows or 3D effects), we achieve visual depth through **subtle pattern overlays**: grid lines (24px), dot matrices (16px), diagonal stripes, and noise textures. These patterns add tactile richness without compromising the objective aesthetic.
51
-
52
- 6. **Universal Intelligibility**: The design should be understood instantly. It is clean, legible, and undeniably modern.
53
-
54
- **The Vibe**:
55
- * **Intellectual & Architectural**: The page should feel like a well-engineered building, a museum exhibition, or a transit map—functional, safe, and efficient.
56
- * **Structured yet Organic**: While brutally honest in its geometry, subtle texture patterns provide warmth and visual interest—like fine paper grain or screen printing texture.
57
- * **Brutally Precise**: No gradients to hide bad layout. Depth comes from pattern, not shadow. The design is flat yet rich, stark yet nuanced.
58
- * **Timeless**: By avoiding ephemeral trends (glassmorphism, neumorphism, soft rounded corners), the design aims for permanence.
59
-
60
- **Visual Signatures**:
61
- * **Flush-Left, Ragged-Right Text**: Text blocks are strictly left-aligned to the grid.
62
- * **Grotesque Sans-Serif**: Neutral, objective fonts with high x-heights (Inter, weight 400-900).
63
- * **Mathematical Scales**: Font sizes that relate to each other through clear ratios (responsive scaling from mobile to desktop).
64
- * **The "Swiss Red" (#FF3000)**: Used not as decoration, but as a functional signal—a stop sign, a warning, a highlight—piercing the monochrome calm.
65
- * **Pattern-Based Texture**: Subtle CSS-generated patterns (grid, dots, diagonals, noise) applied to background surfaces for visual depth without breaking flatness.
66
- * **Geometric Abstraction**: Basic shapes (circles, squares, rectangles, lines) arranged in Bauhaus-inspired compositions.
67
-
68
- ## Design Token System (The DNA)
69
-
70
- ### Colors (Strict Palette)
71
- * **Background**: `#FFFFFF` (Pure White) - The canvas must be neutral.
72
- * **Foreground**: `#000000` (Pure Black) - Text is absolute.
73
- * **Muted**: `#F2F2F2` (Light Gray) - Used for secondary backgrounds to create rhythm.
74
- * **Accent**: `#FF3000` (Swiss Red) - The **only** signal color. Used sparingly for CTAs and critical emphasis.
75
- * **Border**: `#000000` (Pure Black) - Structure is visible.
76
-
77
- ### Typography
78
- * **Font Family**: `Inter` (Google Font). Ideally closest to Helvetica/Akzidenz-Grotesk.
79
- * **Weights**: Heavy use of **Black (900)** and **Bold (700)** for headings. **Regular (400)** or **Medium (500)** for body.
80
- * **Style**: **UPPERCASE** for almost all headings and labels.
81
- * **Tracking**: `tracking-tighter` for large headlines, `tracking-widest` for small labels.
82
- * **Scale**: Extreme contrast. Headlines should be massive (`text-7xl` to `text-9xl`+). Body text is legible and objective.
83
-
84
- ### Radius & Border
85
- * **Radius**: `0px` (Strictly Rectangular). No rounded corners.
86
- * **Borders**: Thick, visible borders (`border-2` or `border-4`). Used to define the grid.
87
-
88
- ### Shadows & Effects
89
- * **Shadows**: No drop shadows. The design maintains flatness. Only use subtle ring shadows for compositional geometry (e.g., `shadow-[0_0_0_8px_rgba(255,48,0,0.1)]` for accent circles).
90
- * **Effects**: Interactive elements use simple color inversion (Black → White, White → Red), scale transforms (1.0 → 1.05), rotation (0deg → 90deg for plus icons), and vertical translation (-1px lift on hover).
91
-
92
- ### Textures & Patterns (Critical for Depth)
93
- These CSS-based patterns add visual richness while maintaining the flat, objective aesthetic:
94
-
95
- * **Grid Pattern** (`.swiss-grid-pattern`):
96
- - Subtle 24×24px grid lines at 3% opacity
97
- - Applied to hero composition area, blog sidebar, muted backgrounds
98
- - Creates visible structure without overwhelming content
99
-
100
- * **Dot Matrix** (`.swiss-dots`):
101
- - Radial gradient dots, 16×16px spacing, 4% opacity
102
- - Applied to section headers, feature sidebars
103
- - Evokes traditional print techniques
104
-
105
- * **Diagonal Lines** (`.swiss-diagonal`):
106
- - 45-degree repeating lines, 10px spacing, 2% opacity
107
- - Applied to benefits sidebar, accent backgrounds
108
- - Adds directional energy to static layouts
109
-
110
- * **Noise Texture** (`.swiss-noise`):
111
- - Fractal noise overlay via SVG filter, 1.5% opacity
112
- - Applied globally to body background
113
- - Simulates paper texture, adds warmth to stark white backgrounds
114
-
115
- **Application Strategy**: Use patterns on muted gray backgrounds (`#F2F2F2`) and occasionally on white surfaces. Never apply patterns to pure black backgrounds or red accent areas. Patterns should enhance, not dominate.
116
-
117
- ## Component Stylings
118
-
119
- ### Buttons
120
- * **Shape**: Strictly rectangular (`rounded-none`).
121
- * **Style**: Solid Black background with White text (Primary). White background with Black border (Secondary).
122
- * **Hover**: Invert colors or switch to Swiss Red (`#FF3000`).
123
- * **Typography**: Uppercase, bold, tracking-wide.
124
-
125
- ### Cards / Containers
126
- * **Structure**: Defined by their borders (`border-black`).
127
- * **Background**: White or Muted Gray (`#F2F2F2`).
128
- * **Padding**: Generous and uniform (`p-8`, `p-12`).
129
- * **Hover**: Entire card background changes color (e.g., to Swiss Red or Black) with text color inversion.
130
-
131
- ### Inputs
132
- * **Style**: Underlined (`border-b`) or solid rectangular box with thick border.
133
- * **Focus**: Sharp change in border color to Swiss Red. No glow rings.
134
-
135
- ## Layout Strategy
136
-
137
- * **The Grid**: The grid is God. It should often be **visible** (using borders on elements).
138
- * **Asymmetry**: Embrace asymmetrical balance. A large photo on the left balanced by negative space and small text on the right.
139
- * **Alignment**: Strict left alignment for text.
140
- * **Separators**: Use horizontal and vertical lines to divide sections.
141
-
142
- ## Non-Genericness (The "Bold" Factor)
143
-
144
- This implementation goes beyond "generic Swiss style" by incorporating:
145
-
146
- * **Massive Responsive Typography**: Headlines scale from `text-6xl` (mobile) to `text-[10rem]` (desktop). Let words be images.
147
- * **Visible Structure**: The layout grid is made tangible through:
148
- - Thick 4px black borders defining sections
149
- - Visible grid patterns (24px) on backgrounds
150
- - Asymmetric column ratios (8:4, 7:5, 5:7) creating dynamic tension
151
- * **Numbered Section Labels**: Every major section has a prefix (01. System, 02. Method, 03. Advantages, 04. Journal) in red accent with uppercase tracking
152
- * **Layered Geometric Compositions**:
153
- - Hero features abstract Bauhaus-style composition with overlapping shapes
154
- - Product detail uses 2×2 grid of geometric elements with different texture patterns
155
- - Each composition combines circles, rectangles, lines in purposeful arrangement
156
- * **Pattern-Based Texture**: Four distinct CSS patterns (grid, dots, diagonal, noise) applied strategically to create depth without shadows
157
- * **Bold Interaction States**:
158
- - Full color inversions (not just opacity fades)
159
- - Rotating icons (plus signs spin 90°)
160
- - Scale transforms on hover
161
- - Vertical slide animations in navigation
162
- * **Active Negative Space**: Generous padding (p-12, p-24) and asymmetric layouts create breathing room and visual tension
163
- * **Functional Color System**: Red is used only for:
164
- - Primary CTAs and accents
165
- - Hover states as visual feedback
166
- - Section number prefixes
167
- - Never as decorative fill
168
-
169
- ## Spacing & Iconography
170
-
171
- * **Spacing**: High density in information clusters (tables), but high spaciousness in narrative sections.
172
- * **Iconography**: Use `lucide-react` icons, but treat them as functional symbols. Stroke width should match typography. Often enclosed in geometric shapes (squares/circles).
173
-
174
- ## Animation
175
-
176
- * **Feel**: Instant, mechanical, snappy, precise. Movement is purposeful and geometric.
177
- * **Transitions**: `duration-200 ease-out` or `duration-150 ease-linear` for rapid feedback. No elastic or spring animations.
178
- * **Micro-interactions**:
179
- - **Navigation Links**: Vertical slide animation with color change (text slides up, red replacement slides in from below)
180
- - **Stats Cards**: Scale transform on numbers (1.0 → 1.05), rotating plus icons (0° → 90°), background color snap (black → red)
181
- - **Feature Cards**: Color inversion on hover (white → accent red), arrow rotation (-45° → 0°)
182
- - **Testimonials**: Subtle upward lift (-1px translateY), border color change (black → red), quote text color change
183
- - **FAQ Cards**: Rotating plus icons, full background color inversion (white → red)
184
- - **Buttons**: Instant background color changes, no scale transforms
185
- * **Hover States**: Always indicate interactivity through color, scale, or position changes—never subtle fades. Swiss style is bold and immediate.
186
-
187
- ## Responsive Strategy
188
-
189
- The Swiss style must maintain its bold character across all screen sizes:
190
-
191
- **Mobile (< 768px)**:
192
- * Typography scales down but remains bold: `text-6xl` for hero headlines
193
- * Single column layouts with vertical stacking
194
- * Borders remain 4px thick (never thin out)
195
- * CTAs become full-width buttons with consistent height (`h-16`)
196
- * Grid patterns and textures maintain same opacity/scale
197
- * Stats become 2×2 grid instead of 1×4
198
- * Navigation collapses (visible only on desktop)
199
-
200
- **Tablet (768px - 1024px)**:
201
- * Two-column layouts for testimonials, FAQ, features
202
- * Typography scales to `text-8xl` for headlines
203
- * Asymmetric grids start to appear
204
- * Touch targets remain minimum 44×44px
205
-
206
- **Desktop (1024px+)**:
207
- * Full asymmetric grid layouts (8:4, 7:5, 5:7 ratios)
208
- * Maximum typography scale (`text-9xl`, `text-[10rem]`)
209
- * Multi-column layouts (3-4 columns for blog, footer)
210
- * Sticky positioning for section headers
211
- * All hover states and micro-interactions active
212
-
213
- **Key Principles**:
214
- - Never compromise on border thickness or contrast
215
- - Maintain uppercase typography and tight tracking
216
- - Patterns remain visible at all breakpoints
217
- - Red accent color used consistently across devices
218
- - Spacing remains generous (reduce from p-24 to p-12 on mobile, but never less)
219
-
220
- ## Accessibility
221
-
222
- * **Contrast**: The Black/White/Red scheme naturally offers ultra-high contrast (21:1 for black/white). Ensure red text on white meets AA standards.
223
- * **Focus**: High-contrast 2px ring in red (`focus-visible:ring-2 focus-visible:ring-swiss-accent focus-visible:ring-offset-2`)
224
- * **Touch Targets**: All interactive elements minimum 44×44px on mobile
225
- * **Motion**: All animations are CSS-based and respect `prefers-reduced-motion`
226
- * **Semantics**: Proper heading hierarchy, semantic HTML5 elements, ARIA labels where needed
227
- </design-system>
1
+ <design-system>
2
+ # Design Style: Swiss International (International Typographic Style)
3
+
4
+ ## Design Philosophy
5
+
6
+ **The International Typographic Style (Swiss Style)** is not merely a visual trend; it is a philosophy of objective communication born in 1950s Switzerland. It rejects personal expression and subjectivity in favor of universal clarity, mathematical precision, and logical structure.
7
+
8
+ **Core Tenets:**
9
+
10
+ 1. **Objectivity over Subjectivity**: The design must recede to let the content speak. Every visual decision must be justifiable by the content's needs. Personal ornamentation is eliminated in favor of functional communication. The designer is not an artist expressing themselves, but a conduit for information.
11
+
12
+ 2. **The Grid as Law**: The grid is the absolute authority. It is not a guideline; it is the visible skeleton of the information. We generally avoid static center-alignment in favor of **asymmetrical organization** to create dynamic visual rhythm and tension. Grid patterns are made visible through subtle background textures.
13
+
14
+ 3. **Typography is the Interface**: Type is not just for reading; it is the primary structural and graphical element. We use grotesque sans-serif typefaces (Inter, Helvetica) because they are neutral vessels for meaning. Scale, weight, and position are the only tools needed to create hierarchy.
15
+
16
+ 4. **Active Negative Space**: White space is not "empty"; it is an active structural element. It defines boundaries, gives weight to the massive typography, and creates breathing room for the intellect.
17
+
18
+ 5. **Layered Texture & Depth**: While maintaining flatness (no shadows or 3D effects), we achieve visual depth through **subtle pattern overlays**: grid lines (24px), dot matrices (16px), diagonal stripes, and noise textures. These patterns add tactile richness without compromising the objective aesthetic.
19
+
20
+ 6. **Universal Intelligibility**: The design should be understood instantly. It is clean, legible, and undeniably modern.
21
+
22
+ **The Vibe**:
23
+ * **Intellectual & Architectural**: The page should feel like a well-engineered building, a museum exhibition, or a transit map—functional, safe, and efficient.
24
+ * **Structured yet Organic**: While brutally honest in its geometry, subtle texture patterns provide warmth and visual interest—like fine paper grain or screen printing texture.
25
+ * **Brutally Precise**: No gradients to hide bad layout. Depth comes from pattern, not shadow. The design is flat yet rich, stark yet nuanced.
26
+ * **Timeless**: By avoiding ephemeral trends (glassmorphism, neumorphism, soft rounded corners), the design aims for permanence.
27
+
28
+ **Visual Signatures**:
29
+ * **Flush-Left, Ragged-Right Text**: Text blocks are strictly left-aligned to the grid.
30
+ * **Grotesque Sans-Serif**: Neutral, objective fonts with high x-heights (Inter, weight 400-900).
31
+ * **Mathematical Scales**: Font sizes that relate to each other through clear ratios (responsive scaling from mobile to desktop).
32
+ * **The "Swiss Red" (#FF3000)**: Used not as decoration, but as a functional signal—a stop sign, a warning, a highlight—piercing the monochrome calm.
33
+ * **Pattern-Based Texture**: Subtle CSS-generated patterns (grid, dots, diagonals, noise) applied to background surfaces for visual depth without breaking flatness.
34
+ * **Geometric Abstraction**: Basic shapes (circles, squares, rectangles, lines) arranged in Bauhaus-inspired compositions.
35
+
36
+ ## Design Token System (The DNA)
37
+
38
+ ### Colors (Strict Palette)
39
+ * **Background**: `#FFFFFF` (Pure White) - The canvas must be neutral.
40
+ * **Foreground**: `#000000` (Pure Black) - Text is absolute.
41
+ * **Muted**: `#F2F2F2` (Light Gray) - Used for secondary backgrounds to create rhythm.
42
+ * **Accent**: `#FF3000` (Swiss Red) - The **only** signal color. Used sparingly for CTAs and critical emphasis.
43
+ * **Border**: `#000000` (Pure Black) - Structure is visible.
44
+
45
+ ### Typography
46
+ * **Font Family**: `Inter` (Google Font). Ideally closest to Helvetica/Akzidenz-Grotesk.
47
+ * **Weights**: Heavy use of **Black (900)** and **Bold (700)** for headings. **Regular (400)** or **Medium (500)** for body.
48
+ * **Style**: **UPPERCASE** for almost all headings and labels.
49
+ * **Tracking**: `tracking-tighter` for large headlines, `tracking-widest` for small labels.
50
+ * **Scale**: Extreme contrast. Headlines should be massive (`text-7xl` to `text-9xl`+). Body text is legible and objective.
51
+
52
+ ### Radius & Border
53
+ * **Radius**: `0px` (Strictly Rectangular). No rounded corners.
54
+ * **Borders**: Thick, visible borders (`border-2` or `border-4`). Used to define the grid.
55
+
56
+ ### Shadows & Effects
57
+ * **Shadows**: No drop shadows. The design maintains flatness. Only use subtle ring shadows for compositional geometry (e.g., `shadow-[0_0_0_8px_rgba(255,48,0,0.1)]` for accent circles).
58
+ * **Effects**: Interactive elements use simple color inversion (Black → White, White → Red), scale transforms (1.0 → 1.05), rotation (0deg 90deg for plus icons), and vertical translation (-1px lift on hover).
59
+
60
+ ### Textures & Patterns (Critical for Depth)
61
+ These CSS-based patterns add visual richness while maintaining the flat, objective aesthetic:
62
+
63
+ * **Grid Pattern** (`.swiss-grid-pattern`):
64
+ - Subtle 24×24px grid lines at 3% opacity
65
+ - Applied to hero composition area, blog sidebar, muted backgrounds
66
+ - Creates visible structure without overwhelming content
67
+
68
+ * **Dot Matrix** (`.swiss-dots`):
69
+ - Radial gradient dots, 16×16px spacing, 4% opacity
70
+ - Applied to section headers, feature sidebars
71
+ - Evokes traditional print techniques
72
+
73
+ * **Diagonal Lines** (`.swiss-diagonal`):
74
+ - 45-degree repeating lines, 10px spacing, 2% opacity
75
+ - Applied to benefits sidebar, accent backgrounds
76
+ - Adds directional energy to static layouts
77
+
78
+ * **Noise Texture** (`.swiss-noise`):
79
+ - Fractal noise overlay via SVG filter, 1.5% opacity
80
+ - Applied globally to body background
81
+ - Simulates paper texture, adds warmth to stark white backgrounds
82
+
83
+ **Application Strategy**: Use patterns on muted gray backgrounds (`#F2F2F2`) and occasionally on white surfaces. Never apply patterns to pure black backgrounds or red accent areas. Patterns should enhance, not dominate.
84
+
85
+ ## Component Stylings
86
+
87
+ ### Buttons
88
+ * **Shape**: Strictly rectangular (`rounded-none`).
89
+ * **Style**: Solid Black background with White text (Primary). White background with Black border (Secondary).
90
+ * **Hover**: Invert colors or switch to Swiss Red (`#FF3000`).
91
+ * **Typography**: Uppercase, bold, tracking-wide.
92
+
93
+ ### Cards / Containers
94
+ * **Structure**: Defined by their borders (`border-black`).
95
+ * **Background**: White or Muted Gray (`#F2F2F2`).
96
+ * **Padding**: Generous and uniform (`p-8`, `p-12`).
97
+ * **Hover**: Entire card background changes color (e.g., to Swiss Red or Black) with text color inversion.
98
+
99
+ ### Inputs
100
+ * **Style**: Underlined (`border-b`) or solid rectangular box with thick border.
101
+ * **Focus**: Sharp change in border color to Swiss Red. No glow rings.
102
+
103
+ ## Layout Strategy
104
+
105
+ * **The Grid**: The grid is God. It should often be **visible** (using borders on elements).
106
+ * **Asymmetry**: Embrace asymmetrical balance. A large photo on the left balanced by negative space and small text on the right.
107
+ * **Alignment**: Strict left alignment for text.
108
+ * **Separators**: Use horizontal and vertical lines to divide sections.
109
+
110
+ ## Non-Genericness (The "Bold" Factor)
111
+
112
+ This implementation goes beyond "generic Swiss style" by incorporating:
113
+
114
+ * **Massive Responsive Typography**: Headlines scale from `text-6xl` (mobile) to `text-[10rem]` (desktop). Let words be images.
115
+ * **Visible Structure**: The layout grid is made tangible through:
116
+ - Thick 4px black borders defining sections
117
+ - Visible grid patterns (24px) on backgrounds
118
+ - Asymmetric column ratios (8:4, 7:5, 5:7) creating dynamic tension
119
+ * **Numbered Section Labels**: Every major section has a prefix (01. System, 02. Method, 03. Advantages, 04. Journal) in red accent with uppercase tracking
120
+ * **Layered Geometric Compositions**:
121
+ - Hero features abstract Bauhaus-style composition with overlapping shapes
122
+ - Product detail uses 2×2 grid of geometric elements with different texture patterns
123
+ - Each composition combines circles, rectangles, lines in purposeful arrangement
124
+ * **Pattern-Based Texture**: Four distinct CSS patterns (grid, dots, diagonal, noise) applied strategically to create depth without shadows
125
+ * **Bold Interaction States**:
126
+ - Full color inversions (not just opacity fades)
127
+ - Rotating icons (plus signs spin 90°)
128
+ - Scale transforms on hover
129
+ - Vertical slide animations in navigation
130
+ * **Active Negative Space**: Generous padding (p-12, p-24) and asymmetric layouts create breathing room and visual tension
131
+ * **Functional Color System**: Red is used only for:
132
+ - Primary CTAs and accents
133
+ - Hover states as visual feedback
134
+ - Section number prefixes
135
+ - Never as decorative fill
136
+
137
+ ## Spacing & Iconography
138
+
139
+ * **Spacing**: High density in information clusters (tables), but high spaciousness in narrative sections.
140
+ * **Iconography**: Use `lucide-react` icons, but treat them as functional symbols. Stroke width should match typography. Often enclosed in geometric shapes (squares/circles).
141
+
142
+ ## Animation
143
+
144
+ * **Feel**: Instant, mechanical, snappy, precise. Movement is purposeful and geometric.
145
+ * **Transitions**: `duration-200 ease-out` or `duration-150 ease-linear` for rapid feedback. No elastic or spring animations.
146
+ * **Micro-interactions**:
147
+ - **Navigation Links**: Vertical slide animation with color change (text slides up, red replacement slides in from below)
148
+ - **Stats Cards**: Scale transform on numbers (1.0 → 1.05), rotating plus icons (0° → 90°), background color snap (black red)
149
+ - **Feature Cards**: Color inversion on hover (white → accent red), arrow rotation (-45° → 0°)
150
+ - **Testimonials**: Subtle upward lift (-1px translateY), border color change (black → red), quote text color change
151
+ - **FAQ Cards**: Rotating plus icons, full background color inversion (white red)
152
+ - **Buttons**: Instant background color changes, no scale transforms
153
+ * **Hover States**: Always indicate interactivity through color, scale, or position changes—never subtle fades. Swiss style is bold and immediate.
154
+
155
+ ## Responsive Strategy
156
+
157
+ The Swiss style must maintain its bold character across all screen sizes:
158
+
159
+ **Mobile (< 768px)**:
160
+ * Typography scales down but remains bold: `text-6xl` for hero headlines
161
+ * Single column layouts with vertical stacking
162
+ * Borders remain 4px thick (never thin out)
163
+ * CTAs become full-width buttons with consistent height (`h-16`)
164
+ * Grid patterns and textures maintain same opacity/scale
165
+ * Stats become 2×2 grid instead of 1×4
166
+ * Navigation collapses (visible only on desktop)
167
+
168
+ **Tablet (768px - 1024px)**:
169
+ * Two-column layouts for testimonials, FAQ, features
170
+ * Typography scales to `text-8xl` for headlines
171
+ * Asymmetric grids start to appear
172
+ * Touch targets remain minimum 44×44px
173
+
174
+ **Desktop (1024px+)**:
175
+ * Full asymmetric grid layouts (8:4, 7:5, 5:7 ratios)
176
+ * Maximum typography scale (`text-9xl`, `text-[10rem]`)
177
+ * Multi-column layouts (3-4 columns for blog, footer)
178
+ * Sticky positioning for section headers
179
+ * All hover states and micro-interactions active
180
+
181
+ **Key Principles**:
182
+ - Never compromise on border thickness or contrast
183
+ - Maintain uppercase typography and tight tracking
184
+ - Patterns remain visible at all breakpoints
185
+ - Red accent color used consistently across devices
186
+ - Spacing remains generous (reduce from p-24 to p-12 on mobile, but never less)
187
+
188
+ ## Accessibility
189
+
190
+ * **Contrast**: The Black/White/Red scheme naturally offers ultra-high contrast (21:1 for black/white). Ensure red text on white meets AA standards.
191
+ * **Focus**: High-contrast 2px ring in red (`focus-visible:ring-2 focus-visible:ring-swiss-accent focus-visible:ring-offset-2`)
192
+ * **Touch Targets**: All interactive elements minimum 44×44px on mobile
193
+ * **Motion**: All animations are CSS-based and respect `prefers-reduced-motion`
194
+ * **Semantics**: Proper heading hierarchy, semantic HTML5 elements, ARIA labels where needed
195
+ </design-system>