duply
Preview of Adora

Adora

A playful, optimistic product-analytics SaaS interface built on a warm off-white canvas (#f9f9f7) with deep indigo ink (#21164c) and an electric violet (#592eff) primary action. The system reads as friendly-but-precise — rounded pill nav bar, generously rounded white cards (~30px), a candy-bright accent set (violet, pink, cyan, lime) used for sticker-style doodles and highlight blocks, and a chunky geometric display face (PolySans) paired with Plus Jakarta Sans body. Brand voltage comes from the bold display headlines and the multi-color accent confetti scattered through product-screenshot cards.

---
version: alpha
name: Adora-design-analysis
description: A playful, optimistic product-analytics SaaS interface built on a warm off-white canvas (#f9f9f7) with deep indigo ink (#21164c) and an electric violet (#592eff) primary action. The system reads as friendly-but-precise — rounded pill nav bar, generously rounded white cards (~30px), a candy-bright accent set (violet, pink, cyan, lime) used for sticker-style doodles and highlight blocks, and a chunky geometric display face (PolySans) paired with Plus Jakarta Sans body. Brand voltage comes from the bold display headlines and the multi-color accent confetti scattered through product-screenshot cards.

colors:
  accent: "#592eff"
  accent-pink: "#f843c2"
  accent-cyan: "#2ed6ff"
  accent-lime: "#a2ea13"
  accent-cyan-soft: "#90e9ff"
  accent-cyan-pale: "#bcf2ff"
  accent-lime-soft: "#dfff9d"
  accent-lime-deep: "#90d705"
  accent-lime-shadow: "#34490b"
  accent-pink-deep: "#57003d"
  ink: "#21164c"
  ink-alt: "#111827"
  on-primary: "#353241"
  muted: "#5f5f69"
  surface: "#ffffff"
  canvas: "#f9f9f7"
  surface-soft: "#f2f3f5"
  hairline: "#eeeeee"
  hairline-warm: "#e0e0db"
  neutral-black: "#000000"
  on-accent: "#ffffff"

typography:
  display-xl:
    fontFamily: "PolySans, General Sans, sans-serif"
    fontSize: 68px
    fontWeight: 600
    lineHeight: 1.1
    letterSpacing: -1.36px
  display-lg:
    fontFamily: "PolySans, General Sans, sans-serif"
    fontSize: 58px
    fontWeight: 600
    lineHeight: 1.1
    letterSpacing: -1.16px
  display-md:
    fontFamily: "PolySans, General Sans, sans-serif"
    fontSize: 38px
    fontWeight: 600
    lineHeight: 1.2
    letterSpacing: -0.76px
  title:
    fontFamily: "PolySans, General Sans, sans-serif"
    fontSize: 18px
    fontWeight: 600
    lineHeight: 1.1
    letterSpacing: -0.36px
  body:
    fontFamily: "Plus Jakarta Sans, sans-serif"
    fontSize: 18px
    fontWeight: 500
    lineHeight: 1.6
    letterSpacing: normal
  button:
    fontFamily: "Plus Jakarta Sans, sans-serif"
    fontSize: 18px
    fontWeight: 500
    lineHeight: 1.0
    letterSpacing: normal

rounded:
  xs: 8px
  sm: 12px
  md: 14px
  lg: 16px
  xl: 20px
  xxl: 26px
  card: 30px
  huge: 40px
  jumbo: 64px
  pill: 200px
  full: 800px

spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 24px
  xl: 32px
  xxl: 40px
  xxxl: 48px
  section: 50px

components:
  top-nav-pill:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 16px 24px
  nav-link:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "{colors.on-accent}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 14px 24px
  button-secondary:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 14px 24px
  hero-band:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.display-xl}"
    padding: 50px
  card:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    rounded: "{rounded.card}"
    padding: 40px
  screenshot-card:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    rounded: "{rounded.card}"
    padding: 20px
  feature-card:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    typography: "{typography.title}"
    rounded: "{rounded.card}"
    padding: 40px
  testimonial-card-lime:
    backgroundColor: "{colors.accent-lime}"
    textColor: "{colors.ink}"
    typography: "{typography.display-md}"
    rounded: "{rounded.huge}"
    padding: 48px
  testimonial-card-pink:
    backgroundColor: "{colors.accent-pink}"
    textColor: "{colors.ink}"
    typography: "{typography.display-md}"
    rounded: "{rounded.huge}"
    padding: 48px
  badge-pill:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.accent}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 8px 16px
  logo-bar:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.body}"
  avatar-block:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.ink}"
    rounded: "{rounded.lg}"
