← Back to all designs

Framer

A confident dark-canvas builder marketing site that treats the page like a working artboard — pure black surfaces, white display type set in GT Walsheim Medium with aggressive negative tracking, and a single confident blue (#0099ff) reserved for hyperlinks and selection states. The page rhythm is broken by oversized vibrant gradient atmosphere panels — magenta, violet, orange spotlights — that act

Homepage Example

Welcome to Framer

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 (17)

primary#ffffff
on-primary#000000
accent-blue#0099ff
ink#ffffff
ink-muted#999999
canvas#090909
surface-1#141414
surface-2#1c1c1c
hairline#262626
hairline-soft#1a1a1a
inverse-canvas#ffffff
inverse-ink#000000
gradient-magenta#d44df0
gradient-violet#6a4cf5
gradient-orange#ff7a3d
gradient-coral#ff5577
semantic-success#22c55e

Typography (12)

Framer
display-xxl110px · weight 500
Framer
display-xl85px · weight 500
Framer
display-lg62px · weight 500
Framer
display-md32px · weight 500
Framer
headline22px · weight 700
Framer
subhead24px · weight 400
Framer
body-lg18px · weight 400
Framer
body15px · weight 400
Framer
body-sm14px · weight 500
Framer
caption13px · weight 500
Framer
micro12px · weight 400
Framer
button14px · weight 500

Components (21)

button-primary
button-primary
button-primary-pressed
button-primary-pressed
button-secondary
button-secondary
button-translucent
button-translucent
button-icon-circular
button-icon-circular
pricing-tab-default
pricing-tab-default
pricing-tab-selected
pricing-tab-selected
text-input
text-input
text-input-focused
text-input-focused
pricing-card
pricing-card
pricing-card-featured
pricing-card-featured
template-card
template-card
gradient-spotlight-card
gradient-spotlight-card
gradient-spotlight-card-magenta
gradient-spotlight-card-magenta
gradient-spotlight-card-orange
gradient-spotlight-card-orange
product-mockup-tile
product-mockup-tile
feature-row
feature-row
comparison-row
comparison-row
top-nav
top-nav
faq-row
faq-row
footer
footer

Border Radius

xs (4px)
sm (6px)
md (10px)
lg (15px)
xl (20px)
xxl (30px)
pill (100px)
full (9999px)

Design Philosophy

Overview

Framer's marketing canvas is a near-pure black artboard. The dominant surface is `{colors.canvas}` — almost pure black with a faint warmth — and on top of it sits oversized white display type set in **GT Walsheim Medium** with letter-spacing pulled to extreme negative values (-5.5px on the 110px display, -4.25px on the 85px hero). The page reads like a poster: one assertive statement per band, generous breathing room above and below.

The single accent is `{colors.accent-blue}` — used scarcely, mostly for hyperlinks, selection halos, and a subtle blue-tinted shadow ring on focused inputs. The brand chrome itself is monochrome: white pill buttons, charcoal cards, gray secondary text. What makes Framer distinctive is the rhythm break — every few sections the page drops in a **vibrant gradient atmosphere card**: a magenta-violet spotlight, a sunset-orange wash, a coral-pink panel. These aren't section backgrounds; they're individual cards arranged in a card grid, each one a small living poster that shows what Framer can produce.

Body type is **Inter Variable**, with Framer leaning hard into Inter's character variants (`cv01`, `cv05`, `cv09`, `cv11`, `ss03`, `ss07`, `dlig`) — the result is a body voice that feels custom-tuned, with single-storey "a", straight-leg "l", and tabular figures. There's no light mode on the marketing site; the brand IS dark.

**Key Characteristics:**

Colors

> Source pages: framer.com (home), /ai/, /startups/, /marketplace/templates/nudge/, /gallery/a16z-speedrun-×-tonik, /pricing.

Brand & Accent

Surface

Text

Semantic

Brand Gradient (signature)

These four sit as oversized atmospheric tiles inside otherwise monochrome card grids — a dark canvas with one or two glowing spotlight cards is a recurring page signature.

Typography

Font Family

Hierarchy

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

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

| `{typography.display-xxl}` | 110px | 500 | 0.85 | -5.5px | Largest hero headline (home, AI page) |

| `{typography.display-xl}` | 85px | 500 | 0.95 | -4.25px | Section opener headlines |

| `{typography.display-lg}` | 62px | 500 | 1.00 | -3.1px | Sub-section openers |

| `{typography.display-md}` | 32px | 500 | 1.13 | -1.0px | Card titles, smaller display |

| `{typography.headline}` | 22px | 700 | 1.20 | -0.8px | Pricing tier headlines, FAQ category titles |

| `{typography.subhead}` | 24px | 400 | 1.30 | -0.01px | Lead body next to display headlines |

| `{typography.body-lg}` | 18px | 400 | 1.30 | -0.18px | Hero subhead, lead paragraphs |

| `{typography.body}` | 15px | 400 | 1.30 | -0.15px | Default body, card descriptions |

| `{typography.body-sm}` | 14px | 500 | 1.40 | -0.14px | Pricing comparison rows, dense data |

| `{typography.caption}` | 13px | 500 | 1.20 | -0.13px | Eyebrows, footer columns, meta |

| `{typography.micro}` | 12px | 400 | 1.20 | -0.12px | Disclaimer, footnote |

| `{typography.button}` | 14px | 500 | 1.0 | -0.14px | Pill buttons |

Principles

Note on Font Substitutes

If implementing without GT Walsheim Medium, suitable open-source substitutes include **Mona Sans**, **Geist**, or **Inter** at weight 600–700 with manually tightened tracking. Mona Sans's hairline weights at 100–300 are particularly close to Framer's cleaner section openers. Inter Variable is open-source — keep it as-is and preserve the documented OpenType variants.

Layout

Spacing System

Grid & Container

Whitespace Philosophy

The dark canvas IS the whitespace. Where lighter brands lean on white air to separate sections, Framer leans on long stretches of black with a single oversized statement floating in the middle. Sections separate by mode change: a band of charcoal cards, then a band of black with a gradient spotlight, then back to charcoal — like cuts in a dark film.

Elevation & Depth

| Level | Treatment | Use |

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

| 0 (flat) | No shadow, no border | Default for canvas-mounted display type, FAQ rows, footer |

| 1 (charcoal) | `{colors.surface-1}` lift on canvas | Pricing cards, mockup tiles, secondary buttons |

| 2 (light-edge) | `rgba(255,255,255,0.10)` 0.5px top edge + `rgba(0,0,0,0.25)` 0px 10px 30px drop | Floating product cards, modal cards |

| 3 (selected) | `rgba(0,153,255,0.15)` 0px 0px 0px 1px ring | Focused inputs, selected option |

Four shadow signatures recur across the homepage: a 1px subtle drop, a translucent blue ring, a thick near-black 2px outline (used as the active-element marker on sub-nav), and the layered light-edge + drop-shadow used for floating cards.

Decorative Depth

Shapes

Border Radius Scale

Framer's extracted radius set is unusually granular (1px, 4px, 5px, 6px, 8px, 10px, 12px, 15px, 20px, 30px, 40px, 100px). The named scale below picks the levels the marketing surface actually consumes.

| Token | Value | Use |

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

| `{rounded.xs}` | 4px | Small chip / utility radius |

| `{rounded.sm}` | 6px | Inline tag, badge |

| `{rounded.md}` | 10px | Form input, list item |

| `{rounded.lg}` | 15px | Template card thumbnails |

| `{rounded.xl}` | 20px | Pricing cards, mockup tiles |

| `{rounded.xxl}` | 30px | Gradient spotlight cards, oversized panels |

| `{rounded.pill}` | 100px | All primary text CTAs |

| `{rounded.full}` | 9999px | Circular icon buttons, avatar circles |

Photography & Illustration Geometry

Components

Buttons

**`button-primary`** — White pill on dark canvas. The primary CTA across home, pricing, AI, and gallery pages.

**`button-secondary`** — Charcoal pill. Used for secondary navigation actions ("Sign in", "Talk to sales") and as the visual counterpart to the primary pill.

**`button-translucent`** — Translucent / lifted secondary used on top of busy backgrounds (gallery hero, gradient cards).

**`button-icon-circular`** — 40px circle for inline icon actions (carousel arrows, social links).

Pricing Tabs

**`pricing-tab-default`** + **`pricing-tab-selected`** — The pill-toggle that switches between Basic / Pro / Business / Enterprise on `/pricing`.

Inputs & Forms

**`text-input`** + **`text-input-focused`** — Form fields on `/pricing` (seat-count, currency switcher) and the in-product preview surfaces.

Cards & Containers

**`pricing-card`** — Each tier on `/pricing`.

**`pricing-card-featured`** — The Pro tier (visually emphasized).

**`template-card`** — Thumbnail tile in the home "Built with Framer" gallery and `/marketplace`.

**`product-mockup-tile`** — Larger tile that frames a live product UI mock (Framer canvas, Workshop video, AI translate panel).

Gradient Spotlight Cards (signature)

The defining decorative surface of Framer's marketing — oversized atmospheric tiles dropped into otherwise monochrome card grids. Variants:

**`gradient-spotlight-card`** — violet ground (most common).

**`gradient-spotlight-card-magenta`** — magenta-pink ground.

**`gradient-spotlight-card-orange`** — sunset-orange wash.

(Coral pink follows the same shape with `{colors.gradient-coral}`.)

Comparison & FAQ

**`feature-row`** + **`comparison-row`** — Single rows inside the pricing comparison table.

**`faq-row`** — Each accordion line in the pricing-page FAQ.

Navigation

**`top-nav`** — Sticky bar on `{colors.canvas}` with the Framer wordmark left, primary nav links centered, and a `button-secondary` ("Sign in") + `button-primary` ("Get started for free") pair right.

Footer

**`footer`** — Dense link grid on `{colors.canvas}` with the Framer wordmark left and 5–6 columns of caption-sized links.

Do's and Don'ts

Do

Don't

Responsive Behavior

Breakpoints

| Name | Width | Key Changes |

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

| Desktop | 1199px | Default desktop layout |

| Tablet | 810px | Card grids collapse 4-up → 2-up; nav becomes hamburger |

| Mobile-Lg | 809px | Pricing comparison table becomes per-tier accordion |

| Mobile-XS | 98px | Smallest documented breakpoint — single-column everything |

Touch Targets

Collapsing Strategy

Image Behavior

Iteration Guide

1. Focus on ONE component at a time and reference it by its `components:` token name (e.g., `{components.button-primary}`, `{components.gradient-spotlight-card}`).

2. When introducing a new section on the dark canvas, decide first which surface lift it lives on — `{colors.canvas}` for hero/FAQ, `{colors.surface-1}` for cards, `{colors.surface-2}` for featured cards. The depth choice is the most consequential decision.

3. Default body to `{typography.body}` with all the documented OpenType variants; reach for `{typography.subhead}` only inside spotlight cards.

4. Run `npx @google/design.md lint DESIGN.md` after edits — `broken-ref`, `contrast-ratio`, and `orphaned-tokens` warnings flag issues automatically.

5. Add new variants as separate component entries (`-pressed`, `-featured`, `-selected`) — do not bury them in prose.

6. Treat `{colors.accent-blue}` as a single-shot signal color: hyperlinks, focus, and selection — that's it. If you find yourself reaching for a second blue, the brand is drifting.

7. Gradient spotlight cards are scarce by design. One or two per long page is the spec; three is a moodboard.

Known Gaps