Framer Design System

Interactive web builder · High contrast dark layout with motion blue...
Back to Home
01

Visual Theme & Atmosphere

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.

...

Key Characteristics:

  • Black-canvas marketing system: {colors.canvas} is the surface for hero, body, pricing, FAQ, and footer alike — no light interludes.
  • ...

Live Visual Theme Representation:

Visual Theme Example

02

Color Palette & Roles

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

Brand & Accent

  • Pure White ({colors.primary}): The brand primary surface. Every primary CTA pill, every display headline, every body line on canvas.
  • Sky Blue ({colors.accent-blue}): The single chromatic accent. Hyperlinks, focused-input rings, and a few selection states. Never used for backgrounds or as a brand fill.

Surface

  • Canvas ({colors.canvas}): Default page background — near-black with a faint warmth. Footer, pricing, hero, and FAQ all sit on it.
  • Surface 1 ({colors.surface-1}): One step above canvas — pricing cards, secondary buttons, mockup tiles.
  • ...

Text

  • Ink ({colors.ink}): All headline and emphasized body type — pure white.
  • Ink Muted ({colors.ink-muted}): Secondary type — gray (#999999) used for meta info, footer columns, comparison-row labels, deselected pricing tabs. Hierarchy on the dark canvas is carried by ink → ink-muted contrast, not by weight changes.

Semantic

  • Success Green ({colors.semantic-success}): Pricing comparison-table checkmarks. Glyph fill, not surface.

Brand Gradient (signature)

  • Gradient Magenta ({colors.gradient-magenta}): Spotlight card variant.
  • Gradient Violet ({colors.gradient-violet}): Spotlight card variant — most common.
  • ...
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.
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
03

Typography Rules

Font Family

  • GT Walsheim Framer Medium / GT Walsheim Medium — Framer's display typeface. Geometric, slightly humanist, very confident at large sizes with extreme negative tracking. Fallbacks: GT Walsheim Medium Placeholder system font.
  • Inter Variable — System body typeface. Used with extensive OpenType character variants: cv01 (alternate "1"), cv05 (alternate "g"), cv09 (alternate "i" / "l"), cv11 (alternate "0"), ss03 / ss07 stylistic sets, dlig discretionary ligatures, and tnum for numerics in tabular contexts. The result is a body voice that feels bespoke without commissioning a custom face.
  • ...

Hierarchy

TokenSizeWeightLine HeightLetter SpacingUse
..................

Principles

  • Letter-spacing scales with size, hard. Display-xxl pulls -5.5px (5% of size); body sticks to about -1% (-0.15px on 15px). The result: posters at the top, comfortable reading at body.
  • OpenType character variants are the brand voice. Switching off cv11, ss03, etc. visibly changes the body voice — the brand depends on them.
  • ...

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.

Dynamic Preview:
display-xxl size: 110px | weight: 500 | height: 0.85 | spacing: -5.5px
The quick brown fox jumps over the lazy dog
display-xl size: 85px | weight: 500 | height: 0.95 | spacing: -4.25px
The quick brown fox jumps over the lazy dog
display-lg size: 62px | weight: 500 | height: 1.00 | spacing: -3.1px
The quick brown fox jumps over the lazy dog
display-md size: 32px | weight: 500 | height: 1.13 | spacing: -1.0px
The quick brown fox jumps over the lazy dog
headline size: 22px | weight: 700 | height: 1.20 | spacing: -0.8px
The quick brown fox jumps over the lazy dog
subhead size: 24px | weight: 400 | height: 1.30 | spacing: -0.01px
The quick brown fox jumps over the lazy dog
body-lg size: 18px | weight: 400 | height: 1.30 | spacing: -0.18px
The quick brown fox jumps over the lazy dog
body size: 15px | weight: 400 | height: 1.30 | spacing: -0.15px
The quick brown fox jumps over the lazy dog
body-sm size: 14px | weight: 500 | height: 1.40 | spacing: -0.14px
The quick brown fox jumps over the lazy dog
caption size: 13px | weight: 500 | height: 1.20 | spacing: -0.13px
The quick brown fox jumps over the lazy dog
micro size: 12px | weight: 400 | height: 1.20 | spacing: -0.12px
The quick brown fox jumps over the lazy dog
button size: 14px | weight: 500 | height: 1.0 | spacing: -0.14px
The quick brown fox jumps over the lazy dog
04

Layout Principles

Spacing System

  • Base unit: 5px (Framer uses non-standard 5/10/15/20/30 increments rather than the more common 4/8/16/24).
  • Tokens (front matter): {spacing.hair} 1px · {spacing.xxs} 4px · {spacing.xs} 8px · {spacing.sm} 12px · {spacing.md} 15px · {spacing.lg} 20px · {spacing.xl} 30px · {spacing.xxl} 40px · {spacing.section} 96px.
  • ...

Grid & Container

  • Max content width sits around the 1199px breakpoint, with side gutters that scale toward {spacing.xl} on desktop.
  • Card grids on the home gallery use 2-up at desktop, collapsing to 1-up below 810px.
  • ...

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.

Grid Layout Wireframe Mockup:

Layout Grid Example

Layout Wireframe blueprint
1
2
3
4
5
6
7
8
9
10
11
12
Gutter spacing: 16px / 24px
Side Margins: 24px (Mobile) / 48px (Desktop)
Max Container Width: 1200px
05

Depth & Elevation

LevelTreatmentUse
.........
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

  • Gradient spotlight cards are the dominant depth device — color saturation against black canvas substitutes for shadow-driven elevation.
  • Layered product mockups (browser frames containing live Framer-built sites) sit inside {colors.surface-1} cards with the level-2 light-edge treatment.
  • ...

Elevation Level Showcase:

Elevation Level Example

Flat Surface (Level 0)

Used for background layers, sidebar headers, or baseline borders.

Low Elevation (Level 1 / Card)

Used for floating product elements, cards, and hover states.

High Elevation (Level 2 / Popover & Dropdown)

Used for modals, select menus, code editor tooltips, and overlay headers.

Border Radius & Shape Scale:

radius-sm 4px
radius-md 6px
radius-lg 8px
radius-pill Pill / Tag
06

Component Stylings

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.

TokenValueUse
.........

Photography & Illustration Geometry

  • Embedded site mockups (browser-chromed previews of Framer-built sites) sit in {rounded.xl} 20px tiles with {spacing.md} 15px interior padding.
  • Gradient spotlight cards use {rounded.xxl} 30px corners — softer than the 20px content cards by design, to make them feel like atmospheric panels rather than tighter UI.
  • ...

Buttons

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

  • Background {colors.primary}, text {colors.on-primary}, type {typography.button}, padding 10px 15px, rounded {rounded.pill}.
  • ...
button-secondary — Charcoal pill. Used for secondary navigation actions ("Sign in", "Talk to sales") and as the visual counterpart to the primary pill.
  • Background {colors.surface-1}, text {colors.ink}, type {typography.button}, padding 10px 15px, rounded {rounded.pill}.
button-translucent — Translucent / lifted secondary used on top of busy backgrounds (gallery hero, gradient cards).
  • Background {colors.surface-2}, text {colors.ink}, type {typography.button}, rounded {rounded.xxl}, padding 8px 14px.
button-icon-circular — 40px circle for inline icon actions (carousel arrows, social links).
  • Background {colors.surface-1}, text {colors.ink}, rounded {rounded.full}, size 40px.

Pricing Tabs

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

  • Default: {colors.canvas} background, {colors.ink-muted} text, rounded {rounded.pill}.
  • ...

Inputs & Forms

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

  • Background {colors.surface-1}, text {colors.ink}, type {typography.body}, rounded {rounded.md}, padding 10px 14px.
  • ...

Cards & Containers

pricing-card — Each tier on /pricing.

  • Background {colors.surface-1}, text {colors.ink}, type {typography.body}, rounded {rounded.xl}, padding 24px.
pricing-card-featured — The Pro tier (visually emphasized).
  • Background {colors.surface-2}, otherwise identical structure. The lift is one surface step up — no chromatic outline.
template-card — Thumbnail tile in the home "Built with Framer" gallery and /marketplace.
  • Background {colors.surface-1}, text {colors.ink}, type {typography.body-sm}, rounded {rounded.lg}, padding 12px.
product-mockup-tile — Larger tile that frames a live product UI mock (Framer canvas, Workshop video, AI translate panel).
  • Background {colors.surface-1}, text {colors.ink}, type {typography.body-sm}, rounded {rounded.xl}, padding 16px.

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).

  • Background {colors.gradient-violet}, text {colors.ink}, type {typography.subhead}, rounded {rounded.xl}, padding 32px. (The on-site card often pushes to {rounded.xxl} 30px when it spans a wider tile.)
