---
name: shinhan-design-reference
provider: DesignSkill (https://designskill.dev)
reference: shinhan.com
source_url: https://www.shinhan.com/index.jsp
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T09:18:23.596Z
mode: full-render
classification: reference_only
---

# Shinhan — Design Reference (measured)

Measured design tokens extracted from `https://www.shinhan.com/index.jsp` 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), 335 observation records.
- Primary action color observed as `#195dae` (basis: inferred, confidence 0.55).
- Dominant font family: **Spoqa** (×131; secondary 돋움 ×1).
- Type scale observed at 8 sizes from 12px to 24px.
- Corner radius values in use: 6px, 9px, 2px.
- Not observed in this extraction: nav, visual-hero, forms, cards, badges, elevation.

## 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}` | `#195dae` | inferred | 0.55 | ×5 |
| `{color.background}` | `#ffffff` | cross-validated | 0.91 | ×50 |
| `{color.ink}` | `#333333` | cross-validated | 0.9 | ×22 |
| `{color.muted}` | `#666666` | inferred | 0.7 | ×27 |
| `{color.surface}` | `#aadaff` | inferred | 0.7 | ×10 |
| `{color.accent}` | `#c87a00` | inferred | 0.65 | ×10 |

### 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` | 16.3% | background-color, color | ×50 (cross-validated, 0.91) |
| `#555555` | 9.8% | color, background-color | ×30 (observed, 0.75) |
| `#666666` | 8.8% | color, background-color | ×27 (cross-validated, 0.9) |
| `#bebebe` | 6.5% | background-color, color | ×20 (observed, 0.74) |
| `#333333` | 7.2% | color | ×22 (cross-validated, 0.9) |
| `#a0a0a0` | 4.9% | color | ×15 (observed, 0.74) |
| `#cccccc` | 4.9% | color, border-color | ×15 (observed, 0.74) |
| `#0076be` | 8.1% | background-color, color | ×25 (observed, 0.75) |
| `#bfc7d0` | 3.3% | border-color | ×10 (observed, 0.73) |
| `#aadaff` | 3.3% | background-color | ×10 (observed, 0.73) |
| `#6eb9e8` | 3.3% | border-color | ×10 (observed, 0.73) |
| `#7ae6e9` | 3.3% | background-color | ×10 (observed, 0.73) |
| `#007bab` | 3.3% | color | ×10 (observed, 0.73) |
| `#4fc1da` | 3.3% | border-color | ×10 (observed, 0.73) |
| `#f1f1f1` | 3.3% | color | ×10 (observed, 0.73) |
| `#c87a00` | 3.3% | background-color, color | ×10 (observed, 0.73) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Spoqa` | ×131 |
| `돋움` | ×1 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 24px | ×10 |
| `{type.h1}` | 22px | ×10 |
| `{type.h2}` | 18px | ×30 |
| `{type.h3}` | 16px | ×5 |
| `{type.body-lg}` | 15px | ×6 |
| `{type.body}` | 14px | ×15 |
| `{type.body-sm}` | 13px | ×20 |
| `{type.caption}` | 12px | ×20 |

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

## Spacing

| Value | Observed |
|---|---|
| `8px` | ×55 |
| `25px` | ×30 |
| `30px` | ×25 |
| `7px` | ×25 |
| `2px` | ×15 |
| `40px` | ×15 |
| `10px` | ×12 |
| `45px` | ×10 |
| `13px` | ×5 |
| `109px` | ×5 |
| `73px` | ×5 |
| `27px` | ×5 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `6px` | ×20 |
| `9px` | ×20 |
| `2px` | ×10 |

## Motion

| Duration | Observed |
|---|---|
| `0.7s` | ×5 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#c87a00` · text `#343434` · radius `0px` · padding `0px` · font `14px/400` | ×1 |
| button.outline | text `#195dae` · border `1px solid rgb(178, 178, 178)` · radius `2px` · padding `0px` · font `15px` | ×1 |

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| focus | outline-color | `rgb(52, 52, 52)` | `rgb(0, 95, 204)` |
| focus | outline-width | `3px` | `1px` |
| focus | outline-color | `rgb(25, 93, 174)` | `rgb(0, 95, 204)` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#555555` | `#000000` | 2.82 | fail | observed ×10 |
| `#a0a0a0` | `#000000` | 8.03 | pass | observed ×6 |
| `#333333` | `#000000` | 1.66 | fail | observed ×4 |
| `#0075b5` | `#aadaff` | 3.37 | fail | observed ×4 |
| `#007bab` | `#7ae6e9` | 3.24 | fail | observed ×4 |
| `#f1f1f1` | `#6a6a6a` | 4.79 | pass | observed ×4 |
| `#666666` | `#ffffff` | 5.74 | pass | observed ×2 |
| `#195dae` | `#ffffff` | 6.53 | pass | observed ×2 |
| `#666666` | `#000000` | 3.66 | fail | observed ×2 |
| `#ffffff` | `#0076be` | 4.84 | pass | observed ×2 |
| `#343434` | `#000000` | 1.69 | fail | observed ×2 |
| `#333333` | `#f6fbfd` | 12.11 | pass | observed ×2 |
| `#333333` | `#ffffff` | 12.63 | pass | ink_on_background |
| `#ffffff` | `#195dae` | 6.53 | pass | white_on_primary |
| `#666666` | `#ffffff` | 5.74 | pass | muted_on_background |

6 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}` (`#195dae`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#333333`) on `{color.background}` (`#ffffff`).
- Set all text in `Spoqa` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (6px, 9px, 2px) — 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, visual-hero, forms, cards, badges, elevation) 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://www.shinhan.com/index.jsp (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T09:18:23.596Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 02, 03, 04, 05, 09, 10, 12 · missing: nav, visual-hero, forms, cards, badges, elevation
- Warning: primary 불일치: static=#3579d4 vs render=#195dae — render 채택

---

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