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

# Cursor — Design Reference (measured)

Measured design tokens extracted from `https://cursor.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), 820 observation records.
- Primary action color observed as `#f54e00` (basis: cross-validated, confidence 0.79).
- Dominant font family: **CursorGothic** (×818; secondary system-ui ×752).
- Type scale observed at 8 sizes from 10px to 17px.
- Corner radius values in use: 4px, 8px, 7.5px, 10px….
- Not observed in this extraction: cards.

## 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}` | `#f54e00` | cross-validated | 0.79 | ×66 |
| `{color.background}` | `#edecec` | cross-validated | 0.95 | ×1039 |
| `{color.ink}` | `#dfa88f` | declared | 0.92 | ×0 — --color-timeline-thinking |
| `{color.muted}` | `#606060` | inferred | 0.57 | ×2 |
| `{color.surface}` | `#f7f7f4` | inferred | 0.7 | ×320 |
| `{color.accent}` | `#34785c` | inferred | 0.65 | ×12 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#26251e` | 29.6% | color, background-color, border-color, --color-theme-product-text, --color-theme-card-hex | ×1090 (cross-validated, 0.95) |
| `#edecec` | 28.2% | color, background-color, border-color, text-decoration-color, -hex | ×1039 (cross-validated, 0.95) |
| `#14120b` | 10.7% | background-color, --color-theme-bg, color, border-color, box-shadow | ×395 (cross-validated, 0.94) |
| `#f7f7f4` | 8.7% | background-color, --color-theme-bg, color, border-color, --visual-feedback-prompt-highlight | ×320 (cross-validated, 0.93) |
| `#26251e` | 2.5% | color | ×93 (observed, 0.77) |
| `#edecec` | 2.5% | color | ×93 (observed, 0.77) |
| `#65afe0` | 2.4% | background-color | ×90 (observed, 0.77) |
| `#83c8f0` | 2.1% | background-color, color | ×78 (observed, 0.76) |
| `#f54e00` | 1.8% | background-color, color, border-color, --color-theme-accent | ×66 (cross-validated, 0.91) |
| `#e6e5e0` | 1.5% | background-color | ×55 (observed, 0.76) |
| `#000000` | 1.1% | color | ×39 (observed, 0.75) |
| `#ffffff` | 1.1% | color | ×39 (observed, 0.75) |
| `#000000` | 0.6% | color | ×21 (observed, 0.74) |
| `#ffffff` | 0.6% | color | ×21 (observed, 0.74) |
| `#c08532` | 0.5% | color, background-color, flex-basis | ×18 (cross-validated, 0.89) |
| `#278dcc` | 0.5% | background-color | ×18 (observed, 0.74) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `CursorGothic` | ×818 |
| `system-ui` | ×752 |
| `EB Garamond` | ×269 |
| `berkeleyMono` | ×182 |
| `Lato` | ×123 |
| `CursorIcons16` | ×22 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 17px | ×62 |
| `{type.h1}` | 16px | ×249 |
| `{type.h2}` | 15px | ×326 |
| `{type.h3}` | 14px | ×235 |
| `{type.body-lg}` | 13px | ×367 |
| `{type.body}` | 12px | ×463 |
| `{type.body-sm}` | 11px | ×280 |
| `{type.caption}` | 10px | ×136 |

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

## Spacing

| Value | Observed |
|---|---|
| `8px` | ×384 |
| `3px` | ×281 |
| `6px` | ×204 |
| `4px` | ×173 |
| `2px` | ×146 |
| `10px` | ×88 |
| `63px` | ×66 |
| `21px` | ×56 |
| `15px` | ×52 |
| `12px` | ×50 |
| `14px` | ×36 |
| `5px` | ×35 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `4px` | ×749 |
| `8px` | ×165 |
| `7.5px` | ×54 |
| `10px` | ×48 |
| `2px` | ×45 |
| `12px` | ×38 |
| `3px` | ×30 |
| `44px` | ×12 |

## Elevation

