---
name: loom-design-reference
provider: DesignSkill (https://designskill.dev)
reference: loom.com
source_url: https://www.loom.com/
tool: designskill-extract/3.2.0
extracted_at: 2026-07-27T08:46:11.133Z
mode: full-render
classification: reference_only
---

# Loom — Design Reference (measured)

Measured design tokens extracted from `https://www.loom.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), 604 observation records.
- Primary action color observed as `#1868db` (basis: cross-validated, confidence 0.76).
- Dominant font family: **Charlie Text** (×918; secondary Charlie Display ×201).
- Type scale observed at 8 sizes from 11px to 35px.
- Corner radius values in use: 32px, 56px, 69px, 41.5px….
- Not observed in this extraction: forms, 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}` | `#1868db` | cross-validated | 0.76 | ×117 |
| `{color.background}` | `#ffffff` | cross-validated | 0.94 | ×413 |
| `{color.ink}` | `#101214` | cross-validated | 0.95 | ×758 |
| `{color.muted}` | `#696969` | inferred | 0.7 | ×12 |
| `{color.surface}` | `#e9f2fe` | inferred | 0.7 | ×249 |
| `{color.accent}` | `#ffab00` | inferred | 0.65 | ×19 |

### Observed Palette

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

| Hex | Share | Used in | Observed |
|---|---|---|---|
| `#101214` | 39.1% | --thd-color-black, color, background-color, border-color, box-shadow | ×758 (cross-validated, 0.95) |
| `#ffffff` | 21.3% | background-color, --tw-ring-offset-color, color | ×413 (cross-validated, 0.94) |
| `#e9f2fe` | 12.8% | background-color, border-color | ×249 (cross-validated, 0.93) |
| `#292a2e` | 9.7% | color, background-color | ×188 (observed, 0.78) |
| `#1868db` | 6.0% | --thd-color-rovo-gradient, background-color, color | ×117 (cross-validated, 0.92) |
| `#123263` | 1.1% | background-color | ×22 (observed, 0.75) |
| `#1558bc` | 1.1% | background-color | ×22 (observed, 0.75) |
| `#82b536` | 1.0% | background-color, --thd-color-rovo-gradient | ×19 (cross-validated, 0.89) |
| `#ffab00` | 1.0% | border-color, background-color, --thd-color-rovo-gradient | ×19 (cross-validated, 0.89) |
| `#bf63f3` | 0.7% | --thd-color-rovo-gradient, color | ×13 (cross-validated, 0.89) |
| `#f8eefe` | 0.6% | background-color | ×12 (observed, 0.74) |
| `#696969` | 0.6% | color | ×12 (observed, 0.74) |
| `#0052cc` | 0.6% | color | ×12 (observed, 0.74) |
| `#172b4d` | 0.6% | color | ×12 (observed, 0.74) |
| `#eed7fc` | 0.5% | background-color | ×10 (observed, 0.73) |
| `#ffffff` | 0.4% | background-color | ×7 (observed, 0.73) |

## Typography

### Font Families

| Family | Observed |
|---|---|
| `Charlie Text` | ×918 |
| `Charlie Display` | ×201 |
| `ui-sans-serif` | ×1 |
| `ui-monospace` | ×1 |

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

### Type Scale

| Token | Size | Observed |
|---|---|---|
| `{type.display}` | 35px | ×36 |
| `{type.h1}` | 22px | ×32 |
| `{type.h2}` | 18px | ×130 |
| `{type.h3}` | 17px | ×64 |
| `{type.body-lg}` | 16px | ×250 |
| `{type.body}` | 14px | ×291 |
| `{type.body-sm}` | 13px | ×76 |
| `{type.caption}` | 11px | ×84 |

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

## Spacing

| Value | Observed |
|---|---|
| `16px` | ×427 |
| `24px` | ×195 |
| `48px` | ×143 |
| `32px` | ×133 |
| `6px` | ×102 |
| `80px` | ×86 |
| `64px` | ×84 |
| `14px` | ×82 |
| `12px` | ×61 |
| `8px` | ×58 |
| `40px` | ×56 |
| `36px` | ×31 |

## Shape (Border Radius)

| Value | Observed |
|---|---|
| `32px` | ×83 |
| `56px` | ×56 |
| `69px` | ×40 |
| `41.5px` | ×32 |
| `12px` | ×30 |
| `2px` | ×24 |
| `6px` | ×19 |
| `8px` | ×14 |

