glyph-ai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +69 -0
  2. package/bundled/overlay/overlay.js +63 -0
  3. package/bundled/server/context/brand-references.d.ts +7 -0
  4. package/bundled/server/context/brand-references.d.ts.map +1 -0
  5. package/bundled/server/context/brand-references.js +20 -0
  6. package/bundled/server/context/brand-references.js.map +1 -0
  7. package/bundled/server/context/design-philosophy.d.ts +6 -0
  8. package/bundled/server/context/design-philosophy.d.ts.map +1 -0
  9. package/bundled/server/context/design-philosophy.js +82 -0
  10. package/bundled/server/context/design-philosophy.js.map +1 -0
  11. package/bundled/server/context/design-system-loader.d.ts +11 -0
  12. package/bundled/server/context/design-system-loader.d.ts.map +1 -0
  13. package/bundled/server/context/design-system-loader.js +169 -0
  14. package/bundled/server/context/design-system-loader.js.map +1 -0
  15. package/bundled/server/context/design-system.d.ts +7 -0
  16. package/bundled/server/context/design-system.d.ts.map +1 -0
  17. package/bundled/server/context/design-system.js +75 -0
  18. package/bundled/server/context/design-system.js.map +1 -0
  19. package/bundled/server/context/prompt-builder.d.ts +15 -0
  20. package/bundled/server/context/prompt-builder.d.ts.map +1 -0
  21. package/bundled/server/context/prompt-builder.js +123 -0
  22. package/bundled/server/context/prompt-builder.js.map +1 -0
  23. package/bundled/server/context/token-template.d.ts +36 -0
  24. package/bundled/server/context/token-template.d.ts.map +1 -0
  25. package/bundled/server/context/token-template.js +226 -0
  26. package/bundled/server/context/token-template.js.map +1 -0
  27. package/bundled/server/data/design-systems/apple-design-system.md +474 -0
  28. package/bundled/server/data/design-systems/arc-design-system.md +922 -0
  29. package/bundled/server/data/design-systems/claude-ai-design-system.md +1443 -0
  30. package/bundled/server/data/design-systems/elevenlabs-design-system.md +669 -0
  31. package/bundled/server/data/design-systems/generating_design.md +9 -0
  32. package/bundled/server/data/design-systems/linear-design-system.md +607 -0
  33. package/bundled/server/data/design-systems/notion-design-system.md +866 -0
  34. package/bundled/server/data/design-systems/raycast-design-system.md +709 -0
  35. package/bundled/server/data/design-systems/stripe-design-system.md +592 -0
  36. package/bundled/server/data/design-systems/vercel-design-system.md +824 -0
  37. package/bundled/server/data/design.md +971 -0
  38. package/bundled/server/index.d.ts +2 -0
  39. package/bundled/server/index.d.ts.map +1 -0
  40. package/bundled/server/index.js +310 -0
  41. package/bundled/server/index.js.map +1 -0
  42. package/bundled/server/mcp/tools/apply-variation.d.ts +3 -0
  43. package/bundled/server/mcp/tools/apply-variation.d.ts.map +1 -0
  44. package/bundled/server/mcp/tools/apply-variation.js +43 -0
  45. package/bundled/server/mcp/tools/apply-variation.js.map +1 -0
  46. package/bundled/server/mcp/tools/generate-variations.d.ts +3 -0
  47. package/bundled/server/mcp/tools/generate-variations.d.ts.map +1 -0
  48. package/bundled/server/mcp/tools/generate-variations.js +58 -0
  49. package/bundled/server/mcp/tools/generate-variations.js.map +1 -0
  50. package/bundled/server/mcp/tools/index.d.ts +3 -0
  51. package/bundled/server/mcp/tools/index.d.ts.map +1 -0
  52. package/bundled/server/mcp/tools/index.js +11 -0
  53. package/bundled/server/mcp/tools/index.js.map +1 -0
  54. package/bundled/server/mcp/tools/scan-design-system.d.ts +3 -0
  55. package/bundled/server/mcp/tools/scan-design-system.d.ts.map +1 -0
  56. package/bundled/server/mcp/tools/scan-design-system.js +27 -0
  57. package/bundled/server/mcp/tools/scan-design-system.js.map +1 -0
  58. package/bundled/server/mcp/tools/submit-variations.d.ts +3 -0
  59. package/bundled/server/mcp/tools/submit-variations.d.ts.map +1 -0
  60. package/bundled/server/mcp/tools/submit-variations.js +50 -0
  61. package/bundled/server/mcp/tools/submit-variations.js.map +1 -0
  62. package/bundled/server/mcp-entry.d.ts +2 -0
  63. package/bundled/server/mcp-entry.d.ts.map +1 -0
  64. package/bundled/server/mcp-entry.js +56 -0
  65. package/bundled/server/mcp-entry.js.map +1 -0
  66. package/bundled/server/preview/css-resolver.d.ts +6 -0
  67. package/bundled/server/preview/css-resolver.d.ts.map +1 -0
  68. package/bundled/server/preview/css-resolver.js +57 -0
  69. package/bundled/server/preview/css-resolver.js.map +1 -0
  70. package/bundled/server/preview/html-builder.d.ts +6 -0
  71. package/bundled/server/preview/html-builder.d.ts.map +1 -0
  72. package/bundled/server/preview/html-builder.js +85 -0
  73. package/bundled/server/preview/html-builder.js.map +1 -0
  74. package/bundled/server/telemetry.d.ts +4 -0
  75. package/bundled/server/telemetry.d.ts.map +1 -0
  76. package/bundled/server/telemetry.js +71 -0
  77. package/bundled/server/telemetry.js.map +1 -0
  78. package/bundled/server/types.d.ts +69 -0
  79. package/bundled/server/types.d.ts.map +1 -0
  80. package/bundled/server/types.js +2 -0
  81. package/bundled/server/types.js.map +1 -0
  82. package/bundled/server/variations/file-writer.d.ts +5 -0
  83. package/bundled/server/variations/file-writer.d.ts.map +1 -0
  84. package/bundled/server/variations/file-writer.js +29 -0
  85. package/bundled/server/variations/file-writer.js.map +1 -0
  86. package/bundled/server/variations/git-utils.d.ts +3 -0
  87. package/bundled/server/variations/git-utils.d.ts.map +1 -0
  88. package/bundled/server/variations/git-utils.js +23 -0
  89. package/bundled/server/variations/git-utils.js.map +1 -0
  90. package/bundled/server/variations/store.d.ts +11 -0
  91. package/bundled/server/variations/store.d.ts.map +1 -0
  92. package/bundled/server/variations/store.js +52 -0
  93. package/bundled/server/variations/store.js.map +1 -0
  94. package/dist/commands/init.d.ts +2 -0
  95. package/dist/commands/init.d.ts.map +1 -0
  96. package/dist/commands/init.js +299 -0
  97. package/dist/commands/init.js.map +1 -0
  98. package/dist/commands/stop.d.ts +2 -0
  99. package/dist/commands/stop.d.ts.map +1 -0
  100. package/dist/commands/stop.js +32 -0
  101. package/dist/commands/stop.js.map +1 -0
  102. package/dist/index.d.ts +3 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +35 -0
  105. package/dist/index.js.map +1 -0
  106. package/package.json +35 -0
