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

# GoodChoice — Design Reference (measured)

Measured design tokens extracted from `https://www.yeogi.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), 601 observation records.
- Primary action color observed as `#007aff` (basis: cross-validated, confidence 0.84).
- Dominant font family: **Pretendard** (×3385; secondary ui-monospace ×2).
- Type scale observed at 8 sizes from 11px to 32px.
- Corner radius values in use: 12px, 6px, 100px, 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}` | `#007aff` | cross-validated | 0.84 | ×7 |
| `{color.background}` | `#f5f7fa` | cross-validated | 0.95 | ×1595 |
| `{color.ink}` | `#222222` | cross-validated | 0.95 | ×1165 |
| `{color.muted}` | `#8b8b8b` | inferred | 0.7 | ×2170 |
| `{color.surface}` | `#ffc83b` | inferred | 0.7 | ×234 |
| `{color.accent}` | `#f94239` | inferred | 0.65 | ×41 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#8b8b8b` | 36.1% | color, background-color, fill, custom-property | ×2170 (cross-validated, 0.95) |
| `#222222` | 19.4% | color, background-color, border-color, fill | ×1165 (cross-validated, 0.95) |
| `#f5f7fa` | 26.5% | background-color, --background-secondary, color, border-color, --tw-gradient-stops | ×1595 (cross-validated, 0.95) |
| `#000000` | 3.9% | background-color, color, border-color, box-shadow | ×235 (cross-validated, 0.93) |
| `#ffc83b` | 3.9% | background-color, color, fill, custom-property | ×234 (cross-validated, 0.93) |
| `#e6e6e6` | 2.6% | border-color, background-color, --background-input-hover, custom-property, fill | ×156 (cross-validated, 0.92) |
| `#1d8bff` | 2.0% | background-color, color, border-color, fill, custom-property | ×119 (cross-validated, 0.92) |
| `#dcdcdc` | 0.7% | background-color, color, border-color, fill, custom-property | ×41 (cross-validated, 0.9) |
| `#f94239` | 0.7% | background-color, color, border-color, fill, custom-property | ×41 (cross-validated, 0.9) |
| `#e3f0ff` | 0.7% | background-color, border-color, --button-highlight-hover, custom-property, fill | ×42 (cross-validated, 0.9) |
| `#bbbbbb` | 0.3% | color, background-color, border-color, fill | ×20 (inferred, 0.59) |
| `#999999` | 0.3% | color, background-color, --content-placeholder | ×17 (cross-validated, 0.89) |
| `#ff8025` | 0.2% | color, background-color, fill | ×11 (inferred, 0.59) |
| `#707070` | 0.1% | color, background-color, fill, custom-property | ×9 (inferred, 0.58) |
| `#ea2013` | 0.1% | background-color, color, fill, custom-property | ×9 (inferred, 0.58) |
| `#49627a` | 0.1% | color, background-color, fill | ×9 (inferred, 0.58) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Pretendard` | ×3385 |
| `ui-monospace` | ×2 |
| `swiper-icons` | ×2 |
| `Pretendard_Fallback` | ×1 |
| `ui-sans-serif` | ×1 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 32px | ×22 |
| `{type.h1}` | 18px | ×352 |
| `{type.h2}` | 16px | ×320 |
| `{type.h3}` | 15px | ×104 |
| `{type.body-lg}` | 14px | ×1161 |
| `{type.body}` | 13px | ×781 |
| `{type.body-sm}` | 12px | ×443 |
| `{type.caption}` | 11px | ×321 |

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

## Spacing

| Value | Observed |
|---|---|
| `8px` | ×1602 |
| `4px` | ×1075 |
| `20px` | ×569 |
| `6px` | ×536 |
| `16px` | ×509 |
| `2px` | ×500 |
| `12px` | ×491 |
| `3px` | ×240 |
| `24px` | ×166 |
| `10px` | ×131 |
| `40px` | ×61 |
| `14px` | ×49 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `12px` | ×1356 |
| `6px` | ×228 |
| `100px` | ×95 |
| `10px` | ×40 |
| `8px` | ×34 |
| `18px` | ×24 |
| `16px` | ×24 |
| `4px` | ×11 |

## Elevation

| Shadow | Observed |
|---|---|
| `#000000` | ×69 |
| `var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)` | ×28 |
| `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.24) 0px 2px 8px 0px` | ×16 |
| `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.08) 0px 2px 16px 0px` | ×6 |
| `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(29, 139, 255) 0px 0px 0px 1.5px inset, rgb(255, 255, 255) 0px 0px 0px 3px inset` | ×4 |
| `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.06) 0px 1px 2px 0px` | ×4 |

## Motion

| Duration | Observed |
|---|---|
| `0.2s` | ×104 |
| `0.15s` | ×40 |
| `.15s` | ×21 |
| `.3s` | ×18 |
| `0.3s` | ×6 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#1d8bff` · text `#ffffff` · radius `10px` · padding `0px 18px` · font `15px/700` | ×1 |
| form.input | bg `#000000` · text `#222222` · border `0px solid rgb(34, 34, 34)` · radius `0px` · padding `0px` · height `19` | ×1 |
| badge | bg `#1d8bff` · text `#ffffff` · radius `100px` · font `13px/700` · padding `8px 16px` | ×3 |
| nav | bg `#ffffff` · height `76px` · position `static` · link `#000000` | — |

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| hover | background-color | `rgb(255, 255, 255)` | `rgb(245, 245, 245)` |
| hover | background-color | `rgb(255, 255, 255)` | `rgb(227, 240, 255)` |
| hover | background-color | `rgba(0, 0, 0, 0)` | `rgb(230, 230, 230)` |
| focus | background-color | `rgb(255, 255, 255)` | `rgb(245, 245, 245)` |
| focus | background-color | `rgb(255, 255, 255)` | `rgb(227, 240, 255)` |
| focus | background-color | `rgba(0, 0, 0, 0)` | `rgb(255, 255, 255)` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#8b8b8b` | `#ffffff` | 3.41 | fail | observed ×972 |
| `#222222` | `#ffffff` | 15.91 | pass | observed ×442 |
| `#222222` | `#ffc83b` | 10.29 | pass | observed ×114 |
| `#8b8b8b` | `#f5f7fa` | 3.17 | fail | observed ×102 |
| `#ffffff` | `#1d8bff` | 3.39 | fail | observed ×15 |
| `#ffffff` | `#000000` | 21 | pass | observed ×10 |
| `#1d8bff` | `#ffffff` | 3.39 | fail | observed ×10 |
| `#222222` | `#000000` | 1.32 | fail | observed ×6 |
| `#222222` | `#edebff` | 13.58 | pass | observed ×4 |
| `#f94239` | `#ffffff` | 3.58 | pass | observed ×3 |
| `#222222` | `#f5f7fa` | 14.82 | pass | observed ×3 |
| `#1d8bff` | `#000000` | 6.19 | pass | observed ×2 |
| `#222222` | `#f5f7fa` | 14.82 | pass | ink_on_background |
| `#ffffff` | `#007aff` | 4.02 | fail | white_on_primary |
| `#8b8b8b` | `#f5f7fa` | 3.17 | fail | 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}` (`#007aff`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#222222`) on `{color.background}` (`#f5f7fa`).
- Set all text in `Pretendard` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (12px, 6px, 100px, 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.

## Provenance

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

---

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