## Elevation

| Shadow | Observed |
|---|---|
| `#000000` | ×29 |
| `rgba(0, 0, 0, 0.03) 0px 4px 6.4px 0px, rgba(0, 0, 0, 0.05) 0px 3px 9.6px 0px, rgba(0, 0, 0, 0.07) 0px 8px 32px 0px, rgba(0, 0, 0, 0.1) 0px 32px 96px 0px` | ×12 |
| `rgba(0, 0, 0, 0.04) 0px 2px 6px 0px, rgba(0, 0, 0, 0.06) 0px 5px 18px 0px, rgba(0, 0, 0, 0.1) 0px 24px 83px 0px` | ×10 |
| `var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)` | ×8 |
| `rgba(0, 0, 0, 0.25) 0px 3.24px 3.24px 0px` | ×6 |
| `rgba(0, 0, 0, 0.2) 0px 6px 6px 3px` | ×6 |

## Motion

| Duration | Observed |
|---|---|
| `0.1s` | ×96 |
| `0.3s` | ×19 |
| `0.5s` | ×18 |
| `0.15s` | ×12 |
| `.1s` | ×9 |

## Components

Measured computed styles of representative components (desktop viewport).

| Component | Measured spec | Samples |
|---|---|---|
| button.primary | bg `#1868db` · text `#ffffff` · radius `999px` · padding `7.80769px 15.6154px` · font `15.6154px/400` | ×6 |
| nav | bg `#ffffff` · height `90px` · position `sticky` · link `#292a2e` | — |

### Hero Gradient (observed)

```css
background-image: linear-gradient(rgb(255, 255, 255) 0px, rgb(255, 255, 255) 55%, rgb(233, 242, 254) 55%, rgb(233, 242, 254) 100%);
```

### Interaction States (observed)

| State | Property | From | To |
|---|---|---|---|
| focus | background-color | `rgba(0, 0, 0, 0)` | `rgb(233, 242, 254)` |
| focus | outline-color | `rgb(41, 42, 46)` | `rgba(0, 0, 0, 0)` |
| focus | outline-width | `3px` | `2px` |

## Accessibility (WCAG Contrast)

| FG | BG | Ratio | AA | Source |
|---|---|---|---|---|
| `#101214` | `#e9f2fe` | 16.62 | pass | observed ×237 |
| `#101214` | `#ffffff` | 18.77 | pass | observed ×54 |
| `#292a2e` | `#ffffff` | 14.34 | pass | observed ×45 |
| `#ffffff` | `#1868db` | 5.2 | pass | observed ×35 |
| `#292a2e` | `#000000` | 1.46 | fail | observed ×27 |
| `#101214` | `#000000` | 1.12 | fail | observed ×18 |
| `#ffffff` | `#101214` | 18.77 | pass | observed ×18 |
| `#ffffff` | `#1558bc` | 6.66 | pass | observed ×18 |
| `#101214` | `#f8eefe` | 16.67 | pass | observed ×9 |
| `#1868db` | `#ffffff` | 5.2 | pass | observed ×9 |
| `#ffffff` | `#48245d` | 12.46 | pass | observed ×9 |
| `#bf63f3` | `#ffffff` | 3.34 | fail | observed ×6 |
| `#101214` | `#ffffff` | 18.77 | pass | ink_on_background |
| `#ffffff` | `#1868db` | 5.2 | pass | white_on_primary |
| `#696969` | `#ffffff` | 5.49 | pass | muted_on_background |

3 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}` (`#1868db`) for primary actions only — that is where it was observed.
- Default text pairing: `{color.ink}` (`#101214`) on `{color.background}` (`#ffffff`).
- Set all text in `Charlie Text` (fallbacks only for glyph coverage).
- Pick corner radii from the measured set (32px, 56px, 69px, 41.5px) — 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 (forms, 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.loom.com/ (1 page(s))
- Tool: designskill-extract/3.2.0 · extracted 2026-07-27T08:46:11.133Z
- Mode: full-render — 풀렌더 모드 — 3뷰포트 × 라이트/다크 computed style + 상태 관측.
- Blocks observed: 00, 01, 02, 03, 04, 05, 09, 10, 11, 12 · missing: forms, cards, badges

---

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