---
name: raycast-design-reference
provider: DesignSkill (https://designskill.dev)
reference: raycast.com
source_url: https://www.raycast.com/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T08:23:53.553Z
mode: full-render
classification: reference_only
---

# Raycast — Design Reference (measured)

Measured design tokens extracted from `https://www.raycast.com/` by designskill-extract/3.2.0.
Every value below was observed in the live page (×N = observation count). Values not listed were **not observed** — do not invent them.
This document is `reference_only`: an analysis of a third-party site, not a license to its brand assets.

## Overview

- Extraction mode: **full-render** (viewports 390/768/1440px × light/dark), 1 page(s), 920 observation records.
- Primary action color observed as `#ff6363` (basis: cross-validated, confidence 0.74).
- Dominant font family: **Inter** (×2360; secondary SF Pro Text ×301).
- Type scale observed at 8 sizes from 12px to 32px.
- Corner radius values in use: 11px, 8px, 12px, 6px….
- Not observed in this extraction: nav, badges.

## Colors

### Role Tokens

Semantic roles inferred from observed usage. `basis` tells how the role was established (declared CSS var > cross-validated > inferred).

| Token | Value | Basis | Confidence | Observed |
|---|---|---|---|---|
| `{color.primary}` | `#ff6363` | cross-validated | 0.74 | ×37 |
| `{color.background}` | `#ffffff` | declared | 0.92 | ×2411 — --reverse-background |
| `{color.ink}` | `#434345` | cross-validated | 0.93 | ×302 |
| `{color.muted}` | `#9c9c9d` | inferred | 0.7 | ×566 |
| `{color.surface}` | `#e6e6e6` | inferred | 0.7 | ×28 |
| `{color.accent}` | `#070d4f` | inferred | 0.58 | ×7 |

### Observed Palette

Full measured palette ordered by usage share. `Used in` lists the CSS properties the color appeared on.

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#ffffff` | 44.8% | color, background-color, border-color, box-shadow | ×2411 (cross-validated, 0.95) |
| `#ffffff` | 16.2% | border-color, background-color, color | ×870 (observed, 0.8) |
| `#9c9c9d` | 10.5% | color | ×566 (observed, 0.79) |
| `#434345` | 5.6% | border-color, color, background-color, box-shadow | ×302 (cross-validated, 0.93) |
| `#6a6b6c` | 5.5% | color, box-shadow | ×296 (cross-validated, 0.93) |
| `#ffffff` | 4.6% | background-color, border-color, color | ×246 (observed, 0.78) |
| `#07080a` | 5.3% | background-color, box-shadow, --key-bg-end-color, --key-bg-start-color | ×286 (cross-validated, 0.93) |
| `#2f3031` | 1.0% | border-color, color | ×52 (observed, 0.76) |
| `#452324` | 0.7% | background-color | ×40 (cross-validated, 0.9) |
| `#ff6363` | 0.7% | color, background-color, border-color, box-shadow | ×37 (cross-validated, 0.9) |
| `#1b1c1e` | 0.6% | background-color, border-color | ×30 (observed, 0.75) |
| `#e6e6e6` | 0.5% | background-color | ×28 (observed, 0.75) |
| `#000000` | 0.5% | background-color | ×26 (observed, 0.75) |
| `#8e8c90` | 0.4% | border-color | ×20 (observed, 0.74) |
| `#9ebed7` | 0.3% | background-color | ×16 (observed, 0.74) |
| `#d9d9d9` | 0.3% | -webkit-mask-image | ×14 (inferred, 0.59) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Inter` | ×2360 |
| `SF Pro Text` | ×301 |
| `GeistMono` | ×108 |
| `JetBrains Mono` | ×7 |
| `Geist Mono` | ×4 |
| `serif` | ×1 |

Use **Inter** as the default family — it accounts for the overwhelming majority of observed text nodes.

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 32px | ×365 |
| `{type.h1}` | 24px | ×312 |
| `{type.h2}` | 20px | ×120 |
| `{type.h3}` | 18px | ×185 |
| `{type.body-lg}` | 16px | ×723 |
| `{type.body}` | 14px | ×1023 |
| `{type.body-sm}` | 13px | ×411 |
| `{type.caption}` | 12px | ×115 |

The most frequently observed size is **14px** (×1023) — treat it as the default body size.

## Spacing

| Value | Observed |
|---|---|
| `8px` | ×1303 |
| `24px` | ×560 |
| `12px` | ×539 |
| `16px` | ×466 |
| `10px` | ×326 |
| `4px` | ×193 |
| `32px` | ×133 |
| `40px` | ×84 |
| `20px` | ×66 |
| `48px` | ×64 |
| `50px` | ×62 |
| `2px` | ×56 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `11px` | ×952 |
| `8px` | ×491 |
| `12px` | ×370 |
| `6px` | ×293 |
| `20px` | ×210 |
| `16px` | ×126 |
| `4px` | ×85 |
| `5px` | ×24 |

## Elevation

| Shadow | Observed |
|---|---|
| `rgb(27, 28, 30) 0px 0px 0px 1px, rgb(7, 8, 10) 0px 0px 0px 1px inset` | ×276 |
| `#ffffff` | ×121 |
| `rgba(215, 201, 175, 0.05) 0px 0px 20px 5px, rgba(215, 201, 175, 0.05) 0px 0px 16px -7px` | ×108 |
| `rgba(0, 0, 0, 0.28) 0px 1.189px 2.377px 0px` | ×102 |
| `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` | ×102 |
| `#000000` | ×65 |

## Motion

| Duration | Observed |
|---|---|
| `0.2s` | ×128 |
| `0.4s` | ×78 |
| `.3s` | ×38 |
| `0.3s` | ×18 |
| `0.5s` | ×16 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#130d0e` · text `#ffffff` · radius `999px` · padding `4px 12px` · font `14px/500` | ×1 |
| form.input | bg `#ffffff` · text `#ffffff` · border `1px solid rgba(255, 255, 255, 0.05)` · radius `8px` · padding `8px 12px` · height `42` | ×1 |
| card | bg `#000000` · radius `16px` · border `1px solid rgba(0, 0, 0, 0)` · padding `24px` | ×21 |

### Hero Gradient (observed)

```css
background-image: radial-gradient(85.77% 49.97% at 51% 5.12%, rgba(255, 150, 150, 0.11) 0px, rgba(222, 226, 255, 0.08) 45.83%, rgba(241, 242, 255, 0.02) 100%), none;
```

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#ffffff` | `#07080a` | 20.04 | pass | observed ×806 |
| `#9c9c9d` | `#07080a` | 7.3 | pass | observed ×277 |
| `#6a6b6c` | `#07080a` | 3.75 | fail | observed ×133 |
| `#434345` | `#07080a` | 2.03 | fail | observed ×90 |
| `#2f3031` | `#e6e6e6` | 10.6 | pass | observed ×14 |
| `#6a6b6c` | `#08090c` | 3.73 | fail | observed ×14 |
| `#ffffff` | `#1b1c1e` | 17.05 | pass | observed ×9 |
| `#ffffff` | `#130d0e` | 19.24 | pass | observed ×3 |
| `#9c9c9d` | `#130d0e` | 7.01 | pass | observed ×3 |
| `#ffffff` | `#111214` | 18.74 | pass | observed ×3 |
| `#9c9c9d` | `#111214` | 6.83 | pass | observed ×3 |
| `#ff6363` | `#07080a` | 6.89 | pass | observed ×3 |
| `#434345` | `#ffffff` | 9.87 | pass | ink_on_background |
| `#ffffff` | `#ff6363` | 2.91 | fail | white_on_primary |
| `#9c9c9d` | `#ffffff` | 2.74 | fail | muted_on_background |

5 measured pair(s) fail AA — if you reuse those pairs, adjust lightness until the ratio reaches 4.5:1.

## Usage Rules

### Do
- Use `{color.primary}` (`#ff6363`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#434345`) on `{color.background}` (`#ffffff`).
- Set all text in `Inter` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (11px, 8px, 12px, 6px) — no intermediate values were observed.
- Cite this file's token names (`{color.*}`, `{type.*}`) when generating UI so output stays traceable to observations.

### Don't
- Don't invent colors, sizes, shadows, or spacing not listed above — absence means *not observed*, and this document records observations only.
- Don't assume the missing blocks (nav, badges) don't exist on the site — they were simply not captured in this run.
- Don't copy brand assets (logo, wordmark, imagery, copy) — `reference_only` covers measured style values, not brand identity.
- Treat `{color.accent}` with caution — confidence below 0.6.

## Provenance

- Source: https://www.raycast.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T08:23:53.553Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 01, 02, 03, 04, 05, 06, 07, 09, 10, 11, 12 · missing: nav, badges
- Degraded stages (extraction failure ≠ design change — exclude from diffs): state-observation

---

<sub>Generated & served by [DesignSkill](https://designskill.dev)</sub>
