---
name: velog-design-reference
provider: DesignSkill (https://designskill.dev)
reference: velog.io
source_url: https://velog.io/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T09:34:21.180Z
mode: full-render
classification: reference_only
---

# Velog — Design Reference (measured)

Measured design tokens extracted from `https://velog.io/` 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), 322 observation records.
- Primary action color observed as `#12b886` (basis: inferred, confidence 0.52).
- Dominant font family: **-apple-system** (×1544; secondary KaTeX_Main ×8).
- Type scale observed at 7 sizes from 12px to 32px.
- Corner radius values in use: 4px, 16px, 12px, 24px.
- Not observed in this extraction: forms, 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}` | `#12b886` | inferred | 0.52 | ×5 |
| `{color.background}` | `#ffffff` | cross-validated | 0.94 | ×411 |
| `{color.ink}` | `#212529` | cross-validated | 0.94 | ×546 |
| `{color.muted}` | `#868e96` | inferred | 0.7 | ×758 |
| `{color.surface}` | `#dee2e6` | inferred | 0.7 | ×109 |
| `{color.accent}` | `#f0f0f0` | declared | 0.9 | ×0 — --accent1 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#868e96` | 30.9% | custom-property, color | ×758 (cross-validated, 0.95) |
| `#212529` | 22.3% | custom-property, background-color, color, --background-base, --prism-default-text | ×546 (cross-validated, 0.94) |
| `#ffffff` | 16.8% | color, background-color, --bg-invert, --bg-tag, custom-property | ×411 (cross-validated, 0.94) |
| `#495057` | 10.4% | custom-property, color | ×255 (cross-validated, 0.93) |
| `#f1f3f5` | 10.2% | custom-property, border-color | ×250 (cross-validated, 0.93) |
| `#dee2e6` | 4.5% | custom-property, background-color | ×109 (cross-validated, 0.92) |
| `#000000` | 1.1% | background-color, color, box-shadow | ×26 (inferred, 0.6) |
| `#343a40` | 0.6% | custom-property, background-color | ×14 (cross-validated, 0.89) |
| `#8be9fd` | 0.4% | color | ×10 (inferred, 0.58) |
| `#ffb86c` | 0.2% | color | ×5 (inferred, 0.58) |
| `#ff79c6` | 0.2% | color | ×5 (inferred, 0.58) |
| `#50fa7b` | 0.2% | color | ×6 (inferred, 0.58) |
| `#f8f8f2` | 0.2% | color | ×4 (inferred, 0.57) |
| `#cccccc` | 0.1% | color | ×3 (inferred, 0.57) |
| `#cfcfc2` | 0.1% | color | ×3 (inferred, 0.57) |
| `#12b886` | 0.2% | background-color, custom-property | ×5 (inferred, 0.58) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `-apple-system` | ×1544 |
| `KaTeX_Main` | ×8 |
| `KaTeX_SansSerif` | ×7 |
| `KaTeX_Math` | ×4 |
| `KaTeX_Size1` | ×4 |
| `Fira Mono` | ×3 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 32px | ×7 |
| `{type.h1}` | 24px | ×15 |
| `{type.h2}` | 20px | ×8 |
| `{type.h3}` | 18px | ×39 |
| `{type.body-lg}` | 16px | ×278 |
| `{type.body}` | 14px | ×290 |
| `{type.body-sm}` | 12px | ×1018 |

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

## Spacing

| Value | Observed |
|---|---|
| `16px` | ×564 |
| `10px` | ×492 |
| `24px` | ×269 |
| `4px` | ×252 |
| `12px` | ×69 |
| `8px` | ×47 |
| `32px` | ×18 |
| `5px` | ×12 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `4px` | ×372 |
| `16px` | ×20 |
| `12px` | ×2 |
| `24px` | ×2 |

## Elevation

| Shadow | Observed |
|---|---|
| `rgba(0, 0, 0, 0.04) 0px 4px 16px 0px` | ×246 |
| `#000000` | ×21 |
| `rgba(0, 0, 0, 0.05) 0px 0px 4px 0px` | ×12 |
| `0 0 4px 0 rgba(0,0,0,.06)` | ×3 |
| `0 0 8px rgba(0,0,0,.1)` | ×2 |
| `0 2px 12px 0 rgba(0,0,0,.09)` | ×2 |

## Motion

| Duration | Observed |
|---|---|
| `0.25s` | ×216 |
| `0.125s` | ×12 |
| `0.2s` | ×12 |
| `.125s` | ×6 |
| `.3s` | ×1 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#212529` · text `#ffffff` · radius `16px` · padding `1px 16px` · font `16px/700` | ×2 |
| nav | height `64px` · position `static` · link `#000000` | — |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#868e96` | `#ffffff` | 3.32 | fail | observed ×369 |
| `#212529` | `#ffffff` | 15.43 | pass | observed ×258 |
| `#495057` | `#ffffff` | 8.18 | pass | observed ×126 |
| `#868e96` | `#f8f9fa` | 3.15 | fail | observed ×9 |
| `#ffffff` | `#212529` | 15.43 | pass | observed ×6 |
| `#212529` | `#f8f9fa` | 14.63 | pass | observed ×3 |
| `#212529` | `#ffffff` | 15.43 | pass | ink_on_background |
| `#ffffff` | `#12b886` | 2.55 | fail | white_on_primary |
| `#868e96` | `#ffffff` | 3.32 | fail | muted_on_background |

4 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}` (`#12b886`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#212529`) on `{color.background}` (`#ffffff`).
- Set all text in `-apple-system` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (4px, 16px, 12px, 24px) — 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, 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.primary}` with caution — confidence below 0.6.

## Provenance

- Source: https://velog.io/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T09:34:21.180Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 09, 10, 11, 12 · missing: forms, cards, badges
- Degraded stages (extraction failure ≠ design change — exclude from diffs): state-observation
- Warning: primary 불일치: static=#ff79c6 vs render=#12b886 — render 채택

---

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