---
version: alpha
name: Hem
description: Light design system extracted from hem.com (DOM-true values, Emblematic extractor 0.2.0, 2026-11-12).
colors:
  background: "#FFFFFF"
  on-surface: "#242427"
  primary: "#2326DE"
  gray: "#B9BDC1"
  color-5: "#2326DE40"
  color-6: "#F2F3FF"
typography:
  display-lg:
    fontFamily: Hem Sans
    fontSize: 14px
    fontWeight: 500
    lineHeight: 1.429
  label-md:
    fontFamily: Hem Sans
    fontSize: 14px
    fontWeight: 400
    lineHeight: 1.571
rounded:
  md: 2px
  full: 9999px
spacing:
  xxs: 8px
  xs: 12px
  sm: 16px
  md: 32px
  lg: 64px
  base: 8px
components:
  button-primary:
    backgroundColor: "{colors.gray}"
    textColor: "{colors.color-6}"
    rounded: "{rounded.full}"
    padding: 12px
    height: 44px
    typography: "{typography.label-md}"
  button-secondary:
    textColor: "{colors.primary}"
    rounded: "{rounded.md}"
    padding: 8px
    height: 40px
    typography: "{typography.label-md}"
---

# Hem

> Extracted from [https://hem.com/](https://hem.com/) 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

Hem uses a light canvas (#FFFFFF) with a palette led by #2326DE. Type is set in **Hem Sans** (display + body), with ?px body text. Layout: fluid container, none-detected navigation, 1 sections. Built with gatsby, contentful, google-tag-manager, netlify.

## 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 | 89.2% | `--color-white` |
| `on-surface` | `#242427` | 0.262 0.006 286 | text | 4.2% | `--color-black` |
| `primary` | `#2326DE` | 0.439 0.26 268.3 | accent | 2.7% | `--color-blue` |
| `gray` | `#B9BDC1` | 0.796 0.007 247.9 | other | 2.6% | `--color-gray` |
| `color-5` | `#2326DE40` (on bg `#C8C9F7`) | 0.439 0.26 268.3 | other | 0.87% | — |
| `color-6` | `#F2F3FF` | 0.967 0.016 282.3 | other | 0.40% | — |

Contrast: text on background 15.48:1, accent 8.74:1.

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

## Typography

| Family | Role | Weights | Share of text | Source |
|---|---|---|---|---|
| **Hem Sans** | display, body | 400, 500 | 100.0% | webfont |

Scale (px): 14.  Body ?px at line-height normal; display 14px with tracking 0em. Headings are sentence case. On a 390px viewport the body is ?px and display 14px.

## Layout

Spacing follows a 8px base unit; the most used steps are 8, 12, 16, 32, 64px. Content sits in a fluid container. Text density 0.014 (text area / page area).

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

1. **hero** — “Please choose your region below” (900px, bg #FFFFFF)

## Elevation & Depth

Style: flat. Most used shadows:

- `rgba(0, 0, 0, 0.08) 0px 16px 24px 0px`

## Shapes

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

## Components

- **button-primary**: backgroundColor `#B9BDC1`, textColor `#F2F3FF`, rounded `9999px`, padding `12px 32px`, height `44px`, fontFamily `Hem Sans`, fontSize `14px`, fontWeight `500` (e.g. “Confirm selection”)
- **button-secondary**: textColor `#2326DE`, rounded `2px`, padding `8px 16px`, height `40px`, fontFamily `Hem Sans`, fontSize `14px`, fontWeight `400`, border `1px solid #2326DE40` (e.g. “Private”)

## Do's and Don'ts

- Do reserve `#2326DE` for primary actions and highlights; it covers only 2.7% of the painted page.
- Do set body copy in Hem Sans at ?px.
- Don't introduce font weights beyond 400, 500.
- Don't add drop shadows; depth comes from tone and borders.
- Do keep corners at 2px for most controls.
- 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: `color.accent_strategy`, `layout.columns`, `layout.hero`, `layout.section_count`, `space.section_padding_px`, `type.ratio`. Full per-field provenance is in `spec.json`.