---

## Overview

Adora's marketing surface is a playful, optimistic product-analytics interface built on a warm off-white canvas (`{colors.canvas}`#f9f9f7) with deep indigo ink (`{colors.ink}`#21164c) and an electric violet primary action (`{colors.accent}`#592eff). The system reads as friendly-but-precise SaaS — soft pill shapes, very rounded white cards, and a candy-bright accent palette (violet, pink, cyan, lime) used for sticker-style doodle marks, highlight blocks, and product-screenshot framing.

Type voice splits into two roles: **PolySans** (the chunky geometric display face used for h1–h4 headlines) carries the brand voltage, and **Plus Jakarta Sans** (used for body and buttons) handles supporting copy. PolySans runs weight 600 with negative letter-spacing (-0.36px to -1.36px depending on size) — it feels rounded, confident, and slightly toy-like, which is the whole brand mood.

Component voltage comes from **product screenshots shown inside generously rounded white cards** (`{rounded.card}` — 30px), surrounded by scattered hand-drawn accent doodles (clouds, sparkles, arrows) in the accent palette. Testimonial blocks invert to fully saturated accent surfaces — lime (`{colors.accent-lime}`) and pink (`{colors.accent-pink}`) — which act as the loudest color moments on otherwise calm off-white pages.

**Key Characteristics:**
- Warm off-white canvas (`{colors.canvas}`#f9f9f7) rather than pure white; pure white (`{colors.surface}`) is reserved for cards and the floating nav pill.
- Electric violet primary CTA (`{colors.accent}`#592eff) rendered as a full pill (`{rounded.pill}`) with white label.
- Chunky geometric `PolySans` display face for all headlines (substituted with General Sans here). Negative letter-spacing across all display sizes.
- Floating rounded nav bar (`{component.top-nav-pill}`) — a white pill on the canvas rather than a full-width bar.
- Multi-color accent confetti — pink, cyan, lime, violet doodles scattered as decorative marks beside headlines and around screenshot cards.
- Saturated accent testimonial cards — lime and pink full-bleed blocks holding large quote type.
- Generously rounded geometry — content cards at `{rounded.card}` (30px), feature panels and accent blocks up to `{rounded.huge}` (40px), pills at `{rounded.pill}` (200px).

## Colors

### Brand & Accent
- **Accent / Primary** (`{colors.accent}`#592eff): The dominant action color — electric violet. Primary CTA fills, the logo wordmark accent, inline highlight underlines.
- **Accent Pink** (`{colors.accent-pink}`#f843c2): Saturated testimonial card surface and sticker doodles. Deep variant `{colors.accent-pink-deep}` (#57003d) appears as a darker accent shadow tone.
- **Accent Cyan** (`{colors.accent-cyan}`#2ed6ff): Doodle marks and screenshot UI highlights. Softer tones `{colors.accent-cyan-soft}` (#90e9ff) and `{colors.accent-cyan-pale}` (#bcf2ff) appear in nested screenshot chrome.
- **Accent Lime** (`{colors.accent-lime}`#a2ea13): The brightest testimonial card surface. Variants `{colors.accent-lime-soft}` (#dfff9d), `{colors.accent-lime-deep}` (#90d705), and `{colors.accent-lime-shadow}` (#34490b) appear as fills and accents in product-UI fragments.

The accent set is a four-color confetti palette (violet / pink / cyan / lime). Adora deploys it for decoration and full-bleed quote blocks — never on the primary CTA, which stays single-color violet.

### Surface
- **Canvas** (`{colors.canvas}`#f9f9f7): The warm off-white page floor.
- **Surface** (`{colors.surface}`#ffffff): Pure white — cards, the floating nav pill, screenshot containers.
- **Surface Soft** (`{colors.surface-soft}`#f2f3f5): Soft gray panels and nested screenshot backgrounds.
- **Hairline** (`{colors.hairline}`#eeeeee): Light divider tone on white surfaces.
- **Hairline Warm** (`{colors.hairline-warm}`#e0e0db): A slightly warmer divider that matches the off-white canvas.

### Text
- **Ink** (`{colors.ink}`#21164c): All headlines and primary text — deep indigo, not pure black.
- **Ink Alt** (`{colors.ink-alt}`#111827): A near-black used in some UI fragment text.
- **On Primary** (`{colors.on-primary}`#353241): The measured default button/text color — a dark slate used for nav links and dark labels on light surfaces.
- **Muted** (`{colors.muted}`#5f5f69): Secondary running text and sub-headlines.
- **On Accent** (`{colors.on-accent}`#ffffff): White label on the violet primary CTA.

### Neutral
- **Neutral Black** (`{colors.neutral-black}`#000000): Used sparingly in icon strokes and the highest-contrast elements.

## Typography

### Font Family
The system runs **PolySans** for display/headlines and **Plus Jakarta Sans** for body and buttons. PolySans is a rounded geometric grotesk — weight 600, negative letter-spacing — which gives Adora its friendly-but-confident voice. Plus Jakarta Sans handles all running copy and button labels at weight 500 with a generous 1.6 line-height.

The split is functional:
- PolySans (display, 600 weight, -0.36 to -1.36px tracking) — h1, h2, h3, h4
- Plus Jakarta Sans (body + button, 500 weight) — paragraphs, labels, CTA text

### Hierarchy

| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| `{typography.display-xl}` | 68px | 600 | 1.1 | -1.36px | Hero h1 ("Know what to ship next") — PolySans |
| `{typography.display-lg}` | 58px | 600 | 1.1 | -1.16px | Section heads ("Your product team's new source of truth") — PolySans |
| `{typography.display-md}` | 38px | 600 | 1.2 | -0.76px | Sub-section heads, large quote type — PolySans |
| `{typography.title}` | 18px | 600 | 1.1 | -0.36px | Feature card titles, small labels — PolySans |
| `{typography.body}` | 18px | 500 | 1.6 | normal | Default running-text, sub-headlines — Plus Jakarta Sans |
| `{typography.button}` | 18px | 500 | 1.0 | normal | Button labels, nav links — Plus Jakarta Sans |

### Principles
PolySans is the brand voice — every headline from h1 down to the 18px h4 title uses it at weight 600 with negative letter-spacing. Plus Jakarta Sans carries body and interactive copy. The boundary is strict: headlines are PolySans, copy is Plus Jakarta Sans. Note that both the h4 title and body sit at 18px — the differentiator is family + weight + tracking, not size.

### Note on Font Substitutes
**PolySans** is a commercial typeface (not an open web font); it should not be self-hosted without a license. A close open-source substitute is **General Sans** (Fontshare) at weight 600 with ~-0.03em tracking, which preserves the rounded-geometric character. **Hanken Grotesk** weight 600 is another viable alternative. **Plus Jakarta Sans** is freely available (Google Fonts / SIL OFL) and can ship directly.

## Layout

### Spacing System
- **Base unit:** 4px (with a frequent half-step at 5px and 10px observed in measurement).
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 40px · `{spacing.xxxl}` 48px · `{spacing.section}` 50px.
- **Card internal padding:** `{spacing.xxl}` (40px) for content + feature cards; `{spacing.xl}` (32px) and `{spacing.xxxl}` (48px) appear on accent testimonial blocks.
- **Gutters / small gaps:** the most frequent measured gaps are 5px and 8px (tight internal clusters) scaling up to 40px for card-to-card rhythm.

### Grid & Container
- **Editorial body:** Centered single-column hero (h1 + sub-head + button row), with full-width product-screenshot bands below.
- **Feature card grids:** 3-up at desktop (Automated journey maps / AI insights / Session replays; Product design library / Ask Adora / SOC2 certified).
- **Screenshot rows:** Horizontally arranged screenshot cards in a scannable row ("Capture every screen and modal").
- **Logo bar:** Single horizontal row of partner logos (Linktree, Canva, Replit, Granola, Chess.com).

### Whitespace Philosophy
Adora uses generous vertical breathing room on a calm off-white canvas, then punctuates it with loud full-bleed accent testimonial blocks. The decorative doodles (clouds, sparkles, arrows) sit in the negative space around headlines — the whitespace itself is part of the playful composition.

## Elevation & Depth

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow, sits directly on canvas | Hero text, accent testimonial blocks, feature cards |
| Floating pill | Soft multi-layer shadow | The top nav pill and floating screenshot cards |
| Soft drop | `rgba(33,22,76,0.08) 0px 2px 8px -2px` | Subtle lift on small UI fragments / dropdowns |

The measured soft shadow stack is layered and very low-alpha: `rgba(126,137,153,0.01) 0px 9.8px 4.2px`, `rgba(126,137,153,0.05) 0px 5.6px 2.8px`, `rgba(126,137,153,0.09) 0px 2.8px 2.8px`, `rgba(126,137,153,0.1) 0px 0px 1.4px` — a diffuse, modern float used on the nav pill and elevated cards. The second shadow (`rgba(33,22,76,0.08) 0px 2px 8px -2px`) is a single-layer subtle lift tinted with the ink color.

### Decorative Depth
- Hand-drawn doodle marks (clouds, sparkles, swooshes) in accent colors float in the canvas margins around headlines — these are illustration content, not elevation tokens.
- Product-screenshot cards carry their own internal UI chrome (toolbars, badges, panels) which read as nested depth inside the white card.

## Shapes

### Border Radius Scale

| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 8px | Small inline chips, nested UI fragments |
| `{rounded.sm}` | 12px | Small buttons, inner panels |
| `{rounded.md}` | 14px | Inputs, small cards |
| `{rounded.lg}` | 16px | Avatar/image blocks, mid panels |
| `{rounded.xl}` | 20px | Mid cards |
| `{rounded.xxl}` | 26px | Larger panels |
| `{rounded.card}` | 30px | The primary content-card radius (white cards, screenshot containers) |
| `{rounded.huge}` | 40px | Accent testimonial blocks, large feature panels |
| `{rounded.jumbo}` | 64px | Largest rounded containers / hero screenshot frame |
| `{rounded.pill}` | 200px | Nav pill, primary/secondary CTA buttons, badges |
| `{rounded.full}` | 800px | Effectively-circular elements / very large pill blocks |

The geometry is consistently soft — there are no sharp-cornered surfaces in the system. Even large blocks round to 30–64px, and all interactive pills/buttons go fully rounded.

### Photography & Image Geometry
- Product screenshots sit inside white cards rounded to `{rounded.card}` (30px).
- Avatar / portrait image blocks use `{rounded.lg}` (16px).
- Testimonial photo + image grids retain soft-rounded corners matching their container.

## Components

### Navigation

**`top-nav-pill`** — A floating white pill centered at the top of the page rather than a full-width bar. Background `{colors.surface}`, rounded `{rounded.pill}` (200px), carrying the Adora logo + violet brand mark at left and menu items (Product, Resources, Pricing, Request demo, Login) in `{typography.button}` (Plus Jakarta Sans 18px / 500). Carries the soft multi-layer float shadow.

**`nav-link`** — Inline text menu items, transparent background, `{colors.ink}` text, `{typography.button}`. Used for top-nav menu entries.

### Buttons

**`button-primary`** — The signature CTA ("Get started"). Background `{colors.accent}` (#592eff), text `{colors.on-accent}` (#ffffff), type `{typography.button}`, fully rounded `{rounded.pill}` (200px), padding ~14px × 24px (derived from the spacing scale; the measured button props captured a text-link with 0 radius/padding — see Known Gaps).

**`button-secondary`** — White companion button ("▶ Watch 1min"). Background `{colors.surface}`, text `{colors.ink}`, same pill radius and padding as primary. Carries a small play-icon glyph.

### Cards & Containers

**`hero-band`** — Centered off-white hero with h1 in `{typography.display-xl}`, a `{typography.body}` sub-headline, and the primary + secondary button row. Decorative accent doodles (clouds, swoosh) flank the headline. Sits directly on `{colors.canvas}`.

**`card`** — The base white content card. Background `{colors.surface}`, rounded `{rounded.card}` (30px), padding `{spacing.xxl}` (40px). Used as the generic container for screenshots and content blocks.

**`screenshot-card`** — A white card framing a product screenshot ("Choose your plan", "Homepage", "Dashboard"). Background `{colors.surface}`, rounded `{rounded.card}`, padding `{spacing.xl}` (20–32px), carrying a screenshot plus a small caption row with session counts.

**`feature-card`** — Used in the 3-up platform grids (Automated journey maps / AI insights / Session replays, etc.). Background `{colors.surface}`, rounded `{rounded.card}`, padding `{spacing.xxl}` (40px). Carries an icon, a `{typography.title}` heading (PolySans 18px / 600), a `{typography.body}` description, and a "Learn more" link.

**`testimonial-card-lime`** — A full-bleed saturated quote block. Background `{colors.accent-lime}` (#a2ea13), text `{colors.ink}`, large quote in `{typography.display-md}`, rounded `{rounded.huge}` (40px), padding `{spacing.xxxl}` (48px). Carries a portrait photo block + attribution row.

**`testimonial-card-pink`** — The pink variant of the saturated quote block. Background `{colors.accent-pink}` (#f843c2), otherwise identical structure to the lime variant. Used for the closing chess.com testimonial band.

**`avatar-block`** — Portrait image block in testimonial rows, rounded `{rounded.lg}` (16px), background `{colors.surface}`.

### Tags / Badges

**`badge-pill`** — Small pill label used as section eyebrows ("LIVE SCREENSHOTS", "JOURNEYS", "PLATFORM"). Background `{colors.surface}`, text `{colors.accent}`, type `{typography.button}`, rounded `{rounded.pill}`, padding `{spacing.xs}` × `{spacing.md}`.

### Logo / Social Proof

**`logo-bar`** — A single horizontal row of partner wordmarks (Linktree, Canva, Replit, Granola, Chess.com) on the `{colors.canvas}` floor with a "Loved by product-obsessed teams" caption above in `{typography.body}`.

## Do's and Don'ts

### Do
- Keep the primary CTA single-color violet (`{colors.accent}`#592eff) with a white label. The confetti palette is for decoration, not actions.
- Use PolySans (substitute: General Sans) for every headline, weight 600 with negative letter-spacing. PolySans without the tracking reads off-brand.
- Put body and button copy in Plus Jakarta Sans weight 500 — never headlines.
- Use the warm off-white `{colors.canvas}` (#f9f9f7) as the page floor and reserve pure white `{colors.surface}` for cards and the nav pill.
- Float the nav as a centered pill (`{component.top-nav-pill}`) rather than a full-width bar.
- Use the saturated lime/pink testimonial blocks sparingly as the loud accent moments; keep the rest calm.
- Keep all interactive elements fully rounded (`{rounded.pill}`); keep content cards at `{rounded.card}` (30px) or larger.

### Don't
- Don't mix more than the four accent hues into a single block — the confetti is scattered, not crowded.
- Don't apply accent colors to primary CTAs or large text bodies; keep them violet-or-ink only.
- Don't use sharp corners anywhere — the softest element in the system still rounds to 8px.
- Don't put the saturated lime/pink surfaces behind long-form body copy; they're for short large quotes.
- Don't bold display weight beyond 600.
- Don't add hover state styling beyond default + active/pressed.

## Responsive Behavior

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Nav pill collapses toward a compact pill / menu; hero h1 scales down from 68px; button row stacks; feature grids 1-up; screenshot row scrolls horizontally |
| Tablet | 768–1024px | Nav pill stays centered; feature cards 2-up; testimonial blocks retain full-bleed accent fill |
| Desktop | 1024–1440px | Full floating nav pill with all menu items; 3-up feature grids; screenshot cards in a row |
| Wide | > 1440px | Same as desktop with more canvas breathing room around the centered hero |

### Touch Targets
- `{component.button-primary}` and `{component.button-secondary}` are pill-shaped with ~14px vertical padding on 18px labels — comfortably above 44px effective height.
- `{component.nav-link}` items sit inside the nav pill with adequate horizontal spacing.

### Collapsing Strategy
- The floating nav pill collapses its menu items on mobile.
- The centered hero stacks h1 → sub-head → buttons vertically at all widths.
- Feature grids reduce columns (3 → 2 → 1) rather than shrinking cards.
- Screenshot rows become horizontally scrollable on narrow viewports.
- Saturated testimonial blocks keep their accent fill and rounding at every breakpoint.

### Image Behavior
- Product screenshots inside `{component.screenshot-card}` retain native aspect ratios; cards resize around them.
- Portrait/avatar image blocks keep `{rounded.lg}` corners at all sizes.
- Decorative doodle marks reposition or drop on smaller viewports.

## Iteration Guide

1. Focus on ONE component at a time. Reference its YAML key directly (`{component.feature-card}`, `{component.testimonial-card-lime}`).
2. Variants (e.g., `testimonial-card-pink` vs `testimonial-card-lime`) live as separate entries in `components:`.
3. Use `{token.refs}` everywhere — never inline a hex in a component.
4. Never document hover. Default and Active/Pressed only.
5. Headlines stay PolySans 600 with negative tracking; body stays Plus Jakarta Sans 500. The boundary does not blur.
6. The confetti accents (violet/pink/cyan/lime) are decoration and full-bleed quote blocks only — keep actions violet.
7. When in doubt about emphasis: bigger PolySans before adding a new accent color.

## Known Gaps

- The measured `button-primary` component captured `color: #353241`, `radius: 0px`, `padding: 0px` — these values describe a text-link element (likely a nav link), not the violet "Get started" pill seen in screenshots. The pill fill (`{colors.accent}`), white label, `{rounded.pill}` radius, and padding are documented from screenshot ground-truth + the measured radius scale (200px is present) and spacing scale; the padding values are **derived**.
- PolySans is a commercial typeface; although `fonts_licensed` was empty in the analysis, it must not be self-hosted without a license — open substitutes (General Sans, Hanken Grotesk) are documented in Typography.
- Only the landing page was captured; interior pages (Product, Pricing, Resources) are out of scope.
- Section-level vertical spacing between major bands appears larger than the largest measured token (50px); the true large-section rhythm was not captured and may exceed the documented `{spacing.section}` value.
- Form/input states (the screenshot shows an email field "Create new account") were not measured — input radius, border, and focus styling are not extracted.
- Accent doodle illustrations (clouds, sparkles, arrows) are SVG content; their exact stroke colors beyond the documented accent set were not individually measured.
- Animation and transition timings (screenshot hover-reveal, journey-map animation) are not in scope.
- The exact white-vs-off-white usage split (which surfaces use `{colors.surface}` #ffffff vs `{colors.canvas}` #f9f9f7) is inferred from screenshots; both are measured but per-component assignment is partly derived.

<!-- Documented by duply · real-world design systems as ready-to-use DESIGN.md for AI coding agents · https://duply.ai/adora/design-md -->

Color Palette

Accent

Neutrals

Typography

display-xl68px · 600 · 1.1
The quick brown fox jumps
display-lg58px · 600 · 1.1
The quick brown fox jumps
display-md38px · 600 · 1.2
The quick brown fox jumps
title18px · 600 · 1.1
The quick brown fox jumps
body18px · 500 · 1.6
The quick brown fox jumps
button18px · 500 · 1
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
lg24px
xl32px
xxl40px
xxxl48px
section50px

Border Radius

NameValuePreview
xs8px
sm12px
md14px
lg16px
xl20px
xxl26px
card30px
huge40px
jumbo64px
pill200px
full800px

More like this

Build in any
design language

Free to browse. Real design systems, documented as DESIGN.md. New designs land weekly.

Browse the libraryHow it works