---
name: millie-design-reference
provider: DesignSkill (https://designskill.dev)
reference: millie.co.kr
source_url: https://www.millie.co.kr/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T09:18:59.598Z
mode: full-render
classification: reference_only
---

# Millie — Design Reference (measured)

Measured design tokens extracted from `https://www.millie.co.kr/` 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), 680 observation records.
- Primary action color observed as `#852117` (basis: inferred, confidence 0.88).
- Dominant font family: **Pretendard Variable** (×2430; secondary __notoSerif_ef2586 ×4).
- Type scale observed at 8 sizes from 10px to 24px.
- Corner radius values in use: 7px, 8px, 20px, 4px….
- 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}` | `#852117` | inferred | 0.88 | ×68 |
| `{color.background}` | `#f7f7f7` | cross-validated | 0.95 | ×1526 |
| `{color.ink}` | `#242424` | cross-validated | 0.95 | ×1034 |
| `{color.muted}` | `#6f6f6f` | inferred | 0.7 | ×600 |
| `{color.surface}` | `#ffffff` | inferred | 0.7 | ×70 |
| `{color.accent}` | `#ffeb60` | inferred | 0.58 | ×6 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#242424` | 19.1% | color, --secondary-press, background-color | ×1034 (cross-validated, 0.95) |
| `#f7f7f7` | 28.2% | --tertiary-press, background-color, color, --ui-background, border-color | ×1526 (cross-validated, 0.95) |
| `#9fa3ab` | 11.8% | border-color | ×640 (observed, 0.79) |
| `#6f6f6f` | 11.1% | --quaternary, color | ×600 (cross-validated, 0.94) |
| `#000000` | 6.5% | background-color | ×350 (observed, 0.78) |
| `#ffffff` | 4.0% | border-color | ×214 (observed, 0.78) |
| `#555555` | 2.8% | color | ×150 (observed, 0.77) |
| `#dfdfdf` | 2.5% | --quaternary-press, border-color | ×133 (cross-validated, 0.92) |
| `#ececec` | 2.2% | --quaternary, border-color | ×117 (cross-validated, 0.92) |
| `#161616` | 2.5% | background-color, --ui-background, color | ×134 (cross-validated, 0.92) |
| `#ffffff` | 1.3% | background-color | ×70 (observed, 0.76) |
| `#852117` | 1.3% | background-color | ×68 (observed, 0.76) |
| `#5644f9` | 0.9% | color, background-color | ×48 (observed, 0.76) |
| `#000000` | 0.7% | background-color, border-color, box-shadow | ×38 (inferred, 0.6) |
| `#fff454` | 0.7% | background-color | ×36 (observed, 0.75) |
| `#5644f9` | 0.4% | background-color | ×24 (observed, 0.75) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Pretendard Variable` | ×2430 |
| `__notoSerif_ef2586` | ×4 |
| `swiper-icons` | ×2 |
| `icon` | ×2 |
| `Pretendard Fallback` | ×2 |
| `Pretendard Fallback Android` | ×1 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 24px | ×16 |
| `{type.h1}` | 20px | ×204 |
| `{type.h2}` | 18px | ×106 |
| `{type.h3}` | 16px | ×104 |
| `{type.body-lg}` | 14px | ×910 |
| `{type.body}` | 12px | ×724 |
| `{type.body-sm}` | 11px | ×140 |
| `{type.caption}` | 10px | ×182 |

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

## Spacing

| Value | Observed |
|---|---|
| `4px` | ×1585 |
| `16px` | ×886 |
| `2px` | ×858 |
| `12px` | ×548 |
| `8px` | ×323 |
| `6px` | ×198 |
| `5px` | ×168 |
| `20px` | ×124 |
| `32px` | ×106 |
| `14px` | ×104 |
| `45px` | ×60 |
| `30px` | ×60 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `7px` | ×2560 |
| `8px` | ×1496 |
| `20px` | ×276 |
| `4px` | ×146 |
| `12px` | ×144 |
| `100px` | ×138 |
| `16px` | ×120 |
| `10px` | ×109 |

## Elevation

| Shadow | Observed |
|---|---|
| `#000000` | ×21 |
| `var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)` | ×9 |
| `rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.1) 1px 2px 12px 0px` | ×6 |
| `var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)` | ×3 |
| `inset 0 0 0 1px rgb(var(--gray-alpha)/.2)` | ×1 |
| `inset 0 0 0 1px rgb(var(--surface-normal-450))` | ×1 |

## Motion

| Duration | Observed |
|---|---|
| `0.15s` | ×126 |
| `0.3s` | ×73 |
| `0.2s` | ×37 |
| `0.4s` | ×6 |
| `.15s` | ×5 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#fbfbfb` · text `#171717` · radius `100px` · padding `0px 16px` · font `14px/400` | ×3 |
| button.outline | text `#6f6f6f` · border `1px solid rgb(236, 236, 236)` · radius `10px` · padding `0px 10px` · font `14px` | ×12 |
| nav | bg `#ffffff` · height `65px` · position `sticky` · link `#242424` | — |

### Hero Gradient (observed)

```css
background-image: linear-gradient(270deg, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.2) 100%);
```

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#242424` | `#ffffff` | 15.52 | pass | observed ×322 |
| `#6f6f6f` | `#ffffff` | 5.02 | pass | observed ×299 |
| `#fbfbfb` | `#161616` | 17.49 | pass | observed ×90 |
| `#555555` | `#ffffff` | 7.46 | pass | observed ×69 |
| `#ffffff` | `#852117` | 9.43 | pass | observed ×60 |
| `#ffffff` | `#ffffff` | 1 | fail | observed ×30 |
| `#171717` | `#fbfbfb` | 17.32 | pass | observed ×30 |
| `#2b2b2b` | `#fff454` | 12.35 | pass | observed ×18 |
| `#242424` | `#be76df` | 5.06 | pass | observed ×18 |
| `#242424` | `#dc6cbd` | 5.12 | pass | observed ×18 |
| `#242424` | `#eb688f` | 5.11 | pass | observed ×18 |
| `#242424` | `#ef5e5e` | 4.76 | pass | observed ×18 |
| `#242424` | `#f7f7f7` | 14.49 | pass | ink_on_background |
| `#ffffff` | `#852117` | 9.43 | pass | white_on_primary |
| `#6f6f6f` | `#f7f7f7` | 4.69 | 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}` (`#852117`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#242424`) on `{color.background}` (`#f7f7f7`).
- Set all text in `Pretendard Variable` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (7px, 8px, 20px, 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, 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.millie.co.kr/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T09:18:59.598Z
- 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=#eb683f vs render=#852117 — render 채택

---

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