duply
Preview of GitGuardian

GitGuardian

A dark, security-engineering interface anchored on a near-black navy canvas (#000514) with white display type, pill-shaped CTAs, and a cool blue accent family. The system reads as serious developer-security tooling — deep gradient hero, soft-cornered dark cards holding product UI screenshots, condensed Funnel Display headlines, and a restrained blue/periwinkle accent set against an otherwise monochrome dark surface. Brand voltage comes from the oversized Funnel Display hero headline and the blue-green gradient hero band rather than from saturated accent color.

---
version: alpha
name: GitGuardian-design-analysis
description: A dark, security-engineering interface anchored on a near-black navy canvas (#000514) with white display type, pill-shaped CTAs, and a cool blue accent family. The system reads as serious developer-security tooling — deep gradient hero, soft-cornered dark cards holding product UI screenshots, condensed Funnel Display headlines, and a restrained blue/periwinkle accent set against an otherwise monochrome dark surface. Brand voltage comes from the oversized Funnel Display hero headline and the blue-green gradient hero band rather than from saturated accent color.

colors:
  primary: "#141d31"
  canvas: "#000514"
  surface-deep: "#03101f"
  surface-card: "#081736"
  surface-elevated: "#1b2d55"
  ink: "#ffffff"
  body: "#cccfd7"
  muted: "#a6abbb"
  hairline: "#384056"
  surface-light: "#f9f9fc"
  surface-light-alt: "#e8eaee"
  accent-blue: "#4e73db"
  accent-sky: "#3898ec"
  accent-periwinkle: "#a6b9e3"
  accent-lavender: "#c7d2ea"
  black: "#000000"
  neutral-light: "#dddddd"
  neutral-mid: "#cccccc"
  neutral-dark: "#333333"
  neutral-darker: "#222222"

typography:
  display-xl:
    fontFamily: "Funnel Display, sans-serif"
    fontSize: 72px
    fontWeight: 700
    lineHeight: 1.0
    letterSpacing: normal
  eyebrow:
    fontFamily: "Funnel Display, sans-serif"
    fontSize: 13px
    fontWeight: 500
    lineHeight: 1.0
    letterSpacing: 0.26px
  title-sm:
    fontFamily: "Funnel Display, sans-serif"
    fontSize: 15px
    fontWeight: 700
    lineHeight: 1.2
    letterSpacing: normal
  title-alt:
    fontFamily: "Instrument Sans, sans-serif"
    fontSize: 16px
    fontWeight: 700
    lineHeight: 1.4
    letterSpacing: normal
  body-md:
    fontFamily: "Haskoy, sans-serif"
    fontSize: 16px
    fontWeight: 500
    lineHeight: 1.5
    letterSpacing: normal
  button:
    fontFamily: "Haskoy, sans-serif"
    fontSize: 12px
    fontWeight: 500
    lineHeight: 1.17
    letterSpacing: 0.8px

rounded:
  xs: 4px
  sm: 6px
  md: 8px
  lg: 14px
  xl: 16px
  xxl: 32px
  pill: 70px
  full: 100px

spacing:
  xxs: 4px
  xs: 8px
  sm: 12px
  md: 16px
  lg: 24px
  xl: 40px
  xxl: 80px
  hero: 208px

components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 6px 10px
  button-light:
    backgroundColor: "{colors.surface-light}"
    textColor: "{colors.canvas}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 6px 10px
  button-outline:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
    rounded: "{rounded.pill}"
    padding: 6px 10px
  nav-link:
    backgroundColor: transparent
    textColor: "{colors.ink}"
    typography: "{typography.button}"
  top-nav:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
  announcement-bar:
    backgroundColor: "{colors.surface-deep}"
    textColor: "{colors.ink}"
    typography: "{typography.button}"
  badge-pill:
    backgroundColor: "{colors.surface-card}"
    textColor: "{colors.ink}"
    typography: "{typography.eyebrow}"
    rounded: "{rounded.pill}"
    padding: 6px 16px
  card:
    backgroundColor: "{colors.surface-card}"
    textColor: "{colors.body}"
    typography: "{typography.body-md}"
    rounded: "{rounded.xl}"
    padding: 24px
  feature-card:
    backgroundColor: "{colors.surface-card}"
    textColor: "{colors.body}"
    typography: "{typography.body-md}"
    rounded: "{rounded.xl}"
    padding: 24px
  testimonial-card:
    backgroundColor: "{colors.surface-card}"
    textColor: "{colors.body}"
    typography: "{typography.body-md}"
    rounded: "{rounded.xl}"
    padding: 24px
  category-label:
    backgroundColor: "{colors.surface-elevated}"
    textColor: "{colors.muted}"
    typography: "{typography.eyebrow}"
    rounded: "{rounded.sm}"
    padding: 4px 12px
  input:
    backgroundColor: "{colors.surface-light}"
    textColor: "{colors.canvas}"
    typography: "{typography.body-md}"
    radius: "0px"
    padding: 12px 16px
  footer:
    backgroundColor: "{colors.canvas}"
    textColor: "{colors.muted}"
    typography: "{typography.body-md}"
    padding: 80px
---

## Overview

GitGuardian's marketing surface is a dark, security-engineering interface — a near-black navy canvas (`{colors.canvas}`#000514) carrying white display type (`{colors.ink}`#ffffff), pill-shaped CTAs, and dark soft-cornered cards (`{colors.surface-card}`#081736) that hold real product UI screenshots. The system reads as serious developer-security tooling: confident, technical, and restrained with color.

The hero band opens with an oversized **Funnel Display** headline ("Secure Every Secret. Govern Every NHI.") in white at 72px / weight 700, set over a blue-to-green diagonal gradient that fades back into the navy canvas. Below the hero, the page settles into a strictly dark, monochrome rhythm of dark cards on darker canvas — the brand voltage lives in the hero gradient and the size of the display type, not in saturated accent fills.

Type voice is multi-family but functionally split: **Funnel Display** carries headlines and eyebrows (the condensed, geometric display voice), **Instrument Sans** appears on a secondary heading role, and **Haskoy** handles body copy and button labels. Body text is a soft cool-gray (`{colors.body}`#cccfd7) and secondary text steps down to `{colors.muted}` (#a6abbb), keeping the dark surface readable without ever using pure white for running copy.

**Key Characteristics:**
- Dark navy canvas (`{colors.canvas}`#000514) across the entire page — there is no light "page floor". Cards step up to `{colors.surface-card}` (#081736) and `{colors.surface-elevated}` (#1b2d55).
- Oversized Funnel Display hero headline (72px / 700) in white over a blue-green gradient. The gradient is the single most chromatic moment in the system.
- Pill-shaped buttons (`{rounded.pill}` — 70px). Primary CTAs come in two finishes: dark navy (`{component.button-primary}`, #141d31) and bright white (`{component.button-light}`).
- Dark cards (`{rounded.xl}` — 16px) holding real product UI screenshots — incident tables, investigation maps, scoring panels — shown directly rather than illustrated.
- Cool blue accent family (`{colors.accent-blue}`#4e73db, `{colors.accent-sky}`#3898ec, `{colors.accent-periwinkle}`#a6b9e3, `{colors.accent-lavender}`#c7d2ea) used sparingly on icons, links, and product-UI chrome.
- Small category labels in `{typography.eyebrow}` (Funnel Display 13px / 500 / 0.26px tracking) tag each feature block ("CONSOLIDATION", "PRIORITIZATION", "AUTOMATION").
- Spacing rhythm runs on a 4px base with heavy reliance on 24px and 40px steps, plus an 80px band-padding tier.

## Colors

### Surface
- **Canvas** (`{colors.canvas}`#000514): The universal page floor — a near-black navy. Everything sits on top of this.
- **Surface Deep** (`{colors.surface-deep}`#03101f): The announcement bar and the darkest nested panels.
- **Surface Card** (`{colors.surface-card}`#081736): The standard card background — feature cards, testimonial cards, product-screenshot cards.
- **Surface Elevated** (`{colors.surface-elevated}`#1b2d55): Raised inner panels and category-label chips inside cards.
- **Hairline** (`{colors.hairline}`#384056): The 1px border / divider tone on dark surfaces.
- **Surface Light** (`{colors.surface-light}`#f9f9fc): The near-white fill for light buttons and form inputs — one of the few light surfaces in the system.
- **Surface Light Alt** (`{colors.surface-light-alt}`#e8eaee): A secondary light tone for inverted UI fragments.

### Brand / Primary
- **Primary** (`{colors.primary}`#141d31): The dark-navy button fill. Reads as near-canvas with just enough lift to register as an interactive surface.

### Accent
GitGuardian's accent set is a cool blue family used sparingly — never on hero CTAs, only on icons, inline links, and product-UI chrome:
- **Accent Blue** (`{colors.accent-blue}`#4e73db): Primary link / icon accent.
- **Accent Sky** (`{colors.accent-sky}`#3898ec): Brighter interactive blue for inline UI elements.
- **Accent Periwinkle** (`{colors.accent-periwinkle}`#a6b9e3): Soft accent for diagrams and secondary icons.
- **Accent Lavender** (`{colors.accent-lavender}`#c7d2ea): The lightest accent tint, used in product-UI fragments and faint highlights.

### Text
- **Ink** (`{colors.ink}`#ffffff): All headlines and primary white text on dark surfaces.
- **Body** (`{colors.body}`#cccfd7): Default running-text color — a soft cool-gray, never pure white.
- **Muted** (`{colors.muted}`#a6abbb): Secondary text — sub-labels, footer body, trust-bar lines.

### Neutral
A small generic neutral set was measured and is reserved for inverted UI fragments and embedded product chrome: `{colors.black}` (#000000), `{colors.neutral-light}` (#dddddd), `{colors.neutral-mid}` (#cccccc), `{colors.neutral-dark}` (#333333), `{colors.neutral-darker}` (#222222). These are not part of the brand surface palette — they appear inside screenshots of product UI shown on light backgrounds.

## Typography

### Font Family
The system runs three families, each open-source and freely available:
- **Funnel Display** — the display + eyebrow voice. Condensed, geometric, used at extreme sizes for the hero headline and at small sizes (with positive tracking) for category eyebrows.
- **Instrument Sans** — a secondary heading face used on the `title-alt` role (16px / 700).
- **Haskoy** — the workhorse body + UI face, used for running copy and button labels.

All three are open-source (Funnel Display and Instrument Sans are available via Google Fonts; Haskoy is an open SIL-licensed face), so no substitute is required. `fonts_licensed` was empty in the measured analysis — nothing here is a paid/custom typeface that needs swapping.

### Hierarchy

| Token | Family | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|---|
| `{typography.display-xl}` | Funnel Display | 72px | 700 | 1.0 | normal | Hero h1 ("Secure Every Secret. Govern Every NHI.") |
| `{typography.eyebrow}` | Funnel Display | 13px | 500 | 1.0 | 0.26px | Category labels / eyebrows ("CONSOLIDATION", trust-bar line) |
| `{typography.title-sm}` | Funnel Display | 15px | 700 | 1.2 | normal | Small headings, card titles |
| `{typography.title-alt}` | Instrument Sans | 16px | 700 | 1.4 | normal | Secondary heading role |
| `{typography.body-md}` | Haskoy | 16px | 500 | 1.5 | normal | Default running-text |
| `{typography.button}` | Haskoy | 12px | 500 | 1.17 | 0.8px | Button labels, nav links |

### Principles
The hierarchy is steep: the hero headline jumps to 72px while supporting headings sit at 13–16px. This is a deliberate single-loud-voice pattern — one oversized Funnel Display statement per band, with everything else dropping to small Haskoy/Instrument Sans supporting type. Eyebrow labels carry positive letter-spacing (0.26px) and button labels carry 0.8px tracking; display and body type stay at normal tracking. Body copy never uses pure white (`{colors.ink}`) — it steps down to `{colors.body}` for comfortable reading on the dark canvas.

### Note on Font Substitutes
No substitution is required — all three typefaces are open-source. If a build environment lacks them, fall back to a geometric sans for Funnel Display, a grotesque sans for Instrument Sans, and a humanist sans for Haskoy, but the measured spec ships the real faces.

## Layout

### Spacing System
- **Base unit:** 4px.
- **Tokens:** `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.md}` 16px · `{spacing.lg}` 24px · `{spacing.xl}` 40px · `{spacing.xxl}` 80px · `{spacing.hero}` 208px.
- **Most-used steps:** 24px (62 occurrences) and 40px (52) are the dominant rhythm units, with 16px (51) and 8px (50) handling tight internal spacing.
- **Section padding:** `{spacing.xxl}` (80px) for major band separation; `{spacing.hero}` (208px) appears once as the deep hero vertical padding (derived as a single measured outlier).
- **Card internal padding:** `{spacing.lg}` (24px) is the standard card padding.

### Grid & Container
- **Editorial body:** Centered single column with multi-up card grids.
- **Feature grids:** 3-up "Non-Human Identity & Secrets Security" tiles; 2-up "Secure your code from the start" grid; stacked full-width "Remediate incidents at scale" rows pairing copy left + product screenshot right.
- **Trust bar:** Single horizontal logo row beneath the hero.

### Whitespace Philosophy
The dark canvas does the heavy lifting for separation — bands are delineated by 80px vertical padding and by the contrast between `{colors.canvas}` and the slightly-lighter `{colors.surface-card}` cards rather than by rules or dividers. Internal card spacing stays tight (24px) so product screenshots dominate the card area.

## Elevation & Depth

| Level | Treatment | Use |
|---|---|---|
| Flat | No shadow — surface color does the work | Body bands, nav, most cards |
| Card lift | `{colors.surface-card}` raised above `{colors.canvas}` | Feature / testimonial cards |
| Soft glow | `rgba(0,0,0,0.15) 0px 0px 7px 0px` | Subtle ambient shadow on a small set of elements (4 occurrences) |
| Drop shadow | `rgba(0,0,0,0.13) 0px 14px 14px 0px` | Heavier downward shadow on floating product-screenshot panels (3 occurrences) |
| Diffuse glow | `rgba(0,0,0,0.15) 0px 0px 15px 0px` | Single soft radial glow |
| Hairline ring | `rgba(0,0,0,0.15) 0px 0px 0px 1px` | 1px containment ring on one element |

On a dark canvas, elevation is communicated primarily through **surface-color stepping** (canvas → surface-card → surface-elevated) rather than shadow. The measured box-shadows are low-alpha and used sparingly — there is no heavy neumorphism or glassmorphism.

### Decorative Depth
- The hero's blue-green diagonal gradient creates an atmospheric depth zone behind the headline — the brightest area of the whole page, fading back into navy at the edges.
- Product UI screenshots embedded in cards carry their own internal chrome and light backgrounds (the neutral palette) — they are shown as real product, not illustrated.

## Shapes

### Border Radius Scale

| Token | Value | Use |
|---|---|---|
| `{rounded.xs}` | 4px | Small chips, tight inner elements (38 occurrences) |
| `{rounded.sm}` | 6px | Category-label chips, small controls (16 occurrences) |
| `{rounded.md}` | 8px | Mid-size controls |
| `{rounded.lg}` | 14px | Larger inner elements |
| `{rounded.xl}` | 16px | Standard card radius — feature, testimonial, product cards (35 occurrences) |
| `{rounded.xxl}` | 32px | Large rounded containers |
| `{rounded.pill}` | 70px | Pill buttons (the measured CTA radius) |
| `{rounded.full}` | 100px | Fully-rounded pills / badge wrappers |

The two anchor radii are `{rounded.xl}` (16px) for cards and `{rounded.pill}` (70px) for buttons. Inputs are the one square exception — measured at 0px radius.

### Photography / Geometry
Product UI screenshots inside cards retain their native rectangular geometry with `{rounded.xl}` card corners around them. Trust-bar partner logos sit flat with no container radius.

## Components

### Navigation

**`announcement-bar`** — A thin promo strip pinned above the nav ("👉 Introducing Forrester's AEGIS Framework…") with a small outlined "DOWNLOAD" pill and a close button at right. Background `{colors.surface-deep}`, text `{colors.ink}`, type `{typography.button}`.

**`top-nav`** — The primary nav on `{colors.canvas}`. Carries the GitGuardian wordmark + owl logo at left, center menu (Platform, Pricing, Resources, Company) in `{typography.button}`, and a right cluster with "Login" text-link, an outlined "Book a Demo" pill, and a white "Start for free" pill.

**`nav-link`** — Transparent menu items, text `{colors.ink}`, type `{typography.button}` (Haskoy 12px / 500 / 0.8px tracking).

### Buttons

**`button-primary`** — The dark-navy CTA. Background `{colors.primary}` (#141d31), text `{colors.ink}`, type `{typography.button}`, rounded `{rounded.pill}` (70px), padding 6px × 10px. (Visual padding appears more generous in the hero; 6px × 10px is the measured computed value.)

**`button-light`** — The bright white CTA used for the primary hero action ("Start for free"). Background `{colors.surface-light}` (#f9f9fc), text `{colors.canvas}`, same pill radius and type as `button-primary`. Often paired with a small arrow glyph.

**`button-outline`** — Transparent pill with a hairline border, text `{colors.ink}`. Used for the secondary "Book a Demo" / "Book a demo" actions in nav and hero.

### Cards & Containers

**`card`** — The base container. Background `{colors.surface-card}` (#081736), rounded `{rounded.xl}` (16px), no shadow, padding `{spacing.lg}` (24px). Body text `{colors.body}`.

**`feature-card`** — Used in the 3-up "Non-Human Identity & Secrets Security" grid and the 2-up "Secure your code from the start" grid. Background `{colors.surface-card}`, rounded `{rounded.xl}`, padding 24px. Carries a small icon, a title, a short description in `{typography.body-md}`, and a "Learn more" link.

**`testimonial-card`** — Customer-quote cards beneath the trust bar. Background `{colors.surface-card}`, rounded `{rounded.xl}`, padding 24px. Top carries the quote in `{typography.body-md}`; bottom carries an avatar + name + role.

**`category-label`** — Small uppercase tag chip prefixing each "Remediate incidents at scale" block ("CONSOLIDATION", "CONTEXTUAL INSIGHTS", "PRIORITIZATION", "AUTOMATION", "CUSTOMIZATION"). Background `{colors.surface-elevated}`, text `{colors.muted}`, type `{typography.eyebrow}`, rounded `{rounded.sm}` (6px), padding 4px × 12px.

**`badge-pill`** — The hero's "#1 security App on GitHub marketplace" badge. Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.eyebrow}`, rounded `{rounded.pill}`, padding 6px × 16px.

### Inputs & Forms

**`input`** — The email-capture field ("Your Company email address") in the pre-footer CTA band. Background `{colors.surface-light}`, text `{colors.canvas}`, type `{typography.body-md}`, **radius 0px** (square corners — the one non-rounded surface in the system), padding 12px × 16px.

### Footer

**`footer`** — Closes the page on the same `{colors.canvas}` (#000514) as the rest of the body — no surface inversion. Text `{colors.muted}`, type `{typography.body-md}`, vertical padding `{spacing.xxl}` (80px). The dark-on-dark footer continues the single-surface treatment of the entire page.

## Do's and Don'ts

### Do
- Keep the entire page on `{colors.canvas}` (#000514) and step up to `{colors.surface-card}` / `{colors.surface-elevated}` for cards. Surface color, not shadow, carries elevation.
- Reserve the oversized Funnel Display 72px headline for the hero. One loud display statement per band.
- Use pill buttons (`{rounded.pill}` — 70px). Offer both `{component.button-light}` (white) and `{component.button-primary}` (dark navy) for primary/secondary CTA pairing.
- Use `{colors.body}` (#cccfd7) for running copy and `{colors.muted}` (#a6abbb) for secondary text — never pure white for paragraphs.
- Tag feature blocks with `{component.category-label}` uppercase eyebrows in `{typography.eyebrow}` (0.26px tracking).
- Embed real product UI screenshots inside `{component.card}` — show the product, don't illustrate it.
- Apply the cool blue accents (`{colors.accent-blue}`, `{colors.accent-sky}`) only on icons, links, and product chrome — never on CTA fills.

### Don't
- Don't introduce a light page background. The system is dark end-to-end, including the footer.
- Don't put saturated accent color on primary CTAs — buttons stay navy or white.
- Don't bold body copy or set it in pure white; body stays Haskoy 500 in `{colors.body}`.
- Don't round inputs — the measured input radius is 0px (square), a deliberate contrast against the pill buttons.
- Don't add heavy shadows. The measured shadows are low-alpha and rare; lean on surface stepping.
- Don't mix the display families — Funnel Display for headlines/eyebrows, Haskoy for body/buttons, Instrument Sans only on its `title-alt` role.

## Responsive Behavior

The analysis captured desktop landing + pricing renders plus a tall full-page composite. The breakpoints below are derived from the layout structure rather than measured at multiple widths — treat them as guidance, not verified values.

### Breakpoints (derived)

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Hamburger nav; hero h1 scales down from 72px; feature grids collapse to 1-up; copy + product-screenshot rows stack |
| Tablet | 768–1024px | Nav tightens; 3-up feature grid → 2-up; testimonial cards 2-up |
| Desktop | 1024–1440px | Full horizontal nav; 3-up feature grid; copy-left / screenshot-right rows |
| Wide | > 1440px | Centered max-width container with added outer breathing room |

### Touch Targets
- Pill buttons use a measured 6px × 10px padding with `{typography.button}` at 12px — effective tap area should be padded up to a 44px minimum on touch surfaces (the raw measured padding is tighter than WCAG's target).
- Nav links rely on the same small button type; spacing between them provides the tap separation.

### Collapsing Strategy
- The hero's centered headline + dual CTA pair stacks vertically on mobile.
- The "Remediate incidents at scale" alternating copy/screenshot rows collapse to single-column (copy first, screenshot below).
- Feature grids reduce columns (3 → 2 → 1) rather than shrinking cards.
- The trust-bar logo row wraps to multiple rows on narrow widths.

## Iteration Guide

1. Focus on ONE component at a time. Reference its YAML key directly (`{component.feature-card}`, `{component.button-light}`).
2. Variants of an existing component live as separate entries in `components:` (e.g., the white vs. navy button finishes).
3. Use `{token.refs}` everywhere — never inline a hex in a component.
4. Document default and Active/Pressed states only — no hover docs.
5. Keep the page dark end-to-end; the only light surfaces are `{component.button-light}` and `{component.input}`.
6. The oversized Funnel Display hero headline is the system's loudest voice — scale it before bolding anything.
7. When adding emphasis, prefer a surface step (`{colors.surface-card}``{colors.surface-elevated}`) over a shadow.

## Known Gaps

- **Active/pressed button states were not measured.** Only the default `{component.button-primary}` background (#141d31) was captured; press/disabled tints would need an interaction capture to confirm.
- **The hero gradient** (blue → green diagonal) is visible in screenshots but was not extracted as discrete stop values — the accent blues (`{colors.accent-blue}`, `{colors.accent-sky}`) are the nearest measured tones, but the exact gradient stops are a gap.
- **Semantic colors** (success / warning / error) were not surfaced in the measured palette — product UI screenshots show red/green status dots but those live inside embedded chrome, not as system tokens.
- **The 208px hero spacing value** appeared once (derived as a single outlier) and may be a one-off composite measurement rather than a reusable token.
- **Responsive breakpoints are derived** from layout structure, not measured across viewport widths.
- **Funnel Display, Instrument Sans, and Haskoy** were all reported as non-licensed (open-source), so no substitution is documented — but the precise weights loaded for each (beyond those measured) are unconfirmed.
- **Multiple near-identical dark accents** (`#03101f`, `#081736`, `#1b2d55`, `#384056`) were measured; their exact functional boundaries (which is divider vs. nested panel vs. chip) are inferred from screenshots and may need refinement.
- **Animation / transition timings** (hero gradient motion, incident-chart reveal) are out of scope.

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

Color Palette

Accent

Neutrals

Typography

display-xl72px · 700 · 1
The quick brown fox jumps
eyebrow13px · 500 · 1
The quick brown fox jumps
title-sm15px · 700 · 1.2
The quick brown fox jumps
title-alt16px · 700 · 1.4
The quick brown fox jumps
body-md16px · 500 · 1.5
The quick brown fox jumps
button12px · 500 · 1.17
The quick brown fox jumps

Spacing & Shape

Spacing

NameValuePreview
xxs4px
xs8px
sm12px
md16px
lg24px
xl40px
xxl80px
hero208px

Border Radius

NameValuePreview
xs4px
sm6px
md8px
lg14px
xl16px
xxl32px
pill70px
full100px

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