heraspec 0.1.12 → 0.1.14

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 (129) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +188 -103
  3. package/bin/heraspec.js +4805 -1122
  4. package/bin/heraspec.js.map +4 -4
  5. package/dist/core/templates/skills/CHANGELOG.md +117 -117
  6. package/dist/core/templates/skills/README-template.md +58 -58
  7. package/dist/core/templates/skills/README.md +38 -38
  8. package/dist/core/templates/skills/content-optimization-skill.md +104 -104
  9. package/dist/core/templates/skills/data/design-systems.csv +54 -0
  10. package/dist/core/templates/skills/data/pages-proposed.csv +21 -21
  11. package/dist/core/templates/skills/data/pages.csv +9 -9
  12. package/dist/core/templates/skills/data/typography.csv +57 -57
  13. package/dist/core/templates/skills/deploy-documentation-skill.md +408 -0
  14. package/dist/core/templates/skills/design-system-skill.md +176 -0
  15. package/dist/core/templates/skills/documents/templates/documentation-landing-page.html +63 -63
  16. package/dist/core/templates/skills/documents/templates/documentation.html +49 -49
  17. package/dist/core/templates/skills/documents/templates/landing-script.js +38 -38
  18. package/dist/core/templates/skills/documents/templates/landing-style.css +158 -158
  19. package/dist/core/templates/skills/documents/templates/script.js +56 -56
  20. package/dist/core/templates/skills/documents/templates/style.css +155 -155
  21. package/dist/core/templates/skills/documents/templates/technical-doc-template.md +16 -16
  22. package/dist/core/templates/skills/documents/templates/user-guide-template.md +16 -16
  23. package/dist/core/templates/skills/documents-skill.md +104 -104
  24. package/dist/core/templates/skills/e2e-test-skill.md +119 -119
  25. package/dist/core/templates/skills/git-embed-skill.md +57 -0
  26. package/dist/core/templates/skills/integration-test-skill.md +118 -118
  27. package/dist/core/templates/skills/knowledge/README.md +63 -0
  28. package/dist/core/templates/skills/knowledge/design-systems/airbnb/DESIGN.md +246 -0
  29. package/dist/core/templates/skills/knowledge/design-systems/airtable/DESIGN.md +89 -0
  30. package/dist/core/templates/skills/knowledge/design-systems/apple/DESIGN.md +313 -0
  31. package/dist/core/templates/skills/knowledge/design-systems/bmw/DESIGN.md +180 -0
  32. package/dist/core/templates/skills/knowledge/design-systems/cal/DESIGN.md +259 -0
  33. package/dist/core/templates/skills/knowledge/design-systems/claude/DESIGN.md +312 -0
  34. package/dist/core/templates/skills/knowledge/design-systems/clay/DESIGN.md +304 -0
  35. package/dist/core/templates/skills/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
  36. package/dist/core/templates/skills/knowledge/design-systems/cohere/DESIGN.md +266 -0
  37. package/dist/core/templates/skills/knowledge/design-systems/coinbase/DESIGN.md +129 -0
  38. package/dist/core/templates/skills/knowledge/design-systems/composio/DESIGN.md +307 -0
  39. package/dist/core/templates/skills/knowledge/design-systems/cursor/DESIGN.md +309 -0
  40. package/dist/core/templates/skills/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
  41. package/dist/core/templates/skills/knowledge/design-systems/expo/DESIGN.md +281 -0
  42. package/dist/core/templates/skills/knowledge/design-systems/figma/DESIGN.md +220 -0
  43. package/dist/core/templates/skills/knowledge/design-systems/framer/DESIGN.md +246 -0
  44. package/dist/core/templates/skills/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
  45. package/dist/core/templates/skills/knowledge/design-systems/ibm/DESIGN.md +332 -0
  46. package/dist/core/templates/skills/knowledge/design-systems/index.json +72 -0
  47. package/dist/core/templates/skills/knowledge/design-systems/intercom/DESIGN.md +146 -0
  48. package/dist/core/templates/skills/knowledge/design-systems/kraken/DESIGN.md +125 -0
  49. package/dist/core/templates/skills/knowledge/design-systems/linear.app/DESIGN.md +367 -0
  50. package/dist/core/templates/skills/knowledge/design-systems/lovable/DESIGN.md +298 -0
  51. package/dist/core/templates/skills/knowledge/design-systems/minimax/DESIGN.md +257 -0
  52. package/dist/core/templates/skills/knowledge/design-systems/mintlify/DESIGN.md +326 -0
  53. package/dist/core/templates/skills/knowledge/design-systems/miro/DESIGN.md +108 -0
  54. package/dist/core/templates/skills/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
  55. package/dist/core/templates/skills/knowledge/design-systems/mongodb/DESIGN.md +266 -0
  56. package/dist/core/templates/skills/knowledge/design-systems/notion/DESIGN.md +309 -0
  57. package/dist/core/templates/skills/knowledge/design-systems/nvidia/DESIGN.md +293 -0
  58. package/dist/core/templates/skills/knowledge/design-systems/ollama/DESIGN.md +267 -0
  59. package/dist/core/templates/skills/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
  60. package/dist/core/templates/skills/knowledge/design-systems/pinterest/DESIGN.md +230 -0
  61. package/dist/core/templates/skills/knowledge/design-systems/posthog/DESIGN.md +256 -0
  62. package/dist/core/templates/skills/knowledge/design-systems/raycast/DESIGN.md +268 -0
  63. package/dist/core/templates/skills/knowledge/design-systems/replicate/DESIGN.md +261 -0
  64. package/dist/core/templates/skills/knowledge/design-systems/resend/DESIGN.md +303 -0
  65. package/dist/core/templates/skills/knowledge/design-systems/revolut/DESIGN.md +185 -0
  66. package/dist/core/templates/skills/knowledge/design-systems/runwayml/DESIGN.md +244 -0
  67. package/dist/core/templates/skills/knowledge/design-systems/sanity/DESIGN.md +357 -0
  68. package/dist/core/templates/skills/knowledge/design-systems/sentry/DESIGN.md +262 -0
  69. package/dist/core/templates/skills/knowledge/design-systems/spacex/DESIGN.md +194 -0
  70. package/dist/core/templates/skills/knowledge/design-systems/spotify/DESIGN.md +246 -0
  71. package/dist/core/templates/skills/knowledge/design-systems/stripe/DESIGN.md +322 -0
  72. package/dist/core/templates/skills/knowledge/design-systems/supabase/DESIGN.md +255 -0
  73. package/dist/core/templates/skills/knowledge/design-systems/superhuman/DESIGN.md +252 -0
  74. package/dist/core/templates/skills/knowledge/design-systems/together.ai/DESIGN.md +263 -0
  75. package/dist/core/templates/skills/knowledge/design-systems/uber/DESIGN.md +295 -0
  76. package/dist/core/templates/skills/knowledge/design-systems/vercel/DESIGN.md +310 -0
  77. package/dist/core/templates/skills/knowledge/design-systems/voltagent/DESIGN.md +323 -0
  78. package/dist/core/templates/skills/knowledge/design-systems/warp/DESIGN.md +253 -0
  79. package/dist/core/templates/skills/knowledge/design-systems/webflow/DESIGN.md +92 -0
  80. package/dist/core/templates/skills/knowledge/design-systems/wise/DESIGN.md +173 -0
  81. package/dist/core/templates/skills/knowledge/design-systems/x.ai/DESIGN.md +257 -0
  82. package/dist/core/templates/skills/knowledge/design-systems/zapier/DESIGN.md +328 -0
  83. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/profile.json +27 -0
  84. package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/structure.md +137 -0
  85. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/profile.json +39 -0
  86. package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/structure.md +208 -0
  87. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/profile.json +51 -0
  88. package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/structure.md +369 -0
  89. package/dist/core/templates/skills/knowledge/index.json +65 -0
  90. package/dist/core/templates/skills/module-codebase-skill.md +110 -110
  91. package/dist/core/templates/skills/plugin-directory-skill.md +396 -396
  92. package/dist/core/templates/skills/project-memory-skill.md +222 -0
  93. package/dist/core/templates/skills/project-memory-skill.vi.md +223 -0
  94. package/dist/core/templates/skills/scripts/CODE_EXPLANATION.md +394 -394
  95. package/dist/core/templates/skills/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -421
  96. package/dist/core/templates/skills/scripts/SEARCH_MODES_GUIDE.md +238 -238
  97. package/dist/core/templates/skills/scripts/__pycache__/core.cpython-311.pyc +0 -0
  98. package/dist/core/templates/skills/scripts/core.py +391 -385
  99. package/dist/core/templates/skills/scripts/search.py +1 -1
  100. package/dist/core/templates/skills/smart-explore-skill.md +141 -0
  101. package/dist/core/templates/skills/sourcecode-analyzer-skill.md +210 -0
  102. package/dist/core/templates/skills/sourcecode-analyzer-skill.vi.md +210 -0
  103. package/dist/core/templates/skills/suggestion-skill.md +118 -118
  104. package/dist/core/templates/skills/templates/accessibility-checklist.md +40 -40
  105. package/dist/core/templates/skills/templates/example-prompt-full-theme.md +333 -333
  106. package/dist/core/templates/skills/templates/page-types-guide.md +338 -338
  107. package/dist/core/templates/skills/templates/pages-proposed-summary.md +273 -273
  108. package/dist/core/templates/skills/templates/pre-delivery-checklist.md +42 -42
  109. package/dist/core/templates/skills/templates/prompt-template-full-theme.md +313 -313
  110. package/dist/core/templates/skills/templates/responsive-design.md +40 -40
  111. package/dist/core/templates/skills/ui-ux-skill.md +595 -584
  112. package/dist/core/templates/skills/unit-test-skill.md +111 -111
  113. package/dist/core/templates/skills/ux-element/templates/Controller.php +50 -50
  114. package/dist/core/templates/skills/ux-element/templates/Shortcode.php +23 -23
  115. package/dist/core/templates/skills/ux-element/templates/Template.html +20 -20
  116. package/dist/core/templates/skills/ux-element/templates/Thumbnail.svg +8 -8
  117. package/dist/core/templates/skills/ux-element/templates/View.php +21 -21
  118. package/dist/core/templates/skills/ux-element-skill.md +83 -83
  119. package/dist/core/templates/skills/wordpress-plugin-check-skill.md +151 -76
  120. package/dist/core/templates/skills/wordpress-plugin-standard/templates/admin-dashboard.php +47 -47
  121. package/dist/core/templates/skills/wordpress-plugin-standard/templates/admin-settings.php +60 -60
  122. package/dist/core/templates/skills/wordpress-plugin-standard/templates/assets/admin-css.css +22 -22
  123. package/dist/core/templates/skills/wordpress-plugin-standard/templates/assets/admin-js.js +15 -15
  124. package/dist/core/templates/skills/wordpress-plugin-standard/templates/plugin-main.php +169 -169
  125. package/dist/core/templates/skills/wordpress-plugin-standard/templates/readme.txt +41 -41
  126. package/dist/core/templates/skills/wordpress-plugin-standard/templates/uninstall.php +21 -21
  127. package/dist/core/templates/skills/wordpress-plugin-standard-skill.md +100 -100
  128. package/dist/index.js +4068 -278
  129. package/package.json +75 -72
