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

# Pinterest — Design Reference (measured)

Measured design tokens extracted from `https://www.pinterest.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), 414 observation records.
- Primary action color observed as `#e60023` (basis: inferred, confidence 0.88).
- Dominant font family: **Pin Sans** (×557).
- Type scale observed at 8 sizes from 12px to 70px.
- Corner radius values in use: 16px, 8px, 12px, 32px….
- Not observed in this extraction: cards, 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}` | `#e60023` | inferred | 0.88 | ×38 |
| `{color.background}` | `#ffffff` | cross-validated | 0.94 | ×499 |
| `{color.ink}` | `#000000` | cross-validated | 0.93 | ×286 |
| `{color.muted}` | `#62625b` | inferred | 0.7 | ×131 |
| `{color.surface}` | `#000000` | declared | 0.9 | ×286 — --sema-elevation-shadow-surface-shadow-color |
| `{color.accent}` | `#02b70e` | inferred | 0.57 | ×2 |

### 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` | 31.2% | --comp-iconbuttonsocial-color-icon-samsung-messages, color, background-color, border-color | ×499 (cross-validated, 0.94) |
| `#000000` | 17.9% | background-color, box-shadow, color, -dark | ×286 (cross-validated, 0.93) |
| `#e5e5e0` | 11.5% | background-color | ×183 (cross-validated, 0.93) |
| `#000000` | 10.2% | background-color | ×163 (observed, 0.77) |
| `#efefef` | 10.6% | background-color | ×170 (observed, 0.77) |
| `#62625b` | 8.2% | color | ×131 (observed, 0.77) |
| `#211922` | 2.8% | color | ×44 (observed, 0.76) |
| `#e60023` | 2.4% | background-color | ×38 (observed, 0.75) |
| `#242421` | 1.3% | background-color | ×21 (observed, 0.74) |
| `#91918c` | 1.3% | border-color | ×20 (observed, 0.74) |
| `#242423` | 0.3% | mask-image, -dark | ×4 (inferred, 0.57) |
| `#393937` | 0.3% | mask-image, background-color, --sema-color-hover-background-elevated-scrim-translucent | ×4 (inferred, 0.57) |
| `#0866ff` | 0.1% | color, --comp-iconbuttonsocial-color-background-container-facebook-stories | ×2 (inferred, 0.57) |
| `#181816` | 0.3% | -dark, color, background-color, --sema-color-pressed-background-elevated-scrim-translucent | ×5 (inferred, 0.58) |
| `#3e2723` | 0.1% | color, --comp-iconbuttonsocial-color-icon-kakao-talk | ×2 (inferred, 0.57) |
| `#583b91` | 0.1% | --sema-color-pressed-icon-performance-plus | ×1 (inferred, 0.56) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Pin Sans` | ×557 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 70px | ×5 |
| `{type.h1}` | 50px | ×5 |
| `{type.h2}` | 48px | ×11 |
| `{type.h3}` | 38px | ×15 |
| `{type.body-lg}` | 36px | ×5 |
| `{type.body}` | 20px | ×25 |
| `{type.body-sm}` | 16px | ×223 |
| `{type.caption}` | 12px | ×255 |

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

## Spacing

| Value | Observed |
|---|---|
| `16px` | ×244 |
| `4px` | ×165 |
| `6px` | ×154 |
| `8px` | ×125 |
| `24px` | ×50 |
| `100px` | ×45 |
| `2px` | ×42 |
| `64px` | ×27 |
| `20px` | ×10 |
| `12px` | ×10 |
| `36px` | ×5 |
| `40px` | ×5 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `16px` | ×342 |
| `8px` | ×50 |
| `12px` | ×42 |
| `32px` | ×30 |
| `20px` | ×15 |
| `24px` | ×6 |

## Elevation

| Shadow | Observed |
|---|---|
| `var(--sema-elevation-shadow-floating)` | ×6 |
| `var(--sema-elevation-shadow-raised)` | ×5 |
| `rgba(0, 0, 0, 0.2) 0px 3px 12px 0px` | ×5 |
| `#000000` | ×4 |
| `var(--sema-elevation-shadow-surface)` | ×2 |
| `var(--comp-button-elevation-shadow-default)` | ×1 |

## Motion

| Duration | Observed |
|---|---|
| `0.085s` | ×203 |
| `0.2s` | ×6 |
| `.2s` | ×2 |
| `85ms` | ×1 |
| `.15s` | ×1 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#e60023` · text `#000000` · radius `16px` · padding `6px 14px` · font `12px/400` | ×5 |
| button.outline | text `#211922` · border `2px solid rgba(255, 255, 255, 0)` · radius `16px` · padding `6px 14px` · font `12px` | ×3 |
| form.input | bg `#000000` · text `#000000` · border `0px solid rgb(0, 0, 0)` · radius `0px` · padding `0px` · height `48` | ×4 |
| nav | height `80px` · position `static` · link `#211922` | — |

### Hero Gradient (observed)

```css
background-image: linear-gradient(rgb(246, 246, 243) 0%, rgba(246, 246, 243, 0) 100%);
```

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| hover | background-color | `rgba(255, 255, 255, 0)` | `rgba(246, 246, 243, 0.5)` |
| hover | outline-width | `3px` | `0px` |
| hover | background-color | `rgba(255, 255, 255, 0)` | `rgba(246, 246, 243, 0.5)` |
| focus | background-color | `rgba(255, 255, 255, 0)` | `rgba(246, 246, 243, 0.5)` |
| focus | outline-width | `3px` | `0px` |
| focus | background-color | `rgba(255, 255, 255, 0)` | `rgba(246, 246, 243, 0.5)` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#000000` | `#ffffff` | 21 | pass | observed ×101 |
| `#62625b` | `#ffffff` | 6.14 | pass | observed ×54 |
| `#ffffff` | `#000000` | 21 | pass | observed ×24 |
| `#211922` | `#ffffff` | 17.12 | pass | observed ×20 |
| `#ffffff` | `#e60023` | 4.78 | pass | observed ×16 |
| `#000000` | `#e5e5e0` | 16.62 | pass | observed ×7 |
| `#ffffff` | `#ffffff` | 1 | fail | observed ×2 |
| `#000000` | `#ffffff` | 21 | pass | ink_on_background |
| `#ffffff` | `#e60023` | 4.78 | pass | white_on_primary |
| `#62625b` | `#ffffff` | 6.14 | pass | muted_on_background |

1 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}` (`#e60023`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#000000`) on `{color.background}` (`#ffffff`).
- Set all text in `Pin Sans` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (16px, 8px, 12px, 32px) — 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, 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.pinterest.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T08:55:51.659Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 06, 09, 10, 11, 12 · missing: cards, badges
- Warning: primary 불일치: static=#0866ff vs render=#e60023 — render 채택

---

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