---
name: hana-design-reference
provider: DesignSkill (https://designskill.dev)
reference: hanabank.com
source_url: https://www.hanabank.com/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T09:24:09.868Z
mode: full-render
classification: reference_only
---

# Hana — Design Reference (measured)

Measured design tokens extracted from `https://www.hanabank.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), 453 observation records.
- Primary action color observed as `#008485` (basis: cross-validated, confidence 0.85).
- Dominant font family: **NotoSans_Regular** (×624; secondary NotoSans_Bold ×61).
- Type scale observed at 8 sizes from 12px to 38px.
- Corner radius values in use: 50px, 2px, 10px, 20px….
- Not observed in this extraction: nav, forms, 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}` | `#008485` | cross-validated | 0.85 | ×141 |
| `{color.background}` | `#ffffff` | cross-validated | 0.94 | ×412 |
| `{color.ink}` | `#000000` | cross-validated | 0.93 | ×231 |
| `{color.muted}` | `#666666` | inferred | 0.7 | ×202 |
| `{color.surface}` | `#ebebeb` | inferred | 0.7 | ×58 |
| `{color.accent}` | `#e77513` | inferred | 0.59 | ×11 |

### 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` | 23.2% | background-color, color, border-color | ×412 (cross-validated, 0.94) |
| `#000000` | 13.0% | color, background-color, box-shadow | ×231 (cross-validated, 0.93) |
| `#666666` | 11.4% | color | ×202 (cross-validated, 0.93) |
| `#333333` | 9.8% | background-color, color | ×175 (cross-validated, 0.92) |
| `#555555` | 5.7% | color, border-color | ×101 (cross-validated, 0.92) |
| `#008485` | 7.9% | color, background-color, border-color | ×141 (cross-validated, 0.92) |
| `#dddddd` | 6.0% | border-color, box-shadow | ×106 (cross-validated, 0.92) |
| `#222a3b` | 2.9% | color | ×52 (inferred, 0.61) |
| `#27b2a5` | 3.3% | color, border-color, background-color, font-family | ×58 (inferred, 0.61) |
| `#6e7277` | 2.9% | color, background-color, border-color | ×51 (inferred, 0.61) |
| `#cccdcd` | 2.4% | border-color | ×43 (cross-validated, 0.9) |
| `#444444` | 1.1% | color | ×20 (inferred, 0.59) |
| `#3c3c3c` | 1.1% | color | ×19 (inferred, 0.59) |
| `#ebebeb` | 3.3% | border-color, background-color | ×58 (cross-validated, 0.91) |
| `#000000` | 0.7% | background-color | ×12 (observed, 0.74) |
| `#e77513` | 0.6% | background-color, border-color, color | ×11 (inferred, 0.59) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `NotoSans_Regular` | ×624 |
| `NotoSans_Bold` | ×61 |
| `NotoSans_Medium` | ×45 |
| `돋움` | ×24 |
| `NotoSans_Dl` | ×9 |
| `dotum` | ×7 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 38px | ×36 |
| `{type.h1}` | 24px | ×27 |
| `{type.h2}` | 20px | ×32 |
| `{type.h3}` | 18px | ×74 |
| `{type.body-lg}` | 16px | ×114 |
| `{type.body}` | 14px | ×314 |
| `{type.body-sm}` | 13px | ×129 |
| `{type.caption}` | 12px | ×137 |

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

## Spacing

| Value | Observed |
|---|---|
| `10px` | ×150 |
| `20px` | ×146 |
| `3px` | ×61 |
| `8px` | ×52 |
| `5px` | ×49 |
| `15px` | ×49 |
| `12px` | ×42 |
| `44px` | ×42 |
| `26px` | ×36 |
| `30px` | ×35 |
| `4px` | ×28 |
| `9px` | ×28 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `50px` | ×44 |
| `2px` | ×37 |
| `10px` | ×36 |
| `20px` | ×22 |
| `3px` | ×11 |
| `15px` | ×6 |
| `5px` | ×5 |
| `22px` | ×4 |

## Elevation

| Shadow | Observed |
|---|---|
| `#000000` | ×4 |
| `0 0 3px rgba(221, 221, 221, 0.75)` | ×4 |
| `#dddddd` | ×2 |
| `4px 4px 6px rgba(0, 0, 0, 0.1)` | ×2 |
| `-4px 8px 20px 0px rgba(0, 0, 0, 0.3)` | ×2 |
| `0 0 10px rgba(0, 0, 0, 0.15)` | ×2 |

## Motion

| Duration | Observed |
|---|---|
| `.3s` | ×8 |
| `0.5s` | ×1 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#333333` · text `#ffffff` · radius `50px` · padding `0px` · font `14px/400` | ×6 |
| badge | bg `#ffffff` · text `#070707` · radius `15px` · font `12px/400` · padding `0px 40px 0px 12px` | ×1 |

### Hero Gradient (observed)

```css
background-image: linear-gradient(rgba(0, 151, 147, 0.94), rgb(0, 149, 145));
```

### Interaction States (observed)

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

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#333333` | `#ffffff` | 12.63 | pass | observed ×63 |
| `#666666` | `#fafbfb` | 5.54 | pass | observed ×36 |
| `#000000` | `#fafbfb` | 20.26 | pass | observed ×36 |
| `#555555` | `#ffffff` | 7.46 | pass | observed ×30 |
| `#666666` | `#ffffff` | 5.74 | pass | observed ×27 |
| `#000000` | `#ffffff` | 21 | pass | observed ×18 |
| `#ffffff` | `#333333` | 12.63 | pass | observed ×18 |
| `#091615` | `#ffffff` | 18.47 | pass | observed ×18 |
| `#000000` | `#ecf0f1` | 18.3 | pass | observed ×15 |
| `#666666` | `#ecf0f1` | 5 | pass | observed ×15 |
| `#ffffff` | `#000000` | 21 | pass | observed ×6 |
| `#555555` | `#fafbfb` | 7.19 | pass | observed ×6 |
| `#000000` | `#ffffff` | 21 | pass | ink_on_background |
| `#ffffff` | `#008485` | 4.53 | pass | white_on_primary |
| `#666666` | `#ffffff` | 5.74 | pass | muted_on_background |


## Usage Rules

### Do
- Use `{color.primary}` (`#008485`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#000000`) on `{color.background}` (`#ffffff`).
- Set all text in `NotoSans_Regular` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (50px, 2px, 10px, 20px) — 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, forms, 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.
- Treat `{color.accent}` with caution — confidence below 0.6.

## Provenance

- Source: https://www.hanabank.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T09:24:09.868Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 01, 02, 03, 04, 05, 08, 09, 10, 11, 12 · missing: nav, forms, cards
- Degraded stages (extraction failure ≠ design change — exclude from diffs): state-observation

---

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