---
name: notion-design-reference
provider: DesignSkill (https://designskill.dev)
reference: notion.com
source_url: https://www.notion.com/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T07:51:43.889Z
mode: full-render
classification: reference_only
---

# Notion — Design Reference (measured)

Measured design tokens extracted from `https://www.notion.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), 573 observation records.
- Primary action color observed as `#0075de` (basis: cross-validated, confidence 0.61).
- Dominant font family: **NotionInter** (×624; secondary Lyon Text ×16).
- Type scale observed at 8 sizes from 12px to 54px.
- Corner radius values in use: 8px, 12px, 6px, 4px….
- Not observed in this extraction: forms, 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}` | `#0075de` | cross-validated | 0.61 | ×38 |
| `{color.background}` | `#ffffff` | cross-validated | 0.94 | ×507 |
| `{color.ink}` | `#000000` | declared | 0.92 | ×378 — --text-color-extra-light |
| `{color.muted}` | `#615d59` | inferred | 0.7 | ×126 |
| `{color.surface}` | `#e6f3fe` | inferred | 0.7 | ×8 |
| `{color.accent}` | `#2a9d99` | inferred | 0.65 | ×9 |

### 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` | 34.9% | background-color, color, border-color, --color-white | ×507 (cross-validated, 0.94) |
| `#000000` | 26.0% | color | ×378 (observed, 0.79) |
| `#000000` | 12.7% | background-color, border-color, color, box-shadow, --text-color-regular | ×184 (cross-validated, 0.93) |
| `#615d59` | 8.7% | color | ×126 (observed, 0.77) |
| `#000000` | 4.7% | background-color, border-color | ×68 (observed, 0.76) |
| `#0075de` | 2.6% | background-color, color, --graphic-fill-color | ×38 (cross-validated, 0.9) |
| `#62aef0` | 1.4% | background-color | ×20 (observed, 0.74) |
| `#ffb110` | 1.0% | background-color, --graphic-fill-color | ×15 (cross-validated, 0.89) |
| `#f64932` | 1.0% | --graphic-fill-color, background-color | ×15 (cross-validated, 0.89) |
| `#2a9d99` | 0.6% | --graphic-fill-color, background-color | ×9 (cross-validated, 0.88) |
| `#e6f3fe` | 0.5% | background-color | ×8 (observed, 0.73) |
| `#ffc95e` | 0.5% | background-color | ×8 (observed, 0.73) |
| `#f77463` | 0.5% | background-color | ×8 (observed, 0.73) |
| `#111111` | 0.5% | --text-color-dark, background-color | ×7 (cross-validated, 0.88) |
| `#1aae39` | 0.5% | --graphic-fill-color, background-color | ×7 (cross-validated, 0.88) |
| `#005bab` | 0.4% | color | ×6 (observed, 0.73) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `NotionInter` | ×624 |
| `Lyon Text` | ×16 |
| `iA Writer Mono` | ×4 |
| `sans-serif` | ×1 |
| `monospace` | ×1 |
| `Noto Sans Arabic` | ×1 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 54px | ×10 |
| `{type.h1}` | 32px | ×26 |
| `{type.h2}` | 26px | ×6 |
| `{type.h3}` | 22px | ×56 |
| `{type.body-lg}` | 20px | ×5 |
| `{type.body}` | 16px | ×106 |
| `{type.body-sm}` | 14px | ×382 |
| `{type.caption}` | 12px | ×25 |

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

## Spacing

| Value | Observed |
|---|---|
| `24px` | ×289 |
| `8px` | ×265 |
| `3px` | ×264 |
| `6px` | ×232 |
| `12px` | ×217 |
| `16px` | ×198 |
| `4px` | ×86 |
| `5px` | ×56 |
| `64px` | ×40 |
| `32px` | ×38 |
| `14px` | ×24 |
| `20px` | ×20 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `8px` | ×280 |
| `12px` | ×162 |
| `6px` | ×84 |
| `4px` | ×52 |
| `5px` | ×18 |
| `11.5px` | ×12 |
| `23px` | ×12 |

## Elevation

| Shadow | Observed |
|---|---|
| `var(--shadow-200)` | ×7 |
| `#000000` | ×6 |
| `rgba(0, 0, 0, 0) 0px 1px 0px 0px` | ×4 |
| `var(--shadow-100)` | ×3 |
| `#2383e2` | ×2 |
| `0 1px rgba(0,0,0,0)` | ×2 |

## Motion

| Duration | Observed |
|---|---|
| `0.2s` | ×148 |
| `0.3s` | ×54 |
| `0.15s` | ×38 |
| `.15s` | ×7 |
| `.4s` | ×2 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#0075de` · text `#ffffff` · radius `8px` · padding `4px 14px` · font `16px/500` | ×3 |
| card | bg `#ffffff` · radius `12px` · border `1px solid rgba(0, 0, 0, 0.1)` · padding `24px` | ×5 |
| nav | bg `#ffffff` · height `64px` · position `relative` · link `#000000` | — |

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| hover | background-color | `rgba(0, 0, 0, 0)` | `rgba(0, 0, 0, 0.05)` |
| hover | background-color | `rgba(0, 0, 0, 0)` | `rgba(0, 0, 0, 0.05)` |
| hover | background-color | `rgba(0, 0, 0, 0)` | `rgba(0, 0, 0, 0.05)` |
| focus | background-color | `rgba(0, 0, 0, 0)` | `rgba(0, 0, 0, 0.05)` |
| focus | outline-color | `rgba(255, 255, 255, 0)` | `rgb(0, 117, 222)` |
| focus | background-color | `rgba(0, 0, 0, 0)` | `rgba(0, 0, 0, 0.05)` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#000000` | `#ffffff` | 21 | pass | observed ×183 |
| `#615d59` | `#ffffff` | 6.53 | pass | observed ×63 |
| `#000000` | `#f6f5f4` | 19.29 | pass | observed ×30 |
| `#000000` | `#f7f7f5` | 19.58 | pass | observed ×12 |
| `#ffffff` | `#0075de` | 4.57 | pass | observed ×9 |
| `#005bab` | `#e6f3fe` | 6.04 | pass | observed ×3 |
| `#ffffff` | `#02093a` | 19.04 | pass | observed ×3 |
| `#0075de` | `#f6f5f4` | 4.19 | fail | observed ×3 |
| `#000000` | `#d0f4d8` | 17.61 | pass | observed ×2 |
| `#000000` | `#e6f3fe` | 18.62 | pass | observed ×1 |
| `#ffffff` | `#ffffff` | 1 | fail | observed ×1 |
| `#000000` | `#ffffff` | 21 | pass | ink_on_background |
| `#ffffff` | `#0075de` | 4.57 | pass | white_on_primary |
| `#615d59` | `#ffffff` | 6.53 | pass | muted_on_background |

2 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}` (`#0075de`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#000000`) on `{color.background}` (`#ffffff`).
- Set all text in `NotionInter` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (8px, 12px, 6px, 4px) — 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 (forms, 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.

## Provenance

- Source: https://www.notion.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T07:51:43.889Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 07, 09, 10, 11, 12 · missing: forms, badges
- Warning: primary 불일치: static=#ffb110 vs render=#0075de — render 채택

---

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