gradient-spotlight-card-magenta — magenta-pink ground.
  • Background {colors.gradient-magenta}, otherwise identical.
gradient-spotlight-card-orange — sunset-orange wash.
  • Background {colors.gradient-orange}, otherwise identical.
...

Comparison & FAQ

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

  • feature-row: {colors.canvas} background, {colors.ink} text. Header rows.
  • ...
faq-row — Each accordion line in the pricing-page FAQ.
  • Background {colors.canvas}, text {colors.ink}, type {typography.body}, rounded {rounded.md}, padding 24px.

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.

  • Background {colors.canvas}, text {colors.ink}, type {typography.body-sm}, height 56px.
  • ...

Footer

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

  • Background {colors.canvas}, text {colors.ink-muted}, type {typography.caption}, padding 64px 32px.

Interactive Component Demonstrations:

Component Interactive Example

07

Do's and Don'ts

Do

  • Reserve {colors.primary} (white) and {colors.canvas} (near-black) as the system's two anchor surfaces. Every band of the page chooses one or the other.
  • Push display-size letter-spacing aggressively negative — {typography.display-xxl} at -5.5px is the brand signature, not a stylistic accident.
  • Use {colors.accent-blue} only for hyperlinks, focus rings, and selected indicators. Never as a background or button fill.
  • Drop one or two gradient-spotlight-card variants into a card grid; they are the brand's atmosphere device. Don't overdo it — three or more in the same viewport reads as a moodboard, not a system.
  • Compose every CTA as a pill ({rounded.pill}); secondary actions live as charcoal pills, never as bordered ghost buttons.
  • Keep body type Inter Variable with character variants cv01, cv05, cv09, cv11, ss03, ss07 enabled — the brand voice depends on them.
  • Use surface lift (canvas → surface-1 → surface-2) to mark hierarchy on dark, not opacity changes on white type.

