cdragon 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 (91) hide show
  1. package/README.md +110 -0
  2. package/bin/cdragon.js +170 -0
  3. package/package.json +31 -0
  4. package/skills/agent-browser/SKILL.md +50 -0
  5. package/skills/grill-me/SKILL.md +7 -0
  6. package/skills/herdr-agent/SKILL.md +142 -0
  7. package/skills/herdr-cli/SKILL.md +388 -0
  8. package/skills/herdr-cli/scripts/herdr-agent-run-and-wait +203 -0
  9. package/skills/herdr-cli/scripts/herdr-agent-wait-complete +168 -0
  10. package/skills/notion-presentation/SKILL.md +170 -0
  11. package/skills/notion-presentation/references/example-redis-deck.md +97 -0
  12. package/skills/setup-matt-pocock-skills/SKILL.md +127 -0
  13. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  14. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +34 -0
  15. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +35 -0
  16. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +19 -0
  17. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  18. package/skills/tdd/SKILL.md +108 -0
  19. package/skills/tdd/mocking.md +59 -0
  20. package/skills/tdd/refactoring.md +10 -0
  21. package/skills/tdd/tests.md +61 -0
  22. package/skills/to-html/SKILL.md +83 -0
  23. package/skills/to-html/designs/INDEX.md +74 -0
  24. package/skills/to-html/designs/airbnb.DESIGN.md +581 -0
  25. package/skills/to-html/designs/airtable.DESIGN.md +275 -0
  26. package/skills/to-html/designs/alipay.DESIGN.md +456 -0
  27. package/skills/to-html/designs/apple.DESIGN.md +566 -0
  28. package/skills/to-html/designs/banksalad.DESIGN.md +621 -0
  29. package/skills/to-html/designs/channeltalk.DESIGN.md +374 -0
  30. package/skills/to-html/designs/clay.DESIGN.md +398 -0
  31. package/skills/to-html/designs/clickhouse.DESIGN.md +374 -0
  32. package/skills/to-html/designs/cohere.DESIGN.md +361 -0
  33. package/skills/to-html/designs/coinone.DESIGN.md +218 -0
  34. package/skills/to-html/designs/coupang.DESIGN.md +502 -0
  35. package/skills/to-html/designs/cursor.DESIGN.md +416 -0
  36. package/skills/to-html/designs/elevenlabs.DESIGN.md +376 -0
  37. package/skills/to-html/designs/expo.DESIGN.md +373 -0
  38. package/skills/to-html/designs/figma.DESIGN.md +490 -0
  39. package/skills/to-html/designs/framer.DESIGN.md +393 -0
  40. package/skills/to-html/designs/freee.DESIGN.md +572 -0
  41. package/skills/to-html/designs/gangnamunni.DESIGN.md +621 -0
  42. package/skills/to-html/designs/gmarket.DESIGN.md +483 -0
  43. package/skills/to-html/designs/gogolook.DESIGN.md +131 -0
  44. package/skills/to-html/designs/hahow.DESIGN.md +158 -0
  45. package/skills/to-html/designs/hashicorp.DESIGN.md +369 -0
  46. package/skills/to-html/designs/hyundaicard.DESIGN.md +177 -0
  47. package/skills/to-html/designs/ibm.DESIGN.md +420 -0
  48. package/skills/to-html/designs/kakaobank.DESIGN.md +548 -0
  49. package/skills/to-html/designs/kakaopay.DESIGN.md +544 -0
  50. package/skills/to-html/designs/karrot.DESIGN.md +445 -0
  51. package/skills/to-html/designs/kdan.DESIGN.md +160 -0
  52. package/skills/to-html/designs/krds.DESIGN.md +997 -0
  53. package/skills/to-html/designs/line.DESIGN.md +431 -0
  54. package/skills/to-html/designs/linear.app.DESIGN.md +548 -0
  55. package/skills/to-html/designs/miro.DESIGN.md +272 -0
  56. package/skills/to-html/designs/mistral.ai.DESIGN.md +353 -0
  57. package/skills/to-html/designs/money-forward.DESIGN.md +401 -0
  58. package/skills/to-html/designs/mongodb.DESIGN.md +357 -0
  59. package/skills/to-html/designs/naver.DESIGN.md +533 -0
  60. package/skills/to-html/designs/nhncloud.DESIGN.md +174 -0
  61. package/skills/to-html/designs/opencode.ai.DESIGN.md +388 -0
  62. package/skills/to-html/designs/pinterest.DESIGN.md +322 -0
  63. package/skills/to-html/designs/posthog.DESIGN.md +430 -0
  64. package/skills/to-html/designs/raycast.DESIGN.md +422 -0
  65. package/skills/to-html/designs/remember.DESIGN.md +460 -0
  66. package/skills/to-html/designs/resend.DESIGN.md +396 -0
  67. package/skills/to-html/designs/sanity.DESIGN.md +449 -0
  68. package/skills/to-html/designs/sendbird.DESIGN.md +285 -0
  69. package/skills/to-html/designs/smarthr.DESIGN.md +404 -0
  70. package/skills/to-html/designs/socar.DESIGN.md +403 -0
  71. package/skills/to-html/designs/spotify.DESIGN.md +265 -0
  72. package/skills/to-html/designs/supabase.DESIGN.md +348 -0
  73. package/skills/to-html/designs/superhuman.DESIGN.md +414 -0
  74. package/skills/to-html/designs/together.ai.DESIGN.md +356 -0
  75. package/skills/to-html/designs/toss.DESIGN.md +655 -0
  76. package/skills/to-html/designs/uber.DESIGN.md +387 -0
  77. package/skills/to-html/designs/upstage.DESIGN.md +232 -0
  78. package/skills/to-html/designs/velog.DESIGN.md +168 -0
  79. package/skills/to-html/designs/vercel.DESIGN.md +479 -0
  80. package/skills/to-html/designs/wanted.DESIGN.md +529 -0
  81. package/skills/to-html/designs/wise.DESIGN.md +276 -0
  82. package/skills/to-html/designs/yanolja.DESIGN.md +463 -0
  83. package/skills/to-html/designs/yeogiotte.DESIGN.md +459 -0
  84. package/skills/to-html/designs/zapier.DESIGN.md +433 -0
  85. package/skills/to-html/designs/zigzag.DESIGN.md +633 -0
  86. package/skills/to-issues/SKILL.md +84 -0
  87. package/skills/to-prd/SKILL.md +75 -0
  88. package/src/colors.js +15 -0
  89. package/src/link.js +47 -0
  90. package/src/prompt.js +137 -0
  91. package/src/skills.js +75 -0
