← Back to all designs

Webflow

An inspired interpretation of Webflow's design language — a visual web development platform whose surface contrasts a deep near-black `#080808` primary against a generous white canvas, broken by a five-stop chromatic accent system (purple / pink / blue / orange / green) that maps to the brand's product categories, and anchored by the proprietary WF Visual Sans family used at restrained 500 / 600 w

Homepage Example

Welcome to Webflow

A modern, elegant design system built for the digital age. Clean lines, thoughtful spacing, and purposeful color choices define every interaction.

Get Started Learn More

Pixel Perfect

Every element is carefully crafted to ensure consistency across all platforms and devices.

Design Tokens

A comprehensive token system that makes scaling and maintaining your design effortless.

Built for Teams

Collaborate seamlessly with designers and developers using a shared design language.

Color Palette (19)

primary#080808
on-primary#ffffff
ink#080808
ink-strong#222222
body#363636
body-mid#5a5a5a
mute#898989
mute-soft#ababab
hairline#d8d8d8
canvas#ffffff
accent-purple#7a3dff
accent-pink#ed52cb
accent-blue#3b89ff
accent-blue-deep#006acc
accent-blue-info#146ef5
accent-orange#ff6b00
accent-green#00d722
accent-yellow#ffae13
accent-red#ee1d36

Typography (16)

Webflow
display-xxl80px · weight 600
Webflow
display-xl56px · weight 600
Webflow
display-lg44.8px · weight 600
Webflow
display-md32px · weight 500
Webflow
display-sm24px · weight 500
Webflow
display-xs20px · weight 500
Webflow
eyebrow-uppercase15px · weight 500
Webflow
eyebrow-uppercase-sm12px · weight 500
Webflow
body-lg28.8px · weight 400
Webflow
body-md16px · weight 400
Webflow
body-md-strong16px · weight 500
Webflow
body-sm14px · weight 400
Webflow
body-sm-strong14px · weight 500
Webflow
caption12.8px · weight 550
Webflow
caption-mono12px · weight 400
Webflow
button-md16px · weight 500

Components (31)

nav-bar
nav-bar
nav-link
nav-link
button-primary
button-primary
button-secondary
button-secondary
button-text-arrow
button-text-arrow
button-icon-circular
button-icon-circular
text-input
text-input
badge-info
badge-info
badge-info-soft
badge-info-soft
card-feature
card-feature
card-feature-dark
card-feature-dark
card-pricing
card-pricing
hero-band
hero-band
hero-band-dark
hero-band-dark
content-band
content-band
category-card-purple
category-card-purple
category-card-blue
category-card-blue
category-card-orange
category-card-orange
category-card-green
category-card-green
category-card-pink
category-card-pink
footer
footer
ex-pricing-tier
ex-pricing-tier
ex-pricing-tier-featured
ex-pricing-tier-featured
ex-product-selector
ex-product-selector
ex-cart-drawer
ex-cart-drawer
ex-app-shell-row
ex-app-shell-row
ex-data-table-cell
ex-data-table-cell
ex-auth-form-card
ex-auth-form-card
ex-modal-card
ex-modal-card
ex-empty-state-card
ex-empty-state-card
ex-toast
ex-toast

Border Radius

none (0px)
xs (2px)
sm (4px)
md (8px)
full (9999px)

Design Philosophy

Overview

Webflow positions itself as the visual web development platform — the marketing surface reads as a confident professional product, not a tech startup. The default page is a generous white canvas (`{colors.canvas}`) with a deep near-black `{colors.primary}` (`#080808`) for the brand's primary CTA, typography, and ink. Around this restrained primary, the brand layers a five-stop chromatic accent system — `{colors.accent-purple}` `#7a3dff`, `{colors.accent-pink}` `#ed52cb`, `{colors.accent-blue}` `#3b89ff`, `{colors.accent-orange}` `#ff6b00`, `{colors.accent-green}` `#00d722` — each mapped to one of the platform's product categories (design, CMS, hosting, ecommerce, etc.). These accents appear as full-card fills inside the product-category grid, not as button colours; the brand's primary CTA stays near-black.