Don't

  • Don't ship a light-mode marketing page. Framer's identity is dark.
  • Don't introduce mid-tone gray text outside {colors.ink-muted}. The hierarchy is binary: ink or ink-muted.
  • Don't use {colors.accent-blue} as a brand fill (e.g., a blue CTA pill). The blue is a signal color, not a surface.
  • Don't square off CTAs. Pill ({rounded.pill}) or full circle is the brand vocabulary.
  • Don't reduce the negative letter-spacing on display sizes "for accessibility". The compression is intrinsic to the brand voice; reduce the SIZE if needed, but keep the percentage.
  • Don't apply gradient backgrounds to whole sections. Gradients are CARDS, not section grounds.
  • Don't combine more than one chromatic accent. The palette is monochrome plus one blue plus the gradient family — not "blue, green, and red".
✅ Recommended / Do
  • Reserve {colors.primary} (white) and {colors.canvas} (near-black) as the system's two anchor surfaces. Every band of the page chooses one or the other.
  • Push display-size letter-spacing aggressively negative — {typography.display-xxl} at -5.5px is the brand signature, not a stylistic accident.
  • Use {colors.accent-blue} only for hyperlinks, focus rings, and selected indicators. Never as a background or button fill.
  • Drop one or two gradient-spotlight-card variants into a card grid; they are the brand's atmosphere device. Don't overdo it — three or more in the same viewport reads as a moodboard, not a system.
  • Compose every CTA as a pill ({rounded.pill}); secondary actions live as charcoal pills, never as bordered ghost buttons.
  • Keep body type Inter Variable with character variants cv01, cv05, cv09, cv11, ss03, ss07 enabled — the brand voice depends on them.
  • Use surface lift (canvas → surface-1 → surface-2) to mark hierarchy on dark, not opacity changes on white type.
