---
version: alpha
name: On
description: Light design system extracted from www.on.com (DOM-true values, Emblematic extractor 0.2.0, 2026-11-12).
colors:
  background: "#FFFFFF"
  on-surface: "#000000"
  color-3: "#F6F7F8"
  color-4: "#ECEEF0"
  color-5: "#0000000D"
typography:
  display-lg:
    fontFamily: On
    fontSize: 49.58px
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: -0.01em
  body-md:
    fontFamily: On
    fontSize: 15.31px
    fontWeight: 400
    lineHeight: 1.5
  label-md:
    fontFamily: On
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: 0.013em
  mono-md:
    fontFamily: On Mono
    fontSize: 12px
    fontWeight: 500
    lineHeight: 1.5
    letterSpacing: 0.12em
rounded:
  sm: 2px
  md: 3px
  lg: 4px
  full: 9999px
spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 24px
  xl: 32px
  2xl: 40px
  3xl: 48px
  4xl: 64px
  5xl: 81px
  base: 8px
  container: 1344px
components:
  button-primary:
    backgroundColor: "{colors.background}"
    textColor: "{colors.on-surface}"
    rounded: "{rounded.full}"
    padding: 0px
    height: 48px
    typography: "{typography.label-md}"
  card:
    rounded: "{rounded.lg}"
    padding: 0px
  input:
    rounded: 0px
    padding: 16px
    height: 64px
---

# On

> Extracted from [https://www.on.com/en-gb/](https://www.on.com/en-gb/) on 2026-11-12 by Emblematic. Every value below was read from the rendered DOM (computed styles, `document.fonts`, and the fonts Chrome actually used to paint text), not estimated from pixels. When the YAML front matter and this prose disagree, the YAML wins. Copy values from this file exactly; don't transcribe them from memory. Don't copy logos, imagery, illustrations or marketing copy.

## Overview

On uses a light canvas (#FFFFFF) with a monochrome palette. Type is set in **On** (display + body), **On Mono** (mono), with 15.5px body text. Layout: 1344px container, top-static+transparent navigation, 7 sections. Built with nuxt, contentful, google-tag-manager, cloudflare.

## Colors

Area-weighted from painted backgrounds, text and borders on the 1440px light capture. Roles are inferred from usage (largest background, most text, interactive fills). Every hex is an exact computed value; a role marked *unverified* is a best guess that has not passed review, so its canonical token (e.g. `primary`) is left out of the front matter.

| Token | Hex | OKLCH | Role | Share of paint | CSS variable |
|---|---|---|---|---|---|
| `background` | `#FFFFFF` | 1 0 0 | bg | 88.2% | — |
| `on-surface` | `#000000` | 0 0 0 | text | 8.5% | — |
| `color-3` | `#F6F7F8` | 0.976 0.002 247.8 | other | 1.3% | — |
| `color-4` | `#ECEEF0` | 0.948 0.003 247.9 | other | 1.3% | — |
| `color-5` | `#0000000D` (on bg `#F2F2F2`) | 0 0 0 | other | 0.79% | — |

Contrast: text on background 21:1.

Gradients in use: `radial-gradient(51.74% 45.16% at 46.65% 38%, rgb(255, 255, 255) 0px, rgb(246, 247, 248) 44.58%, rgb(236, 238, 240))`; `linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255))`.

The site does not change under `prefers-color-scheme: dark`.

## Typography

| Family | Role | Weights | Share of text | Source |
|---|---|---|---|---|
| **On** | display, body | 400, 700 | 99.7% | webfont |
| **On Mono** | mono | 500 | 0.30% | webfont |

Declared in `@font-face` but not used to paint text on this page: On Semi Mono, Suisse Works. Don't treat these as the page's fonts.

Scale (px): 12, 13.5, 15.5, 16, 20, 24, 31, 49.5. Effective ratio ≈ 1.261 (close to a major third). Body 15.5px at line-height 1.5; display 49.58px with tracking -0.01em. Headings are sentence case. On a 390px viewport the body is 14px and display 26.08px.

## Layout

Spacing follows a 8px base unit; the most used steps are 4, 8, 12, 16, 24, 32, 40, 48, 64, 81px. Sections open with about 81px of space before their first line of text. Content sits in a 1344px container on a 23-column grid. Text density 0.049 (text area / page area).

Section order (desktop). Kinds below the review threshold are shown as *section*:

1. **nav** (90px, bg #FFFFFF)
2. **hero** — “Gift movement” (900px, bg #999999)
3. **logos** — “Shop” (2227px, bg #FFFFFF)
4. **logos** — “New arrivals” (829px, bg #FFFFFF)
5. **section** — “Stories that move” (772px, bg #FFFFFF)
6. **section** — “Our mission” (927px, bg #FFFFFF)
7. **footer** (600px, bg #FFFFFF)

## Elevation & Depth

Style: subtle. Most used shadows:

- `rgba(0, 0, 0, 0.05) 0px 0px 0.5px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px`

## Shapes

Dominant corner radius 4px; radii in use: 2px, 3px, 4px, pill. Borders: hairline (1px).

## Components

- **button-primary**: backgroundColor `#FFFFFF`, textColor `#000000`, rounded `9999px`, padding `0px 24px`, height `48px`, fontFamily `On`, fontSize `16px`, fontWeight `700`, border `1px solid #FFFFFF` (e.g. “Shop women’s”)
- **card**: rounded `4px`, padding `0px`, shadow `rgba(0, 0, 0, 0.05) 0px 0px 0.5px 0px, rgba(0, 0, 0, 0.1) 0px 2px 4px 0px`
- **input**: rounded `0px`, height `64px`, padding `16px 4px`

## Do's and Don'ts

- Do keep the palette monochrome; there is no chromatic brand accent on the page.
- Do set body copy in On at 15.5px / 1.5.
- Do tighten large headlines (-0.01em at 49.58px).
- Don't introduce font weights beyond 400, 500, 700.
- Do keep corners at 4px for most controls, and use the larger radii only for cards and media.
- Do snap spacing to multiples of 8px.
- Don't copy this site's logos, illustrations, photography or copy; use the system, not the brand assets.

## Provenance

Spec v2, extractor 0.2.0. Render quality: **ok**. Vision pass: not run. Fields below confidence 0.7 are hedged or left out above: `layout.columns`, `layout.hero`, `layout.section_count`, `space.section_padding_px`. Full per-field provenance is in `spec.json`.