Type carries the second decisive voice. The proprietary `WF Visual Sans Variable` family carries every display, body, and label role at weight 500 / 600 — the brand never goes heavier than semibold, never lighter than regular. Hero display sits at 80 px / weight 600 / `-0.8 px` tracking — confident but not shouting. Uppercase eyebrows in 15 px weight 500 with `1.5 px` positive tracking mark every section header.

The shape system is restrained. Buttons take a tight `{rounded.sm}` 4 px radius — neither pill nor square; the brand reads as engineered. Cards step up to `{rounded.md}` 8 px. Pill (`{rounded.full}` 9999 px) is reserved for circular icon containers. Layered drop-shadows on featured cards add modest elevation but never feel material-heavy.

**Key Characteristics:**

Colors

Brand & Accent

Surface

Text

Semantic

Typography

Font Family

A single proprietary family carries every typographic role: **WF Visual Sans Variable** (with `Arial` system fallback). Weights 400 / 500 / 550 / 600 are present; the brand never uses 700 / 800 / 900. A monospace variant — **WFVisualSans-Mono** with `Inconsolata` fallback — handles rare technical caption moments and code-style labels. OpenType features `"ss02"`, `"ss10"`, `"zero"` are enabled in the mono variant for the styled zero glyph.

Hierarchy

| Token | Size | Weight | Line Height | Letter Spacing | Use |

|---|---|---|---|---|---|

| `{typography.display-xxl}` | 80px | 600 | 83.2px | -0.8px | Hero headline. |

| `{typography.display-xl}` | 56px | 600 | 58.24px | 0 | Sub-hero displays. |

| `{typography.display-lg}` | 44.8px | 600 | 46.6px | 0 | Section headlines. |

| `{typography.display-md}` | 32px | 500 | 41.6px | 0 | Card-cluster headlines. |

| `{typography.display-sm}` | 24px | 500 | 31.2px | 0 | Sub-section displays. |

| `{typography.display-xs}` | 20px | 500 | 28px | 0 | Inline display micro-headings. |

| `{typography.eyebrow-uppercase}` | 15px | 500 | 19.5px | 1.5px | UPPERCASE eyebrow tags above sections. |

| `{typography.eyebrow-uppercase-sm}` | 12px | 500 | 12px | 0.6px | Small uppercase metadata. |

| `{typography.body-lg}` | 28.8px | 400 | 46.08px | -0.288px | Lead paragraphs. |

| `{typography.body-md}` | 16px | 400 | 25.6px | -0.16px | Default body. |

| `{typography.body-md-strong}` | 16px | 500 | 25.6px | -0.16px | Bolded inline body. |

| `{typography.body-sm}` | 14px | 400 | 22.4px | 0 | Secondary body. |

| `{typography.body-sm-strong}` | 14px | 500 | 22.4px | 0 | Bold caption / nav-link. |

