Raycast Launcher
Identity
Product World
- Who: macOS power users who chain keyboard shortcuts — developers searching GitHub from a search bar, designers jumping to Figma files, engineers querying Jira/Linear/Slack without touching the mouse. They live in Cmd+Space. They measure productivity in keystrokes saved, not features listed. They hate Electron, love native, and notice when an app takes 200ms instead of 20ms.
- What: An extensible command palette launcher that replaces Spotlight — clipboard history, snippets, window management, AI chat, 1,000+ extensions, all invoked from one keyboard shortcut.
- Vibe: Apple System Preferences meets a hacker's terminal — the precision and restraint of macOS system UI with the power density of a command-line interface. Think raycast.com crossed with linear.app.
- Domain conventions: Keyboard shortcut notation (Cmd+Shift+V), extension install counts, command names as interface ("Search Jira Issues", "Clipboard History"), macOS window chrome (traffic light dots), terminal prompts and benchmarks.
Core Principle
The interface should feel like a system utility carved from obsidian — fast, native, trustworthy, with personality expressed through precision rather than decoration.
Visual Vibe
Obsidian, precision-instrument, macOS-native, dark-void, keyboard-tactile, airy-type, matte-metal, cold-blue-tinted, tool-confident, Swiss-watch
Typography
Geist (display + body) — Vercel's geometric sans-serif has the same precision-tool quality as the product itself. Weight 500 as body baseline (not 400) — medium weight compensates for optical thinning on dark backgrounds. Positive letter-spacing (+0.2px) creates an airy quality unusual for dark UIs.
Geist Mono (code + terminal + shortcuts) — Same family, monospace variant. Used for terminal output, keyboard shortcut labels, extension metadata, and inline code.
Color
- Void
oklch(6% 0.01 250) — Near-black with cold blue tint. NOT pure black — the blue undertone makes it feel macOS-native
- Surface 1
oklch(10% 0.005 250) — Cards, elevated containers
- Text Primary
oklch(97% 0.005 250) — Near-white, cool tinted
- Text Secondary
oklch(83% 0.005 250) — Body text, descriptions
- Text Tertiary
oklch(65% 0.005 250) — Metadata, nav links
- Raycast Red
oklch(68% 0.2 15) — Brand accent as PUNCTUATION only: hero keyword, featured stripe, errors
- Interactive Blue
oklch(72% 0.14 230) — Links, focus rings, selected states
- Success Green
oklch(70% 0.15 155) — Active indicators, fast benchmarks
- Warning Yellow
oklch(80% 0.15 85) — Memory values, attention states
Section Archetypes
- Command palette demo: Interactive launcher mock — the product AS the visual
- Extension showcase: Grid with real names (GitHub, Linear), install counts, shortcuts
- Performance terminal: Benchmark output in monospace — developers trust this format
- AI conversation: Real technical Q&A, not chatbot marketing
- Keyboard shortcut map: Action-to-shortcut pairs with physical keycap styling
- Pricing comparison: Tiered with feature checklists, red stripe on featured tier
Hero Archetype
Ambient video + typography + product demo below fold. Dark atmospheric video at ~12% opacity behind clean headline. Floating command palette mock IS the demo.
Signature Moves
- 5-layer keycap shadows: Gradient background + inset highlights + outer shadow creating physically realistic keyboard keys
- Opacity hover transitions: All buttons fade to 0.6 opacity instead of changing background color — feels like pressing a physical surface
- Floating command palette: Subtle translateY oscillation (6s) creating the illusion of a native macOS panel hovering above the void
- Typing animation: Search input types through real commands with realistic timing
- Double-ring card containment: Two concentric 1px ring shadows (outer + inset) instead of borders — macOS-native depth
- Terminal as marketing: Performance benchmarks in actual terminal format with colored syntax
- Red as punctuation: Raycast Red in exactly three places — hero keyword, featured stripe, error icons
- Positive letter-spacing on dark: +0.2px tracking creates airy premium feel opposite from most dark UIs
Hard Constraints
- Background must be
#07080a (blue-tinted near-black), NEVER pure #000
- Body text weight 500 minimum on dark surfaces — 400 looks anemic
- Letter-spacing +0.2px on body text — positive, not negative or zero
- Shadows always paired: outer ring + inset highlight. Never single-layer
- Raycast Red for punctuation only — max 3 usage points, never backgrounds or gradients
- macOS keyboard symbols only: Cmd, Shift, Opt, Ctrl — never spell out or use Windows notation
- Extension names must be real: GitHub, Linear, Jira, Figma — never invented names
- No stock photography of people — show keyboards, terminals, the product itself
- Border radius: 5-6px buttons, 12px cards, 16px panels, 86px+ pills — not uniform
- Geist font family only (Geist + Geist Mono) — Inter is banned
Anti-Patterns
Visual
- NOT neon-on-dark "hacker aesthetic" with Matrix green or glowing cyan — Raycast is refined, not edgy
- NOT glassmorphism with decorative blur cards — blur is nav-only and functional
- NOT gradient backgrounds or color washes — the void is flat, video provides texture
- NOT pure black (#000) — removes the macOS-native blue tint
- NOT RGB keyboard or gaming aesthetics — professional hardware photography only
Structural
- NOT generic SaaS hero/features/metrics/testimonials/CTA — sections follow product evaluation flow
- NOT screenshot-driven — render the interface directly in HTML, not as images
- NOT documentation-style with sidebar nav — code appears as domain content only
- NOT carousel or slider galleries — developers scan grids, not slideshows
Content
- NOT invented extension names — use real recognizable tools (GitHub, Linear, Figma)
- NOT marketing-speak performance claims — "14ms cold start" not "blazing fast"
- NOT chatbot-style AI marketing — show real technical Q&A with code answers
- NOT placeholder pricing features — list what developers actually evaluate (AI limits, SSO, sync)
UX
- NOT hover-dependent functionality — keyboard-first product must work without mouse
- NOT modal-heavy — contradicts the command palette philosophy
- NOT scroll-jacking or parallax — feels slow, opposite of a 14ms launcher
- NOT embedded interactive demo — web can't match native speed, undermines positioning
Supporting Files
| File |
Purpose |
https://joincommons.cc/api/items/raycast-launcher/raw/design-language |
Complete visual system: full OKLCH palette, typography scale, spacing, shadow system, component patterns, layout grids |
references/asset-direction.md |
Photography direction, data-as-visual patterns, video treatment, verified starter assets |
https://joincommons.cc/api/items/raycast-launcher/raw/anti-patterns |
Detailed domain-specific traps across visual, structural, content, and UX dimensions |
assets/tokens.dtcg.json |
DTCG design tokens: color, semantic (performance-fast, terminal-prompt, keycap-gradient), typography |
assets/exhibit.html |
Reference implementation — self-contained HTML with interactive command palette, terminal benchmarks, keycap shortcuts |
assets/design-skill.json |
V4 manifest with section archetypes, style signatures, coverage blueprints |
Workflow
- Read
https://joincommons.cc/api/items/raycast-launcher/raw/design-language for the full visual system
- Read
references/asset-direction.md for asset sourcing guidance
- Build following the product world and design system above
- Self-critique against
https://joincommons.cc/api/items/raycast-launcher/raw/anti-patterns
Gotchas
- Pure black kills the feel: #000 instead of #07080a removes the blue tint that makes it macOS-native
- Weight 400 on dark looks thin: Body text needs 500 minimum. 400 is anemic and cheap
- Negative letter-spacing on body: Raycast uses positive (+0.2px). Tight tracking makes dark UI cramped
- Single-layer shadows look flat: macOS depth requires paired shadows (outer ring + inset highlight)
- Overusing red: The brand color works because it's rare. Red backgrounds/gradients = error page
- People photography: Keyboard-first dev tool. Showing people at laptops contradicts the identity
1---2name: raycast-launcher3description: macOS-native dark launcher interface with near-black blue-tinted void, multi-layer inset shadows simulating physical depth, realistic keycap styling, and interactive command palette demo. Geist typography with positive letter-spacing, opacity-based hover transitions, and terminal benchmarks as marketing content.4---56# Raycast Launcher78<design-system>910## Identity1112### Product World13- **Who**: macOS power users who chain keyboard shortcuts — developers searching GitHub from a search bar, designers jumping to Figma files, engineers querying Jira/Linear/Slack without touching the mouse. They live in Cmd+Space. They measure productivity in keystrokes saved, not features listed. They hate Electron, love native, and notice when an app takes 200ms instead of 20ms.14- **What**: An extensible command palette launcher that replaces Spotlight — clipboard history, snippets, window management, AI chat, 1,000+ extensions, all invoked from one keyboard shortcut.15- **Vibe**: Apple System Preferences meets a hacker's terminal — the precision and restraint of macOS system UI with the power density of a command-line interface. Think raycast.com crossed with linear.app.16- **Domain conventions**: Keyboard shortcut notation (Cmd+Shift+V), extension install counts, command names as interface ("Search Jira Issues", "Clipboard History"), macOS window chrome (traffic light dots), terminal prompts and benchmarks.1718### Core Principle19The interface should feel like a system utility carved from obsidian — fast, native, trustworthy, with personality expressed through precision rather than decoration.2021### Visual Vibe22Obsidian, precision-instrument, macOS-native, dark-void, keyboard-tactile, airy-type, matte-metal, cold-blue-tinted, tool-confident, Swiss-watch2324### Typography25**Geist** (display + body) — Vercel's geometric sans-serif has the same precision-tool quality as the product itself. Weight 500 as body baseline (not 400) — medium weight compensates for optical thinning on dark backgrounds. Positive letter-spacing (+0.2px) creates an airy quality unusual for dark UIs.2627**Geist Mono** (code + terminal + shortcuts) — Same family, monospace variant. Used for terminal output, keyboard shortcut labels, extension metadata, and inline code.2829### Color30- **Void** `oklch(6% 0.01 250)` — Near-black with cold blue tint. NOT pure black — the blue undertone makes it feel macOS-native31- **Surface 1** `oklch(10% 0.005 250)` — Cards, elevated containers32- **Text Primary** `oklch(97% 0.005 250)` — Near-white, cool tinted33- **Text Secondary** `oklch(83% 0.005 250)` — Body text, descriptions34- **Text Tertiary** `oklch(65% 0.005 250)` — Metadata, nav links35- **Raycast Red** `oklch(68% 0.2 15)` — Brand accent as PUNCTUATION only: hero keyword, featured stripe, errors36- **Interactive Blue** `oklch(72% 0.14 230)` — Links, focus rings, selected states37- **Success Green** `oklch(70% 0.15 155)` — Active indicators, fast benchmarks38- **Warning Yellow** `oklch(80% 0.15 85)` — Memory values, attention states3940### Section Archetypes41- **Command palette demo**: Interactive launcher mock — the product AS the visual42- **Extension showcase**: Grid with real names (GitHub, Linear), install counts, shortcuts43- **Performance terminal**: Benchmark output in monospace — developers trust this format44- **AI conversation**: Real technical Q&A, not chatbot marketing45- **Keyboard shortcut map**: Action-to-shortcut pairs with physical keycap styling46- **Pricing comparison**: Tiered with feature checklists, red stripe on featured tier4748### Hero Archetype49Ambient video + typography + product demo below fold. Dark atmospheric video at ~12% opacity behind clean headline. Floating command palette mock IS the demo.5051## Signature Moves52531. **5-layer keycap shadows**: Gradient background + inset highlights + outer shadow creating physically realistic keyboard keys542. **Opacity hover transitions**: All buttons fade to 0.6 opacity instead of changing background color — feels like pressing a physical surface553. **Floating command palette**: Subtle translateY oscillation (6s) creating the illusion of a native macOS panel hovering above the void564. **Typing animation**: Search input types through real commands with realistic timing575. **Double-ring card containment**: Two concentric 1px ring shadows (outer + inset) instead of borders — macOS-native depth586. **Terminal as marketing**: Performance benchmarks in actual terminal format with colored syntax597. **Red as punctuation**: Raycast Red in exactly three places — hero keyword, featured stripe, error icons608. **Positive letter-spacing on dark**: +0.2px tracking creates airy premium feel opposite from most dark UIs6162## Hard Constraints63641. Background must be `#07080a` (blue-tinted near-black), NEVER pure `#000`652. Body text weight 500 minimum on dark surfaces — 400 looks anemic663. Letter-spacing +0.2px on body text — positive, not negative or zero674. Shadows always paired: outer ring + inset highlight. Never single-layer685. Raycast Red for punctuation only — max 3 usage points, never backgrounds or gradients696. macOS keyboard symbols only: Cmd, Shift, Opt, Ctrl — never spell out or use Windows notation707. Extension names must be real: GitHub, Linear, Jira, Figma — never invented names718. No stock photography of people — show keyboards, terminals, the product itself729. Border radius: 5-6px buttons, 12px cards, 16px panels, 86px+ pills — not uniform7310. Geist font family only (Geist + Geist Mono) — Inter is banned7475## Anti-Patterns7677### Visual78- NOT neon-on-dark "hacker aesthetic" with Matrix green or glowing cyan — Raycast is refined, not edgy79- NOT glassmorphism with decorative blur cards — blur is nav-only and functional80- NOT gradient backgrounds or color washes — the void is flat, video provides texture81- NOT pure black (#000) — removes the macOS-native blue tint82- NOT RGB keyboard or gaming aesthetics — professional hardware photography only8384### Structural85- NOT generic SaaS hero/features/metrics/testimonials/CTA — sections follow product evaluation flow86- NOT screenshot-driven — render the interface directly in HTML, not as images87- NOT documentation-style with sidebar nav — code appears as domain content only88- NOT carousel or slider galleries — developers scan grids, not slideshows8990### Content91- NOT invented extension names — use real recognizable tools (GitHub, Linear, Figma)92- NOT marketing-speak performance claims — "14ms cold start" not "blazing fast"93- NOT chatbot-style AI marketing — show real technical Q&A with code answers94- NOT placeholder pricing features — list what developers actually evaluate (AI limits, SSO, sync)9596### UX97- NOT hover-dependent functionality — keyboard-first product must work without mouse98- NOT modal-heavy — contradicts the command palette philosophy99- NOT scroll-jacking or parallax — feels slow, opposite of a 14ms launcher100- NOT embedded interactive demo — web can't match native speed, undermines positioning101102## Supporting Files103104| File | Purpose |105|------|---------|106| `https://joincommons.cc/api/items/raycast-launcher/raw/design-language` | Complete visual system: full OKLCH palette, typography scale, spacing, shadow system, component patterns, layout grids |107| `references/asset-direction.md` | Photography direction, data-as-visual patterns, video treatment, verified starter assets |108| `https://joincommons.cc/api/items/raycast-launcher/raw/anti-patterns` | Detailed domain-specific traps across visual, structural, content, and UX dimensions |109| `assets/tokens.dtcg.json` | DTCG design tokens: color, semantic (performance-fast, terminal-prompt, keycap-gradient), typography |110| `assets/exhibit.html` | Reference implementation — self-contained HTML with interactive command palette, terminal benchmarks, keycap shortcuts |111| `assets/design-skill.json` | V4 manifest with section archetypes, style signatures, coverage blueprints |112113## Workflow1141. Read `https://joincommons.cc/api/items/raycast-launcher/raw/design-language` for the full visual system1152. Read `references/asset-direction.md` for asset sourcing guidance1163. Build following the product world and design system above1174. Self-critique against `https://joincommons.cc/api/items/raycast-launcher/raw/anti-patterns`118119## Gotchas1201. **Pure black kills the feel**: #000 instead of #07080a removes the blue tint that makes it macOS-native1212. **Weight 400 on dark looks thin**: Body text needs 500 minimum. 400 is anemic and cheap1223. **Negative letter-spacing on body**: Raycast uses positive (+0.2px). Tight tracking makes dark UI cramped1234. **Single-layer shadows look flat**: macOS depth requires paired shadows (outer ring + inset highlight)1245. **Overusing red**: The brand color works because it's rare. Red backgrounds/gradients = error page1256. **People photography**: Keyboard-first dev tool. Showing people at laptops contradicts the identity126127</design-system>