@@ -0,0 +1,262 @@
1
+ # Design System: Sentry
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Sentry's website is a dark-mode-first developer tool interface that speaks the language of code editors and terminal windows. The entire aesthetic is rooted in deep purple-black backgrounds (`#1f1633`, `#150f23`) that evoke the late-night debugging sessions Sentry was built for. Against this inky canvas, a carefully curated set of purples, pinks, and a distinctive lime-green accent (`#c2ef4e`) create a visual system that feels simultaneously technical and vibrant.
6
+
7
+ The typography pairing is deliberate: "Dammit Sans" appears at hero scale (88px, weight 700) as a display font with personality and attitude that matches Sentry's irreverent brand voice ("Code breaks. Fix it faster."), while Rubik serves as the workhorse UI font across all functional text — headings, body, buttons, captions, and navigation. Monaco provides the monospace layer for code snippets and technical content, completing the developer-tool trinity.
8
+
9
+ What makes Sentry distinctive is its embrace of the "dark IDE" aesthetic without feeling cold or sterile. Warm purple tones replace the typical cool grays of developer tools, and bold illustrative elements (3D characters, colorful product screenshots) punctuate the dark canvas. The button system uses a signature muted purple (`#79628c`) with inset shadows that creates a tactile, almost physical quality — buttons feel like they could be pressed into the surface.
10
+
11
+ **Key Characteristics:**
12
+ - Dark purple-black backgrounds (`#1f1633`, `#150f23`) — never pure black
13
+ - Warm purple accent spectrum: from deep (`#362d59`) through mid (`#79628c`, `#6a5fc1`) to vibrant (`#422082`)
14
+ - Lime-green accent (`#c2ef4e`) for high-visibility CTAs and highlights
15
+ - Pink/coral accents (`#ffb287`, `#fa7faa`) for focus states and secondary highlights
16
+ - "Dammit Sans" display font for brand personality at hero scale
17
+ - Rubik as primary UI font with uppercase letter-spaced labels
18
+ - Monaco monospace for code elements
19
+ - Inset shadows on buttons creating tactile depth
20
+ - Frosted glass effects with `blur(18px) saturate(180%)`
21
+
22
+ ## 2. Color Palette & Roles
23
+
24
+ ### Primary Brand
25
+ - **Deep Purple** (`#1f1633`): Primary background, the defining color of the brand
26
+ - **Darker Purple** (`#150f23`): Deeper sections, footer, secondary backgrounds
27
+ - **Border Purple** (`#362d59`): Borders, dividers, subtle structural lines
28
+
29
+ ### Accent Colors
30
+ - **Sentry Purple** (`#6a5fc1`): Primary interactive color — links, hover states, focus rings
31
+ - **Muted Purple** (`#79628c`): Button backgrounds, secondary interactive elements
32
+ - **Deep Violet** (`#422082`): Select dropdowns, active states, high-emphasis surfaces
33
+ - **Lime Green** (`#c2ef4e`): High-visibility accent, special links, badge highlights
34
+ - **Coral** (`#ffb287`): Focus state backgrounds, warm accent
35
+ - **Pink** (`#fa7faa`): Focus outlines, decorative accents
36
+
37
+ ### Text Colors
38
+ - **Pure White** (`#ffffff`): Primary text on dark backgrounds
39
+ - **Light Gray** (`#e5e7eb`): Secondary text, muted content
40
+ - **Code Yellow** (`#dcdcaa`): Syntax highlighting, code tokens
41
+
42
+ ### Surface & Overlay
43
+ - **Glass White** (`rgba(255, 255, 255, 0.18)`): Frosted glass button backgrounds
44
+ - **Glass Dark** (`rgba(54, 22, 107, 0.14)`): Hover overlay on glass elements
45
+ - **Input White** (`#ffffff`): Form input backgrounds (light context)
46
+ - **Input Border** (`#cfcfdb`): Form field borders
47
+
48
+ ### Shadows
49
+ - **Ambient Glow** (`rgba(22, 15, 36, 0.9) 0px 4px 4px 9px`): Deep purple ambient shadow
50
+ - **Button Hover** (`rgba(0, 0, 0, 0.18) 0px 0.5rem 1.5rem`): Elevated hover state
51
+ - **Card Shadow** (`rgba(0, 0, 0, 0.1) 0px 10px 15px -3px`): Standard card elevation
52
+ - **Inset Button** (`rgba(0, 0, 0, 0.1) 0px 1px 3px 0px inset`): Tactile pressed effect
53
+
54
+ ## 3. Typography Rules
55
+
56
+ ### Font Families
57
+ - **Display**: `Dammit Sans` — brand personality font for hero headings
58
+ - **Primary UI**: `Rubik`, with fallbacks: `-apple-system, system-ui, Segoe UI, Helvetica, Arial`
59
+ - **Monospace**: `Monaco`, with fallbacks: `Menlo, Ubuntu Mono`
60
+
61
+ ### Hierarchy
62
+
63
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
64
+ |------|------|------|--------|-------------|----------------|-------|
65
+ | Display Hero | Dammit Sans | 88px (5.50rem) | 700 | 1.20 (tight) | normal | Maximum impact, brand voice |
66
+ | Display Secondary | Dammit Sans | 60px (3.75rem) | 500 | 1.10 (tight) | normal | Secondary hero text |
67
+ | Section Heading | Rubik | 30px (1.88rem) | 400 | 1.20 (tight) | normal | Major section titles |
68
+ | Sub-heading | Rubik | 27px (1.69rem) | 500 | 1.25 (tight) | normal | Feature section headers |
69
+ | Card Title | Rubik | 24px (1.50rem) | 500 | 1.25 (tight) | normal | Card and block headings |
70
+ | Feature Title | Rubik | 20px (1.25rem) | 600 | 1.25 (tight) | normal | Emphasized feature names |
71
+ | Body | Rubik | 16px (1.00rem) | 400 | 1.50 | normal | Standard body text |
72
+ | Body Emphasis | Rubik | 16px (1.00rem) | 500–600 | 1.50 | normal | Bold body, nav items |
73
+ | Nav Label | Rubik | 15px (0.94rem) | 500 | 1.40 | normal | Navigation links |
74
+ | Uppercase Label | Rubik | 15px (0.94rem) | 500 | 1.25 (tight) | normal | `text-transform: uppercase` |
75
+ | Button Text | Rubik | 14px (0.88rem) | 500–700 | 1.14–1.29 (tight) | 0.2px | `text-transform: uppercase` |
76
+ | Caption | Rubik | 14px (0.88rem) | 500–700 | 1.00–1.43 | 0.2px | Often uppercase |
77
+ | Small Caption | Rubik | 12px (0.75rem) | 600 | 2.00 (relaxed) | normal | Subtle annotations |
78
+ | Micro Label | Rubik | 10px (0.63rem) | 600 | 1.80 (relaxed) | 0.25px | `text-transform: uppercase` |
79
+ | Code | Monaco | 16px (1.00rem) | 400–700 | 1.50 | normal | Code blocks, technical text |
80
+
81
+ ### Principles
82
+ - **Dual personality**: Dammit Sans brings irreverent brand character at display scale; Rubik provides clean professionalism for everything functional.
83
+ - **Uppercase as system**: Buttons, captions, labels, and micro-text all use `text-transform: uppercase` with subtle letter-spacing (0.2px–0.25px), creating a systematic "technical label" pattern throughout.
84
+ - **Weight stratification**: Rubik uses 400 (body), 500 (emphasis/nav), 600 (titles/strong), 700 (buttons/CTAs) — a clean four-tier weight system.
85
+ - **Tight headings, relaxed body**: All headings use 1.10–1.25 line-height; body uses 1.50; small captions expand to 2.00 for readability at tiny sizes.
86
+
87
+ ## 4. Component Stylings
88
+
89
+ ### Buttons
90
+
91
+ **Primary Muted Purple**
92
+ - Background: `#79628c` (rgb(121, 98, 140))
93
+ - Text: `#ffffff`, uppercase, 14px, weight 500–700, letter-spacing 0.2px
94
+ - Border: `1px solid #584674`
95
+ - Radius: 13px
96
+ - Shadow: `rgba(0, 0, 0, 0.1) 0px 1px 3px 0px inset` (tactile inset)
97
+ - Hover: elevated shadow `rgba(0, 0, 0, 0.18) 0px 0.5rem 1.5rem`
98
+
99
+ **Glass White**
100
+ - Background: `rgba(255, 255, 255, 0.18)` (frosted glass)
101
+ - Text: `#ffffff`
102
+ - Padding: 8px
103
+ - Radius: 12px (left-aligned variant: `12px 0px 0px 12px`)
104
+ - Shadow: `rgba(0, 0, 0, 0.08) 0px 2px 8px`
105
+ - Hover background: `rgba(54, 22, 107, 0.14)`
106
+ - Use: Secondary actions on dark surfaces
107
+
108
+ **White Solid**
109
+ - Background: `#ffffff`
110
+ - Text: `#1f1633`
111
+ - Padding: 12px 16px
112
+ - Radius: 8px
113
+ - Hover: background transitions to `#6a5fc1`, text to white
114
+ - Focus: background `#ffb287` (coral), outline `rgb(106, 95, 193) solid 0.125rem`
115
+ - Use: High-visibility CTA on dark backgrounds
116
+
117
+ **Deep Violet (Select/Dropdown)**
118
+ - Background: `#422082`
119
+ - Text: `#ffffff`
120
+ - Padding: 8px 16px
121
+ - Radius: 8px
122
+
123
+ ### Inputs
124
+
125
+ **Text Input**
126
+ - Background: `#ffffff`
127
+ - Text: `#1f1633`
128
+ - Border: `1px solid #cfcfdb`
129
+ - Padding: 8px 12px
130
+ - Radius: 6px
131
+ - Focus: border-color stays `#cfcfdb`, shadow `rgba(0, 0, 0, 0.15) 0px 2px 10px inset`
132
+
133
+ ### Links
134
+ - **Default on dark**: `#ffffff`, underline decoration
135
+ - **Hover**: color transitions to `#6a5fc1` (Sentry Purple)
136
+ - **Purple links**: `#6a5fc1` default, hover underline
137
+ - **Lime accent links**: `#c2ef4e` default, hover to `#6a5fc1`
138
+ - **Dark context links**: `#362d59`, hover to `#ffffff`
139
+
140
+ ### Cards & Containers
141
+ - Background: semi-transparent or dark purple surfaces
142
+ - Radius: 8px–12px
143
+ - Shadow: `rgba(0, 0, 0, 0.1) 0px 10px 15px -3px`
144
+ - Backdrop filter: `blur(18px) saturate(180%)` for glass effects
145
+
146
+ ### Navigation
147
+ - Dark transparent header over hero content
148
+ - Rubik 15px weight 500 for nav links
149
+ - White text, hover to Sentry Purple (`#6a5fc1`)
150
+ - Uppercase labels with 0.2px letter-spacing for categories
151
+ - Mobile: hamburger menu, full-width expanded
152
+
153
+ ## 5. Layout Principles
154
+
155
+ ### Spacing System
156
+ - Base unit: 8px
157
+ - Scale: 1px, 2px, 4px, 5px, 6px, 8px, 12px, 16px, 24px, 32px, 40px, 44px, 45px, 47px
158
+
159
+ ### Grid & Container
160
+ - Max content width: 1152px (XL breakpoint)
161
+ - Responsive padding: 2rem (mobile) → 4rem (tablet+)
162
+ - Content centered within container
163
+ - Full-width dark sections with contained inner content
164
+
165
+ ### Breakpoints
166
+ | Name | Width | Key Changes |
167
+ |------|-------|-------------|
168
+ | Mobile | < 576px | Single column, stacked layout |
169
+ | Small Tablet | 576–640px | Minor width adjustments |
170
+ | Tablet | 640–768px | 2-column begins |
171
+ | Small Desktop | 768–992px | Full nav visible |
172
+ | Desktop | 992–1152px | Standard layout |
173
+ | Large Desktop | 1152–1440px | Max-width content |
174
+
175
+ ### Whitespace Philosophy
176
+ - **Dark breathing room**: Generous vertical spacing between sections (64px–80px+) lets the dark background serve as a visual rest.
177
+ - **Content islands**: Feature sections are self-contained blocks floating in the dark purple sea, each with its own internal spacing rhythm.
178
+ - **Asymmetric padding**: Buttons use asymmetric padding patterns (12px 16px, 8px 12px) that feel organic rather than rigid.
179
+
180
+ ### Border Radius Scale
181
+ - Minimal (6px): Form inputs, small interactive elements
182
+ - Standard (8px): Buttons, cards, containers
183
+ - Comfortable (10px–12px): Larger containers, glass panels
184
+ - Rounded (13px): Primary muted buttons
185
+ - Pill (18px): Image containers, badges
186
+
187
+ ## 6. Depth & Elevation
188
+
189
+ | Level | Treatment | Use |
190
+ |-------|-----------|-----|
191
+ | Sunken (Level -1) | Inset shadow `rgba(0, 0, 0, 0.1) 0px 1px 3px inset` | Primary buttons (tactile pressed feel) |
192
+ | Flat (Level 0) | No shadow | Default surfaces, dark backgrounds |
193
+ | Surface (Level 1) | `rgba(0, 0, 0, 0.08) 0px 2px 8px` | Glass buttons, subtle cards |
194
+ | Elevated (Level 2) | `rgba(0, 0, 0, 0.1) 0px 10px 15px -3px` | Cards, floating panels |
195
+ | Prominent (Level 3) | `rgba(0, 0, 0, 0.18) 0px 0.5rem 1.5rem` | Hover states, modals |
196
+ | Ambient (Level 4) | `rgba(22, 15, 36, 0.9) 0px 4px 4px 9px` | Deep purple ambient glow around hero |
197
+
198
+ **Shadow Philosophy**: Sentry uses a unique combination of inset shadows (buttons feel pressed INTO the surface) and ambient glows (content radiates from the dark background). The deep purple ambient shadow (`rgba(22, 15, 36, 0.9)`) is the signature — it creates a bioluminescent quality where content seems to emit its own purple-tinted light.
199
+
200
+ ## 7. Do's and Don'ts
201
+
202
+ ### Do
203
+ - Use deep purple backgrounds (`#1f1633`, `#150f23`) — never pure black (`#000000`)
204
+ - Apply inset shadows on primary buttons for the tactile pressed effect
205
+ - Use Dammit Sans ONLY for hero/display headings — Rubik for everything else
206
+ - Apply `text-transform: uppercase` with `letter-spacing: 0.2px` on buttons and labels
207
+ - Use the lime-green accent (`#c2ef4e`) sparingly for maximum impact
208
+ - Employ frosted glass effects (`blur(18px) saturate(180%)`) for layered surfaces
209
+ - Maintain the warm purple shadow tones — shadows should feel purple-tinted, not neutral gray
210
+ - Use Rubik's 4-tier weight system: 400 (body), 500 (nav/emphasis), 600 (titles), 700 (CTAs)
211
+
212
+ ### Don't
213
+ - Don't use pure black (`#000000`) for backgrounds — always use the warm purple-blacks
214
+ - Don't apply Dammit Sans to body text or UI elements — it's display-only
215
+ - Don't use standard gray (`#666`, `#999`) for borders — use purple-tinted grays (`#362d59`, `#584674`)
216
+ - Don't drop the uppercase treatment on buttons — it's a system-wide pattern
217
+ - Don't use sharp corners (0px radius) — minimum 6px for all interactive elements
218
+ - Don't mix the lime-green accent with the coral/pink accents in the same component
219
+ - Don't use flat (non-inset) shadows on primary buttons — the tactile quality is signature
220
+ - Don't forget letter-spacing on uppercase text — 0.2px minimum
221
+
222
+ ## 8. Responsive Behavior
223
+
224
+ ### Breakpoints
225
+ | Name | Width | Key Changes |
226
+ |------|-------|-------------|
227
+ | Mobile | <576px | Single column, hamburger nav, stacked CTAs |
228
+ | Tablet | 576–768px | 2-column feature grids begin |
229
+ | Small Desktop | 768–992px | Full navigation, side-by-side layouts |
230
+ | Desktop | 992–1152px | Max-width container, full layout |
231
+ | Large | >1152px | Content max-width maintained, generous margins |
232
+
233
+ ### Collapsing Strategy
234
+ - Hero text: 88px Dammit Sans → 60px → mobile scales
235
+ - Navigation: horizontal → hamburger with slide-out
236
+ - Feature sections: side-by-side → stacked cards
237
+ - Buttons: inline → full-width stacked on mobile
238
+ - Container padding: 4rem → 2rem
239
+
240
+ ## 9. Agent Prompt Guide
241
+
242
+ ### Quick Color Reference
243
+ - Background: `#1f1633` (primary), `#150f23` (deeper)
244
+ - Text: `#ffffff` (primary), `#e5e7eb` (secondary)
245
+ - Interactive: `#6a5fc1` (links/hover), `#79628c` (buttons)
246
+ - Accent: `#c2ef4e` (lime highlight), `#ffb287` (coral focus)
247
+ - Border: `#362d59` (dark), `#cfcfdb` (light context)
248
+
249
+ ### Example Component Prompts
250
+ - "Create a hero section on deep purple background (#1f1633). Headline at 88px Dammit Sans weight 700, line-height 1.20, white text. Sub-text at 16px Rubik weight 400, line-height 1.50. White solid CTA button (8px radius, 12px 16px padding), hover transitions to #6a5fc1."
251
+ - "Design a navigation bar: transparent over dark background. Rubik 15px weight 500, white text. Uppercase category labels with 0.2px letter-spacing. Hover color #6a5fc1."
252
+ - "Build a primary button: background #79628c, border 1px solid #584674, inset shadow rgba(0,0,0,0.1) 0px 1px 3px, white uppercase text at 14px Rubik weight 700, letter-spacing 0.2px, radius 13px. Hover: shadow rgba(0,0,0,0.18) 0px 0.5rem 1.5rem."
253
+ - "Create a glass card panel: background rgba(255,255,255,0.18), backdrop-filter blur(18px) saturate(180%), radius 12px. White text content inside."
254
+ - "Design a feature section: #150f23 background, 24px Rubik weight 500 heading, 16px Rubik weight 400 body text. 14px uppercase lime-green (#c2ef4e) label above heading."
255
+
256
+ ### Iteration Guide
257
+ 1. Always start with the dark purple background — the color palette is built FOR dark mode
258
+ 2. Use inset shadows on buttons, ambient purple glows on hero sections
259
+ 3. Uppercase + letter-spacing is the systematic pattern for labels, buttons, and captions
260
+ 4. Lime green (#c2ef4e) is the "pop" color — use once per section maximum
261
+ 5. Frosted glass for overlaid panels, solid purple for primary surfaces
262
+ 6. Rubik handles 90% of typography — Dammit Sans is hero-only
@@ -0,0 +1,194 @@
1
+ # Design System: SpaceX
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ SpaceX's website is a full-screen cinematic experience that treats aerospace engineering like a film — every section is a scene, every photograph is a frame, and the interface disappears entirely behind the imagery. The design is pure black (`#000000`) with photography of rockets, space, and planets occupying 100% of the viewport. Text overlays sit directly on these photographs with no background panels, cards, or containers — just type on image, bold and unapologetic.
6
+
7
+ The typography system uses D-DIN, an industrial geometric typeface with DIN heritage (the German industrial standard). The defining characteristic is that virtually ALL text is uppercase with positive letter-spacing (0.96px–1.17px), creating a military/aerospace labeling system where every word feels stenciled onto a spacecraft hull. D-DIN-Bold at 48px with uppercase and 0.96px tracking for the hero creates headlines that feel like mission briefing titles. Even body text at 16px maintains the uppercase/tracked treatment at smaller scales.
8
+
9
+ What makes SpaceX distinctive is its radical minimalism: no shadows, no borders (except one ghost button border at `rgba(240,240,250,0.35)`), no color (only black and a spectral near-white `#f0f0fa`), no cards, no grids. The only visual element is photography + text. The ghost button with `rgba(240,240,250,0.1)` background and 32px radius is the sole interactive element — barely visible, floating over the imagery like a heads-up display. This isn't a design system in the traditional sense — it's a photographic exhibition with a type system and a single button.
10
+
11
+ **Key Characteristics:**
12
+ - Pure black canvas with full-viewport cinematic photography — the interface is invisible
13
+ - D-DIN / D-DIN-Bold — industrial DIN-heritage typeface
14
+ - Universal uppercase + positive letter-spacing (0.96px–1.17px) — aerospace stencil aesthetic
15
+ - Near-white spectral text (`#f0f0fa`) — not pure white, a slight blue-violet tint
16
+ - Zero shadows, zero cards, zero containers — text on image only
17
+ - Single ghost button: `rgba(240,240,250,0.1)` background with spectral border
18
+ - Full-viewport sections — each section is a cinematic "scene"
19
+ - No decorative elements — every pixel serves the photography
20
+
21
+ ## 2. Color Palette & Roles
22
+
23
+ ### Primary
24
+ - **Space Black** (`#000000`): Page background, the void of space — at 50% opacity for overlay gradient
25
+ - **Spectral White** (`#f0f0fa`): Text color — not pure white, a slight blue-violet tint that mimics starlight
26
+
27
+ ### Interactive
28
+ - **Ghost Surface** (`rgba(240, 240, 250, 0.1)`): Button background — nearly invisible, 10% opacity
29
+ - **Ghost Border** (`rgba(240, 240, 250, 0.35)`): Button border — spectral, 35% opacity
30
+ - **Hover White** (`var(--white-100)`): Link hover state — full spectral white
31
+
32
+ ### Gradient
33
+ - **Dark Overlay** (`rgba(0, 0, 0, 0.5)`): Gradient overlay on photographs to ensure text legibility
34
+
35
+ ## 3. Typography Rules
36
+
37
+ ### Font Families
38
+ - **Display**: `D-DIN-Bold` — bold industrial geometric
39
+ - **Body / UI**: `D-DIN`, fallbacks: `Arial, Verdana`
40
+
41
+ ### Hierarchy
42
+
43
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
44
+ |------|------|------|--------|-------------|----------------|-------|
45
+ | Display Hero | D-DIN-Bold | 48px (3.00rem) | 700 | 1.00 (tight) | 0.96px | `text-transform: uppercase` |
46
+ | Body | D-DIN | 16px (1.00rem) | 400 | 1.50–1.70 | normal | Standard reading text |
47
+ | Nav Link Bold | D-DIN | 13px (0.81rem) | 700 | 0.94 (tight) | 1.17px | `text-transform: uppercase` |
48
+ | Nav Link | D-DIN | 12px (0.75rem) | 400 | 2.00 (relaxed) | normal | `text-transform: uppercase` |
49
+ | Caption Bold | D-DIN | 13px (0.81rem) | 700 | 0.94 (tight) | 1.17px | `text-transform: uppercase` |
50
+ | Caption | D-DIN | 12px (0.75rem) | 400 | 1.00 (tight) | normal | `text-transform: uppercase` |
51
+ | Micro | D-DIN | 10px (0.63rem) | 400 | 0.94 (tight) | 1px | `text-transform: uppercase` |
52
+
53
+ ### Principles
54
+ - **Universal uppercase**: Nearly every text element uses `text-transform: uppercase`. This creates a systematic military/aerospace voice where all communication feels like official documentation.
55
+ - **Positive letter-spacing as identity**: 0.96px on display, 1.17px on nav — the wide tracking creates the stenciled, industrial feel that connects to DIN's heritage as a German engineering standard.
56
+ - **Two weights, strict hierarchy**: D-DIN-Bold (700) for headlines and nav emphasis, D-DIN (400) for body. No medium or semibold weights exist in the system.
57
+ - **Tight line-heights**: 0.94–1.00 across most text — compressed, efficient, mission-critical communication.
58
+
59
+ ## 4. Component Stylings
60
+
61
+ ### Buttons
62
+
63
+ **Ghost Button**
64
+ - Background: `rgba(240, 240, 250, 0.1)` (barely visible)
65
+ - Text: Spectral White (`#f0f0fa`)
66
+ - Padding: 18px
67
+ - Radius: 32px
68
+ - Border: `1px solid rgba(240, 240, 250, 0.35)`
69
+ - Hover: background brightens, text to `var(--white-100)`
70
+ - Use: The only button variant — "LEARN MORE" CTAs on photography
71
+
72
+ ### Cards & Containers
73
+ - **None.** SpaceX does not use cards, panels, or containers. All content is text directly on full-viewport photographs. The absence of containers IS the design.
74
+
75
+ ### Inputs & Forms
76
+ - Not present on the homepage. The site is purely presentational.
77
+
78
+ ### Navigation
79
+ - Transparent overlay nav on photography
80
+ - D-DIN 13px weight 700, uppercase, 1.17px tracking
81
+ - Spectral white text on dark imagery
82
+ - Logo: SpaceX wordmark at 147x19px
83
+ - Mobile: hamburger collapse
84
+
85
+ ### Image Treatment
86
+ - Full-viewport (100vh) photography sections
87
+ - Professional aerospace photography: rockets, Mars, space
88
+ - Dark gradient overlays (`rgba(0,0,0,0.5)`) for text legibility
89
+ - Each section = one full-screen photograph with text overlay
90
+ - No border radius, no frames — edge-to-edge imagery
91
+
92
+ ## 5. Layout Principles
93
+
94
+ ### Spacing System
95
+ - Base unit: 8px
96
+ - Scale: 3px, 5px, 12px, 15px, 18px, 20px, 24px, 30px
97
+ - Minimal scale — spacing is not the organizing principle; photography is
98
+
99
+ ### Grid & Container
100
+ - No traditional grid — each section is a full-viewport cinematic frame
101
+ - Text is positioned absolutely or with generous padding over imagery
102
+ - Left-aligned text blocks on photography backgrounds
103
+ - No max-width container — content bleeds to viewport edges
104
+
105
+ ### Whitespace Philosophy
106
+ - **Photography IS the whitespace**: Empty space in the design is never empty — it's filled with the dark expanse of space, the curve of a planet, or the flame of a rocket engine. Traditional whitespace concepts don't apply.
107
+ - **Vertical pacing through viewport**: Each section is exactly one viewport tall, creating a rhythmic scroll where each "page" reveals a new scene.
108
+
109
+ ### Border Radius Scale
110
+ - Sharp (4px): Small dividers, utility elements
111
+ - Button (32px): Ghost buttons — the only rounded element
112
+
113
+ ## 6. Depth & Elevation
114
+
115
+ | Level | Treatment | Use |
116
+ |-------|-----------|-----|
117
+ | Photography (Level 0) | Full-viewport imagery | Background layer — always present |
118
+ | Overlay (Level 1) | `rgba(0, 0, 0, 0.5)` gradient | Text legibility layer over photography |
119
+ | Text (Level 2) | Spectral white text, no shadow | Content layer — text floats directly on image |
120
+ | Ghost (Level 3) | `rgba(240, 240, 250, 0.1)` surface | Barely-visible interactive layer |
121
+
122
+ **Shadow Philosophy**: SpaceX uses ZERO shadows. In a design built entirely on photography, shadows are meaningless — every surface is already a photograph with natural lighting. Depth comes from the photographic content itself: the receding curvature of Earth, the diminishing trail of a rocket, the atmospheric haze around Mars.
123
+
124
+ ## 7. Do's and Don'ts
125
+
126
+ ### Do
127
+ - Use full-viewport photography as the primary design element — every section is a scene
128
+ - Apply uppercase + positive letter-spacing to ALL text — the aerospace stencil voice
129
+ - Use D-DIN exclusively — no other fonts exist in the system
130
+ - Keep the color palette to black + spectral white (`#f0f0fa`) only
131
+ - Use ghost buttons (`rgba(240,240,250,0.1)`) as the sole interactive element
132
+ - Apply dark gradient overlays for text legibility on photographs
133
+ - Let photography carry the emotional weight — the type system is functional, not expressive
134
+
135
+ ### Don't
136
+ - Don't add cards, panels, or containers — text sits directly on photography
137
+ - Don't use shadows — they have no meaning in a photographic context
138
+ - Don't introduce colors — the palette is strictly achromatic with spectral tint
139
+ - Don't use sentence case — everything is uppercase
140
+ - Don't use negative letter-spacing — all tracking is positive (0.96px–1.17px)
141
+ - Don't reduce photography to thumbnails — every image is full-viewport
142
+ - Don't add decorative elements (icons, badges, dividers) — the design is photography + type + one button
143
+
144
+ ## 8. Responsive Behavior
145
+
146
+ ### Breakpoints
147
+ | Name | Width | Key Changes |
148
+ |------|-------|-------------|
149
+ | Mobile | <600px | Stacked, reduced padding, smaller type |
150
+ | Tablet Small | 600–960px | Adjusted layout |
151
+ | Tablet | 960–1280px | Standard scaling |
152
+ | Desktop | 1280–1350px | Full layout |
153
+ | Large Desktop | 1350–1500px | Expanded |
154
+ | Ultra-wide | >1500px | Maximum viewport |
155
+
156
+ ### Touch Targets
157
+ - Ghost buttons: 18px padding provides adequate touch area
158
+ - Navigation links: uppercase with generous letter-spacing aids readability
159
+
160
+ ### Collapsing Strategy
161
+ - Photography: maintains full-viewport at all sizes, content reposition
162
+ - Hero text: 48px → scales down proportionally
163
+ - Navigation: horizontal → hamburger
164
+ - Text blocks: reposition but maintain overlay-on-photography pattern
165
+ - Full-viewport sections maintained on mobile
166
+
167
+ ### Image Behavior
168
+ - Edge-to-edge photography at all viewport sizes
169
+ - Background-size: cover with center focus
170
+ - Dark overlay gradients adapt to content position
171
+ - No art direction changes — same photographs, responsive positioning
172
+
173
+ ## 9. Agent Prompt Guide
174
+
175
+ ### Quick Color Reference
176
+ - Background: Space Black (`#000000`)
177
+ - Text: Spectral White (`#f0f0fa`)
178
+ - Button background: Ghost (`rgba(240, 240, 250, 0.1)`)
179
+ - Button border: Ghost Border (`rgba(240, 240, 250, 0.35)`)
180
+ - Overlay: `rgba(0, 0, 0, 0.5)`
181
+
182
+ ### Example Component Prompts
183
+ - "Create a full-viewport hero: background-image covering 100vh, dark gradient overlay rgba(0,0,0,0.5). Headline at 48px D-DIN-Bold, uppercase, letter-spacing 0.96px, spectral white (#f0f0fa) text. Ghost CTA button: rgba(240,240,250,0.1) bg, 1px solid rgba(240,240,250,0.35) border, 32px radius, 18px padding."
184
+ - "Design a navigation: transparent over photography. D-DIN 13px weight 700, uppercase, letter-spacing 1.17px, spectral white text. SpaceX wordmark left-aligned."
185
+ - "Build a content section: full-viewport height, background photography with dark overlay. Left-aligned text block with 48px D-DIN-Bold uppercase heading, 16px D-DIN body text, and ghost button below."
186
+ - "Create a micro label: D-DIN 10px, uppercase, letter-spacing 1px, spectral white, line-height 0.94."
187
+
188
+ ### Iteration Guide
189
+ 1. Start with photography — the image IS the design
190
+ 2. All text is uppercase with positive letter-spacing — no exceptions
191
+ 3. Only two colors: black and spectral white (#f0f0fa)
192
+ 4. Ghost buttons are the only interactive element — transparent, spectral-bordered
193
+ 5. Zero shadows, zero cards, zero decorative elements
194
+ 6. Every section is full-viewport (100vh) — cinematic pacing