@@ -0,0 +1,709 @@
1
+ # Raycast.com Design System & Section Boilerplate
2
+
3
+ ## Design System
4
+
5
+ ### Colors
6
+
7
+ | Role | Value | CSS Variable |
8
+ |------|-------|-------------|
9
+ | **Primary** | `#FF6363` (Red/Coral) | `--color-red: hsl(0,100%,69%)` |
10
+ | **Secondary** | `#56C2FF` (Blue) | `--color-blue: hsl(202,100%,67%)` |
11
+ | **Tertiary** | `hsl(43,100%,60%)` (Yellow/Gold) | `--color-yellow` |
12
+ | **Accent Green** | `hsl(151,59%,59%)` | `--color-green` |
13
+ | **Background** | `#07080A` | `--grey-900` / `--background` |
14
+ | **Surface 100** | `rgb(16,17,17)` | `--color-bg-100` |
15
+ | **Surface 200** | `rgb(24,25,26)` | `--color-bg-200` |
16
+ | **Surface 300** | `rgb(49,49,51)` | `--color-bg-300` |
17
+ | **Surface 400** | `rgb(73,75,77)` | `--color-bg-400` |
18
+ | **Foreground** | `hsl(240,11%,96%)` (~white) | `--color-fg` |
19
+ | **Foreground Muted** | `rgb(194,199,202)` | `--color-fg-200` |
20
+ | **Foreground Subtle** | `#78787C` | `--color-fg-300` |
21
+ | **Foreground Dimmed** | `rgb(94,99,102)` | `--color-fg-400` |
22
+ | **Border** | `hsl(195,5%,15%)` | `--color-border` |
23
+ | **Border Subtle** | `rgba(255,255,255,0.06)` | Used on cards/nav |
24
+ | **Button BG** | `hsla(0,0%,100%,0.815)` | `--color-button-bg` |
25
+ | **Button BG Hover** | `hsl(0,0%,100%)` | `--color-button-bg-hover` |
26
+ | **Button FG** | `rgb(24,25,26)` | `--color-button-fg` |
27
+
28
+ #### Grey Scale
29
+
30
+ | Token | Value |
31
+ |-------|-------|
32
+ | `--grey-50` | `#E6E6E6` |
33
+ | `--grey-100` | `#CDCECE` |
34
+ | `--grey-200` | `#9C9C9D` |
35
+ | `--grey-300` | `#6A6B6C` |
36
+ | `--grey-400` | `#434345` |
37
+ | `--grey-500` | `#2F3031` |
38
+ | `--grey-600` | `#1B1C1E` |
39
+ | `--grey-700` | `#111214` |
40
+ | `--grey-800` | `#0C0D0F` |
41
+ | `--grey-900` | `#07080A` |
42
+
43
+ ### Typography
44
+
45
+ | Role | Font | Size | Weight | Line Height | Letter Spacing | Color |
46
+ |------|------|------|--------|-------------|----------------|-------|
47
+ | **H1 (Hero)** | Inter | 64px | 600 (SemiBold) | 1.1 (70.4px) | normal | `#FFFFFF` |
48
+ | **H2 (Section Title)** | Inter | 20px | 500 (Medium) | normal | 0.2px | `#FFFFFF` |
49
+ | **H3 (Large Display)** | Inter | 56px | 400 (Regular) | normal | 0.2px | `#FFFFFF` |
50
+ | **H4 (Card Title)** | Inter | 24px | 500 (Medium) | normal | 0.2px | `#FFFFFF` |
51
+ | **Body** | Inter | 18px | 400 (Regular) | normal | normal | `#FFFFFF` |
52
+ | **Body Small** | Inter | 14px | 500 (Medium) | normal | normal | `#9C9C9D` |
53
+ | **Subtitle** | Inter | 20px | 500 (Medium) | normal | normal | `#6A6B6C` |
54
+ | **Label/Nav** | Inter | 14px | 500 (Medium) | normal | normal | `#9C9C9D` |
55
+ | **Monospace** | GeistMono / JetBrains Mono | 12px | 400 | normal | normal | `#9C9C9D` |
56
+ | **Font Stack** | `Inter, "Inter Fallback", sans-serif` | | | | | |
57
+ | **Mono Stack** | `GeistMono, ui-monospace, SFMono-Regular, "Roboto Mono", Menlo, Monaco, Courier, monospace` | | | | | |
58
+
59
+ ### Buttons
60
+
61
+ #### Primary Button (Download/CTA)
62
+ ```
63
+ background: rgb(230, 230, 230) /* ~#E6E6E6, near-white */
64
+ color: rgb(47, 48, 49) /* dark grey text */
65
+ border-radius: 8px
66
+ padding: 8px 12px
67
+ font-size: 14px
68
+ font-weight: 500
69
+ border: none
70
+ icon: platform icon (Apple/Windows) left-aligned
71
+ hover: background transitions to pure white
72
+ ```
73
+
74
+ #### Ghost/Nav Link
75
+ ```
76
+ background: transparent
77
+ color: rgb(156, 156, 157) /* #9C9C9D */
78
+ border-radius: 6px
79
+ padding: 12px 8px
80
+ font-size: 14px
81
+ font-weight: 500
82
+ border: none
83
+ hover: color transitions to white
84
+ ```
85
+
86
+ #### Pill Button (Announcement Banner)
87
+ ```
88
+ background: rgb(19, 13, 14) /* very dark, near-black */
89
+ color: #FFFFFF
90
+ border-radius: 1000px /* full pill */
91
+ padding: 4px 12px
92
+ font-size: 14px
93
+ font-weight: 500
94
+ border: subtle gradient or border
95
+ ```
96
+
97
+ #### Subscribe Button
98
+ ```
99
+ background: rgb(230, 230, 230)
100
+ color: rgb(47, 48, 49)
101
+ border-radius: 8px
102
+ padding: 8px 12px
103
+ font-size: 14px
104
+ font-weight: 500
105
+ ```
106
+
107
+ ### Input Fields
108
+
109
+ #### Email Input (Newsletter)
110
+ ```
111
+ background: rgba(255, 255, 255, 0.05)
112
+ color: #FFFFFF
113
+ border: 1px solid rgba(255, 255, 255, 0.05)
114
+ border-radius: 8px
115
+ padding: 8px 12px
116
+ font-size: 14px
117
+ height: 42px
118
+ placeholder-color: muted grey
119
+ ```
120
+
121
+ ### Spacing Scale
122
+
123
+ | Token | Value |
124
+ |-------|-------|
125
+ | `--spacing-0-5` | 4px |
126
+ | `--spacing-1` | 8px |
127
+ | `--spacing-1-5` | 12px |
128
+ | `--spacing-2` | 16px |
129
+ | `--spacing-2-5` | 20px |
130
+ | `--spacing-3` | 24px |
131
+ | `--spacing-4` | 32px |
132
+ | `--spacing-5` | 40px |
133
+ | `--spacing-6` | 48px |
134
+ | `--spacing-7` | 56px |
135
+ | `--spacing-8` | 64px |
136
+ | `--spacing-9` | 80px |
137
+ | `--spacing-10` | 96px |
138
+ | `--spacing-11` | 112px |
139
+ | `--spacing-12` | 168px |
140
+ | `--spacing-13` | 224px |
141
+
142
+ ### Border Radius Scale
143
+
144
+ | Token | Value |
145
+ |-------|-------|
146
+ | `--rounding-none` | 0px |
147
+ | `--rounding-xs` | 4px |
148
+ | `--rounding-sm` | 6px |
149
+ | `--rounding-normal` | 8px |
150
+ | `--rounding-md` | 12px |
151
+ | `--rounding-lg` | 16px |
152
+ | `--rounding-xl` | 20px |
153
+ | `--rounding-xxl` | 24px |
154
+ | `--rounding-full` | 100% |
155
+
156
+ ### Layout
157
+
158
+ | Property | Value |
159
+ |----------|-------|
160
+ | Container XS | 746px |
161
+ | Container SM | 1064px |
162
+ | Container (default) | 1204px |
163
+ | Container LG | 1280px |
164
+ | Grid Gap | 32px |
165
+ | Navbar Width | 1204px (same as container) |
166
+ | Navbar Height | 58px (inner), 76px (with padding) |
167
+
168
+ ### Animation
169
+
170
+ - Custom spring easing: `--spring-1` (a complex linear() easing function with ~100 keyframes creating a spring/bounce effect)
171
+ - Used for scroll-triggered reveals and interactive elements
172
+
173
+ ---
174
+
175
+ ## Section Boilerplate
176
+
177
+ ### Navigation
178
+
179
+ **Structure:**
180
+ ```
181
+ Fixed position, full-width outer wrapper
182
+ padding: 16px 16px 0
183
+ └── Inner container (floating bar)
184
+ max-width: 1204px
185
+ height: 76px (58px inner + padding)
186
+ padding: 16px 32px
187
+ border-radius: 16px
188
+ border: 1px solid rgba(255,255,255,0.06)
189
+ backdrop-filter: blur(5px)
190
+ background: transparent (with blur)
191
+ display: flex
192
+ align-items: center
193
+ ├── Logo (left) — Raycast icon + wordmark
194
+ ├── Nav Links (center) — horizontal row
195
+ │ Links: Store, Pro, AI, iOS, Windows, Teams, Developers, Blog, Pricing
196
+ │ style: 14px, 500 weight, #9C9C9D, padding 12px 8px, radius 6px
197
+ │ hover: text color transitions to white
198
+ └── Right section
199
+ ├── "Log in" link (same ghost style as nav links)
200
+ └── "Download" button (primary style, Apple icon + text)
201
+ ```
202
+
203
+ **Interactions:**
204
+ - Nav is `position: fixed`, stays at top on scroll
205
+ - Background uses `backdrop-filter: blur(5px)` for frosted glass effect
206
+ - Links change color from `#9C9C9D` to white on hover
207
+ - Download button has platform-specific icon (Apple on Mac)
208
+ - Nav shrinks/collapses on scroll (inner bar stays pinned)
209
+
210
+ ---
211
+
212
+ ### Hero
213
+
214
+ **Structure:**
215
+ ```
216
+ Full viewport height section
217
+ background: #07080A with large red/coral abstract gradient art (diagonal streaks)
218
+ text-align: center
219
+ display: flex, flex-direction: column, align-items: center, justify-content: center
220
+ padding-top: ~navbar height
221
+
222
+ ├── H1 "Your shortcut to everything."
223
+ │ font-size: 64px, weight: 600, color: white
224
+ │ max-width: ~800px, centered
225
+
226
+ ├── Subtitle paragraph
227
+ │ font-size: 18px, weight: 400, color: white
228
+ │ "A collection of powerful productivity tools..."
229
+ │ margin-top: ~24px
230
+
231
+ ├── CTA Button Row (bottom area)
232
+ │ display: flex, gap: 12px, justify-content: center
233
+ │ ├── "Download for Mac" — primary button with Apple icon
234
+ │ └── "Download for Windows (beta)" — primary button with Windows icon
235
+
236
+ └── Version info (monospace)
237
+ "v1.104.10 | macOS 13+ | Install via homebrew"
238
+ font-size: 12px, color: #9C9C9D, font-family: monospace
239
+ ```
240
+
241
+ **Key details:**
242
+ - Background uses a large abstract red/coral gradient artwork with diagonal streaks
243
+ - Full viewport height, content vertically centered
244
+ - CTA buttons sit near the bottom of the viewport
245
+ - Version info below CTAs in monospace font
246
+
247
+ ---
248
+
249
+ ### Features (Product Showcase)
250
+
251
+ **Structure:**
252
+ ```
253
+ Section container
254
+ padding: 224px 24px (top/bottom), max-width: 1204px, centered
255
+
256
+ ├── Section Title (centered)
257
+ │ ├── H2 "Take shortcuts, not detours."
258
+ │ │ font-size: 20px, weight: 500, color: white
259
+ │ └── P "One interface, everything you need."
260
+ │ font-size: 20px, weight: 500, color: #6A6B6C
261
+ │ margin-bottom: 64px
262
+
263
+ └── Interactive Product Demo
264
+ Full-width macOS-style window mockup
265
+ Shows Raycast app interface with search bar, file results, action menus
266
+ Embedded screenshots/animations of the actual product
267
+ Surrounded by macOS menu bar mockup (Finder, File, Edit, etc.)
268
+ ```
269
+
270
+ **Pattern:** Section title (white heading + grey subtitle) followed by full-width interactive demo/screenshot. Very generous vertical padding (224px).
271
+
272
+ ---
273
+
274
+ ### Showcase (Value Props / "It's not about saving time")
275
+
276
+ **Structure:**
277
+ ```
278
+ Section container
279
+ padding: 224px 24px
280
+ display: grid or flex, split layout
281
+
282
+ ├── Left column (text)
283
+ │ ├── H2 "It's not about saving time."
284
+ │ │ font-size: 20px, weight: 500, color: white
285
+ │ ├── P subtitle in grey (#6A6B6C)
286
+ │ └── Download button (primary)
287
+
288
+ └── Right column (visual)
289
+ Grid of value prop cards over keyboard visual
290
+ Cards:
291
+ border: 1px solid rgba(255,255,255,0.06)
292
+ border-radius: 12px
293
+ padding: ~24px
294
+ Each card:
295
+ ├── Icon (small, top-left)
296
+ ├── Bold label "Fast." / "Ergonomic." / "Native." / "Reliable."
297
+ │ color: white, weight: 500
298
+ └── Description text in grey
299
+ "Think in milliseconds." / "Keyboard First."
300
+ 3 columns top row, 2 columns bottom row
301
+ Background: subtle keyboard key visualization
302
+ ```
303
+
304
+ ---
305
+
306
+ ### Store / Extensions ("There's an extension for that")
307
+
308
+ **Structure:**
309
+ ```
310
+ Section container
311
+ padding: 224px 24px
312
+
313
+ ├── Section Title
314
+ │ ├── H2 "There's an extension for that."
315
+ │ └── P "Use your favorite tools without even opening them."
316
+
317
+ ├── Category Tabs
318
+ │ Horizontal row: Productivity | Engineering | Communication | ...
319
+ │ Active tab: white text
320
+ │ Inactive tab: #6A6B6C text
321
+ │ font-size: 14px, weight: 500
322
+
323
+ ├── Extension Cards (horizontal scroll carousel)
324
+ │ 3 cards visible at a time
325
+ │ Each card:
326
+ │ border-radius: 20px
327
+ │ border: 1px solid rgba(255,255,255,0.06)
328
+ │ background: gradient (unique per card — dark blue, dark teal, dark green, etc.)
329
+ │ ├── Top section
330
+ │ │ App icon + Extension name + category badge
331
+ │ │ Description text (14px, white)
332
+ │ └── Bottom section
333
+ │ Interactive visual/demo of the extension
334
+
335
+ ├── "Browse thousands more →" link
336
+ │ font-size: 14px, color: grey, with arrow
337
+
338
+ └── Carousel arrows (right side)
339
+ Two circular buttons: ← →
340
+ border: 1px solid rgba(255,255,255,0.06)
341
+ border-radius: 50%
342
+ ~40px diameter
343
+ ```
344
+
345
+ ---
346
+
347
+ ### Features (AI Section / "Your Mac just got smarter")
348
+
349
+ **Structure:**
350
+ ```
351
+ Section container
352
+ padding: 224px 24px
353
+
354
+ ├── Divider with label
355
+ │ Horizontal line with "AI" text centered
356
+ │ Line: thin, subtle grey
357
+ │ Label: colored text (red/brand)
358
+
359
+ ├── Section Title (centered)
360
+ │ ├── H2 "Your Mac just got smarter."
361
+ │ └── P "AI where it's most useful - on your OS."
362
+
363
+ └── AI Demo Card
364
+ Full-width card
365
+ border-radius: 12px
366
+ border: 1px solid rgba(255,255,255,0.06)
367
+ Shows a macOS window with:
368
+ - Browser-style window chrome (red/yellow/green dots)
369
+ - Split view: text editor (left) + image (right)
370
+ - Content demonstrates AI writing capability
371
+ Link: "Learn more about Raycast AI"
372
+ ```
373
+
374
+ ---
375
+
376
+ ### Social Proof / Testimonials ("Built for professionals like you")
377
+
378
+ **Structure:**
379
+ ```
380
+ Section container
381
+ padding: 224px 24px
382
+
383
+ ├── Section Title (centered)
384
+ │ ├── H2 "Built for professionals like you."
385
+ │ └── P "Used by seriously productive people."
386
+
387
+ ├── Testimonial Avatars Row
388
+ │ Horizontal row of 3 profiles (centered)
389
+ │ Each:
390
+ │ ├── Avatar image (circular, ~48px)
391
+ │ ├── Name (white, 14px, weight 500)
392
+ │ ├── Handle (@username, grey)
393
+ │ └── Title/Company (grey)
394
+ │ Active testimonial highlighted with subtle card/border
395
+ │ Clickable to switch testimonial
396
+
397
+ └── Testimonial Quote
398
+ Below a thin horizontal divider
399
+ Large quotation marks (decorative, grey)
400
+ Quote text:
401
+ font-size: ~20px
402
+ "My favorite productivity app on the Mac" — bold/white
403
+ rest in grey/muted
404
+ Centered layout
405
+ ```
406
+
407
+ ---
408
+
409
+ ### How It Works / Automation ("Don't repeat yourself")
410
+
411
+ **Structure:**
412
+ ```
413
+ Section container
414
+ padding: 224px 24px
415
+
416
+ ├── Section Title (centered)
417
+ │ ├── H2 "Don't repeat yourself."
418
+ │ └── P "Automate the things you do all the time."
419
+
420
+ ├── Feature Card: Snippets (full-width)
421
+ │ border-radius: 12px
422
+ │ border: 1px solid rgba(255,255,255,0.06)
423
+ │ display: grid, 2 columns
424
+ │ ├── Left: text content
425
+ │ │ ├── Icon + "Snippets" title (24px, 500)
426
+ │ │ └── Description paragraph (grey)
427
+ │ └── Right: visual demo
428
+ │ Shows snippet expansion in a messaging interface
429
+ │ Blue/teal gradient background
430
+
431
+ └── Two cards side by side (50/50 grid, gap: 24px)
432
+ Each card:
433
+ border-radius: 12px
434
+ border: 1px solid rgba(255,255,255,0.06)
435
+ ├── Visual demo area (top)
436
+ │ Screenshots of Quicklinks search / keyboard shortcuts
437
+ ├── Icon + Title (24px, 500, white)
438
+ └── Description (14px, grey)
439
+ Card 1: "Quicklinks" — search bar demo
440
+ Card 2: "Hotkeys and Aliases" — keyboard key visualization
441
+ ```
442
+
443
+ ---
444
+
445
+ ### Showcase (Built-in Features / Emoji & Notes)
446
+
447
+ **Structure:**
448
+ ```
449
+ Section container
450
+ padding: 224px 24px
451
+
452
+ Rotating text showcase:
453
+ Left column: animated/cycling text describing capabilities
454
+ "It can take notes. Track your windows. Plan your day.
455
+ Remind you of stuff. Translate into any language.
456
+ Block distractions. Find text in screenshots.
457
+ Insert Emojis. And much, much more."
458
+ Key phrases highlighted in white, rest in grey
459
+ Text cycles/animates through features
460
+
461
+ Right column: matching visual demo
462
+ Shows the relevant UI for the current highlighted feature
463
+ (e.g., Emoji picker grid when "Insert Emojis" is highlighted)
464
+
465
+ Below: feature label card
466
+ Icon + "Search Emojis and Symbols" title
467
+ Description text
468
+ ```
469
+
470
+ ---
471
+
472
+ ### Social Proof (Community / "Stay in the loop")
473
+
474
+ **Structure:**
475
+ ```
476
+ Section container
477
+ padding: 224px 24px
478
+ background: subtle radial gradient overlay
479
+
480
+ ├── Section Title (centered)
481
+ │ ├── H2 "Stay in the loop."
482
+ │ └── P "Join the community and learn how other people
483
+ │ get the most out of Raycast."
484
+
485
+ ├── Social Cards Row (2 columns)
486
+ │ Card 1: Slack
487
+ │ ├── Slack logo icon
488
+ │ ├── "Slack" label
489
+ │ └── "32k members" (monospace, right-aligned)
490
+ │ Card 2: X/Twitter
491
+ │ ├── X logo icon
492
+ │ ├── "X/Twitter" label
493
+ │ └── "80k followers" (monospace, right-aligned)
494
+ │ Card styling: dark bg, subtle border
495
+
496
+ └── YouTube section
497
+ Horizontal ticker/carousel of YouTube video thumbnails
498
+ Auto-scrolling marquee effect
499
+ Below: "Check out our YouTube channel..." text + YouTube logo
500
+ ```
501
+
502
+ ---
503
+
504
+ ### Features (Developer Section / "Build the perfect tools")
505
+
506
+ **Structure:**
507
+ ```
508
+ Section container
509
+ padding: 224px 24px
510
+
511
+ ├── 3D Isometric Illustration
512
+ │ Blueprint-style illustration of the Raycast window anatomy
513
+ │ Labels: "SEARCH BAR", "ACTION BAR", "SELECTED ITEM", "LIST CONTENT"
514
+ │ Blue/brand colored highlights on dark wireframe
515
+ │ "FIG_01" label top-left (technical drawing style)
516
+
517
+ ├── Title + Description (2-column grid)
518
+ │ ├── Left: H3 "Build the perfect tools."
519
+ │ │ font-size: 56px, weight: 400 (thin/light)
520
+ │ └── Right:
521
+ │ Monospace description text
522
+ │ "Our extension API is designed to allow anyone with web
523
+ │ development skills to unleash the power of Raycast."
524
+ │ + "Read the docs ↗" link
525
+
526
+ └── Feature Grid (2x2)
527
+ Each cell:
528
+ border: 1px solid rgba(255,255,255,0.06)
529
+ padding: ~32px
530
+ ├── H4 title (24px, 500, white)
531
+ ├── Description (14px, grey, monospace)
532
+ └── Link "Learn more ↗"
533
+ Cells:
534
+ 1. "React to macOS" — React/TypeScript API
535
+ 2. "Built-in UI" — pre-built components
536
+ 3. "Batteries included" — utilities & APIs
537
+ 4. "Publish to the Store" — distribution
538
+ ```
539
+
540
+ ---
541
+
542
+ ### CTA ("Take the short way")
543
+
544
+ **Structure:**
545
+ ```
546
+ Section container
547
+ padding: 224px 24px
548
+ text-align: center
549
+ background: keyboard visualization (large, faded keys background)
550
+
551
+ ├── H2/H3 "Take the short way."
552
+ │ font-size: large (display), centered
553
+
554
+ ├── CTA Button Row
555
+ │ Same as hero: two download buttons side by side
556
+ │ "Download for Mac" + "Download for Windows (beta)"
557
+ │ Primary button style
558
+
559
+ ├── Version info (monospace)
560
+ │ "v1.104.10 | macOS 13+ | Install via homebrew"
561
+
562
+ └── Abstract gradient art (red/coral diagonal streaks)
563
+ Same visual language as hero, creating bookend effect
564
+ ```
565
+
566
+ ---
567
+
568
+ ### Footer
569
+
570
+ **Structure:**
571
+ ```
572
+ Footer wrapper
573
+ background: same as body (#07080A), no distinct bg
574
+ padding-top: 200px (with gradient art transition from CTA)
575
+ border-top: 1px solid rgba(255,255,255,0.06) (above link grid)
576
+
577
+ ├── Link Grid
578
+ │ display: grid
579
+ │ grid-template-columns: repeat(6, 1fr)
580
+ │ gap: 32px
581
+ │ padding: 96px 0 0 24px
582
+ │ max-width: 1204px, centered
583
+
584
+ │ Column 1: "Product"
585
+ │ Store, Pro, Teams, Pricing, Changelog, Browser Extension,
586
+ │ Developers, iOS, Windows, API Docs↗, Manual↗,
587
+ │ Troubleshooting↗, Raycast vs Alfred, FAQ
588
+
589
+ │ Column 2: "Core Features"
590
+ │ Raycast AI, Raycast Notes, Raycast Focus,
591
+ │ Clipboard History, Window Management, Snippets,
592
+ │ File Search, Quicklinks, Calculator, Calendar,
593
+ │ System, Emoji Picker
594
+
595
+ │ Column 3: "Top Extensions"
596
+ │ Design Tools, Developer Tools, Pomodoro Timer,
597
+ │ Productivity, Time Management, Project Management,
598
+ │ Transcript, Translation, Work From Home, AI
599
+
600
+ │ Column 4: "Company"
601
+ │ Manifesto, Customers, Careers, Terms of Service,
602
+ │ Privacy Policy, Acceptable Use Policy, DPA,
603
+ │ Trust Center↗, Press Kit↗, Contact
604
+
605
+ │ Column 5: "Community"
606
+ │ Community Stories, Ambassadors, Slack, X/Twitter↗,
607
+ │ GitHub↗, Dribbble↗
608
+
609
+ │ Column 6: "By Raycast"
610
+ │ Try Raycast AI↗, Explore Snippets↗,
611
+ │ Explore Quicklinks↗, Prompts↗, Chat Presets↗,
612
+ │ ray.so↗, Icon Maker↗, Merch↗, Wallpapers
613
+
614
+ │ Column headers:
615
+ │ font-size: 14px, weight: 500, color: white
616
+ │ Links:
617
+ │ font-size: 14px, weight: 500, color: #9C9C9D
618
+ │ External links have ↗ icon
619
+ │ hover: color transitions to white
620
+
621
+ └── Newsletter Section
622
+ margin-top: ~80px
623
+ border-top: 1px solid rgba(255,255,255,0.06)
624
+ padding: ~48px 0
625
+ display: flex, justify-content: space-between
626
+
627
+ ├── Left: text
628
+ │ H5 "Subscribe to our newsletter." (white, 14px, 500)
629
+ │ P "Get product updates and news in your inbox. No spam." (grey)
630
+
631
+ └── Right: form
632
+ display: flex, gap: 8px
633
+ ├── Email input
634
+ │ placeholder: "bjarne@cplusplus.com"
635
+ │ bg: rgba(255,255,255,0.05)
636
+ │ border: 1px solid rgba(255,255,255,0.05)
637
+ │ border-radius: 8px
638
+ │ padding: 8px 12px
639
+ │ height: 42px
640
+ │ font-size: 14px
641
+ └── "Subscribe" button (primary style)
642
+
643
+ Disclaimer text below (14px, rgba(255,255,255,0.4))
644
+ "By submitting your email address, you agree to receive..."
645
+ ```
646
+
647
+ ---
648
+
649
+ ### Newsletter (embedded in Footer — see Footer section above)
650
+
651
+ The newsletter is part of the footer. See the Footer section for full structure.
652
+
653
+ ---
654
+
655
+ ## Sections NOT present on homepage
656
+
657
+ The following requested sections were **not found** on the Raycast homepage. They may exist on other pages:
658
+
659
+ | Section | Notes |
660
+ |---------|-------|
661
+ | **About** | No dedicated about section on homepage; see `/manifesto` |
662
+ | **Blog** | Link in nav goes to `/blog`; no blog preview on homepage |
663
+ | **Comparison** | No comparison table on homepage; see `/raycast-vs-alfred` |
664
+ | **Contact** | Footer link to `/contact` |
665
+ | **Downloads** | Download CTAs embedded in Hero and CTA sections |
666
+ | **FAQ** | Footer link to `/faq`; no FAQ section on homepage |
667
+ | **Pricing** | Nav link to `/pricing`; no pricing section on homepage |
668
+ | **Stats** | No dedicated stats section |
669
+
670
+ ---
671
+
672
+ ## Global Patterns
673
+
674
+ ### Section Title Pattern (reusable)
675
+ Every major section follows this title pattern:
676
+ ```
677
+ Container: text-align center (or left for split layouts)
678
+ ├── H2: bold statement/hook
679
+ │ font-size: 20px, weight: 500, color: white
680
+ └── P: supporting description
681
+ font-size: 20px, weight: 500, color: #6A6B6C
682
+ margin-bottom: 64px
683
+ ```
684
+
685
+ ### Card Pattern (reusable)
686
+ ```
687
+ background: transparent or very subtle dark fill
688
+ border: 1px solid rgba(255,255,255,0.06)
689
+ border-radius: 12px (content cards) or 20px (extension cards)
690
+ padding: 0 (content bleeds to edges) or 24-32px (text cards)
691
+ overflow: hidden
692
+ ```
693
+
694
+ ### Section Spacing Pattern
695
+ ```
696
+ Each major section:
697
+ padding: 224px 24px (top and bottom)
698
+ max-width: 1204px (via container)
699
+ margin: 0 auto (centered)
700
+ ```
701
+
702
+ ### Dark Theme Approach
703
+ - Near-black background (`#07080A`) — not pure black
704
+ - White text for primary content
705
+ - Grey (`#6A6B6C` / `#9C9C9D`) for secondary text
706
+ - Ultra-subtle borders: `rgba(255,255,255,0.06)`
707
+ - Blur effects on overlays: `backdrop-filter: blur(5px)`
708
+ - No visible card backgrounds — borders define boundaries
709
+ - Red/coral brand color used sparingly in hero art and accent elements