Oura design specConsumer

A premium smart-ring brand whose marketing reads like a fashion editorial and, contrary to the “dark minimal” expectation, is warm and LIGHT: a cream #f7f1e8 canvas lit by soft oklab radial auras (warm sand plus pale blue) with the ring shot as full-bleed lifestyle photography, dropping only occasionally into near-black #1c1b1a or slate-blue #27455c chapter bands. The real signature is a type pairing: a light-weight Editorial New display SERIF set enormous (110/121, weight 300, tightly tracked at -5.5px) against AkkuratLL, a neutral Swiss grotesque, which carries every nav item, small-bold uppercase eyebrow and paragraph — elegance from letterforms, not weight. Colour is warm-neutral and restrained: cream, black, a warm charcoal-brown #4a4741 ink, warm greys #a8a5a0/#d3d1ce and an olive #5b6550, so the product photography carries all the richness, with ONE functional blue #2a72de owning the primary CTA and links (darkening to #2056a6 on hover). Buttons are full pills at 48px, cards sit at an 8px radius with soft, rare shadows, and borders are warm #d3d1ce hairlines. The recognisable product surface is the trio of circular score dials — Readiness, Sleep, Activity — drawn on a dark band in the health-metric palette (red #ff6467, green #55dc83, orange #c0865d, emerald #009966) that is kept strictly out of the chrome. Built on Tailwind v4, it provides a correct keyboard focus ring (outline 2px #3184ff at 4px offset on :focus-visible) and ships five reduced-motion blocks; motion is material-eased cubic-bezier(0.4,0,0.2,1) at 0.15–0.5s with no heavy animation library, over a dense device-targeted breakpoint ladder from 320 to 2000.

⚠ needs-dashboard

Browse Oura in the interactive gallery

Captured from the live site's computed styles into a prompt-ready DESIGN.md you can paste into Cursor, v0, Lovable, Bolt or Claude Code. Below is a summary of each captured surface.

Marketing site

Source: ouraring.com (live DOM, computed styles), 2026-07-30 (desktop 1512px). Built on Tailwind v4 (many --color-* are Tailwind defaults); the brand palette below is read from computed styles + the brand-relevant tokens, with Tailwind/OneTrust/Affirm values excluded. Coverage: logged-out homepage. Member web app: behind login, needs-dashboard. Reality check: the queue hint ("dark premium minimal, ring-metal palette") is WRONG on "dark". The marketing homepage is LIGHT — a warm CREAM #f7f1e8 canvas with full-bleed premium ring photography and soft warm/blue radial auras, dropping only occasionally into dark bands (#1c1b1a / slate #27455c). "Premium minimal" holds, and "ring-metal" is evoked by the warm metallic photography, but the palette is warm cream + warm charcoal-brown #4a4741, not metal grey. The real signature the hint misses is a TYPE PAIRING: a light-weight Editorial New display serif at huge sizes (110px, weight 300, -5.5px tracking) over AkkuratLL Swiss grotesque — elegant editorial, not dark-minimal.

Visual Theme & Atmosphere

A premium wellness brand that reads like a fashion editorial. The homepage opens on a warm cream stage lit by soft radial auras (warm sand and pale blue, mixed in oklab), with the ring shot as full-bleed lifestyle photography. The recognisable move is typographic contrast: an enormous, light-weight Editorial New serif ("Subtle. Power.", 110px, weight 300, tightly tracked) paired with AkkuratLL, a neutral Swiss grotesque, for every label, nav item and paragraph. Colour is warm-neutral and restrained — cream, black, a warm charcoal-brown and warm greys — so the product photography carries all the richness, with one functional blue reserved for the call-to-action. Occasional full-bleed dark bands (near-black or slate blue) provide chapter breaks. Feels: premium, calm, editorial, warm.

Color Palette & Roles

Chrome is a warm-neutral system; a single blue drives actions; a Tailwind-derived set colours health metrics.

Text

TokenHexRole / usage
black#000000Nav, primary UI text
brown-ink#4a4741Display + body text (warm charcoal-brown, the workhorse ink)
muted#a8a5a0Warm muted / captions
sage#5b6550Occasional olive-tinted labels
gray-mid#696969Secondary grey
gray-soft#555555Tertiary grey

Surfaces & borders

TokenHexRole / usage
cream#f7f1e8Canvas — the signature warm off-white
gray-100#f3f1f0Soft panel tint
gray-200#ecececDividers
gray-300#d3d1ceWarm hairline borders
white#ffffffCards / cream-text bg
off-100#f0efefCool-neutral panel

Dark bands

TokenHexRole / usage
ink-950#1c1b1aNear-black chapter band
ink-900#232328Dark surface
slate#27455cSlate-blue feature band
border-dark#34383b2px dark border

Accent (action blue) & focus

TokenHexRole / usage
blue#2a72dePrimary CTA fill, active borders, links
blue-hover#2056a6CTA hover (darker)
focus#3184ffFocus-visible ring colour

Health-metric data palette (Tailwind-derived, in charts/scores)

TokenHexRole / usage
red-400#ff6467Metric red
green-600#55dc83Metric green
orange-300#c0865dWarm metric orange
emerald-600#009966Metric emerald

Rule: chrome is warm-neutral + one blue #2a72de; keep the vivid health-metric colours for charts and score rings, never chrome. Let photography carry richness.

Typography Rules

RoleFamilySize/LineWeightTracking
Display (h1)Editorial New (serif)110 / 121300-5.5px (-5%)
Eyebrow (h2)AkkuratLL18 / 27700normal (often UPPER)
Sub head (h3)AkkuratLL40 / 40300normal
BodyAkkuratLL14–16 / 21–24400normal
NavAkkuratLL16 / 24400normal #000000
Emphasis lineAkkuratLL14700normal

Patterns: the display face is a LIGHT serif (weight 300) set very large with tight negative tracking — elegance from letterforms, not weight. Everything else is AkkuratLL grotesque at 300/400/700. Eyebrows are small bold uppercase.

Also documented in the full DESIGN.md: Component Stylings, Layout Principles, Depth & Elevation, Motion, Backgrounds, Effects & WebGL, Do's and Don'ts, Responsive Behavior, Agent Prompt Guide.