---
name: ridi-design-reference
provider: DesignSkill (https://designskill.dev)
reference: ridibooks.com
source_url: https://ridibooks.com/comics/ebook
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T09:19:35.812Z
mode: full-render
classification: reference_only
---

# Ridi — Design Reference (measured)

Measured design tokens extracted from `https://ridibooks.com/comics/ebook` 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), 816 observation records.
- Primary action color observed as `#1e9eff` (basis: cross-validated, confidence 0.7).
- Dominant font family: **Pretendard Variable** (×4675; secondary Pretendard JP Variable ×238).
- Type scale observed at 8 sizes from 8px to 22px.
- Corner radius values in use: 4px, 18px, 20px, 99px….
- Not observed in this extraction: 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}` | `#1e9eff` | cross-validated | 0.7 | ×30 |
| `{color.background}` | `#f5f5f5` | cross-validated | 0.95 | ×4493 |
| `{color.ink}` | `#141414` | cross-validated | 0.95 | ×1092 |
| `{color.muted}` | `#787878` | inferred | 0.7 | ×985 |
| `{color.surface}` | `#ffffff` | inferred | 0.7 | ×36 |
| `{color.accent}` | `#65082a` | inferred | 0.65 | ×7 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#f5f5f5` | 55.1% | background-color, color, border-color | ×4493 (cross-validated, 0.95) |
| `#141414` | 13.4% | color | ×1092 (cross-validated, 0.95) |
| `#787878` | 12.1% | color, background-color | ×985 (cross-validated, 0.95) |
| `#dc3232` | 6.3% | color, background-color | ×510 (observed, 0.79) |
| `#000000` | 4.6% | background-color | ×376 (observed, 0.79) |
| `#000000` | 0.8% | border-color, box-shadow, background-color | ×68 (cross-validated, 0.91) |
| `#a5a5a5` | 0.7% | color | ×58 (cross-validated, 0.91) |
| `#e6e6e6` | 0.6% | border-color | ×51 (cross-validated, 0.91) |
| `#ffffff` | 0.4% | background-color | ×36 (observed, 0.75) |
| `#000000` | 0.4% | color | ×36 (observed, 0.75) |
| `#1ecdcd` | 0.3% | background-color | ×24 (observed, 0.75) |
| `#1e9eff` | 0.4% | background-color, color, caret-color | ×30 (cross-validated, 0.9) |
| `#9054a7` | 0.2% | background-color | ×14 (cross-validated, 0.89) |
| `#c567ac` | 0.1% | background-color | ×7 (cross-validated, 0.88) |
| `#3c9fc6` | 0.1% | background-color | ×7 (cross-validated, 0.88) |
| `#69624c` | 0.2% | background-color | ×14 (cross-validated, 0.89) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Pretendard Variable` | ×4675 |
| `Pretendard JP Variable` | ×238 |
| `Pretendard Std Variable` | ×14 |
| `ridi-roboto` | ×4 |
| `monospace` | ×2 |
| `exp-ridi-roboto-bold-italic` | ×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}` | 22px | ×155 |
| `{type.h1}` | 20px | ×123 |
| `{type.h2}` | 16px | ×725 |
| `{type.h3}` | 15px | ×429 |
| `{type.body-lg}` | 14px | ×1433 |
| `{type.body}` | 13px | ×691 |
| `{type.body-sm}` | 12px | ×197 |
| `{type.caption}` | 8px | ×238 |

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

## Spacing

| Value | Observed |
|---|---|
| `4px` | ×1306 |
| `6px` | ×1241 |
| `10px` | ×628 |
| `8px` | ×417 |
| `7px` | ×328 |
| `2px` | ×163 |
| `16px` | ×156 |
| `5px` | ×116 |
| `20px` | ×89 |
| `30px` | ×62 |
| `40px` | ×59 |
| `17px` | ×40 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `4px` | ×3597 |
| `18px` | ×236 |
| `20px` | ×109 |
| `99px` | ×64 |
| `3px` | ×48 |
| `8px` | ×8 |
| `100px` | ×4 |
| `1px` | ×4 |

## Elevation

| Shadow | Observed |
|---|---|
| `rgba(0, 0, 0, 0.06) 2px 4px 8px 0px` | ×74 |
| `rgba(0, 0, 0, 0.15) 0px 1px 1px 0px` | ×36 |
| `#000000` | ×5 |
| `2px 4px 8px rgba(0,0,0,0.06)` | ×4 |
| `5px 5px 10px rgba(0,0,0,0.08)` | ×1 |

## Motion

| Duration | Observed |
|---|---|
| `0.2s` | ×144 |
| `0.4s` | ×8 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| form.input | bg `#000000` · text `#141414` · border `0px solid rgb(20, 20, 20)` · radius `0px` · padding `0px` · height `18` | ×1 |
| nav | height `116px` · position `relative` · link `#141414` | — |

### Hero Gradient (observed)

```css
background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0) 5.73%, rgba(0, 0, 0, 0) 94.27%, rgba(0, 0, 0, 0.06) 100%);
```

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#141414` | `#ffffff` | 18.42 | pass | observed ×529 |
| `#787878` | `#ffffff` | 4.42 | fail | observed ×484 |
| `#ffffff` | `#ffffff` | 1 | fail | observed ×401 |
| `#dc3232` | `#ffffff` | 4.62 | pass | observed ×162 |
| `#a5a5a5` | `#ffffff` | 2.46 | fail | observed ×28 |
| `#000000` | `#ffffff` | 21 | pass | observed ×18 |
| `#ffffff` | `#c567ac` | 3.55 | fail | observed ×9 |
| `#ffffff` | `#133d70` | 10.89 | pass | observed ×9 |
| `#ffffff` | `#1c80bb` | 4.33 | fail | observed ×9 |
| `#ffffff` | `#6e39ac` | 7.38 | pass | observed ×9 |
| `#ffffff` | `#645a48` | 6.78 | pass | observed ×9 |
| `#ffffff` | `#c63357` | 5.23 | pass | observed ×9 |
| `#141414` | `#f5f5f5` | 16.9 | pass | ink_on_background |
| `#ffffff` | `#1e9eff` | 2.84 | fail | white_on_primary |
| `#787878` | `#f5f5f5` | 4.05 | fail | muted_on_background |

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

---

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