❌ Discouraged / Don't
  • Don't ship a light-mode marketing page. Framer's identity is dark.
  • Don't introduce mid-tone gray text outside {colors.ink-muted}. The hierarchy is binary: ink or ink-muted.
  • Don't use {colors.accent-blue} as a brand fill (e.g., a blue CTA pill). The blue is a signal color, not a surface.
  • Don't square off CTAs. Pill ({rounded.pill}) or full circle is the brand vocabulary.
  • Don't reduce the negative letter-spacing on display sizes "for accessibility". The compression is intrinsic to the brand voice; reduce the SIZE if needed, but keep the percentage.
  • Don't apply gradient backgrounds to whole sections. Gradients are CARDS, not section grounds.
  • Don't combine more than one chromatic accent. The palette is monochrome plus one blue plus the gradient family — not "blue, green, and red".
08

Responsive Behavior

Breakpoints

NameWidthKey Changes
.........

Touch Targets

  • Pill buttons (button-primary, button-secondary) maintain a minimum 44px tap height across all viewports — combine {typography.button} 14px line-height with the documented 10px vertical padding.
  • Circular icon buttons (button-icon-circular) are 40px on desktop and grow to 44px on touch viewports.
  • ...

Collapsing Strategy

  • Nav: horizontal nav with a centered link group + right-anchored pill pair collapses to a hamburger overlay below 810px. The button-primary stays visible on the bar.
  • Card grids: the gallery and template-card grids go 2-up on desktop → 1-up on mobile. Gradient spotlight cards retain {rounded.xxl} corners at every viewport — they don't bleed.
  • ...

Image Behavior

  • Embedded product mockups (browser frames containing live Framer-built sites) maintain their aspect ratio and never crop.
  • Gradient spotlight cards keep their gradient orientations across breakpoints — the gradient direction is part of the brand spec.

Responsive Adaptation Note:

Responsive Behavior Example

Interactive Viewport Simulator
Width: 800px (Desktop Mode) Grid Container
Primary Column

Adjusts layout width

Secondary Column

Folds on viewport change

Sidebar Column

Stacks to bottom on mobile

09

Agent Prompt 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.

  • ...

Copyable Agent Integration Prompt:

Prompt Guide Copy Box

10

Full System Design Tokens

The parsed design tokens extracted from the core stylesheet of this design system:

Design TokenHex ValueSystem Palette Role
--primary#ffffffSystem color representation for primary
--on-primary#000000System color representation for on-primary
--accent-blue#0099ffSystem color representation for accent-blue
--ink#ffffffSystem color representation for ink
--ink-muted#999999System color representation for ink-muted
--canvas#090909System color representation for canvas
--surface-1#141414System color representation for surface-1
--surface-2#1c1c1cSystem color representation for surface-2
--hairline#262626System color representation for hairline
--hairline-soft#1a1a1aSystem color representation for hairline-soft
--inverse-canvas#ffffffSystem color representation for inverse-canvas
--inverse-ink#000000System color representation for inverse-ink
--gradient-magenta#d44df0System color representation for gradient-magenta
--gradient-violet#6a4cf5System color representation for gradient-violet
--gradient-orange#ff7a3dSystem color representation for gradient-orange
--gradient-coral#ff5577System color representation for gradient-coral
--semantic-success#22c55eSystem color representation for semantic-success