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

# SSG — Design Reference (measured)

Measured design tokens extracted from `https://www.ssg.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), 587 observation records.
- Primary action color observed as `#ffd040` (basis: declared, confidence 0.92).
- Dominant font family: **Pretendard** (×7098; secondary Spoqa-Regular ×3).
- Type scale observed at 8 sizes from 11px to 24px.
- Corner radius values in use: 4px, 24px, 2px, 3px….
- Not observed in this extraction: nav, 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}` | `#ffd040` | declared | 0.92 | ×8 — --m-colors-emart_brand |
| `{color.background}` | `#ffffff` | cross-validated | 0.95 | ×1505 |
| `{color.ink}` | `#222222` | cross-validated | 0.95 | ×2527 |
| `{color.muted}` | `#777777` | inferred | 0.7 | ×1199 |
| `{color.surface}` | `#e5e5e5` | inferred | 0.7 | ×160 |
| `{color.accent}` | `#e50005` | declared | 0.9 | ×601 — --m-colors-accent |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#222222` | 29.3% | color, border-color, background-color, --m-colors-secondary, custom-property | ×2527 (cross-validated, 0.95) |
| `#ffffff` | 17.5% | background-color, color, border-color, -webkit-box-shadow, custom-property | ×1505 (cross-validated, 0.95) |
| `#777777` | 13.9% | color, border-color, background-color, custom-property | ×1199 (cross-validated, 0.95) |
| `#000000` | 9.8% | background-color, color, border-color, -webkit-box-shadow, custom-property | ×840 (cross-validated, 0.95) |
| `#e50005` | 7.0% | custom-property, color | ×601 (cross-validated, 0.94) |
| `#888888` | 4.9% | color, border-color, custom-property | ×422 (cross-validated, 0.94) |
| `#00a354` | 3.9% | color | ×336 (observed, 0.78) |
| `#666666` | 3.6% | color, border-color, background-color, custom-property | ×309 (cross-validated, 0.93) |
| `#969696` | 2.2% | color, border-color, background-color, -webkit-box-shadow, custom-property | ×187 (cross-validated, 0.93) |
| `#e5e5e5` | 1.9% | border-color, background-color, -webkit-box-shadow, custom-property | ×160 (cross-validated, 0.92) |
| `#ff5452` | 1.1% | color, background-color, border-color, brand, custom-property | ×97 (cross-validated, 0.92) |
| `#0b9b5b` | 0.5% | color | ×42 (observed, 0.75) |
| `#000000` | 0.4% | background-color | ×36 (observed, 0.75) |
| `#d8d8d8` | 0.8% | border-color, color, background-color, disabled, custom-property | ×67 (inferred, 0.61) |
| `#3b3b3b` | 0.4% | background-color, border-color, color | ×36 (cross-validated, 0.9) |
| `#0000ee` | 0.3% | color | ×24 (observed, 0.75) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Pretendard` | ×7098 |
| `Spoqa-Regular` | ×3 |
| `PlayfairDisplay` | ×3 |
| `돋움` | ×1 |
| `NanumBarunGothic` | ×1 |
| `Spoqa-Medium` | ×1 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 24px | ×778 |
| `{type.h1}` | 18px | ×963 |
| `{type.h2}` | 16px | ×91 |
| `{type.h3}` | 15px | ×466 |
| `{type.body-lg}` | 14px | ×164 |
| `{type.body}` | 13px | ×1341 |
| `{type.body-sm}` | 12px | ×2387 |
| `{type.caption}` | 11px | ×914 |

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

## Spacing

| Value | Observed |
|---|---|
| `4px` | ×2485 |
| `2px` | ×1066 |
| `8px` | ×632 |
| `10px` | ×541 |
| `6px` | ×450 |
| `16px` | ×324 |
| `20px` | ×124 |
| `5px` | ×94 |
| `30px` | ×85 |
| `15px` | ×74 |
| `80px` | ×60 |
| `7px` | ×52 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `4px` | ×469 |
| `24px` | ×24 |
| `2px` | ×21 |
| `3px` | ×13 |
| `8px` | ×11 |
| `6px` | ×5 |

## Elevation

| Shadow | Observed |
|---|---|
| `rgb(229, 229, 229) 0px 0px 0px 1px inset` | ×456 |
| `0 3px 10px 0 rgba(0, 0, 0, 0.1)` | ×6 |
| `inset 0 0 0 1px var(--m-colors-gray300, #e5e5e5)` | ×6 |
| `rgb(150, 150, 150) 0px 0px 0px 1px inset` | ×6 |
| `rgb(34, 34, 34) 0px 0px 0px 1px inset` | ×6 |
| `rgb(207, 207, 207) 0px 0px 0px 1px inset` | ×6 |

## Motion

| Duration | Observed |
|---|---|
| `0.3s` | ×205 |
| `0.8s` | ×33 |
| `0.7s` | ×6 |
| `0.4s` | ×6 |
| `200ms` | ×4 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| form.input | bg `#000000` · text `#222222` · border `0px solid rgb(34, 34, 34)` · radius `0px` · padding `0px` · height `36` | ×1 |

### Hero Gradient (observed)

```css
background-image: linear-gradient(90deg, rgb(255, 84, 82) 0%, rgb(244, 52, 121) 42%, rgb(244, 52, 121) 59%, rgb(190, 63, 250) 100%);
```

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#222222` | `#000000` | 1.32 | fail | observed ×720 |
| `#ffffff` | `#000000` | 21 | pass | observed ×423 |
| `#777777` | `#000000` | 4.69 | pass | observed ×393 |
| `#e50005` | `#000000` | 4.33 | fail | observed ×288 |
| `#000000` | `#000000` | 1 | fail | observed ×270 |
| `#888888` | `#000000` | 5.92 | pass | observed ×168 |
| `#00a354` | `#000000` | 6.37 | pass | observed ×90 |
| `#666666` | `#000000` | 3.66 | fail | observed ×66 |
| `#969696` | `#000000` | 7.1 | pass | observed ×33 |
| `#ffffff` | `#222222` | 15.91 | pass | observed ×21 |
| `#ffffff` | `#ff5452` | 3.16 | fail | observed ×15 |
| `#0000ee` | `#000000` | 2.23 | fail | observed ×12 |
| `#222222` | `#ffffff` | 15.91 | pass | ink_on_background |
| `#ffffff` | `#ffd040` | 1.46 | fail | white_on_primary |
| `#777777` | `#ffffff` | 4.48 | fail | muted_on_background |

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

## Provenance

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

---

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