---
name: catchtable-design-reference
provider: DesignSkill (https://designskill.dev)
reference: app.catchtable.co.kr
source_url: https://app.catchtable.co.kr/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T08:30:31.498Z
mode: full-render
classification: reference_only
---

# CatchTable — Design Reference (measured)

Measured design tokens extracted from `https://app.catchtable.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), 367 observation records.
- Primary action color observed as `#ff3d00` (basis: inferred, confidence 0.87).
- Dominant font family: **Pretendard** (×542).
- Type scale observed at 8 sizes from 10px to 18px.
- Corner radius values in use: 4px, 8px, 12px, 50px….
- 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}` | `#ff3d00` | inferred | 0.87 | ×17 |
| `{color.background}` | `#ffffff` | observed | 0.78 | ×330 |
| `{color.ink}` | `#000000` | observed | 0.78 | ×210 |
| `{color.muted}` | `#666666` | inferred | 0.7 | ×90 |
| `{color.surface}` | `#fde9e2` | inferred | 0.7 | ×5 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#000000` | 22.7% | background-color, color | ×210 (observed, 0.78) |
| `#ffffff` | 35.7% | background-color, color | ×330 (observed, 0.78) |
| `#222222` | 12.9% | color, background-color | ×119 (observed, 0.77) |
| `#666666` | 9.7% | color | ×90 (observed, 0.77) |
| `#8f8f8f` | 4.5% | color | ×42 (observed, 0.75) |
| `#343b46` | 3.3% | color | ×30 (observed, 0.75) |
| `#000000` | 2.9% | background-color | ×27 (observed, 0.75) |
| `#424242` | 2.6% | color | ×24 (observed, 0.75) |
| `#ff3d00` | 1.8% | color, background-color | ×17 (observed, 0.74) |
| `#ededed` | 1.3% | border-color | ×12 (observed, 0.74) |
| `#14181d` | 0.7% | background-color | ×6 (observed, 0.73) |
| `#ffffff` | 0.7% | border-color | ×6 (observed, 0.73) |
| `#aaaaaa` | 0.7% | background-color | ×6 (observed, 0.73) |
| `#fde9e2` | 0.5% | background-color | ×5 (observed, 0.73) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Pretendard` | ×542 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 18px | ×17 |
| `{type.h1}` | 16px | ×36 |
| `{type.h2}` | 15px | ×4 |
| `{type.h3}` | 14px | ×175 |
| `{type.body-lg}` | 13px | ×90 |
| `{type.body}` | 12px | ×59 |
| `{type.body-sm}` | 11px | ×126 |
| `{type.caption}` | 10px | ×37 |

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

## Spacing

| Value | Observed |
|---|---|
| `4px` | ×146 |
| `8px` | ×132 |
| `10px` | ×132 |
| `2px` | ×58 |
| `12px` | ×52 |
| `28px` | ×45 |
| `16px` | ×30 |
| `24px` | ×18 |
| `48px` | ×17 |
| `6px` | ×12 |
| `20px` | ×12 |
| `35px` | ×12 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `4px` | ×240 |
| `8px` | ×175 |
| `12px` | ×15 |
| `50px` | ×6 |
| `10px` | ×6 |
| `15px` | ×6 |
| `40px` | ×5 |
| `20px` | ×5 |

## Elevation

| Shadow | Observed |
|---|---|
| `rgba(0, 0, 0, 0.05) 0px 0px 20px 0px` | ×6 |
| `rgba(0, 0, 0, 0.25) 0px 5px 6px 0px` | ×6 |

## Motion

| Duration | Observed |
|---|---|
| `0.2s` | ×36 |
| `0.6s` | ×6 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| form.input | bg `#f5f5f5` · text `#9e9e9e` · border `0px solid rgb(158, 158, 158)` · radius `0px` · padding `1px 2px` · height `22` | ×1 |
| badge | bg `#14181d` · text `#ffffff` · radius `999px` · font `10px/600` · padding `6px 6px 6px 10px` | ×1 |
| nav | height `48px` · position `sticky` · link `#000000` | — |

### Hero Gradient (observed)

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

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#000000` | `#ffffff` | 21 | pass | observed ×99 |
| `#666666` | `#f9f9f9` | 5.45 | pass | observed ×42 |
| `#222222` | `#ffffff` | 15.91 | pass | observed ×39 |
| `#8f8f8f` | `#f9f9f9` | 3.07 | fail | observed ×21 |
| `#343b46` | `#ffffff` | 11.29 | pass | observed ×15 |
| `#424242` | `#ffffff` | 10.05 | pass | observed ×12 |
| `#ffffff` | `#ffffff` | 1 | fail | observed ×10 |
| `#1d222a` | `#ffffff` | 15.98 | pass | observed ×8 |
| `#5f5f5f` | `#ffffff` | 6.39 | pass | observed ×3 |
| `#ffffff` | `#000000` | 21 | pass | observed ×3 |
| `#000000` | `#f9f9f9` | 19.95 | pass | observed ×3 |
| `#ff3d00` | `#f9f9f9` | 3.37 | fail | observed ×3 |
| `#000000` | `#ffffff` | 21 | pass | ink_on_background |
| `#ffffff` | `#ff3d00` | 3.55 | fail | white_on_primary |
| `#666666` | `#ffffff` | 5.74 | pass | muted_on_background |

4 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}` (`#ff3d00`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#000000`) on `{color.background}` (`#ffffff`).
- Set all text in `Pretendard` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (4px, 8px, 12px, 50px) — 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://app.catchtable.co.kr/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T08:30:31.498Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 06, 08, 09, 10, 11, 12 · missing: cards
- Degraded stages (extraction failure ≠ design change — exclude from diffs): state-observation

---

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