| Shadow | Observed |
|---|---|
| `#000000` | ×38 |
| `rgba(0, 0, 0, 0.14) 0px 28px 70px 0px, rgba(0, 0, 0, 0.1) 0px 14px 32px 0px, oklab(0.263084 -0.00230259 0.0124794 / 0.1) 0px 0px 0px 1px` | ×18 |
| `rgba(0, 0, 0, 0.14) 0px 28px 70px 0px, rgba(0, 0, 0, 0.1) 0px 14px 32px 0px, oklab(0.943853 0.00107113 0.000336707 / 0.1) 0px 0px 0px 1px` | ×18 |
| `rgb(235, 234, 229) 0px 0px 0px 2px` | ×12 |
| `rgb(32, 30, 24) 0px 0px 0px 2px` | ×12 |
| `0 0 0 2px var(--color-theme-card-02-hex)` | ×8 |

## Motion

| Duration | Observed |
|---|---|
| `0.15s` | ×189 |
| `0.2s` | ×34 |
| `0.5s` | ×10 |
| `.15s` | ×6 |
| `0.14s` | ×4 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#26251e` · text `#f7f7f4` · radius `999px` · padding `12.48px 21.6px 12.8px` · font `16px/400` | ×2 |
| button.outline | text `#26251e` · border `1px solid rgba(0, 0, 0, 0)` · radius `0px` · padding `5.6px 15px` · font `14px` | ×4 |
| form.input | bg `#000000` · text `#26251e` · border `0px solid rgb(38, 37, 30)` · radius `0px` · padding `8px 8px 6px` · height `31` | ×3 |
| badge | bg `#26251e` · text `#f7f7f4` · radius `999px` · font `14px/400` · padding `5.6px 10.5px 5.88px` | ×1 |
| nav | bg `#f7f7f4` · height `52px` · position `fixed` · link `#f7f7f4` | — |

### Hero Gradient (observed)

```css
background-image: linear-gradient(oklab(0.263084 -0.00230259 0.0124794 / 0.05) 0%, oklab(0.263084 -0.00230259 0.0124794 / 0.05) 100%), linear-gradient(rgb(242, 241, 237) 0%, rgb(242, 241, 237) 100%);
```

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| hover | color | `rgb(38, 37, 30)` | `oklab(0.263084 -0.00230259 0.0124794 / 0.75)` |
| hover | outline-color | `rgb(38, 37, 30)` | `oklab(0.263084 -0.00230259 0.0124794 / 0.75)` |
| hover | color | `rgb(38, 37, 30)` | `oklab(0.263084 -0.00230259 0.0124794 / 0.75)` |
| focus | color | `rgb(38, 37, 30)` | `oklab(0.263084 -0.00230259 0.0124794 / 0.75)` |
| focus | outline-width | `3px` | `2px` |
| focus | color | `rgb(38, 37, 30)` | `oklab(0.263084 -0.00230259 0.0124794 / 0.75)` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#26251e` | `#f2f1ed` | 13.6 | pass | observed ×274 |
| `#26251e` | `#f7f7f4` | 14.33 | pass | observed ×240 |
| `#26251e` | `#ebeae5` | 12.76 | pass | observed ×27 |
| `#f54e00` | `#f2f1ed` | 3.11 | fail | observed ×21 |
| `#000000` | `#f7f7f4` | 19.57 | pass | observed ×21 |
| `#f7f7f4` | `#26251e` | 14.33 | pass | observed ×11 |
| `#26251e` | `#e6e5e0` | 12.19 | pass | observed ×11 |
| `#f54e00` | `#f7f7f4` | 3.28 | fail | observed ×6 |
| `#3a6a9f` | `#e3ebf3` | 4.66 | pass | observed ×5 |
| `#1f8a65` | `#f2f1ed` | 3.81 | fail | observed ×3 |
| `#cf2d56` | `#f2f1ed` | 4.46 | fail | observed ×3 |
| `#ffffff` | `#c08532` | 3.16 | fail | observed ×3 |
| `#dfa88f` | `#edecec` | 1.76 | fail | ink_on_background |
| `#ffffff` | `#f54e00` | 3.52 | fail | white_on_primary |
| `#606060` | `#edecec` | 5.33 | pass | muted_on_background |

7 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}` (`#f54e00`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#dfa88f`) on `{color.background}` (`#edecec`).
- Set all text in `CursorGothic` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (4px, 8px, 7.5px, 10px) — 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 (cards) 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.muted}` with caution — confidence below 0.6.

## Provenance

- Source: https://cursor.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T08:17:56.163Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 06, 08, 09, 10, 11, 12 · missing: cards

---

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