heraspec 0.1.13 → 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 -119
  3. package/bin/heraspec.js +4800 -1126
  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 -151
  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,220 @@
1
+ # Design System: Figma
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Figma's interface is the design tool that designed itself — a masterclass in typographic sophistication where a custom variable font (figmaSans) modulates between razor-thin (weight 320) and bold (weight 700) with stops at unusual intermediates (330, 340, 450, 480, 540) that most type systems never explore. This granular weight control gives every text element a precisely calibrated visual weight, creating hierarchy through micro-differences rather than the blunt instrument of "regular vs bold."
6
+
7
+ The page presents a fascinating duality: the interface chrome is strictly black-and-white (literally only `#000000` and `#ffffff` detected as colors), while the hero section and product showcases explode with vibrant multi-color gradients — electric greens, bright yellows, deep purples, hot pinks. This separation means the design system itself is colorless, treating the product's colorful output as the hero content. Figma's marketing page is essentially a white gallery wall displaying colorful art.
8
+
9
+ What makes Figma distinctive beyond the variable font is its circle-and-pill geometry. Buttons use 50px radius (pill) or 50% (perfect circle for icon buttons), creating an organic, tool-palette-like feel. The dashed-outline focus indicator (`dashed 2px`) is a deliberate design choice that echoes selection handles in the Figma editor itself — the website's UI language references the product's UI language.
10
+
11
+ **Key Characteristics:**
12
+ - Custom variable font (figmaSans) with unusual weight stops: 320, 330, 340, 450, 480, 540, 700
13
+ - Strictly black-and-white interface chrome — color exists only in product content
14
+ - figmaMono for uppercase technical labels with wide letter-spacing
15
+ - Pill (50px) and circular (50%) button geometry
16
+ - Dashed focus outlines echoing Figma's editor selection handles
17
+ - Vibrant multi-color hero gradients (green, yellow, purple, pink)
18
+ - OpenType `"kern"` feature enabled globally
19
+ - Negative letter-spacing throughout — even body text at -0.14px to -0.26px
20
+
21
+ ## 2. Color Palette & Roles
22
+
23
+ ### Primary
24
+ - **Pure Black** (`#000000`): All text, all solid buttons, all borders. The sole "color" of the interface.
25
+ - **Pure White** (`#ffffff`): All backgrounds, white buttons, text on dark surfaces. The other half of the binary.
26
+
27
+ *Note: Figma's marketing site uses ONLY these two colors for its interface layer. All vibrant colors appear exclusively in product screenshots, hero gradients, and embedded content.*
28
+
29
+ ### Surface & Background
30
+ - **Pure White** (`#ffffff`): Primary page background and card surfaces.
31
+ - **Glass Black** (`rgba(0, 0, 0, 0.08)`): Subtle dark overlay for secondary circular buttons and glass effects.
32
+ - **Glass White** (`rgba(255, 255, 255, 0.16)`): Frosted glass overlay for buttons on dark/colored surfaces.
33
+
34
+ ### Gradient System
35
+ - **Hero Gradient**: A vibrant multi-stop gradient using electric green, bright yellow, deep purple, and hot pink. This gradient is the visual signature of the hero section — it represents the creative possibilities of the tool.
36
+ - **Product Section Gradients**: Individual product areas (Design, Dev Mode, Prototyping) may use distinct color themes in their showcases.
37
+
38
+ ## 3. Typography Rules
39
+
40
+ ### Font Family
41
+ - **Primary**: `figmaSans`, with fallbacks: `figmaSans Fallback, SF Pro Display, system-ui, helvetica`
42
+ - **Monospace / Labels**: `figmaMono`, with fallbacks: `figmaMono Fallback, SF Mono, menlo`
43
+
44
+ ### Hierarchy
45
+
46
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
47
+ |------|------|------|--------|-------------|----------------|-------|
48
+ | Display / Hero | figmaSans | 86px (5.38rem) | 400 | 1.00 (tight) | -1.72px | Maximum impact, extreme tracking |
49
+ | Section Heading | figmaSans | 64px (4rem) | 400 | 1.10 (tight) | -0.96px | Feature section titles |
50
+ | Sub-heading | figmaSans | 26px (1.63rem) | 540 | 1.35 | -0.26px | Emphasized section text |
51
+ | Sub-heading Light | figmaSans | 26px (1.63rem) | 340 | 1.35 | -0.26px | Light-weight section text |
52
+ | Feature Title | figmaSans | 24px (1.5rem) | 700 | 1.45 | normal | Bold card headings |
53
+ | Body Large | figmaSans | 20px (1.25rem) | 330–450 | 1.30–1.40 | -0.1px to -0.14px | Descriptions, intros |
54
+ | Body / Button | figmaSans | 16px (1rem) | 330–400 | 1.40–1.45 | -0.14px to normal | Standard body, nav, buttons |
55
+ | Body Light | figmaSans | 18px (1.13rem) | 320 | 1.45 | -0.26px to normal | Light-weight body text |
56
+ | Mono Label | figmaMono | 18px (1.13rem) | 400 | 1.30 (tight) | 0.54px | Uppercase section labels |
57
+ | Mono Small | figmaMono | 12px (0.75rem) | 400 | 1.00 (tight) | 0.6px | Uppercase tiny tags |
58
+
59
+ ### Principles
60
+ - **Variable font precision**: figmaSans uses weights that most systems never touch — 320, 330, 340, 450, 480, 540. This creates hierarchy through subtle weight differences rather than dramatic jumps. The difference between 330 and 340 is nearly imperceptible but structurally significant.
61
+ - **Light as the base**: Most body text uses 320–340 (lighter than typical 400 "regular"), creating an ethereal, airy reading experience that matches the design-tool aesthetic.
62
+ - **Kern everywhere**: Every text element enables OpenType `"kern"` feature — kerning is not optional, it's structural.
63
+ - **Negative tracking by default**: Even body text uses -0.1px to -0.26px letter-spacing, creating universally tight text. Display text compresses further to -0.96px and -1.72px.
64
+ - **Mono for structure**: figmaMono in uppercase with positive letter-spacing (0.54px–0.6px) creates technical signpost labels.
65
+
66
+ ## 4. Component Stylings
67
+
68
+ ### Buttons
69
+
70
+ **Black Solid (Pill)**
71
+ - Background: Pure Black (`#000000`)
72
+ - Text: Pure White (`#ffffff`)
73
+ - Radius: circle (50%) for icon buttons
74
+ - Focus: dashed 2px outline
75
+ - Maximum emphasis
76
+
77
+ **White Pill**
78
+ - Background: Pure White (`#ffffff`)
79
+ - Text: Pure Black (`#000000`)
80
+ - Padding: 8px 18px 10px (asymmetric vertical)
81
+ - Radius: pill (50px)
82
+ - Focus: dashed 2px outline
83
+ - Standard CTA on dark/colored surfaces
84
+
85
+ **Glass Dark**
86
+ - Background: `rgba(0, 0, 0, 0.08)` (subtle dark overlay)
87
+ - Text: Pure Black
88
+ - Radius: circle (50%)
89
+ - Focus: dashed 2px outline
90
+ - Secondary action on light surfaces
91
+
92
+ **Glass Light**
93
+ - Background: `rgba(255, 255, 255, 0.16)` (frosted glass)
94
+ - Text: Pure White
95
+ - Radius: circle (50%)
96
+ - Focus: dashed 2px outline
97
+ - Secondary action on dark/colored surfaces
98
+
99
+ ### Cards & Containers
100
+ - Background: Pure White
101
+ - Border: none or minimal
102
+ - Radius: 6px (small containers), 8px (images, cards, dialogs)
103
+ - Shadow: subtle to medium elevation effects
104
+ - Product screenshots as card content
105
+
106
+ ### Navigation
107
+ - Clean horizontal nav on white
108
+ - Logo: Figma wordmark in black
109
+ - Product tabs: pill-shaped (50px) tab navigation
110
+ - Links: black text, underline 1px decoration
111
+ - CTA: Black pill button
112
+ - Hover: text color via CSS variable
113
+
114
+ ### Distinctive Components
115
+
116
+ **Product Tab Bar**
117
+ - Horizontal pill-shaped tabs (50px radius)
118
+ - Each tab represents a Figma product area (Design, Dev Mode, Prototyping, etc.)
119
+ - Active tab highlighted
120
+
121
+ **Hero Gradient Section**
122
+ - Full-width vibrant multi-color gradient background
123
+ - White text overlay with 86px display heading
124
+ - Product screenshots floating within the gradient
125
+
126
+ **Dashed Focus Indicators**
127
+ - All interactive elements use `dashed 2px` outline on focus
128
+ - References the selection handles in the Figma editor
129
+ - A meta-design choice connecting website and product
130
+
131
+ ## 5. Layout Principles
132
+
133
+ ### Spacing System
134
+ - Base unit: 8px
135
+ - Scale: 1px, 2px, 4px, 4.5px, 8px, 10px, 12px, 16px, 18px, 24px, 32px, 40px, 46px, 48px, 50px
136
+
137
+ ### Grid & Container
138
+ - Max container width: up to 1920px
139
+ - Hero: full-width gradient with centered content
140
+ - Product sections: alternating showcases
141
+ - Footer: dark full-width section
142
+ - Responsive from 559px to 1920px
143
+
144
+ ### Whitespace Philosophy
145
+ - **Gallery-like pacing**: Generous spacing lets each product section breathe as its own exhibit.
146
+ - **Color sections as visual breathing**: The gradient hero and product showcases provide chromatic relief between the monochrome interface sections.
147
+
148
+ ### Border Radius Scale
149
+ - Minimal (2px): Small link elements
150
+ - Subtle (6px): Small containers, dividers
151
+ - Comfortable (8px): Cards, images, dialogs
152
+ - Pill (50px): Tab buttons, CTAs
153
+ - Circle (50%): Icon buttons, circular elements
154
+
155
+ ## 6. Depth & Elevation
156
+
157
+ | Level | Treatment | Use |
158
+ |-------|-----------|-----|
159
+ | Flat (Level 0) | No shadow | Page background, most text |
160
+ | Surface (Level 1) | White card on gradient/dark section | Cards, product showcases |
161
+ | Elevated (Level 2) | Subtle shadow | Floating cards, hover states |
162
+
163
+ **Shadow Philosophy**: Figma uses shadows sparingly. The primary depth mechanisms are **background contrast** (white content on colorful/dark sections) and the inherent dimensionality of the product screenshots themselves.
164
+
165
+ ## 7. Do's and Don'ts
166
+
167
+ ### Do
168
+ - Use figmaSans with precise variable weights (320–540) — the granular weight control IS the design
169
+ - Keep the interface strictly black-and-white — color comes from product content only
170
+ - Use pill (50px) and circular (50%) geometry for all interactive elements
171
+ - Apply dashed 2px focus outlines — the signature accessibility pattern
172
+ - Enable `"kern"` feature on all text
173
+ - Use figmaMono in uppercase with positive letter-spacing for labels
174
+ - Apply negative letter-spacing throughout (-0.1px to -1.72px)
175
+
176
+ ### Don't
177
+ - Don't add interface colors — the monochrome palette is absolute
178
+ - Don't use standard font weights (400, 500, 600, 700) — use the variable font's unique stops (320, 330, 340, 450, 480, 540)
179
+ - Don't use sharp corners on buttons — pill and circular geometry only
180
+ - Don't use solid focus outlines — dashed is the signature
181
+ - Don't increase body font weight above 450 — the light-weight aesthetic is core
182
+ - Don't use positive letter-spacing on body text — it's always negative
183
+
184
+ ## 8. Responsive Behavior
185
+
186
+ ### Breakpoints
187
+ | Name | Width | Key Changes |
188
+ |------|-------|-------------|
189
+ | Small Mobile | <560px | Compact layout, stacked |
190
+ | Tablet | 560–768px | Minor adjustments |
191
+ | Small Desktop | 768–960px | 2-column layouts |
192
+ | Desktop | 960–1280px | Standard layout |
193
+ | Large Desktop | 1280–1440px | Expanded |
194
+ | Ultra-wide | 1440–1920px | Maximum width |
195
+
196
+ ### Collapsing Strategy
197
+ - Hero text: 86px → 64px → 48px
198
+ - Product tabs: horizontal scroll on mobile
199
+ - Feature sections: stacked single column
200
+ - Footer: multi-column → stacked
201
+
202
+ ## 9. Agent Prompt Guide
203
+
204
+ ### Quick Color Reference
205
+ - Everything: "Pure Black (#000000)" and "Pure White (#ffffff)"
206
+ - Glass Dark: "rgba(0, 0, 0, 0.08)"
207
+ - Glass Light: "rgba(255, 255, 255, 0.16)"
208
+
209
+ ### Example Component Prompts
210
+ - "Create a hero on a vibrant multi-color gradient (green, yellow, purple, pink). Headline at 86px figmaSans weight 400, line-height 1.0, letter-spacing -1.72px. White text. White pill CTA button (50px radius, 8px 18px padding)."
211
+ - "Design a product tab bar with pill-shaped buttons (50px radius). Active: Black bg, white text. Inactive: transparent, black text. figmaSans at 20px weight 480."
212
+ - "Build a section label: figmaMono 18px, uppercase, letter-spacing 0.54px, black text. Kern enabled."
213
+ - "Create body text at 20px figmaSans weight 330, line-height 1.40, letter-spacing -0.14px. Pure Black on white."
214
+
215
+ ### Iteration Guide
216
+ 1. Use variable font weight stops precisely: 320, 330, 340, 450, 480, 540, 700
217
+ 2. Interface is always black + white — never add colors to chrome
218
+ 3. Dashed focus outlines, not solid
219
+ 4. Letter-spacing is always negative on body, always positive on mono labels
220
+ 5. Pill (50px) for buttons/tabs, circle (50%) for icon buttons
@@ -0,0 +1,246 @@
1
+ # Design System: Framer
2
+
3
+ ## 1. Visual Theme & Atmosphere
4
+
5
+ Framer's website is a cinematic, tool-obsessed dark canvas that radiates the confidence of a design tool built by designers who worship craft. The entire experience is drenched in pure black — not a warm charcoal or a cozy dark gray, but an absolute void (`#000000`) that makes every element, every screenshot, every typographic flourish feel like it's floating in deep space. This is a website that treats its own product UI as the hero art, embedding full-fidelity screenshots and interactive demos directly into the narrative flow.
6
+
7
+ The typography is the signature move: GT Walsheim with aggressively tight letter-spacing (as extreme as -5.5px on 110px display text) creates headlines that feel compressed, kinetic, almost spring-loaded — like words under pressure that might expand at any moment. The transition to Inter for body text is seamless, with extensive OpenType feature usage (`cv01`, `cv05`, `cv09`, `cv11`, `ss03`, `ss07`) that gives even small text a refined, custom feel. Framer Blue (`#0099ff`) is deployed sparingly but decisively — as link color, border accents, and subtle ring shadows — creating a cold, electric throughline against the warm-less black.
8
+
9
+ The overall effect is a nightclub for web designers: dark, precise, seductive, and unapologetically product-forward. Every section exists to showcase what the tool can do, with the website itself serving as proof of concept.
10
+
11
+ **Key Characteristics:**
12
+ - Pure black (`#000000`) void canvas — absolute dark, not warm or gray-tinted
13
+ - GT Walsheim display font with extreme negative letter-spacing (-5.5px at 110px)
14
+ - Framer Blue (`#0099ff`) as the sole accent color — cold, electric, precise
15
+ - Pill-shaped buttons (40px–100px radius) — no sharp corners on interactive elements
16
+ - Product screenshots as hero art — the tool IS the marketing
17
+ - Frosted glass button variants using `rgba(255, 255, 255, 0.1)` on dark surfaces
18
+ - Extensive OpenType feature usage across Inter for refined micro-typography
19
+
20
+ ## 2. Color Palette & Roles
21
+
22
+ ### Primary
23
+ - **Pure Black** (`#000000`): Primary background, the void canvas that defines Framer's dark-first identity
24
+ - **Pure White** (`#ffffff`): Primary text color on dark surfaces, button text on accent backgrounds
25
+ - **Framer Blue** (`#0099ff`): Primary accent color — links, borders, ring shadows, interactive highlights
26
+
27
+ ### Secondary & Accent
28
+ - **Muted Silver** (`#a6a6a6`): Secondary text, subdued labels, dimmed descriptions on dark surfaces
29
+ - **Near Black** (`#090909`): Elevated dark surface, shadow ring color for subtle depth separation
30
+
31
+ ### Surface & Background
32
+ - **Void Black** (`#000000`): Page background, primary canvas
33
+ - **Frosted White** (`rgba(255, 255, 255, 0.1)`): Translucent button backgrounds, glass-effect surfaces on dark
34
+ - **Subtle White** (`rgba(255, 255, 255, 0.5)`): Slightly more opaque frosted elements for hover states
35
+
36
+ ### Neutrals & Text
37
+ - **Pure White** (`#ffffff`): Heading text, high-emphasis body text
38
+ - **Muted Silver** (`#a6a6a6`): Body text, descriptions, secondary information
39
+ - **Ghost White** (`rgba(255, 255, 255, 0.6)`): Tertiary text, placeholders on dark surfaces
40
+
41
+ ### Semantic & Accent
42
+ - **Framer Blue** (`#0099ff`): Links, interactive borders, focus rings
43
+ - **Blue Glow** (`rgba(0, 153, 255, 0.15)`): Focus ring shadow, subtle blue halo around interactive elements
44
+ - **Default Link Blue** (`#0000ee`): Standard browser link color (used sparingly in content areas)
45
+
46
+ ### Gradient System
47
+ - No prominent gradient usage — Framer relies on pure flat black surfaces with occasional blue-tinted glows for depth
48
+ - Subtle radial glow effects behind product screenshots using Framer Blue at very low opacity
49
+
50
+ ## 3. Typography Rules
51
+
52
+ ### Font Family
53
+ - **Display**: `GT Walsheim Framer Medium` / `GT Walsheim Medium` — custom geometric sans-serif, weight 500. Fallbacks: `GT Walsheim Framer Medium Placeholder`, system sans-serif
54
+ - **Body/UI**: `Inter Variable` / `Inter` — variable sans-serif with extensive OpenType features. Fallbacks: `Inter Placeholder`, `-apple-system`, `system-ui`
55
+ - **Accent**: `Mona Sans` — GitHub's open-source font, used for select elements at ultra-light weight (100)
56
+ - **Monospace**: `Azeret Mono` — companion mono for code and technical labels
57
+ - **Rounded**: `Open Runde` — small rounded companion font for micro-labels
58
+
59
+ ### Hierarchy
60
+
61
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
62
+ |------|------|------|--------|-------------|----------------|-------|
63
+ | Display Hero | GT Walsheim Framer Medium | 110px | 500 | 0.85 | -5.5px | Extreme negative tracking, compressed impact |
64
+ | Section Display | GT Walsheim Medium | 85px | 500 | 0.95 | -4.25px | OpenType: ss02, tnum |
65
+ | Section Heading | GT Walsheim Medium | 62px | 500 | 1.00 | -3.1px | OpenType: ss02 |
66
+ | Feature Heading | GT Walsheim Medium | 32px | 500 | 1.13 | -1px | Tightest of the smaller headings |
67
+ | Accent Display | Mona Sans | 61.5px | 100 | 1.00 | -3.1px | Ultra-light weight, ethereal |
68
+ | Card Title | Inter Variable | 24px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |
69
+ | Feature Title | Inter | 22px | 700 | 1.20 | -0.8px | OpenType: cv05 |
70
+ | Sub-heading | Inter | 20px | 600 | 1.20 | -0.8px | OpenType: cv01, cv09 |
71
+ | Body Large | Inter Variable | 18px | 400 | 1.30 | -0.01px | OpenType: cv01, cv05, cv09, cv11, ss03, ss07 |
72
+ | Body | Inter Variable | 15px | 400 | 1.30 | -0.01px | OpenType: cv11 |
73
+ | Nav/UI | Inter Variable | 15px | 400 | 1.00 | -0.15px | OpenType: cv06, cv11, dlig, ss03 |
74
+ | Body Readable | Inter Framer Regular | 14px | 400 | 1.60 | normal | Long-form body text |
75
+ | Caption | Inter Variable | 14px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |
76
+ | Label | Inter | 13px | 500 | 1.60 | normal | OpenType: cv06, cv11, ss03 |
77
+ | Small Caption | Inter Variable | 12px | 400 | 1.40 | normal | OpenType: cv01, cv06, cv09, cv11, ss03, ss07 |
78
+ | Micro Code | Azeret Mono | 10.4px | 400 | 1.60 | normal | OpenType: cv06, cv11, ss03 |
79
+ | Badge | Open Runde | 9px | 600 | 1.11 | normal | OpenType: cv01, cv09 |
80
+ | Micro Uppercase | Inter Variable | 7px | 400 | 1.00 | 0.21px | uppercase transform |
81
+
82
+ ### Principles
83
+ - **Compression as personality**: GT Walsheim's extreme negative letter-spacing (-5.5px at 110px) is the defining typographic gesture — headlines feel spring-loaded, urgent, almost breathless
84
+ - **OpenType maximalism**: Inter is deployed with 6+ OpenType features simultaneously (`cv01`, `cv05`, `cv09`, `cv11`, `ss03`, `ss07`), creating a subtly custom feel even at body sizes
85
+ - **Weight restraint on display**: All GT Walsheim usage is weight 500 (medium) — never bold, never regular. This creates a confident-but-not-aggressive display tone
86
+ - **Ultra-tight line heights**: Display text at 0.85 line-height means letters nearly overlap vertically — intentional density that rewards reading at arm's length
87
+
88
+ ## 4. Component Stylings
89
+
90
+ ### Buttons
91
+ - **Frosted Pill**: `rgba(255, 255, 255, 0.1)` background, black text (`#000000`), pill shape (40px radius). The glass-effect button that lives on dark surfaces — translucent, ambient, subtle
92
+ - **Solid White Pill**: `rgb(255, 255, 255)` background, black text (`#000000`), full pill shape (100px radius), padding `10px 15px`. The primary CTA — clean, high-contrast on dark, unmissable
93
+ - **Ghost**: No visible background, white text, relies on text styling alone. Hover reveals subtle frosted background
94
+ - **Transition**: Scale-based animations (matrix transform with 0.85 scale factor), opacity transitions for reveal effects
95
+
96
+ ### Cards & Containers
97
+ - **Dark Surface Card**: Black or near-black (`#090909`) background, `rgba(0, 153, 255, 0.15) 0px 0px 0px 1px` blue ring shadow border, rounded corners (10px–15px radius)
98
+ - **Elevated Card**: Multi-layer shadow — `rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px` (subtle top highlight) + `rgba(0, 0, 0, 0.25) 0px 10px 30px` (deep ambient shadow)
99
+ - **Product Screenshots**: Full-width or padded within dark containers, 8px–12px border-radius for software UI previews
100
+ - **Hover**: Subtle glow increase on Framer Blue ring shadow, or brightness shift on frosted surfaces
101
+
102
+ ### Inputs & Forms
103
+ - Minimal form presence on the marketing site
104
+ - Input fields follow dark theme: dark background, subtle border, white text
105
+ - Focus state: Framer Blue (`#0099ff`) ring border, `1px solid #0099ff`
106
+ - Placeholder text in `rgba(255, 255, 255, 0.4)`
107
+
108
+ ### Navigation
109
+ - **Dark floating nav bar**: Black background with frosted glass effect, white text links
110
+ - **Nav links**: Inter at 15px, weight 400, white text with subtle hover opacity change
111
+ - **CTA button**: Pill-shaped, white or frosted, positioned at right end of nav
112
+ - **Mobile**: Collapses to hamburger menu, maintains dark theme
113
+ - **Sticky behavior**: Nav remains fixed at top on scroll
114
+
115
+ ### Image Treatment
116
+ - **Product screenshots as hero art**: Full-width embedded UI screenshots with rounded corners (8px–12px)
117
+ - **Dark-on-dark composition**: Screenshots placed on black backgrounds with subtle shadow for depth separation
118
+ - **16:9 and custom aspect ratios**: Product demos fill their containers
119
+ - **No decorative imagery**: All images are functional — showing the tool, the output, or the workflow
120
+
121
+ ### Trust & Social Proof
122
+ - Customer logos and testimonials in muted gray on dark surfaces
123
+ - Minimal ornamentation — the product screenshots serve as the trust signal
124
+
125
+ ## 5. Layout Principles
126
+
127
+ ### Spacing System
128
+ - **Base unit**: 8px
129
+ - **Scale**: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 15px, 20px, 30px, 35px
130
+ - **Section padding**: Large vertical spacing (80px–120px between sections)
131
+ - **Card padding**: 15px–30px internal padding
132
+ - **Component gaps**: 8px–20px between related elements
133
+
134
+ ### Grid & Container
135
+ - **Max width**: ~1200px container, centered
136
+ - **Column patterns**: Full-width hero, 2-column feature sections, single-column product showcases
137
+ - **Asymmetric layouts**: Feature sections often pair text (40%) with screenshot (60%)
138
+
139
+ ### Whitespace Philosophy
140
+ - **Breathe through darkness**: Generous vertical spacing between sections — the black background means whitespace manifests as void, creating dramatic pauses between content blocks
141
+ - **Dense within, spacious between**: Individual components are tightly composed (tight line-heights, compressed text) but float in generous surrounding space
142
+ - **Product-first density**: Screenshot areas are allowed to be dense and information-rich, contrasting with the sparse marketing text
143
+
144
+ ### Border Radius Scale
145
+ - **1px**: Micro-elements, nearly squared precision edges
146
+ - **5px–7px**: Small UI elements, image thumbnails — subtly softened
147
+ - **8px**: Standard component radius — code blocks, buttons, interactive elements
148
+ - **10px–12px**: Cards, product screenshots — comfortably rounded
149
+ - **15px–20px**: Large containers, feature cards — generously rounded
150
+ - **30px–40px**: Navigation pills, pagination — noticeably rounded
151
+ - **100px**: Full pill shape — primary CTAs, tag elements
152
+
153
+ ## 6. Depth & Elevation
154
+
155
+ | Level | Treatment | Use |
156
+ |-------|-----------|-----|
157
+ | Level 0 (Flat) | No shadow, pure black surface | Page background, empty areas |
158
+ | Level 1 (Ring) | `rgba(0, 153, 255, 0.15) 0px 0px 0px 1px` | Card borders, interactive element outlines — Framer Blue glow ring |
159
+ | Level 2 (Contained) | `rgb(9, 9, 9) 0px 0px 0px 2px` | Near-black ring for subtle containment on dark surfaces |
160
+ | Level 3 (Floating) | `rgba(255, 255, 255, 0.1) 0px 0.5px 0px 0.5px, rgba(0, 0, 0, 0.25) 0px 10px 30px` | Elevated cards, floating elements — subtle white top-edge highlight + deep ambient shadow |
161
+
162
+ ### Shadow Philosophy
163
+ Framer's elevation system is inverted from traditional light-theme designs. Instead of darker shadows on light backgrounds, Framer uses:
164
+ - **Blue-tinted ring shadows** at very low opacity (0.15) for containment — a signature move that subtly brands every bordered element
165
+ - **White edge highlights** (0.5px) on the top edge of elevated elements — simulating light hitting the top surface
166
+ - **Deep ambient shadows** for true floating elements — `rgba(0, 0, 0, 0.25)` at large spread (30px)
167
+
168
+ ### Decorative Depth
169
+ - **Blue glow auras**: Subtle Framer Blue (`#0099ff`) radial gradients behind key interactive areas
170
+ - **No background blur/glassmorphism**: Despite the frosted button effect, there's no heavy glass blur usage — the translucency is achieved through simple rgba opacity
171
+
172
+ ## 7. Do's and Don'ts
173
+
174
+ ### Do
175
+ - Use pure black (`#000000`) as the primary background — not dark gray, not charcoal
176
+ - Apply extreme negative letter-spacing on GT Walsheim display text (-3px to -5.5px)
177
+ - Keep all buttons pill-shaped (40px+ radius) — never use squared or slightly-rounded buttons
178
+ - Use Framer Blue (`#0099ff`) exclusively for interactive accents — links, borders, focus states
179
+ - Deploy `rgba(255, 255, 255, 0.1)` for frosted glass surfaces on dark backgrounds
180
+ - Maintain GT Walsheim at weight 500 only — the medium weight IS the brand
181
+ - Use extensive OpenType features on Inter text (cv01, cv05, cv09, cv11, ss03, ss07)
182
+ - Let product screenshots be the visual centerpiece — the tool markets itself
183
+ - Apply blue ring shadows (`rgba(0, 153, 255, 0.15) 0px 0px 0px 1px`) for card containment
184
+
185
+ ### Don't
186
+ - Use warm dark backgrounds (no `#1a1a1a`, `#2d2d2d`, or brownish blacks)
187
+ - Apply bold (700+) weight to GT Walsheim display text — medium 500 only
188
+ - Introduce additional accent colors beyond Framer Blue — this is a one-accent-color system
189
+ - Use large border-radius on non-interactive elements (cards use 10px–15px, only buttons get 40px+)
190
+ - Add decorative imagery, illustrations, or icons — the product IS the illustration
191
+ - Use positive letter-spacing on headlines — everything is compressed, negative tracking
192
+ - Create heavy drop shadows — depth is communicated through subtle rings and minimal ambients
193
+ - Place light/white backgrounds behind content sections — the void is sacred
194
+ - Use serif or display-weight fonts — the system is geometric sans-serif only
195
+
196
+ ## 8. Responsive Behavior
197
+
198
+ ### Breakpoints
199
+ | Name | Width | Key Changes |
200
+ |------|-------|-------------|
201
+ | Mobile | <809px | Single column, stacked feature sections, reduced hero text (62px→40px), hamburger nav |
202
+ | Tablet | 809px–1199px | 2-column features begin, nav links partially visible, screenshots scale down |
203
+ | Desktop | >1199px | Full layout, expanded nav with all links + CTA, 110px display hero, side-by-side features |
204
+
205
+ ### Touch Targets
206
+ - Pill buttons: minimum 40px height with 10px vertical padding — exceeds 44px WCAG minimum
207
+ - Nav links: 15px text with generous padding for touch accessibility
208
+ - Mobile CTA buttons: Full-width pills on mobile for easy thumb reach
209
+
210
+ ### Collapsing Strategy
211
+ - **Navigation**: Full horizontal nav → hamburger menu at mobile breakpoint
212
+ - **Hero text**: 110px display → 85px → 62px → ~40px across breakpoints, maintaining extreme negative tracking proportionally
213
+ - **Feature sections**: Side-by-side (text + screenshot) → stacked vertically on mobile
214
+ - **Product screenshots**: Scale responsively within containers, maintaining aspect ratios
215
+ - **Section spacing**: Reduces proportionally — 120px desktop → 60px mobile
216
+
217
+ ### Image Behavior
218
+ - Product screenshots are responsive, scaling within their container boundaries
219
+ - No art direction changes — same crops across breakpoints
220
+ - Dark background ensures screenshots maintain visual impact at any size
221
+ - Screenshots lazy-load as user scrolls into view
222
+
223
+ ## 9. Agent Prompt Guide
224
+
225
+ ### Quick Color Reference
226
+ - Primary Background: Void Black (`#000000`)
227
+ - Primary Text: Pure White (`#ffffff`)
228
+ - Accent/CTA: Framer Blue (`#0099ff`)
229
+ - Secondary Text: Muted Silver (`#a6a6a6`)
230
+ - Frosted Surface: Translucent White (`rgba(255, 255, 255, 0.1)`)
231
+ - Elevation Ring: Blue Glow (`rgba(0, 153, 255, 0.15)`)
232
+
233
+ ### Example Component Prompts
234
+ - "Create a hero section on pure black background with 110px GT Walsheim heading in white, letter-spacing -5.5px, line-height 0.85, and a pill-shaped white CTA button (100px radius) with black text"
235
+ - "Design a feature card on black background with a 1px Framer Blue ring shadow border (rgba(0,153,255,0.15)), 12px border-radius, white heading in Inter at 22px weight 700, and muted silver (a6a6a6) body text"
236
+ - "Build a navigation bar with black background, white Inter text links at 15px, and a frosted pill button (rgba(255,255,255,0.1) background, 40px radius) as the CTA"
237
+ - "Create a product showcase section with a full-width screenshot embedded on black, 10px border-radius, subtle multi-layer shadow (white 0.5px top highlight + rgba(0,0,0,0.25) 30px ambient)"
238
+ - "Design a pricing card using pure black surface, Framer Blue (#0099ff) accent for the selected plan border, white text hierarchy (24px Inter bold heading, 14px regular body), and a solid white pill CTA button"
239
+
240
+ ### Iteration Guide
241
+ When refining existing screens generated with this design system:
242
+ 1. Focus on ONE component at a time — the dark canvas makes each element precious
243
+ 2. Always verify letter-spacing on GT Walsheim headings — the extreme negative tracking is non-negotiable
244
+ 3. Check that Framer Blue appears ONLY on interactive elements — never as decorative background or text color for non-links
245
+ 4. Ensure all buttons are pill-shaped — any squared corner immediately breaks the Framer aesthetic
246
+ 5. Test frosted glass surfaces by checking they have exactly `rgba(255, 255, 255, 0.1)` — too opaque looks like a bug, too transparent disappears