Smart ring wellness brand. Warm paper cream, editorial serif, earth-tone accents
Sign in to save downloads to your library and vote.
Preview
Metadata (frontmatter)
version: alpha
name: Oura Analysis
description: An analysis of Oura's design language — a warm-paper wellness system that pairs a high-contrast Editorial serif with a quiet grotesque sans, wraps every surface in a cream-and-earth palette drawn from mustard, clay and olive, and drives conversion with a single decisive action blue against otherwise calm, photography-led layouts.
colors:
primary: "#2a72de"
on-primary: "#ffffff"
stone: "#4a4741"
on-stone: "#ffffff"
clay: "#6b443d"
espresso: "#39221e"
gold: "#af751b"
ochre: "#bc924c"
gold-soft: "#ddaa61"
gold-pale: "#ddbe78"
gold-deep: "#684d07"
forest: "#224228"
olive: "#5c6f5d"
sage: "#849671"
sage-mute: "#7b886d"
sage-pale: "#ced4b8"
canvas: "#f7f1e8"
surface: "#ffffff"
surface-grey: "#ececec"
silver: "#cccac7"
ink-band: "#000000"
ink-band-soft: "#19191c"
ink: "#1c1b1a"
ash: "#838280"
mute: "#a8a5a0"
on-dark: "#ffffff"
hairline: "#e1dcd3"
error: "#e33a22"
typography:
display:
fontFamily: Editorial New
fontSize: 110px
fontWeight: 300
lineHeight: 1.05
letterSpacing: 0
display-2:
fontFamily: Editorial New
fontSize: 80px
fontWeight: 300
lineHeight: 1.1
letterSpacing: 0
heading-1:
fontFamily: Editorial New
fontSize: 68px
fontWeight: 300
lineHeight: 1.1
letterSpacing: 0
heading-2:
fontFamily: Editorial New
fontSize: 40px
fontWeight: 300
lineHeight: 1.15
letterSpacing: 0
heading-3:
fontFamily: AkkuratLL
fontSize: 40px
fontWeight: 400
lineHeight: 1.25
letterSpacing: 0
title:
fontFamily: AkkuratLL
fontSize: 32px
fontWeight: 400
lineHeight: 1.25
letterSpacing: 0
lead:
fontFamily: Editorial New
fontSize: 24px
fontWeight: 100
lineHeight: 1.25
letterSpacing: 0
body-lg:
fontFamily: AkkuratLL
fontSize: 20px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
body:
fontFamily: AkkuratLL
fontSize: 18px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
body-sm:
fontFamily: AkkuratLL
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0
button:
fontFamily: AkkuratLL
fontSize: 16px
fontWeight: 600
lineHeight: 1
letterSpacing: 0
ui:
fontFamily: AkkuratLL
fontSize: 14px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0
caption:
fontFamily: AkkuratLL
fontSize: 13px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0
eyebrow:
fontFamily: AkkuratLL
fontSize: 12px
fontWeight: 700
lineHeight: 1.2
letterSpacing: 1px
rounded:
none: 0px
xs: 4px
sm: 8px
md: 12px
lg: 24px
xl: 40px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 24px
xl: 32px
components:
# ─── Brand-native components (extracted) ───
nav-bar:
backgroundColor: "{colors.canvas}"
textColor: "{colors.stone}"
typography: "{typography.ui}"
rounded: "{rounded.none}"
announcement-bar:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.eyebrow}"
rounded: "{rounded.none}"
hero:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.display}"
rounded: "{rounded.none}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.on-primary}"
typography: "{typography.button}"
rounded: "{rounded.full}"
button-secondary:
backgroundColor: "{colors.stone}"
textColor: "{colors.on-stone}"
typography: "{typography.button}"
rounded: "{rounded.full}"
button-on-dark:
backgroundColor: "{colors.canvas}"
textColor: "{colors.stone}"
typography: "{typography.button}"
rounded: "{rounded.full}"
button-outline:
backgroundColor: "{colors.ink-band}"
textColor: "{colors.on-dark}"
borderColor: "{colors.on-dark}"
typography: "{typography.button}"
rounded: "{rounded.full}"
button-outline-stone:
backgroundColor: "{colors.canvas}"
textColor: "{colors.stone}"
borderColor: "{colors.stone}"
typography: "{typography.button}"
rounded: "{rounded.full}"
button-icon-circular:
backgroundColor: "{colors.surface}"
textColor: "{colors.stone}"
borderColor: "{colors.hairline}"
rounded: "{rounded.full}"
text-input:
backgroundColor: "{colors.stone}"
textColor: "{colors.on-stone}"
typography: "{typography.body-sm}"
rounded: "{rounded.md}"
text-input-focused:
backgroundColor: "{colors.surface}"
textColor: "{colors.ink}"
borderColor: "{colors.error}"
typography: "{typography.body-sm}"
rounded: "{rounded.md}"
feature-card:
backgroundColor: "{colors.surface}"
textColor: "{colors.ink}"
borderColor: "{colors.hairline}"
typography: "{typography.body}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
feature-card-elevated:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.body}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
product-card:
backgroundColor: "{colors.surface-grey}"
textColor: "{colors.ink}"
typography: "{typography.body}"
rounded: "{rounded.xl}"
person-card:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.body-sm}"
rounded: "{rounded.lg}"
stat-badge:
backgroundColor: "{colors.canvas}"
textColor: "{colors.stone}"
typography: "{typography.title}"
rounded: "{rounded.full}"
pill-tab:
backgroundColor: "{colors.canvas}"
textColor: "{colors.stone}"
borderColor: "{colors.silver}"
typography: "{typography.ui}"
rounded: "{rounded.full}"
eyebrow-label:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.eyebrow}"
rounded: "{rounded.none}"
news-card:
backgroundColor: "{colors.canvas}"
textColor: "{colors.ink}"
typography: "{typography.body}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
footer:
backgroundColor: "{colors.ink-band-soft}"
textColor: "{colors.on-dark}"
typography: "{typography.body-sm}"
rounded: "{rounded.none}"
# ─── Examples (illustrative, kit-mirror) ───
# (derived in Step 7.5 by scripts/derive-examples-block.mjs)
ex-pricing-tier:
description: "Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface."
backgroundColor: "{colors.surface}"
textColor: "{colors.ink}"
borderColor: "{colors.hairline}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
ex-pricing-tier-featured:
description: "Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode)."
backgroundColor: "{colors.ink}"
textColor: "{colors.on-primary}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
ex-product-selector:
description: "Color/size picker chrome — fashion / DTC variant selector."
backgroundColor: "{colors.surface}"
rounded: "{rounded.lg}"
padding: "{spacing.md}"
ex-cart-drawer:
description: "Shopping cart drawer — DTC / fashion brand actual cart chrome."
backgroundColor: "{colors.surface}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
item-divider: "{colors.hairline}"
ex-app-shell-row:
description: "Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator."
backgroundColor: "{colors.canvas}"
activeIndicator: "{colors.primary}"
rounded: "{rounded.sm}"
padding: "{spacing.sm} {spacing.md}"
ex-data-table-cell:
description: "Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm."
headerBackground: "{colors.surface}"
headerTypography: "{typography.eyebrow}"
bodyTypography: "{typography.body-sm}"
cellPadding: "{spacing.sm} {spacing.md}"
rowBorder: "{colors.hairline}"
ex-auth-form-card:
description: "Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside."
backgroundColor: "{colors.surface}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
ex-modal-card:
description: "Modal dialog surface — same chrome as feature-card with elevated shadow."
backgroundColor: "{colors.surface}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
ex-empty-state-card:
description: "Empty-state illustration frame."
backgroundColor: "{colors.surface}"
rounded: "{rounded.lg}"
padding: "{spacing.xl}"
captionTypography: "{typography.body}"
ex-toast:
description: "Toast notification surface — feature-card shape + medium shadow."
backgroundColor: "{colors.surface}"
rounded: "{rounded.lg}"
padding: "{spacing.sm} {spacing.md}"
typography: "{typography.body-sm}"
Overview
Oura's web presence reads like a printed field journal that learned to breathe. The default surface is a warm paper cream ({colors.canvas} — #f7f1e8) rather than white, and everything sits on it with generous air: a light, high-contrast serif for the big statements, a calm grotesque sans for everything you actually read, and full-bleed lifestyle photography that carries most of the emotional weight. Where a typical wellness-tech site would reach for gradients and glassmorphism, Oura reaches for restraint — flat fills, hairline rules, and long vertical silences between sections.
The system runs three surface "worlds." The cream world ({colors.canvas}) is home base for marketing and editorial content. The ink world ({colors.ink-band} / {colors.ink-band-soft}) is a near-black stage reserved for the footer and the "In the News" band, where cream cards float like clippings on a dark table. The silver world ({colors.surface-grey} → {colors.silver}) is a cool, machined grey gradient used only on the product-showcase pages, where the ring is photographed like jewellery.
Color discipline is the signature move. The whole palette is earth-toned — mustard and gold ({colors.gold}, {colors.ochre}), clay and espresso ({colors.clay}, {colors.espresso}), olive and sage ({colors.forest}, {colors.sage}) — and these appear as accent bands, illustration, and score/data-visualisation, never as buttons. Buttons carry a single, deliberate exception: action blue ({colors.primary} — #2a72de), used only for the decisive conversion moments ("Explore", "Shop All Products"). The warm brand neutral {colors.stone} (#4a4741) does the quieter work — the wordmark, editorial pills, form fields, outlines, and links — so the blue never has to compete.
Key Characteristics:
- Warm-paper canvas (
{colors.canvas}) as the default surface, not white — cream is the brand's resting state. - A two-typeface voice:
{typography.display}(Editorial New, a light high-contrast serif) for headlines,{typography.body}(AkkuratLL, a neutral grotesque) for reading. - One decisive action blue (
{colors.primary}) reserved strictly for primary CTAs; every other button is warm-neutral{colors.stone}or cream. - An earth-tone accent family — mustard, clay, olive — used for bands, illustration and data-viz, deliberately kept off buttons.
- Fully-rounded pill buttons (
{rounded.full}) against softly-rounded cards ({rounded.lg}) and large-radius product images ({rounded.xl}). - Three surface worlds cycling in a predictable rhythm: cream editorial → black news/footer band → silver product stage.
- Photography-first hierarchy: full-bleed imagery leads, UI recedes to hairlines and quiet labels.
Colors
Source pages analysed: the homepage, the Oura Ring 5 store page, the Activity & Movement page, and the Clinical & Science Experts page. The palette below reconciles all four into one system.
Brand & Accent
- Action Blue (
{colors.primary}— #2a72de): the single conversion color. Fills the primary CTA pill ("Explore", "Shop All Products") with{colors.on-primary}text. Used nowhere else — not for links, not for accents. - Stone (
{colors.stone}— #4a4741): the warm taupe-brown brand neutral. Carries the wordmark, secondary/editorial pill buttons, form-field fills, circular-icon outlines, and default link color. This is the color that makes Oura feel "Oura." - Clay (
{colors.clay}— #6b443d): a warm reddish-brown used for accent bands and content cards (e.g., the Activity page's "Your Oura Activity Score" band). - Espresso (
{colors.espresso}— #39221e): the darkest brown, for deep accent fills and rich text on gold surfaces. - Gold (
{colors.gold}— #af751b) / Ochre ({colors.ochre}— #bc924c) / Gold Soft ({colors.gold-soft}— #ddaa61) / Gold Pale ({colors.gold-pale}— #ddbe78) / Gold Deep ({colors.gold-deep}— #684d07): the mustard ramp. Powers warm illustration, the activity-ring dashboard card, and score data-visualisation. - Forest (
{colors.forest}— #224228) / Olive ({colors.olive}— #5c6f5d) / Sage ({colors.sage}— #849671) / Sage Mute ({colors.sage-mute}— #7b886d) / Sage Pale ({colors.sage-pale}— #ced4b8): the olive ramp, used for calm accent bands, illustration, and secondary data-visualisation.
Surface
- Canvas (
{colors.canvas}— #f7f1e8): the signature warm-paper background for all editorial and marketing surfaces. - Surface (
{colors.surface}— #ffffff): pure white, for elevated cards, inputs-on-cream, and the circular "+" overlay buttons on person cards. - Surface Grey (
{colors.surface-grey}— #ececec): the light end of the product-page gradient and light utility fills. - Silver (
{colors.silver}— #cccac7): the cool grey used on product-showcase pages and as the selected-tab border. - Ink Band (
{colors.ink-band}— #000000): the true-black stage for the footer / news band. - Ink Band Soft (
{colors.ink-band-soft}— #19191c): the near-black used for the footer surface, a hair warmer than pure black. - Hairline (
{colors.hairline}— #e1dcd3): the warm 1px divider on cream (a low-opacity ink wash blended onto canvas).
Text
- Ink (
{colors.ink}— #1c1b1a): primary heading and body text on cream. - Stone (
{colors.stone}— #4a4741): secondary text and editorial emphasis on cream. - Ash (
{colors.ash}— #838280): muted grey for meta text, titles-under-names, and utility captions. - Mute (
{colors.mute}— #a8a5a0): warm grey for the quietest captions and for secondary text on dark bands. - On Dark (
{colors.on-dark}— #ffffff): text and icons on the ink and silver worlds.
Semantic
- Error (
{colors.error}— #e33a22): validation and focus-error state on form fields (the focused email field border).
Typography
Font Family
Two families carry the entire system, and the tension between them is the point.
- Editorial New (
{typography.display},{typography.heading-1},{typography.heading-2},{typography.lead}): a light, high-contrast transitional serif used for display headlines, section titles, and the occasional light-serif lead paragraph. Weights run thin — 100 and 300 — so the large sizes read as elegant, not heavy. The Activity page shows it in italic ("move count") for a hand-set editorial flourish. - AkkuratLL (
{typography.heading-3}through{typography.caption}): a neutral Swiss grotesque that does all the real reading work — subheads, body, UI labels, buttons, captions. Weights 300 / 400 / 600 / 700.
Hierarchy
| Token | Family | Size | Weight | Line Height | Use |
|---|---|---|---|---|---|
{typography.display} | Editorial New | 110px | 300 | 1.05 | Homepage hero headline ("Subtle. Power.") |
{typography.display-2} | Editorial New | 80px | 300 | 1.1 | Secondary-page display headlines |
{typography.heading-1} | Editorial New | 68px | 300 | 1.1 | Large page titles |
{typography.heading-2} | Editorial New | 40px | 300 | 1.15 | Section headlines |
{typography.heading-3} | AkkuratLL | 40px | 400 | 1.25 | Sans section headings / large stats |
{typography.title} | AkkuratLL | 32px | 400 | 1.25 | Card titles, sub-section titles |
{typography.lead} | Editorial New | 24px | 100 | 1.25 | Light-serif intro / lead paragraphs |
{typography.body-lg} | AkkuratLL | 20px | 400 | 1.5 | Emphasised body copy |
{typography.body} | AkkuratLL | 18px | 400 | 1.5 | Default body text |
{typography.body-sm} | AkkuratLL | 16px | 400 | 1.5 | Dense body, links, form text |
{typography.button} | AkkuratLL | 16px | 600 | 1 | Button labels |
{typography.ui} | AkkuratLL | 14px | 400 | 1.4 | Nav links, tabs, utility UI |
{typography.caption} | AkkuratLL | 13px | 400 | 1.4 | Captions, footnotes |
{typography.eyebrow} | AkkuratLL | 12px | 700 | 1.2 | Small-caps overlines ("IN THE NEWS", "FEATURED ARTICLE") |
Principles
- Serif for feeling, sans for facts.
{typography.display}and its siblings appear only at large sizes where the high stroke contrast is legible and expressive; everything at reading scale is{typography.body}. - Thin display weights. Big serif headlines lean on weight 100–300, so scale — not boldness — creates hierarchy.
- Quiet overlines. Section context is set with
{typography.eyebrow}(uppercase, lightly tracked) rather than heavy kickers.
Note on Font Substitutes
Both faces are proprietary. For open-source builds, substitute Editorial New with Fraunces or Newsreader (both high-contrast serifs — set optical size high and weight low to match the thin display feel), and AkkuratLL with Inter or Hanken Grotesk (neutral grotesques with similar x-height). When substituting, nudge display line-height up slightly (Fraunces runs a touch taller than Editorial New) and keep body tracking at 0.
Layout
Spacing System
- Base unit: 8px.
- Tokens:
{spacing.xxs}4px ·{spacing.xs}8px ·{spacing.sm}12px ·{spacing.md}16px ·{spacing.lg}24px ·{spacing.xl}32px. - Card interiors sit at
{spacing.lg}; tight utility groupings (form padding, chip padding) at{spacing.sm}–{spacing.md}. Section-to-section rhythm is deliberately large — long vertical gaps of blank cream separate content blocks, letting photography and headlines breathe.
Grid & Container
- Content is center-constrained within a wide max-width, with full-bleed photography breaking out to the viewport edges.
- Card grids run 3-up (person cards, benefit trios) and 4-up (news / expert carousels), collapsing toward 1-up on narrow screens.
- The product page alternates centered single-column showcases with edge-to-edge media.
Whitespace Philosophy
Empty cream is a design element, not leftover space. Large silences between sections group related content and pace the scroll like chapters. UI chrome stays minimal so the eye rests on imagery and headlines.
Responsive Strategy
Breakpoints
| Name | Width | Key Changes |
|---|---|---|
| Desktop | ≥ 1280px | Full multi-column grids, horizontal nav, large display type |
| Laptop | 1024–1279px | Slightly tightened gutters, same structure |
| Tablet | 768–1023px | 4-up grids → 2-up, nav begins to condense |
| Mobile | ≤ 767px | Single-column stacks, hamburger nav, display type scales down (110px → ~48px), pill CTAs go full-width-ish |
(Breakpoint ladder observed in the extracted media-query data spans 1280 → 1024 → 896 → 768 → 600 → 480 → 320px.)
Touch Targets
Pill buttons (button-primary, button-secondary) and circular icon buttons (button-icon-circular) are sized for comfortable tapping; keep interactive controls at a minimum 44×44px on touch. Carousel arrows and the "+" person-card buttons are circular and finger-sized.
Collapsing Strategy
- Horizontal nav collapses to a hamburger below the tablet breakpoint; the cart and wordmark persist.
- Multi-column card grids collapse 4-up → 2-up → 1-up.
- The silver product showcase keeps its centered single-column media on all sizes and simply scales the imagery.
- Footer link columns reflow from a 4-column row into stacked groups.
Image Behavior
Photography is full-bleed and art-directed, often edge-to-edge on mobile. Product imagery uses large-radius rounded frames ({rounded.xl}); editorial imagery is frequently un-rounded full-bleed. Images lazy-load as sections enter the viewport.
Elevation & Depth
| Level | Treatment | Use |
|---|---|---|
| 0 — Flat | No shadow; separation by color-world shift or {colors.hairline} rule | Default on cream; most sections |
| 1 — Resting card | Very soft, low-opacity drop shadow | News cards on the black band, the Technical Specifications card |
| 2 — Floating | Slightly deeper, more diffuse soft shadow | Product-showcase media cards, elevated content cards |
| 3 — Overlay | Strong diffuse shadow + scrim | Modals / dialogs (rare) |
Depth is understated. On cream, sections separate through the surface-world shift (cream → black → silver) and hairline dividers rather than heavy elevation. Where shadows appear, they are soft, warm, and low-opacity — never hard or high-contrast.
Decorative Depth
Depth mostly comes from photography (full-bleed lifestyle imagery, machined product renders on the silver stage) and from warm accent bands ({colors.clay}, {colors.gold} families) that recede or advance a section. Subtle radial glows appear behind product imagery on the store page to lift the ring off its grey backdrop.
Shapes
Border Radius Scale
| Token | Value | Use |
|---|---|---|
{rounded.none} | 0px | Full-bleed imagery, bands, nav |
{rounded.xs} | 4px | Small utility chips, tight controls |
{rounded.sm} | 8px | Small cards, badges, list items |
{rounded.md} | 12px | Form fields (email input) |
{rounded.lg} | 24px | Content cards, person cards, news cards |
{rounded.xl} | 40px | Large product-image cards on the store page |
{rounded.full} | 9999px | Pill buttons, tabs, circular icon buttons, stat badges |
Photography Geometry
Product and lifestyle imagery is generous and soft-cornered: product cards use {rounded.xl}, editorial and person imagery uses {rounded.lg} or runs full-bleed with no radius. Person cards are near-portrait rectangles with a small circular "+" affordance in the corner. Stat readouts ("99%", "95%", "90%") sit in perfect circles ({rounded.full}).
Components
Only Default and (where genuinely extracted) Active/Pressed states are documented. Variants live as separate
components:entries in the front matter.
Navigation
nav-bar — Top navigation on cream
- Background
{colors.canvas}, links in{colors.stone}at{typography.ui}, no radius. Slots: OURA wordmark (left,{colors.stone}), center dropdown links (Shop, Your Health, Why Oura, For Organizations), cart icon (right). Sits flush on the cream canvas with no divider until scrolled.
announcement-bar — Top promo strip
- Full-width cream strip above the nav, centered
{typography.eyebrow}text in{colors.ink}(e.g. free-trial offer copy). No radius, no background shift — it reads as the top edge of the paper.
Hero
hero — Page-opening statement
- Cream background,
{typography.display}serif headline in{colors.ink}(homepage: "Subtle. Power."), a small serif eyebrow label above, and a singlebutton-primaryblue pill CTA. Often paired with full-bleed product/lifestyle photography directly beneath the headline.
Buttons
button-primary — Primary conversion CTA
- Background
{colors.primary}, text{colors.on-primary}, type{typography.button}, fully rounded ({rounded.full}). The only blue in the interface. Used for "Explore" and "Shop All Products".
button-secondary — Editorial / secondary action
- Background
{colors.stone}, text{colors.on-stone},{typography.button},{rounded.full}. The warm-neutral pill for content actions ("Why Oura", "How It Works").
button-on-dark — Cream pill on dark surfaces
- Background
{colors.canvas}, text{colors.stone},{typography.button},{rounded.full}. Used for "Read More" and card actions floating on the black news band. (Extracted button variant: cream fill, stone text, full radius.)
button-outline — Outline pill on dark/photo
- Transparent over
{colors.ink-band}, 1px{colors.on-dark}border, white text,{rounded.full}. For low-emphasis actions over dark imagery.
button-outline-stone — Outline pill on cream
- Cream background, 1px
{colors.stone}border,{colors.stone}text,{rounded.full}. Low-emphasis action on the paper canvas.
button-icon-circular — Circular icon control
- Circular (
{rounded.full}) control for carousel arrows and the person-card "+" affordance. Two flavours: a white surface circle ({colors.surface}) with a hairline edge for the "+" overlays, and a stone-outlined circle for the carousel arrows.
Inputs & Forms
text-input — Newsletter / email field
- Background
{colors.stone}, text{colors.on-stone},{typography.body-sm}, radius{rounded.md}(12px), padding roughly 8px vertical / 20px left with a trailing submit affordance on the right. The dark taupe fill makes the field feel like part of the footer rather than a bright form box.
text-input-focused — Focused / error field
- On focus the field lifts to a light surface (
{colors.surface}) with{colors.ink}text and a{colors.error}border for the validation-error state. Radius stays{rounded.md}.
Cards & Containers
feature-card — Content / benefit card
- White surface (
{colors.surface}),{colors.hairline}border,{colors.ink}text,{typography.body}, radius{rounded.lg}, padding{spacing.lg}. The default soft-cornered content container on cream.
feature-card-elevated — Floating content card
- Cream surface (
{colors.canvas}) with a soft Level-1/2 shadow,{rounded.lg}, padding{spacing.lg}. Used where a card floats over imagery or the black band (news clippings, spec card).
product-card — Product-showcase media card
- Cool grey surface (
{colors.surface-grey}), large radius{rounded.xl}(40px), holds a machined product render on the silver stage, often with a subtle radial glow behind the ring.
person-card — Expert / leadership card
- Cream background, portrait photo with radius
{rounded.lg}, a white circularbutton-icon-circular"+" in the corner, name in{typography.body}/{typography.title}and role in{colors.ash}{typography.caption}. Appears in horizontal carousels.
news-card — News clipping on the dark band
- Cream card (
{colors.canvas}) floating on{colors.ink-band},{colors.ink}text,{typography.body},{rounded.lg}, padding{spacing.lg}. Carries a publication quote plus a circular arrow link.
Signature Components
stat-badge — Circular stat readout
- Perfect circle (
{rounded.full}) on cream with a large{typography.title}/{typography.heading-3}number in{colors.stone}and a small caption beneath (e.g. "99% / 95% / 90%" accuracy figures on the product page).
pill-tab — Product selector tab
- Fully-rounded (
{rounded.full}) tab in a horizontal selector row; selected state gets a{colors.silver}(2px) border, label in{typography.ui},{colors.stone}text on cream. Used for the "Everyday health sensing" category switcher.
eyebrow-label — Section overline
- Uppercase
{typography.eyebrow}label in{colors.ink}on cream, no background, marking section context ("ACTIVITY & MOVEMENT", "FROM THE PULSE BLOG", "FEATURED ARTICLE" as a small pill on imagery).
footer — Site footer
- Near-black surface (
{colors.ink-band-soft}),{colors.on-dark}text and{colors.mute}secondary text,{typography.body-sm}. Contains the OURA wordmark, a newslettertext-input, payment-method icons, a 4-column link grid, and a language pill.
Examples (illustrative)
Auto-derived kit-mirror demonstration surfaces (
scripts/derive-examples-block.mjs). Eachex-*entry references brand-native primitives so downstream consumers (/preview-design,/generate-kit) re-skin the same 10 surfaces consistently.
ex-pricing-tier — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.
- Properties:
backgroundColor,textColor,borderColor,rounded,padding
ex-pricing-tier-featured — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).
- Properties:
backgroundColor,textColor,rounded,padding
ex-product-selector — Color/size picker chrome — fashion / DTC variant selector.
- Properties:
backgroundColor,rounded,padding
ex-cart-drawer — Shopping cart drawer — DTC / fashion brand actual cart chrome.
- Properties:
backgroundColor,rounded,padding,item-divider
ex-app-shell-row — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.
- Properties:
backgroundColor,activeIndicator,rounded,padding
ex-data-table-cell — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.
- Properties:
headerBackground,headerTypography,bodyTypography,cellPadding,rowBorder
ex-auth-form-card — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.
- Properties:
backgroundColor,rounded,padding
ex-modal-card — Modal dialog surface — same chrome as feature-card with elevated shadow.
- Properties:
backgroundColor,rounded,padding
ex-empty-state-card — Empty-state illustration frame.
- Properties:
backgroundColor,rounded,padding,captionTypography
ex-toast — Toast notification surface — feature-card shape + medium shadow.
- Properties:
backgroundColor,rounded,padding,typography
Do's and Don'ts
Do
- Reserve
{colors.primary}strictly for the primary conversion CTA — one blue moment per view, maximum. - Default every surface to
{colors.canvas}(warm paper), not white. White ({colors.surface}) is for elevated cards and inputs, not backgrounds. - Use
{colors.stone}for the wordmark, secondary pills, outlines, form fills, and links — it is the workhorse neutral. - Pair
{typography.display}(thin serif) at large sizes with{typography.body}(grotesque) for reading; let scale create hierarchy. - Keep pills fully rounded (
{rounded.full}) and cards softly rounded ({rounded.lg}); use{rounded.xl}only for large product imagery. - Let the earth-tone ramps (gold, clay, olive) live in bands, illustration, and data-viz — as color-blocked sections that pace the scroll.
- Give sections large vertical breathing room; treat empty cream as structure.
Don't
- Don't use
{colors.primary}for links, accents, icons, or decorative fills — it must stay unique to the primary CTA. - Don't put the mustard/olive accent colors on buttons — they are surfaces and illustration, never actions.
- Don't set body copy in
{typography.display}; the thin serif is display-only and gets illegible at small sizes. - Don't default backgrounds to white — it breaks the warm-paper identity.
- Don't add heavy or hard-edged shadows; elevation here is soft, warm, and low-opacity.
- Don't crowd sections — compressing the vertical rhythm collapses the calm, editorial pacing that defines the brand.
Ingestion metadata
- Source catalog
- awesome-design-md
- Last refreshed
- 10/24/2026, 3:00:12 AM (2h ago)
- Refresh schedule
- Daily · 03:00 UTC
- Dedupe status
- Merged — per-file DESIGN.md stubs folded into this canonical entry