| `{typography.caption}` | 12.8px | 550 | 15.36px | 0 | Badge labels (the brand's signature 550 weight). |

| `{typography.caption-mono}` | 12px | 400 | 18px | 0 | Mono code captions. |

| `{typography.button-md}` | 16px | 500 | 25.6px | -0.16px | Button labels. |

Principles

Note on Font Substitutes

WF Visual Sans Variable is proprietary. Open-source substitutes:

Layout

Spacing System

Grid & Container

Responsive Strategy

#### Breakpoints

| Name | Width | Key Changes |

|---|---|---|

| Mobile | < 479px | Hero stacks; all grids 1-up. |

| Mobile-Large | 479–767px | Same as Mobile. |

| Tablet | 768–991px | 2-up grids. |

| Desktop | ≥ 992px | Full multi-up grids. |

#### Touch Targets

Buttons render at ~44 px (12 px vertical padding + 25.6 px line-height). WCAG AAA met.

#### Collapsing Strategy

#### Image Behavior

Elevation & Depth

| Level | Treatment | Use |

|---|---|---|

| Level 0 — Flat | No shadow, no border. | Default bands. |

| Level 1 — Hairline | 1 px solid `{colors.hairline}` border on `{colors.canvas}`. | Default card chrome and input borders. |

| Level 2 — Layered Drop | Multi-stop layered shadow with subtle warm offsets — `0 84px 24px rgba(0,0,0,0), 0 54px 22px rgba(0,0,0,0.01), 0 30px 18px rgba(0,0,0,0.04), 0 13px 13px rgba(0,0,0,0.08), 0 3px 7px rgba(0,0,0,0.09)`. | Featured cards needing visible lift. |

| Level 3 — Layered Drop Strong | Deeper version of Level 2 with `0.12` final offset opacity. | Pricing / modal-level emphasis. |

| Level 4 — Heavy Modal | Extremely heavy multi-stop — `0 24px 24px rgba(0,0,0,0.26), 0 6px 13px rgba(0,0,0,0.29)` final stops. | Modal / dialog surfaces. |

Decorative Depth

Shapes

Border Radius Scale

| Token | Value | Use |

|---|---|---|

| `{rounded.none}` | 0px | Full-bleed bands. |

| `{rounded.xs}` | 2px | Tight inline pills. |

| `{rounded.sm}` | 4px | The brand's canonical button + badge + small-element radius. |

| `{rounded.md}` | 8px | Card chrome and feature / category cards. |

| `{rounded.full}` | 9999px | Circular icon containers only. |

Components

Buttons

**`button-primary`** — the canonical near-black CTA.

**`button-secondary`** — the white outline CTA.

**`button-text-arrow`** — the underlined text-link CTA with arrow used in long-form sections.

**`button-icon-circular`** — the circular icon button for carousel controls.

Cards & Containers

**`card-feature`** — the canonical feature card on canvas.

**`card-feature-dark`** — the polarity-flipped feature card on near-black.

**`card-pricing`** — the pricing-tier card.

Inputs & Forms

**`text-input`** — the canonical text input.

Navigation

**`nav-bar`** — the sticky top nav.

**`nav-link`** — link items inside `nav-bar`.

**`footer`** — the footer band.

Signature Components

**`hero-band`** — the white hero band.

**`hero-band-dark`** — the polarity-flipped near-black hero band (used on some campaign pages).

**`content-band`** — the standard content band on canvas.

**`category-card-purple`** — full-fill purple category card.

**`category-card-pink`** — full-fill pink category card.

**`category-card-blue`** — full-fill blue category card.

**`category-card-orange`** — full-fill orange category card.

**`category-card-green`** — full-fill green category card (uses ink text for legibility against the lighter green).

**`badge-info`** + **`badge-info-soft`** — info badges in solid blue or soft outline.

Examples (illustrative)

> Auto-derived kit-mirror demonstration surfaces (`scripts/derive-examples-block.mjs`). Each `ex-*` entry references brand-native primitives so downstream consumers (`/preview-design`, `/generate-kit`) re-skin the same 10 surfaces consistently. `TO_FILL` markers indicate missing primitives — resolve in the LLM judgment pass.

**`ex-pricing-tier`** — Default Pricing tier card. Re-uses feature-card chrome with brand canvas-soft surface.

**`ex-pricing-tier-featured`** — Featured/highlighted tier — polarity-flipped surface (dark fill + light text in light mode, light fill + dark text in dark mode).

**`ex-product-selector`** — What's Included summary card — re-purposed for SaaS / B2B verticals (NOT a literal product gallery).

**`ex-cart-drawer`** — Subscription summary — re-purposed for SaaS / B2B (line items per add-on, not literal cart).

**`ex-app-shell-row`** — Sidebar nav row inside the App Shell example. Active state uses brand primary as the indicator.

**`ex-data-table-cell`** — Default data-table th + td chrome. Header uses mono-caps eyebrow typography; body uses body-sm.

**`ex-auth-form-card`** — Sign-in / sign-up card. Re-uses feature-card chrome with text-input primitives inside.

**`ex-modal-card`** — Modal dialog surface — same chrome as feature-card with elevated shadow.

**`ex-empty-state-card`** — Empty-state illustration frame.

**`ex-toast`** — Toast notification surface — feature-card shape + medium shadow.

Do's and Don'ts

Do

Don't