@@ -0,0 +1,422 @@
1
+ ---
2
+ id: raycast
3
+ name: Raycast
4
+ country: US
5
+ category: developer-tools
6
+ homepage: "https://www.raycast.com"
7
+ primary_color: "#ff6363"
8
+ logo:
9
+ type: simpleicons
10
+ slug: raycast
11
+ verified: "2026-05-15"
12
+ omd: "0.1"
13
+ ds:
14
+ name: Raycast Brand
15
+ url: "https://www.raycast.com/templates/brand-guidelines"
16
+ type: brand
17
+ description: Raycast's brand guidelines with colors, logos, and asset kit.
18
+ ---
19
+
20
+ # Design System Inspiration of Raycast
21
+
22
+ ## 1. Visual Theme & Atmosphere
23
+
24
+ Raycast's marketing site feels like the dark interior of a precision instrument — a Swiss watch case carved from obsidian. The background isn't just dark, it's an almost-black blue-tint (`#07080a`) that creates a sense of being inside a macOS native application rather than a website. Every surface, every border, every shadow is calibrated to evoke the feeling of a high-performance desktop utility: fast, minimal, trustworthy.
25
+
26
+ The signature move is the layered shadow system borrowed from macOS window chrome: multi-layer box-shadows with inset highlights that simulate physical depth, as if cards and buttons are actual pressed or raised glass elements on a dark desk. Combined with Raycast Red (`#FF6363`) — deployed almost exclusively in the hero's iconic diagonal stripe pattern — the palette creates a brand that reads as "powerful tool with personality." The red doesn't dominate; it punctuates.
27
+
28
+ Inter is used everywhere — headings, body, buttons, captions — with extensive OpenType features (`calt`, `kern`, `liga`, `ss03`) creating a consistent, readable typographic voice. The positive letter-spacing (0.2px–0.4px on body text) is unusual for a dark UI and gives the text an airy, breathable quality that counterbalances the dense, dark surfaces. GeistMono appears for code elements, reinforcing the developer-tool identity.
29
+
30
+ **Key Characteristics:**
31
+ - Near-black blue-tinted background (`#07080a`) — not pure black, subtly blue-shifted
32
+ - macOS-native shadow system with multi-layer inset highlights simulating physical depth
33
+ - Raycast Red (`#FF6363`) as a punctuation color — hero stripes, not pervasive
34
+ - Inter with positive letter-spacing (0.2px) for an airy, readable dark-mode experience
35
+ - Radix UI component primitives powering the interaction layer
36
+ - Subtle rgba white borders (0.06–0.1 opacity) for containment on dark surfaces
37
+ - Keyboard shortcut styling with gradient key caps and heavy shadows
38
+
39
+ ## 2. Color Palette & Roles
40
+
41
+ ### Primary
42
+ - **Near-Black Blue** (`#07080a`): Primary page background — the foundational void with a subtle blue-cold undertone
43
+ - **Pure White** (`#ffffff`): Primary heading text, high-emphasis elements
44
+ - **Raycast Red** (`#FF6363` / `hsl(0, 100%, 69%)`): Brand accent — hero stripes, danger states, critical highlights
45
+
46
+ ### Secondary & Accent
47
+ - **Raycast Blue** (`hsl(202, 100%, 67%)` / ~`#55b3ff`): Interactive accent — links, focus states, selected items
48
+ - **Raycast Green** (`hsl(151, 59%, 59%)` / ~`#5fc992`): Success states, positive indicators
49
+ - **Raycast Yellow** (`hsl(43, 100%, 60%)` / ~`#ffbc33`): Warning accents, highlights
50
+ - **Blue Transparent** (`hsla(202, 100%, 67%, 0.15)`): Blue tint overlay for interactive surfaces
51
+ - **Red Transparent** (`hsla(0, 100%, 69%, 0.15)`): Red tint overlay for danger/error surfaces
52
+
53
+ ### Surface & Background
54
+ - **Deep Background** (`#07080a`): Page canvas, the darkest surface
55
+ - **Surface 100** (`#101111`): Elevated surface, card backgrounds
56
+ - **Key Start** (`#121212`): Keyboard key gradient start
57
+ - **Key End** (`#0d0d0d`): Keyboard key gradient end
58
+ - **Card Surface** (`#1b1c1e`): Badge backgrounds, tag fills, elevated containers
59
+ - **Button Foreground** (`#18191a`): Dark surface for button text on light backgrounds
60
+
61
+ ### Neutrals & Text
62
+ - **Near White** (`#f9f9f9` / `hsl(240, 11%, 96%)`): Primary body text, high-emphasis content
63
+ - **Light Gray** (`#cecece` / `#cdcdce`): Secondary body text, descriptions
64
+ - **Silver** (`#c0c0c0`): Tertiary text, subdued labels
65
+ - **Medium Gray** (`#9c9c9d`): Link default color, secondary navigation
66
+ - **Dim Gray** (`#6a6b6c`): Disabled text, low-emphasis labels
67
+ - **Dark Gray** (`#434345`): Muted borders, inactive navigation links
68
+ - **Border** (`hsl(195, 5%, 15%)` / ~`#252829`): Standard border color for cards and dividers
69
+ - **Dark Border** (`#2f3031`): Separator lines, table borders
70
+
71
+ ### Semantic & Accent
72
+ - **Error Red** (`hsl(0, 100%, 69%)`): Error states, destructive actions
73
+ - **Success Green** (`hsl(151, 59%, 59%)`): Success confirmations, positive states
74
+ - **Warning Yellow** (`hsl(43, 100%, 60%)`): Warnings, attention-needed states
75
+ - **Info Blue** (`hsl(202, 100%, 67%)`): Informational highlights, links
76
+
77
+ ### Gradient System
78
+ - **Keyboard Key Gradient**: Linear gradient from `#121212` (top) to `#0d0d0d` (bottom) — simulates physical key depth
79
+ - **Warm Glow**: `rgba(215, 201, 175, 0.05)` radial spread — subtle warm ambient glow behind featured elements
80
+
81
+ ## 3. Typography Rules
82
+
83
+ ### Font Family
84
+ - **Primary**: `Inter` — humanist sans-serif, used everywhere. Fallbacks: `Inter Fallback`, system sans-serif
85
+ - **System**: `SF Pro Text` — Apple system font for select macOS-native UI elements. Fallbacks: `SF Pro Icons`, `Inter`, `Inter Fallback`
86
+ - **Monospace**: `GeistMono` — Vercel's monospace font for code elements. Fallbacks: `ui-monospace`, `SFMono-Regular`, `Roboto Mono`, `Menlo`, `Monaco`
87
+ - **OpenType features**: `calt`, `kern`, `liga`, `ss03` enabled globally; `ss02`, `ss08` on display text; `liga` disabled (`"liga" 0`) on hero headings
88
+
89
+ ### Hierarchy
90
+
91
+ | Role | Size | Weight | Line Height | Letter Spacing | Notes |
92
+ |------|------|--------|-------------|----------------|-------|
93
+ | Display Hero | 64px | 600 | 1.10 | 0px | OpenType: liga 0, ss02, ss08 |
94
+ | Section Display | 56px | 400 | 1.17 | 0.2px | OpenType: calt, kern, liga, ss03 |
95
+ | Section Heading | 24px | 500 | normal | 0.2px | OpenType: calt, kern, liga, ss03 |
96
+ | Card Heading | 22px | 400 | 1.15 | 0px | OpenType: calt, kern, liga, ss03 |
97
+ | Sub-heading | 20px | 500 | 1.60 | 0.2px | Relaxed line-height for readability |
98
+ | Body Large | 18px | 400 | 1.15 | 0.2px | OpenType: calt, kern, liga, ss03 |
99
+ | Body | 16px | 500 | 1.60 | 0.2px | Primary body text, relaxed rhythm |
100
+ | Body Tight | 16px | 400 | 1.15 | 0.1px | UI labels, compact contexts |
101
+ | Button | 16px | 600 | 1.15 | 0.3px | Semibold, slightly wider tracking |
102
+ | Nav Link | 16px | 500 | 1.40 | 0.3px | Links in navigation |
103
+ | Caption | 14px | 500 | 1.14 | 0.2px | Small labels, metadata |
104
+ | Caption Bold | 14px | 600 | 1.40 | 0px | Emphasized captions |
105
+ | Small | 12px | 600 | 1.33 | 0px | Badges, tags, micro-labels |
106
+ | Small Link | 12px | 400 | 1.50 | 0.4px | Footer links, fine print |
107
+ | Code | 14px (GeistMono) | 500 | 1.60 | 0.3px | Code blocks, technical content |
108
+ | Code Small | 12px (GeistMono) | 400 | 1.60 | 0.2px | Inline code, terminal output |
109
+
110
+ ### Principles
111
+ - **Positive tracking on dark**: Unlike most dark UIs that use tight or neutral letter-spacing, Raycast applies +0.2px to +0.4px — creating an airy, readable feel that compensates for the dark background
112
+ - **Weight 500 as baseline**: Most body text uses medium weight (500), not regular (400) — subtle extra heft improves legibility on dark surfaces
113
+ - **Display restraint**: Hero text at 64px/600 is confident but not oversized — Raycast avoids typographic spectacle in favor of functional elegance
114
+ - **OpenType everywhere**: `ss03` (stylistic set 3) is enabled globally across Inter, giving the typeface a slightly more geometric, tool-like quality
115
+
116
+ ## 4. Component Stylings
117
+
118
+ ### Buttons
119
+
120
+ **Primary Pill**
121
+ - Background: transparent
122
+ - Text: `#ffffff`
123
+ - Radius: 86px (pill)
124
+ - Padding: 10px 16px
125
+ - Shadow: `rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset`
126
+ - Hover: opacity 0.6
127
+ - Use: Primary pill button on dark surfaces
128
+
129
+ **Secondary**
130
+ - Background: transparent
131
+ - Text: `#ffffff`
132
+ - Border: 1px solid `rgba(255, 255, 255, 0.1)`
133
+ - Radius: 6px
134
+ - Padding: 8px 14px
135
+ - Shadow: `rgba(0, 0, 0, 0.03) 0px 7px 3px`
136
+ - Hover: opacity 0.6
137
+ - Use: Secondary action
138
+
139
+ **Ghost**
140
+ - Background: transparent
141
+ - Text: `#6a6b6c`
142
+ - Radius: 86px
143
+ - Padding: 10px 16px
144
+ - Shadow: `rgba(255, 255, 255, 0.1) 0px 1px 0px 0px inset`
145
+ - Hover: opacity 0.6, text brightens to `#ffffff`
146
+ - Use: Tertiary action — gray text
147
+
148
+ **CTA Download**
149
+ - Background: `hsla(0, 0%, 100%, 0.815)`
150
+ - Text: `#18191a`
151
+ - Radius: 86px (pill)
152
+ - Padding: 10px 16px
153
+ - Hover: `hsl(0, 0%, 100%)` (full white)
154
+ - Use: Hero "Download" CTA on dark surfaces
155
+
156
+ ### Inputs
157
+
158
+ **Default**
159
+ - Background: `#07080a`
160
+ - Text: `#f9f9f9`
161
+ - Border: 1px solid `rgba(255, 255, 255, 0.08)`
162
+ - Radius: 8px
163
+ - Padding: 10px 12px
164
+ - Placeholder: `#6a6b6c`
165
+ - Focus: border brightens, blue glow `hsla(202, 100%, 67%, 0.15)` ring
166
+ - Label: `#9c9c9d` 14px / 500
167
+ - Use: Form input on dark theme
168
+
169
+ ### Cards
170
+
171
+ **Standard**
172
+ - Background: `#101111`
173
+ - Text: `#ffffff`
174
+ - Border: 1px solid `rgba(255, 255, 255, 0.06)`
175
+ - Radius: 12px
176
+ - Padding: 16px
177
+ - Use: Default dark card
178
+
179
+ **Elevated**
180
+ - Background: `#101111`
181
+ - Radius: 16px
182
+ - Padding: 20px
183
+ - Shadow: `rgb(27, 28, 30) 0px 0px 0px 1px, rgb(7, 8, 10) 0px 0px 0px 1px inset`
184
+ - Use: Double-ring elevated card
185
+
186
+ **Feature**
187
+ - Background: `#101111`
188
+ - Radius: 20px
189
+ - Padding: 24px
190
+ - Shadow: `rgba(215, 201, 175, 0.05) 0px 0px 20px 5px` (subtle warm glow)
191
+ - Use: Hero/feature card with warm glow
192
+
193
+ ### Badges
194
+
195
+ **Neutral**
196
+ - Background: `#1b1c1e`
197
+ - Text: `#ffffff`
198
+ - Radius: 6px
199
+ - Padding: 0px 6px
200
+ - Font: 14px / 500
201
+ - Use: Categorization badge — compact pill-like treatment
202
+
203
+ ### Keyboard Shortcut Keys
204
+ - Key cap: gradient `#121212` → `#0d0d0d`, multi-layer shadow `rgba(0, 0, 0, 0.4) 0px 1.5px 0.5px 2.5px` + inset shadows
205
+ - Radius: 4-6px
206
+ - Use: Realistic physical key cap rendering for Raycast shortcuts
207
+
208
+ ### Image Treatment
209
+ - Product screenshots: macOS window chrome style — rounded corners (12px), deep shadows simulating floating windows
210
+ - Full-bleed sections: Dark screenshots blend seamlessly into the dark background
211
+ - Hero illustration: Diagonal stripe pattern in Raycast Red — abstract, geometric, brand-defining
212
+ - App UI embeds: actual Raycast command palette and extensions — product as content
213
+
214
+ ### Navigation
215
+ - Top nav: Dark background blending with page, white text links at 16px weight 500
216
+ - Nav links: Gray text (`#9c9c9d`) → white on hover, underline on hover
217
+ - CTA: Semi-transparent white pill at nav end
218
+ - Mobile: hamburger, dark theme preserved
219
+ - Sticky: Fixed at top with subtle border separator
220
+
221
+ ## 5. Layout Principles
222
+
223
+ ### Spacing System
224
+ - **Base unit**: 8px
225
+ - **Scale**: 1px, 2px, 3px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 40px
226
+ - **Section padding**: 80px–120px vertical between major sections
227
+ - **Card padding**: 16px–32px internal spacing
228
+ - **Component gaps**: 8px–16px between related elements
229
+
230
+ ### Grid & Container
231
+ - **Max width**: ~1200px container (breakpoint at 1204px), centered
232
+ - **Column patterns**: Single-column hero, 2–3 column feature grids, full-width showcase sections
233
+ - **App showcase**: Product UI presented in centered window frames
234
+
235
+ ### Whitespace Philosophy
236
+ - **Dramatic negative space**: Sections float in vast dark void, creating cinematic pacing between features
237
+ - **Dense product, sparse marketing**: The product UI screenshots are information-dense, but the surrounding marketing copy uses minimal text with generous spacing
238
+ - **Vertical rhythm**: Consistent 24px–32px gaps between elements within sections
239
+
240
+ ### Border Radius Scale
241
+ - **2px–3px**: Micro-elements, code spans, tiny indicators
242
+ - **4px–5px**: Keyboard keys, small interactive elements
243
+ - **6px**: Buttons, badges, tags — the workhorse radius
244
+ - **8px**: Input fields, inline components
245
+ - **9px–11px**: Images, medium containers
246
+ - **12px**: Standard cards, product screenshots
247
+ - **16px**: Large cards, feature sections
248
+ - **20px**: Hero cards, prominent containers
249
+ - **86px+**: Pill buttons, nav CTAs — full pill shape
250
+
251
+ ## 6. Depth & Elevation
252
+
253
+ | Level | Treatment | Use |
254
+ |-------|-----------|-----|
255
+ | Level 0 (Void) | No shadow, `#07080a` surface | Page background |
256
+ | Level 1 (Subtle) | `rgba(0, 0, 0, 0.28) 0px 1.189px 2.377px` | Minimal lift, inline elements |
257
+ | Level 2 (Ring) | `rgb(27, 28, 30) 0px 0px 0px 1px` outer + `rgb(7, 8, 10) 0px 0px 0px 1px inset` inner | Card containment, double-ring technique |
258
+ | Level 3 (Button) | `rgba(255, 255, 255, 0.05) 0px 1px 0px 0px inset` + `rgba(255, 255, 255, 0.25) 0px 0px 0px 1px` + `rgba(0, 0, 0, 0.2) 0px -1px 0px 0px inset` | macOS-native button press — white highlight top, dark inset bottom |
259
+ | Level 4 (Key) | 5-layer shadow stack with inset press effects | Keyboard shortcut key caps — physical 3D appearance |
260
+ | Level 5 (Floating) | `rgba(0, 0, 0, 0.5) 0px 0px 0px 2px` + `rgba(255, 255, 255, 0.19) 0px 0px 14px` + insets | Command palette, floating panels — heavy depth with glow |
261
+
262
+ ### Shadow Philosophy
263
+ Raycast's shadow system is the most macOS-native on the web. Multi-layer shadows combine:
264
+ - **Outer rings** for containment (replacing traditional borders)
265
+ - **Inset top highlights** (`rgba(255, 255, 255, 0.05–0.25)`) simulating light source from above
266
+ - **Inset bottom darks** (`rgba(0, 0, 0, 0.2)`) simulating shadow underneath
267
+ - The effect is physical: elements feel like glass or brushed metal, not flat rectangles
268
+
269
+ ### Decorative Depth
270
+ - **Warm glow**: `rgba(215, 201, 175, 0.05) 0px 0px 20px 5px` behind featured elements — a subtle warm aura on the cold dark canvas
271
+ - **Blue info glow**: `rgba(0, 153, 255, 0.15)` for interactive state emphasis
272
+ - **Red danger glow**: `rgba(255, 99, 99, 0.15)` for error/destructive state emphasis
273
+
274
+ ## 7. Do's and Don'ts
275
+
276
+ ### Do
277
+ - Use `#07080a` (not pure black) as the background — the blue-cold tint is essential to the Raycast feel
278
+ - Apply positive letter-spacing (+0.2px) on body text — this is deliberately different from most dark UIs
279
+ - Use multi-layer shadows with inset highlights for interactive elements — the macOS-native depth is signature
280
+ - Keep Raycast Red (`#FF6363`) as punctuation, not pervasive — reserve it for hero moments and error states
281
+ - Use `rgba(255, 255, 255, 0.06)` borders for card containment — barely visible, structurally essential
282
+ - Apply weight 500 as the body text baseline — medium weight improves dark-mode legibility
283
+ - Use pill shapes (86px+ radius) for primary CTAs, rectangular shapes (6px–8px) for secondary actions
284
+ - Enable OpenType features `calt`, `kern`, `liga`, `ss03` on all Inter text
285
+ - Use opacity transitions (hover: opacity 0.6) for button interactions, not color changes
286
+
287
+ ### Don't
288
+ - Use pure black (`#000000`) as the background — the blue tint differentiates Raycast from generic dark themes
289
+ - Apply negative letter-spacing on body text — Raycast deliberately uses positive spacing for readability
290
+ - Use Raycast Blue as the primary accent for everything — blue is for interactive/info, red is the brand color
291
+ - Create single-layer flat shadows — the multi-layer inset system is core to the macOS-native aesthetic
292
+ - Use regular weight (400) for body text when 500 is available — the extra weight prevents dark-mode text from feeling thin
293
+ - Mix warm and cool borders — stick to the cool gray (`hsl(195, 5%, 15%)`) border palette
294
+ - Apply heavy drop shadows without inset companions — shadows always come in pairs (outer + inset)
295
+ - Use decorative elements, gradients, or colorful backgrounds — the dark void is the stage, content is the performer
296
+
297
+ ## 8. Responsive Behavior
298
+
299
+ ### Breakpoints
300
+ | Name | Width | Key Changes |
301
+ |------|-------|-------------|
302
+ | Mobile | <600px | Single column, stacked cards, hamburger nav, hero text reduces to ~40px |
303
+ | Small Tablet | 600px–768px | 2-column grid begins, nav partially visible |
304
+ | Tablet | 768px–1024px | 2–3 column features, nav expanding, screenshots scale |
305
+ | Desktop | 1024px–1200px | Full layout, all nav links visible, 64px hero display |
306
+ | Large Desktop | >1200px | Max-width container centered, generous side margins |
307
+
308
+ ### Touch Targets
309
+ - Pill buttons: 86px radius with 20px padding — well above 44px minimum
310
+ - Secondary buttons: 8px padding minimum, but border provides visual target expansion
311
+ - Nav links: 16px text with surrounding padding for accessible touch targets
312
+
313
+ ### Collapsing Strategy
314
+ - **Navigation**: Full horizontal nav → hamburger at mobile with slide-out menu
315
+ - **Hero**: 64px display → 48px → 36px across breakpoints
316
+ - **Feature grids**: 3-column → 2-column → single-column stack
317
+ - **Product screenshots**: Scale within containers, maintaining macOS window chrome proportions
318
+ - **Keyboard shortcut displays**: Simplify or hide on mobile where keyboard shortcuts are irrelevant
319
+
320
+ ### Image Behavior
321
+ - Product screenshots scale responsively within fixed-ratio containers
322
+ - Hero diagonal stripe pattern scales proportionally
323
+ - macOS window chrome rounded corners maintained at all sizes
324
+ - No lazy-loading artifacts — images are critical to the product narrative
325
+
326
+ ## 9. Agent Prompt Guide
327
+
328
+ ### Quick Color Reference
329
+ - Primary Background: Near-Black Blue (`#07080a`)
330
+ - Primary Text: Near White (`#f9f9f9`)
331
+ - Brand Accent: Raycast Red (`#FF6363`)
332
+ - Interactive Blue: Raycast Blue (`hsl(202, 100%, 67%)` / ~`#55b3ff`)
333
+ - Secondary Text: Medium Gray (`#9c9c9d`)
334
+ - Card Surface: Surface 100 (`#101111`)
335
+ - Border: Dark Border (`hsl(195, 5%, 15%)` / ~`#252829`)
336
+
337
+ ### Example Component Prompts
338
+ - "Create a hero section on #07080a background with 64px Inter heading (weight 600, line-height 1.1), near-white text (#f9f9f9), and a semi-transparent white pill CTA button (hsla(0,0%,100%,0.815), 86px radius, dark text #18191a)"
339
+ - "Design a feature card with #101111 background, 1px solid rgba(255,255,255,0.06) border, 16px border-radius, double-ring shadow (rgb(27,28,30) 0px 0px 0px 1px outer), 22px Inter heading, and #9c9c9d body text"
340
+ - "Build a navigation bar on dark background (#07080a), Inter links at 16px weight 500 in #9c9c9d, hover to white, and a translucent white pill button at the right end"
341
+ - "Create a keyboard shortcut display with key caps using gradient background (#121212→#0d0d0d), 5-layer shadow for physical depth, 4px radius, Inter 12px weight 600 text"
342
+ - "Design an alert card with #101111 surface, Raycast Red (#FF6363) left border accent, translucent red glow (hsla(0,100%,69%,0.15)), white heading, and #cecece description text"
343
+
344
+ ### Iteration Guide
345
+ When refining existing screens generated with this design system:
346
+ 1. Check the background is `#07080a` not pure black — the blue tint is critical
347
+ 2. Verify letter-spacing is positive (+0.2px) on body text — negative spacing breaks the Raycast aesthetic
348
+ 3. Ensure shadows have both outer and inset layers — single-layer shadows look flat and wrong
349
+ 4. Confirm Inter has OpenType features `calt`, `kern`, `liga`, `ss03` enabled
350
+ 5. Test that hover states use opacity transitions (0.6) not color swaps — this is a core interaction pattern
351
+
352
+ ## 10. Voice & Tone
353
+
354
+ Raycast's voice is **prosumer-confident and keyboard-first.** "Your shortcut to everything" — concise, capability-driven, never marketing-fluff. Dark prosumer canvas + warm gradients signal "Mac native, designed for power users."
355
+
356
+ | Context | Tone |
357
+ |---|---|
358
+ | CTA | Verb. "Download", "Sign up", "Get started" |
359
+ | Marketing | Capability-list. "Spotlight on steroids" framing |
360
+ | Documentation | Keyboard-shortcut-heavy, code-block-friendly |
361
+ | Error | Specific. "Extension failed to load. Check console for details." |
362
+
363
+ **Voice samples**
364
+ - Tagline: *"Your shortcut to everything"* <!-- verified: raycast.com homepage 2026-05 -->
365
+
366
+ **Forbidden phrases.** "Revolutionary launcher". Aggressive Spotlight-comparison framing.
367
+
368
+ ## 11. Brand Narrative
369
+
370
+ Raycast was founded **2020** out of **London** by ex-Facebook engineers **Thomas Paul Mann (CEO)** and **Petr Nikolaev (CTO)** — they **met working at Facebook on the same team**, sharing frustration with the clunky productivity tools they used and a desire to build a better Spotlight ([TechCrunch — Raycast $30M Series B 2024-09](https://techcrunch.com/2024/09/25/raycast-raises-30m-to-bring-its-mac-productivity-app-to-windows-and-ios/), [Ness Labs — Thomas Paul Mann interview](https://nesslabs.com/raycast-featured-tool)). Funding ladder: **first round March 18 2020** (seed) → **$15M Series A (November 2021)** led by **Accel + Coatue** ([TechCrunch — Raycast $15M 2021-11](https://techcrunch.com/2021/11/30/developer-productivity-tools-startup-raycast-raises-15m-from-accel-and-coatue/)) → **$30M / €27M Series B (Sept 25 2024)** to expand from Mac to Windows + iOS ([EU-Startups — Raycast €27M Series B 2024-09](https://www.eu-startups.com/2024/09/london-based-raycast-raises-e27-million-series-b-to-help-ios-and-windows-enhance-productivity/)) → **total $47.8M across 4 rounds from 20 investors** including **Accel, Y Combinator, Atomico** ([Tracxn — Raycast](https://tracxn.com/d/companies/raycast/__VNiI9rqA4HFcosfhPf0QoAIcecG3jJRlMCseC8jQeOw)). Mac-native productivity tool — Spotlight replacement that grew into a platform for extensions. Strong adoption among engineers, designers, and prosumers. Brand voice — keyboard-first, prosumer-aesthetic — reflects the product positioning.
371
+
372
+ ## 12. Principles
373
+
374
+ 1. **Keyboard is the interface.** *UI implication:* every action has a keyboard shortcut documented inline.
375
+ 2. **Inter with OpenType features.** `calt`, `kern`, `liga`, `ss03`. *UI implication:* don't substitute system fonts.
376
+ 3. **Hover via opacity, not color swap.** *UI implication:* preserve opacity-transition pattern.
377
+ 4. **Dark prosumer canvas.** *UI implication:* default to dark theme; light theme as secondary.
378
+ 5. **Extensions are first-class.** *UI implication:* Store + Extension nav has main-nav placement.
379
+
380
+ ## 13. Personas
381
+
382
+ *Personas are fictional archetypes informed by Raycast user segments (Mac power users, engineers, prosumer designers), not individual people.*
383
+
384
+ **Sergey Volkov, 36, Berlin.** Senior engineer, Raycast as Spotlight replacement + AI commands.
385
+
386
+ **Sofia Park, 31, Seoul.** Product designer with 30+ extensions installed.
387
+
388
+ **Marcus Webb, 41, San Francisco.** Engineering manager. Raycast Pro subscriber for AI features.
389
+
390
+ ## 14. States
391
+
392
+ | State | Treatment |
393
+ |---|---|
394
+ | **Empty (no extensions)** | "Browse the Store" CTA + featured grid |
395
+ | **Empty (search)** | "No commands found. Try different keywords." |
396
+ | **Loading (extension loading)** | Subtle skeleton with maintained dimensions |
397
+ | **Loading (AI command)** | Per-token streaming inline |
398
+ | **Error (extension)** | Specific error + reload extension button |
399
+ | **Error (auth)** | Specific cause + re-auth flow |
400
+ | **Success (executed)** | Implicit; result appears |
401
+ | **Success (extension installed)** | Subtle check + immediately available |
402
+ | **Skeleton (results)** | Dark-tone placeholders |
403
+ | **Disabled (no Pro)** | Upgrade link |
404
+ | **Loading (long task)** | Persistent progress |
405
+
406
+ ## 15. Motion & Easing
407
+
408
+ | Token | Value | Use |
409
+ |---|---|---|
410
+ | `motion-instant` | 0ms | Selection |
411
+ | `motion-fast` | 150ms | Hover opacity |
412
+ | `motion-standard` | 250ms | Modal, panel |
413
+
414
+ Standard cubic-bezier; minimal bounce. **Hover via opacity 0.6** is signature. `prefers-reduced-motion: reduce` removes hover transitions.
415
+
416
+ ---
417
+
418
+ **Verified:** 2026-05-08 (omd:migrate run 47 — Apple-tier)
419
+ **Tier 1 sources:** raycast.com home + /pro (live DOM via playwright — Primary **`#e6e6e6` Light Gray** + Charcoal `#2f3031` text 8px / 36px / 14px·**500**; banner-pill `#130d0e` Deep Black 1000px / 30px (top promo); newsletter inline 4px variant; dark-canvas Outline `rgba(255,255,255,0.05)` 12px on /pro).
420
+ **Tier 2 sources:** styles.refero.design / getdesign.md — no record.
421
+ **Tier 2 (Philosophy/founders/funding):** TechCrunch (2021-11 $15M Accel+Coatue + 2024-09 $30M Series B), EU-Startups (€27M Series B), TechFundingNews, Ness Labs (Mann interview), Tracxn ($47.8M total / 20 investors).
422
+ **Style ref:** `claude`. **Conflicts unresolved:** none. **Earlier mistake reverted:** prior footer captured nav-link mid-gray (`#9c9c9d`) — canonical Primary is **`#e6e6e6` Light Gray** 8px (the brand-defining download CTA, missed entirely).