light · editorial · sans · warm · signature-cards · near-black-cta

Airtable

White-canvas editorial workflow software with full-bleed coral and forest signature cards punctuating a near-black pill-CTA system.

By webdesignhot · airtable.com
$ npx design-md add airtable
Learn more about the CLI
Compare to…
try on →
1440 × 900
mobile · 390 × 844
Tokens design.md/v1.5
  • bg #ffffff
  • bg-soft #f8fafc
  • bg-strong #e0e2e6
  • bg-dark #181d26
  • bg-dark-elevated #1d1f25
  • surface #f8fafc
  • text AAA · 16.9 #181d26
  • text-body #333840
  • text-muted #41454d
  • text-faint — · 2.9 #9297a0
  • brand AAA · 16.9 #181d26
  • brand-active #0d1218
  • on-brand #ffffff
  • on-dark #ffffff
  • link #1b61c9
  • link-active #1a3866
  • border — · 1.4 #dddddd
  • border-strong — · 2.9 #9297a0
  • border-soft #eceef0
  • signature-coral #aa2d00
  • signature-forest #0a2e0e
  • signature-cream #f5e9d4
  • signature-peach #fcab79
  • signature-mint #a8d8c4
  • signature-yellow #f4d35e
  • signature-mustard #d9a441
  • pricing-ink #1d1f25
  • info #254fad
  • info-border #458fff
  • success #006400
  • success-border #39bf45
  • danger #c41c1c
  • warning #d9a441
Typography
Ship faster than ever.
display-xl "Haas Groot Disp" 48px w500 0em
Ship faster than ever.
pricing-display "Inter Display" 44.8px w475 0em
Ship faster than ever.
display-lg "Haas Groot Disp" 40px w400 0em
Ship faster than ever.
display-md "Haas Groot Disp" 32px w400 0em
The quick brown fox jumps over the lazy dog.
pricing-section "Inter Display" 28px w475 0em
The quick brown fox jumps over the lazy dog.
title-lg "Haas" 24px w400 0.12px
The quick brown fox jumps over the lazy dog.
title-md "Haas Groot Disp" 20px w400 0em
The quick brown fox jumps over the lazy dog.
pricing-card-title "Inter Display" 20px w475 0em
The quick brown fox jumps over the lazy dog.
title-sm "Haas" 18px w500 0em
OUR DESIGN SYSTEM
label-md "Haas" 16px w500 0em
The quick brown fox jumps over the lazy dog.
button "Haas" 16px w500 0em
The quick brown fox jumps over the lazy dog.
body-md "Haas" 14px w400 0em
OUR DESIGN SYSTEM
caption "Haas" 14px w500 0.16px
The quick brown fox jumps over the lazy dog.
legal "Haas" 13.12px w600 0em
Spacing
  • step-0 4px
  • step-1 8px
  • step-2 12px
  • step-3 16px
  • step-4 24px
  • step-5 32px
  • step-6 48px
  • step-7 64px
  • step-8 96px
Radius
  • micro 2px
  • sm 6px
  • md 10px
  • lg 12px
  • pill 9999px
  • full 9999px
Components
Text link →
Card preview A complete kit — everything your product needs. Hero, pricing, FAQ, dashboard, docs — every layout your product needs.
New Stable v1.0
Export 4 formats · paste-ready
Tailwind

theme.extend block for tailwind.config.js

tailwind.config.js
CSS variables

:root { --bg, --text, --brand, … } you can paste anywhere

design.css
DTCG JSON

W3C Design Tokens Community Group format

design.tokens.json
Figma Variables

Importable into Figma → Variables → Import

figma-variables.json
The file
---
name: Airtable
tagline: White-canvas editorial workflow software with full-bleed coral and forest signature cards punctuating a near-black pill-CTA system.
author: webdesignhot
source_url: https://airtable.com
spec: design.md/v1.5
quality: curated
featured: false
categories: [saas, dev-tools]
tags: [light, editorial, sans, warm, signature-cards, near-black-cta]
preview_swatch: ['#ffffff', '#181d26', '#aa2d00']
related: [notion, linear, figma]
description: 'Airtable''s marketing surface reads like a sober workflow publication — a white canvas, dark-ink Haas Grotesk type at modest weights, and a near-black pill CTA that never fights for attention. Brand voltage doesn''t come from gradients; it comes from full-bleed signature cards in coral (#aa2d00), forest (#0a2e0e), cream (#f5e9d4), and dark navy (#181d26) that punctuate long-scroll explainer pages every two or three screens. Demo-card grids carry product UI fragments on warm pastel surfaces (peach, mint, yellow, mustard) — the actual base-UI palette translated into marketing surfaces. The pricing page runs its own dialect: Inter Display at mid-weight 475, pill-shaped buttons that don''t appear anywhere else, and a 4-tier comparison grid.'

colors:
  bg: '#ffffff'                    # canvas — page floor
  bg-soft: '#f8fafc'               # surface-soft — tabbed feature cards, featured pricing tier
  bg-strong: '#e0e2e6'             # surface-strong — light gray pre-footer CTA banner
  bg-dark: '#181d26'               # surface-dark — mid-page dark CTA cards
  bg-dark-elevated: '#1d1f25'      # articles hero behind rainbow stripe overlay
  surface: '#f8fafc'               # alias of bg-soft for clarity
  text: '#181d26'                  # ink — h1/h2 display + primary button text-on-light
  text-body: '#333840'             # default running-text
  text-muted: '#41454d'            # captions, footer links, breadcrumbs
  text-faint: '#9297a0'            # disabled secondary button outline tone
  brand: '#181d26'                 # primary — same hex as ink; CTA bg + dark surfaces
  brand-active: '#0d1218'          # press state on primary
  on-brand: '#ffffff'
  on-dark: '#ffffff'
  link: '#1b61c9'                  # link blue — NOT the primary button color
  link-active: '#1a3866'
  border: '#dddddd'                # hairline — input outlines, table dividers
  border-strong: '#9297a0'         # disabled secondary button outline
  border-soft: '#eceef0'           # softer divider rare use
  signature-coral: '#aa2d00'       # large full-bleed coral signature card
  signature-forest: '#0a2e0e'      # deep-green signature card sibling
  signature-cream: '#f5e9d4'       # cream callout band
  signature-peach: '#fcab79'       # demo-grid pastel
  signature-mint: '#a8d8c4'        # demo-grid pastel
  signature-yellow: '#f4d35e'      # demo-grid pastel
  signature-mustard: '#d9a441'     # demo-grid pastel
  pricing-ink: '#1d1f25'           # Inter Display sub-system text
  info: '#254fad'                  # info badge bg
  info-border: '#458fff'           # focused-input outline
  success: '#006400'
  success-border: '#39bf45'
  danger: '#c41c1c'
  warning: '#d9a441'

typography:
  display:
    family: '"Haas Groot Disp", "Haas", "Inter Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
    weights: [400, 500]
  body:
    family: '"Haas", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif'
    weights: [400, 500, 600]
  pricing-display:
    family: '"Inter Display", system-ui, sans-serif'
    weights: [475, 575]
  scale:
    display-xl:        { size: 48,    weight: 500, lineHeight: 1.10, tracking: 0,        family: display, notes: 'articles page h2 — second-tier editorial' }
    display-lg:        { size: 40,    weight: 400, lineHeight: 1.20, tracking: 0,        family: display, notes: 'homepage hero h1' }
    display-md:        { size: 32,    weight: 400, lineHeight: 1.20, tracking: 0,        family: display, notes: 'platform-page h2 — feature heads' }
    title-lg:          { size: 24,    weight: 400, lineHeight: 1.35, tracking: '0.12px', family: body }
    title-md:          { size: 20,    weight: 400, lineHeight: 1.50, tracking: 0,        family: display }
    title-sm:          { size: 18,    weight: 500, lineHeight: 1.40, tracking: 0,        family: body }
    label-md:          { size: 16,    weight: 500, lineHeight: 1.40, tracking: 0,        family: body }
    button:            { size: 16,    weight: 500, lineHeight: 1.40, tracking: 0,        family: body }
    body-md:           { size: 14,    weight: 400, lineHeight: 1.25, tracking: 0,        family: body }
    caption:           { size: 14,    weight: 500, lineHeight: 1.35, tracking: '0.16px', family: body }
    legal:             { size: 13.12, weight: 600, lineHeight: 1.20, tracking: 0,        family: body }
    pricing-display:   { size: 44.8,  weight: 475, lineHeight: 1.10, tracking: 0,        family: pricing-display }
    pricing-section:   { size: 28,    weight: 475, lineHeight: 1.20, tracking: 0,        family: pricing-display }
    pricing-card-title: { size: 20,    weight: 475, lineHeight: 1.30, tracking: 0,        family: pricing-display }

radius:
  micro: 2
  sm: 6
  md: 10
  lg: 12
  pill: 9999
  full: 9999

spacing:
  base: 4
  scale: [4, 8, 12, 16, 24, 32, 48, 64, 96]

layout:
  page-width: 1280
  prose-width: 720
  header-height: 64

components:
  button-primary:
    backgroundColor: brand
    textColor: on-brand
    rounded: lg
    padding: '16px 24px'
    use: 'every primary CTA — Sign up for free, Get started for free'
  button-primary-active:
    backgroundColor: brand-active
    textColor: on-brand
    use: 'press state on primary'
  button-secondary:
    backgroundColor: bg
    textColor: text
    rounded: lg
    padding: '16px 24px'
    border: '1px solid border'
    use: 'Book demo / less-committed pair next to primary'
  button-secondary-on-dark:
    backgroundColor: bg
    textColor: text
    rounded: lg
    padding: '16px 24px'
    use: 'white button preserved on coral / forest / dark surfaces'
  button-pricing-pill:
    backgroundColor: bg
    textColor: pricing-ink
    rounded: pill
    padding: '12px 24px'
    use: 'pricing-page CTA — only place pill-shape appears'
  button-legal:
    backgroundColor: link
    textColor: on-brand
    rounded: micro
    padding: '12px 10px'
    use: 'cookie-consent / legal banner — system-required surface'
  button-icon-circular:
    backgroundColor: bg
    textColor: text
    rounded: full
    size: 40
    use: 'carousel controls, share, back affordances'
  text-link:
    backgroundColor: transparent
    textColor: link
    use: 'inline body link — no underline by default'
  hero-band:
    backgroundColor: bg
    textColor: text
    padding: 96
    use: 'white-canvas hero with primary + secondary CTA pair'
  signature-coral-card:
    backgroundColor: signature-coral
    textColor: on-dark
    rounded: lg
    padding: 48
    use: 'full-bleed homepage anchor — Production apps in prototype speed'
  signature-forest-card:
    backgroundColor: signature-forest
    textColor: on-dark
    rounded: lg
    padding: 48
    use: 'deep-green sibling to coral inside demo-grid clusters'
  hero-card-dark:
    backgroundColor: bg-dark
    textColor: on-dark
    rounded: lg
    padding: 48
    use: 'mid-page dark navy CTA — The path to 10x'
  feature-card-tabbed:
    backgroundColor: bg-soft
    textColor: text
    rounded: lg
    padding: 32
    use: 'tabbed customer feature cards — left rail labels, right pane content'
  cream-callout-card:
    backgroundColor: signature-cream
    textColor: text
    rounded: md
    padding: 24
    use: 'beige callout — softer than dark/coral but still a signature surface'
  demo-grid-card:
    backgroundColor: bg
    textColor: text
    rounded: md
    padding: 16
    use: '3 or 4-up product UI fragment grid — uneven heights'
  demo-grid-card-pastel:
    backgroundColor: signature-peach
    textColor: text
    rounded: md
    padding: 16
    use: 'pastel-tinted demo card variants (peach/mint/yellow/mustard)'
  article-card:
    backgroundColor: bg
    textColor: text
    rounded: md
    padding: 16
    use: 'trending-stories grid on articles page'
  topic-filter-rail:
    backgroundColor: bg
    textColor: text-body
    width: 240
    use: 'left rail on articles page'
  text-input:
    backgroundColor: bg
    textColor: text
    rounded: sm
    padding: '12px 16px'
    height: 44
    border: '1px solid border'
  text-input-focus:
    border: '1px solid info-border'
  pricing-tier-card:
    backgroundColor: bg
    textColor: pricing-ink
    rounded: md
    padding: 32
    use: 'standard pricing tier — Inter Display sub-system'
  pricing-tier-card-featured:
    backgroundColor: bg-soft
    textColor: pricing-ink
    rounded: md
    padding: 32
    use: 'featured tier — surface-soft tone shift, no badge'
  pricing-comparison-row:
    backgroundColor: bg
    textColor: text-body
    padding: 12
    use: 'comparison table row — hairline divider'
  cta-band-light:
    backgroundColor: bg-strong
    textColor: text
    rounded: lg
    padding: 48
    use: 'pre-footer Start building with Airtable strip'
  logo-strip:
    backgroundColor: bg
    textColor: text-muted
    padding: 32
    use: 'monochrome partner-logo row — HBO, Netflix, Time'
  top-nav:
    backgroundColor: bg
    textColor: text
    height: 64
    use: 'light nav stays light over every section — never inverted'
  footer:
    backgroundColor: bg
    textColor: text-body
    padding: 64

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.16, 1, 0.3, 1)'
  duration-fast: 120
  duration-standard: 200
  duration-slow: 320
  reduced-motion: 'respects prefers-reduced-motion: reduce — transitions reduced to opacity-only at 100ms; signature card on-scroll reveals are skipped'

breakpoints:
  mobile: 768
  tablet: 1024
  desktop: 1280
  wide: 1440

shadows:
  ambient: 'none on most surfaces — borders define structure'
  standard: '0 1px 0 rgba(24,29,38,0.04) — barely visible card hairline shadow'
  elevated: '0 8px 24px rgba(24,29,38,0.08) — only on floating popovers'
  deep: '0 24px 48px rgba(24,29,38,0.16) — only on modals'
  ring: '0 0 0 2px rgba(69,143,255,0.5)'
  button-rest: 'subtle blue-tinted glow at low alpha under primary CTA'
  button-focus: '0 0 0 2px #458fff — outer blue ring on keyboard focus'

accessibility:
  contrast-text-on-bg: 17.4              # AAA — #181d26 on #ffffff
  contrast-body-on-bg: 12.1              # AAA — #333840 on #ffffff
  contrast-muted-on-bg: 9.3              # AAA — #41454d on #ffffff
  contrast-on-brand: 16.6                # AAA — white on #181d26
  contrast-on-coral: 6.2                 # AA — white on #aa2d00 at body sizes
  focus-ring: '2px solid #458fff with 2px offset'
  reduced-motion-honored: true

dark-mode: 'light-only marketing — Airtable does not ship a dark marketing variant. The signature-dark-card (#181d26) provides intra-page contrast.'
---

## 1. Visual Theme & Atmosphere

Airtable's marketing surfaces are quietly editorial. The base atmosphere is white canvas (`#ffffff`), dark-ink type, generous whitespace, and a near-black pill CTA — nothing is fighting for attention until a section needs to. The brand voltage doesn't come from gradient washes or accent walls; it comes from **full-bleed signature cards** in `#aa2d00` coral, `#0a2e0e` forest, and `#181d26` dark navy that punctuate long-scroll explainer pages every two or three screens. Between those signature bands, the page reads like a print magazine: a headline, supporting copy, a small image cluster, then breathing room.

Type voice is Haas Grotesk at modest weights (400 for display, 500 for sub-titles and buttons). Display headlines never go bolder than 500 — emphasis comes from size and color contrast, not from weight. Body copy stays at 14px / 400 throughout. The pricing surface runs its own dialect: **Inter Display** at unusual mid-weights (475 / 575) and **pill-shaped buttons** (`9999px`) that don't appear on any other page — a deliberate sub-system signaling "this page is about commercial precision."

The brand's voltage moments — coral, forest, dark — borrow their color sense directly from the actual product. Inside the live Airtable base, users colour-code rows using the same warm pastel palette (peach, mint, mustard) that surfaces in the marketing demo-card grids. The marketing site, in effect, dramatizes the database UI by promoting its row-tag colours to full-bleed surface mode.

Where Notion reaches for warm-grey neutrals and Linear commits to a near-black canvas, Airtable holds the white page as scaffolding and lets the signature cards do the punctuation. The result is a confident, typography-first publication — a workflow magazine that quietly reminds the reader that every screenshot is a real product UI.

**Key Characteristics:**
- Primary CTA is `#181d26` near-black with white text and a 12px corner — confident, not decorative.
- Secondary CTA is a white button with a hairline outline in `#dddddd`. The two together are Airtable's signature button row.
- Hero is white canvas. No atmospheric gradient, no mesh, no aurora.
- Brand voltage lives in **signature surface cards**: coral, forest, dark, cream — each a full-bleed editorial moment.
- Demo-card grids carry product UI fragments on warm pastel surfaces (peach, mint, yellow, mustard).
- Section rhythm: white → coral → white → cream → dark → white → cream → footer. Canvas resets between every signature surface.
- Border radius is hierarchical: 12px primary CTA + signature cards, 10px content cards, 6px inputs, full circles for icon buttons. Pricing buttons jump to pill (9999px) to flag the sub-system.
- Vertical rhythm is **96px** between major bands — universal across every page.

## 2. Color Palette & Roles

### Primary
- **Bg / Canvas** (`#ffffff`): The default page floor — the white of every editorial body.
- **Text / Ink** (`#181d26`): Display type, body emphasis, primary button text-on-light.
- **Brand / Primary CTA** (`#181d26`): Same hex as ink because they share a role at type and button layers.

### Brand & Dark
- **Brand Active** (`#0d1218`): Press state on the primary CTA.
- **Surface Dark** (`#181d26`): The dark navy mid-page CTA cards ("The path to 10× every person in your organization").
- **Surface Dark Elevated** (`#1d1f25`): Articles-page hero base behind the rainbow-stripe overlay.

### Accent — Signature Cards (the brand voltage)
- **Signature Coral** (`#aa2d00`): The largest full-bleed signature card on the homepage. Dark coral / oxide red holding white type.
- **Signature Forest** (`#0a2e0e`): Deep green signature card sibling to coral.
- **Signature Cream** (`#f5e9d4`): Beige callout band — softer surface holding dark type.
- **Signature Peach** (`#fcab79`), **Mint** (`#a8d8c4`), **Yellow** (`#f4d35e`), **Mustard** (`#d9a441`): Demo-card surfaces inside multi-card grid sections.

### Interactive
- **Link** (`#1b61c9`): Inline body links and anchor text. No underline by default.
- **Link Active** (`#1a3866`): Pressed link state.
- **Selected**: Selection background uses the system blue tint at 12% alpha.
- **Disabled** (`#9297a0`): Disabled secondary button outline tone.

### Neutral Scale
- **Ink** (`#181d26`): Strongest type and primary CTA bg.
- **Text Body** (`#333840`): Default running-text.
- **Text Muted** (`#41454d`): Footer links, breadcrumbs, captions.
- **Text Faint** (`#9297a0`): Disabled secondary button outline.
- **Hairline** (`#dddddd`): 1px input borders, table dividers, secondary-button outlines.

### Surface & Borders
- **Bg** (`#ffffff`): Canvas.
- **Bg Soft** (`#f8fafc`): Tabbed feature cards and the featured pricing tier surface.
- **Bg Strong** (`#e0e2e6`): The light-gray "Start building with Airtable" pre-footer banner.
- **Bg Dark** (`#181d26`): Mid-page dark navy CTA cards.
- **Border** (`#dddddd`): Default 1px hairline.
- **Border Strong** (`#9297a0`): Disabled secondary button outline.

### Shadow Colors
- **Card Flat**: No shadow; relies on color contrast against the surface band.
- **Button Rest**: Soft drop with subtle blue-tinted glow at low alpha — the link-blue tint reads as a faint accent under the dark button.
- **Button Focus**: Outer 2px blue ring at higher alpha for keyboard focus.

### Semantic
- **Info** (`#254fad`) / **Info Border** (`#458fff`): Inline info badges and focused-input outline.
- **Success** (`#006400`) / **Success Border** (`#39bf45`): Confirmation states.
- **Danger** (`#c41c1c`): Destructive actions, validation errors.
- **Warning** (`#d9a441`): Caution states — same hex as the mustard demo-card surface.

A note on the misleading CSS variable: Airtable's stylesheet exposes `--theme_button-background-primary: #1b61c9` at `:root`, but this maps to the **link** colour, not the primary button. The primary button is always `#181d26`. Treating link-blue as the brand action is the most common mistake when reading Airtable's CSS.

## 3. Typography Rules

### Font Family
- **Primary**: `"Haas Groot Disp", "Haas", "Inter Display"` for display (h1/h2 sizes); `"Haas", "Inter"` for everything ≤ 24px.
- **Pricing sub-system**: `"Inter Display", system-ui, sans-serif` at variable mid-weights 475 / 575.
- **Fallback chain**: `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif`.
- **OpenType features**: defaults, no aggressive feature toggling — Haas reads cleanest at its natural settings.
- **Substitutes**: If Haas Grotesk and Haas Groot Disp are unavailable, **Inter Display** (variable) is the closest open-source pair for both. Adjust line-height down by ~5% to match Haas's tighter cap-height.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Letter Spacing | OT Features | Notes |
|---|---|---|---|---|---|---|---|
| display-xl | Haas Groot Disp | 48 | 500 | 1.10 | 0 | — | Articles page h2 — second-tier editorial |
| display-lg | Haas Groot Disp | 40 | 400 | 1.20 | 0 | — | Homepage hero h1 |
| display-md | Haas Groot Disp | 32 | 400 | 1.20 | 0 | — | Platform-page h2 — feature heads |
| title-lg | Haas | 24 | 400 | 1.35 | 0.12px | — | Section titles |
| title-md | Haas Groot Disp | 20 | 400 | 1.50 | 0 | — | Sub-section titles inside tabbed cards |
| title-sm | Haas | 18 | 500 | 1.40 | 0 | — | Article-card titles |
| label-md | Haas | 16 | 500 | 1.40 | 0 | — | Demo-card titles, list labels |
| button | Haas | 16 | 500 | 1.40 | 0 | — | Standard CTA button labels |
| body-md | Haas | 14 | 400 | 1.25 | 0 | — | Body copy, footer links, top-nav |
| caption | Haas | 14 | 500 | 1.35 | 0.16px | — | Light captions, meta text |
| legal | Haas | 13.12 | 600 | 1.20 | 0 | — | Cookie / legal CTA buttons |
| pricing-display | Inter Display | 44.8 | 475 | 1.10 | 0 | — | Pricing-page h1 |
| pricing-section | Inter Display | 28 | 475 | 1.20 | 0 | — | Pricing-page section heads |
| pricing-card-title | Inter Display | 20 | 475 | 1.30 | 0 | — | Pricing tier card plan name |
| pricing-feature-row | Inter Display | 14 | 475 | 1.40 | 0 | — | Comparison table row text |

### Principles
- **Display sits at 400 / 500 — never bold.** A 40px h1 is *not* `font-weight: 700`. Visual emphasis is delegated to size, color contrast, and the signature surface cards.
- **Two type sub-systems.** Haas (Groot Disp + Grotesk) carries the editorial body across every page; Inter Display 475 / 575 is reserved for the pricing surface. Never mix the two in one band.
- **Bold is for legal surfaces only.** The single 600-weight role is `legal` — cookie / GDPR CTAs. Bold reads as "system-required" not "brand-loud."
- **Tracking stays neutral.** No aggressive negative tracking; emphasis comes from size, not from compression.
- **Body at 14px / 400** is uncommonly small for tech marketing — it preserves the publication-feel by holding column density that matches print rather than landing pages.
- **Caption uppercase tracking** of 0.16px (caption role) signals "metadata" without going full uppercase eyebrow.

## 4. Component Stylings

### Buttons (5 variants)

**`button-primary`** — The signature CTA. Background `#181d26`, text `#ffffff`, type 16px / 500 Haas, padding 16px × 24px, radius 12px. This is the "Get started for free" / "Sign up for free" button visible on every hero. Reads as confident and final — the system uses it sparingly (one per viewport).
- *Active state*: `button-primary-active` darkens to `#0d1218`.

**`button-secondary`** — White outline. Background `#ffffff`, text `#181d26`, type 16px / 500, padding 16px × 24px, radius 12px, 1px hairline `#dddddd`. The "Book demo" / less-committed pair next to primary.

**`button-secondary-on-dark`** — Same shape as secondary but used over coral / forest / dark surfaces. Background stays `#ffffff`, text stays `#181d26` — the system never inverts to a translucent on-dark style.

**`button-pricing-pill`** — The pricing-page CTA family. Background `#ffffff`, text `#1d1f25`, radius 9999px, padding 12px × 24px. The only place pill-shape appears in marketing.

**`button-legal`** — Cookie-consent and legal-banner CTAs. Background `#1b61c9`, text white, type 13.12px / 600, radius 2px, padding 12px × 10px. The 2px corner and 600 weight signal "this is a required system surface."

**`button-icon-circular`** — 40 × 40px circular button with white background, hairline border, ink icon. Used for carousel controls, share, back affordances.

### Cards

**`hero-band`** — Full-page-width white-canvas hero. No surface card, no border, no shadow, no atmospheric gradient. Just the headline, sub-headline, and primary + secondary button pair sitting in 96px of whitespace.

**`signature-coral-card`** — Large full-bleed coral card. Background `#aa2d00`, text `#ffffff`, rounded 12px, internal padding 48px. Carries an h2 in display-md, supporting copy in body-md, and `button-secondary-on-dark` as the CTA.

**`signature-forest-card`** — Deep green signature card. Background `#0a2e0e`, otherwise identical shape to coral. Used as a demo-grid sibling.

**`hero-card-dark`** — Mid-page dark navy CTA. Background `#181d26`, text `#ffffff`, rounded 12px, padding 48px. Same hex as the primary button background — the system uses ink as both type color and signature dark surface.

**`feature-card-tabbed`** — Light-cream cards. Background `#f8fafc`, rounded 12px, padding 32px. Left rail carries vertically-stacked tab labels in title-md; right pane shows the active tab's content.

**`cream-callout-card`** — Beige callout. Background `#f5e9d4`, rounded 10px, padding 24px. Carries product UI fragments or stat callouts.

**`demo-grid-card`** — Used in multi-card grids. Background can be `#ffffff` or one of the demo-grid pastel surfaces (`#fcab79`, `#a8d8c4`, `#f4d35e`, `#d9a441`). Rounded 10px, padding 16px. Each card frames a product UI fragment. **Card heights vary deliberately** to dodge a uniform "spec sheet" feel.

**`article-card`** — Trending-stories grid. White, rounded 10px, padding 16px. 16:9 illustrated thumbnail, small uppercase category tag, title-sm title, meta line.

### Badges & Pills
- **Demo-card category tag**: small uppercase 14px / 500 in body-md, transparent or `#f8fafc` background.
- Pricing-card "Most popular" badge: rare; the system prefers using surface-tone shift (bg-soft) rather than a badge.

### Inputs / Forms

**`text-input`** — Default. Background `#ffffff`, text `#181d26`, type body-md, rounded 6px, padding 12px × 16px, height 44px. 1px hairline border `#dddddd`.

**`text-input-focus`** — Border thickens or recolors to `#458fff` (info-border).

### Navigation

**`top-nav`** — 64px-tall white bar pinned to top of every page. Wordmark left; primary horizontal menu (Platform, Solutions, Resources, Enterprise, Pricing) center-left; right cluster carries "Book Demo" outline link, "Sign up for free" primary button, "Log In" text link. Stays light on every page — never inverted over dark sections.

**`footer`** — Light surface, 6-column link list at desktop covering Platform / Solutions / Resources / Learn / Company. Vertical padding 96px split across upper link block and lower legal row.

### Pricing Sub-System (separate dialect)

**`pricing-tier-card`** — Standard tier. Background `#ffffff`, text `#1d1f25`, type pricing-card-title (20 / 475), rounded 10px, padding 32px. Plan name + price block in pricing-display (44.8 / 475), feature checklist, `button-pricing-pill` at bottom.

**`pricing-tier-card-featured`** — Featured tier. Background shifts to `#f8fafc`. No accent border, no badge — surface-tone shift is the only signal.

**`pricing-comparison-row`** — Each row of the long comparison table. Labels left column; checkmarks or values across 4 plan columns. 12px vertical padding per row, hairline divider between rows.

### Decorative

**Articles vertical rainbow stripe hero** — Multi-color vertical bands at varying widths sitting on `#1d1f25`. The h1 + sub-head + CTA cluster sits center-left on top of the stripes. Single-page hero treatment, not a system-wide signature.

## 5. Layout Principles

### Spacing System
Base unit **4px**. Tokens: `xxs:4 · xs:8 · sm:12 · md:16 · lg:24 · xl:32 · xxl:48 · section:96`. Section padding is **96px** between every major editorial band — universal vertical rhythm constant. Card internal padding ranges 16–48px depending on card density: 32px for tabbed feature cards and pricing tier cards; 48px for signature coral / forest / dark cards; 24px for cream callouts; 16px for demo-grid cards.

### Grid & Container
- **Max content width**: ~1280px centered, with 48px horizontal breathing room.
- **Editorial body**: single 8/12-column at large breakpoints, collapsing to single-column on mobile.
- **Demo-card grids**: 3 or 4 columns at desktop, 2 at tablet, 1 at mobile. **Card sizes are deliberately uneven** within the grid.
- **Logo strip**: 6 monochrome partner logos at desktop; wraps to 3-up on mobile.

### Whitespace Philosophy
Airtable uses whitespace as the dominant atmospheric tool. Hero sections sit in 96px+ of pure whitespace above and below the headline + sub-headline pair, with no decoration in that whitespace. The hero is intentionally calm — there is no gradient, no aurora, no atmospheric mesh. The system trusts whitespace alone.

### Section Cadence
Page rhythm: white canvas → coral signature card → white body → cream callout band → dark navy CTA → light gray pre-footer banner → footer. The canvas resets between every signature surface — two whites in a row read as a typography blog, not Airtable.

## 6. Shapes & Radius Scale

| Tier | Token | Value | Use |
|---|---|---|---|
| Micro | micro | 2px | Cookie-consent and legal CTA buttons — system-required surfaces |
| Standard | sm | 6px | Text inputs, small inline buttons |
| Comfortable | md | 10px | Secondary content cards, article cards, cream callouts |
| Large | lg | 12px | Primary CTA buttons, signature surface cards, tabbed feature cards |
| Pill | pill | 9999px | Pricing-page CTAs only — sub-system signal |
| Full | full | 9999px / 50% | Circular icon buttons, avatars |

There are no compound radii. Photography geometry: product UI screenshots inside demo-card grids retain native aspect ratios (4:3 or 16:10) and crop into 10px-radius containers. Hero illustrations bleed full-width with no rounding. Article-card thumbnails use 16:9 with 10px corners. Avatars are perfect circles.

## 7. Depth & Elevation

| Level | Treatment | Use |
|---|---|---|
| 0 — Flat | No shadow, no border | Body sections, top nav, footer, signature cards |
| 1 — Hairline | 1px `#dddddd` border | Inputs, sub-nav rails, comparison-table dividers, secondary buttons |
| 2 — Button rest | Soft drop with subtle blue-tinted glow at low alpha | Primary CTA buttons (the blue tint is a holdover from link color) |
| 3 — Button focus | Outer 2px blue ring at higher alpha | Keyboard focus state |
| 4 — Card flat | No shadow; color contrast against surface band | Signature coral / forest / dark cards, cream callouts |
| 5 — Modal | `0 24px 48px rgba(24,29,38,0.16)` | Floating popovers, modals only |

### Shadow Philosophy
The elevation philosophy is **color-block first, shadow second**. Shadows are minimal; depth is delegated to the contrast between white canvas and signature surface cards. There is no soft-glow / atmospheric-shadow / heavy-elevation language anywhere in the marketing system. Photography-as-depth: every demo-card carries a real product UI screenshot or mockup, contributing depth through legible artifact density rather than decorative effects.

## 8. Interaction & Motion

### Easing Curves
- **Standard ease**: `cubic-bezier(0.4, 0, 0.2, 1)` — default for color transitions, button feedback.
- **Emphasized ease**: `cubic-bezier(0.16, 1, 0.3, 1)` — used on signature card hover and section reveals.

### Duration Buckets
- **Fast (120ms)**: Color transitions, focus ring expansion.
- **Standard (200ms)**: Card hover, button press feedback, dropdown opens.
- **Slow (320ms)**: Signature card reveal, section-on-scroll fade-in, modal entrance.

### Per-Component Micro-States
- **Button hover (primary)**: Background brightens slightly via 4% white overlay; no transform. 200ms standard ease.
- **Button press (primary)**: Background drops to `#0d1218` over 80ms.
- **Button hover (secondary)**: Border thickens from 1px `#dddddd` → 1px `#181d26` over 120ms.
- **Card hover (signature)**: No transform, no shadow shift. Internal CTA underline grows 1px → 2px.
- **Tab hover (feature card tabbed)**: Active tab gains a 1px left-rail accent in `#181d26` over 120ms.
- **Link hover**: Underline appears (none → 1px) over 120ms standard ease.
- **Input focus**: Border recolors `#dddddd` → `#458fff` over 120ms; 2px outer ring expands from 0 → 2px.

### Page Transitions
Standard browser navigation. Section-on-scroll reveals are a 320ms fade-in-up (16px offset) gated by `IntersectionObserver`. Demo-card grids stagger in left-to-right with 80ms increments. Signature cards reveal with no stagger — they're meant to feel monumental.

### Reduced Motion
`prefers-reduced-motion: reduce` honored: all transforms removed, transitions reduced to opacity-only at 100ms, demo-card stagger reveals are skipped, signature card on-scroll reveals fade in without offset.

## 9. Accessibility & A11y

### Contrast Pairs
- **Text on bg**: `#181d26` on `#ffffff` = **17.4** — AAA at every size.
- **Body on bg**: `#333840` on `#ffffff` = **12.1** — AAA.
- **Muted on bg**: `#41454d` on `#ffffff` = **9.3** — AAA.
- **On-brand on brand**: `#ffffff` on `#181d26` = **16.6** — AAA.
- **On-coral**: `#ffffff` on `#aa2d00` = **6.2** — AA at body sizes (use display sizes for AAA).
- **On-cream**: `#181d26` on `#f5e9d4` = **15.1** — AAA.
- **Link on bg**: `#1b61c9` on `#ffffff` = **5.7** — AA.

### Focus Indicators
Every focusable element shows a 2px solid `#458fff` ring with 2px offset. The info-border blue is used (rather than the link blue) so the ring stays distinct from inline text links.

### ARIA Patterns
- **Buttons**: Native `<button>` elements; `aria-label` only when icon-only (carousel controls, share).
- **Tabs (feature card)**: ARIA `role="tablist"` + `role="tab"` with `aria-selected` and `aria-controls`.
- **Pricing comparison table**: `<table>` with `<thead>` plan headers, `<th scope="row">` for feature labels.
- **Navigation**: `<nav aria-label="Primary">` for top nav; mobile drawer uses `aria-expanded`.
- **Signature cards**: `<section>` with `aria-labelledby` referencing the card's h2.

### Keyboard Navigation
Tab order follows visual reading order. Skip-link at top of every page jumps to `<main>`. Mobile nav sheet traps focus when open; Escape closes. Demo-card links activate on Enter/Space. Pricing tier cards expose CTA as the primary keyboard target, with feature checklists reachable via tab.

### Screen Reader Hints
Demo-card screenshots use descriptive `alt` text describing the product UI fragment shown ("Airtable base view showing project tracker"). Decorative chrome (rainbow stripes on the articles hero) uses `aria-hidden="true"`. The Airtable wordmark in nav uses `aria-label="Airtable home"`.

### Reduced Motion Handling
All transforms and stagger reveals are removed. Signature card on-scroll fade-ins are skipped — cards appear in their final state. Tab transitions inside feature cards become instant.

## 10. Responsive Behavior

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 768px | Single-column body; top nav collapses to hamburger; demo-grid drops to 1-up; signature cards stay full-bleed; logo strip wraps to 2 rows; footer collapses to single-column |
| Tablet | 768–1024px | 2-up demo-grid; top nav stays horizontal but tightens; cream-callout cards stack 2-up; pricing comparison table becomes horizontally scrollable |
| Desktop | 1024–1280px | 3-up demo-grid (and 4-up for tighter content); full top-nav with all menu items visible; pricing tier cards render 4-across |
| Wide | > 1280px | Same as Desktop with more outer breathing room; max content width caps at ~1280px and the page adds outer margin rather than scaling type up |

### Touch Targets
- `button-primary` and siblings render at 48×48px minimum (16px vertical padding + 16px line-height) — comfortably above WCAG AAA's 44×44.
- `button-icon-circular` is exactly 40×40px — slightly under WCAG's recommended 44, but the centered icon and dot-radius compensate visually.
- `text-input` height is 44px.

### Collapsing Strategy
- Top nav collapses to a hamburger at < 768px; the menu opens as a full-screen sheet rather than a dropdown.
- Card grids reduce columns rather than scaling cards down.
- The `feature-card-tabbed` re-stacks the tab rail above the content pane on mobile.
- The pricing comparison table converts to horizontally-scrollable swipe at < 1024px; the four plan headers stay visible while body rows scroll.

### Image Behavior
- Demo-card UI screenshots crop to fit their container rather than scaling up.
- Hero illustrations bleed full-width on mobile, losing horizontal margin.
- Signature card images compress to card width without cropping.

## 11. Content & Voice

### Tone
**Editorial, sober, workflow-pragmatic.** Airtable writes as a publication for builders. There is no "transform your business" theatre, no "magic" framing. Headlines describe what the product does in production-grade language ("Production apps in prototype speed", "The path to 10× every person in your organization"). Body copy supports with concrete customer examples (HBO, Time, Conde Nast, Netflix).

### Microcopy Patterns
- **CTA verbs**: "Sign up for free", "Get started for free", "Book demo", "Read the customer story". Never "Try the magic" or "Start your journey".
- **Section labels**: 14px uppercase eyebrow at 0.16px tracking — "Customers", "Solutions", "Resources".
- **Demo-card titles**: One-line capability descriptions — "Build a project tracker" not "Unleash your team's potential".

### Empty States
Where empty states appear (search results, filtered article list), the recipe is: a single line in `text-muted` ("No articles match your filter — try a broader topic") with a link-blue link to all articles.

### Error Messages
Pattern: short, declarative, action-oriented. "Email already in use — try signing in" not "Oops! Something went wrong." Errors carry an icon-x in `#c41c1c` and inline guidance.

### Success Confirmations
Single-line toast in `#181d26` text on `#ffffff` background with a 4px-radius success-border accent stripe at the left. "Demo booked" not "Hooray!".

### CTA verb conventions
The brand prefers the simple, declarative present-imperative: "Get started", "Sign up", "Book demo", "Read more". Pricing CTAs add specificity: "Start free", "Talk to sales", "Contact us". The pricing pill button always pairs with verb-noun specificity ("Start free", not just "Start").

## 12. Dark Mode & Theming

Airtable's marketing surface is **light-only**. There is no dark-mode toggle on airtable.com — the publication metaphor depends on white canvas. Intra-page dark contrast is achieved through the signature `bg-dark` (`#181d26`) cards, not via a global theme switch.

In-product surfaces (the actual Airtable base UI behind login) ship with their own theme system that includes dark variants — those are out of scope for this marketing spec. Customer-facing app extensions (the embeddable forms and shared base views) inherit the marketing light theme by default.

## 13. Lineage & Influences

Airtable descends from the **editorial-tech-marketing tradition** — sites like Stripe, Notion, and Linear that treat product copy as long-form publication. The signature surface card is Airtable's own contribution to the genre: a full-bleed full-color card carrying a single product callout, pioneered (in this exact form) by Airtable's 2022–2023 redesigns. The near-black pill CTA discipline echoes Linear's near-black surface approach but pivots from "near-black canvas" to "near-black CTA over white canvas" — a different relationship between dark and light.

Pricing-page Inter Display at weight 475 references Stripe's pricing page typography (Stripe ships Sohne at custom mid-weights for similar reasons). The 4-tier pricing comparison grid pattern is borrowed from the SaaS canon — Notion, Asana, Linear all ship variants — but Airtable's strict typographic separation between marketing (Haas) and pricing (Inter Display) is unusually disciplined.

- **Stripe** — Confident single-color CTA discipline; pricing-page typographic sub-system. https://stripe.com
- **Linear** — Near-black surface as primary brand voltage. https://linear.app
- **Notion** — White-canvas editorial publication metaphor. https://notion.so
- **Print magazine grids (Wired, NYT Magazine)** — Hairline borders + signature full-bleed cards as editorial cadence.
- **Inter Display variable** (Rasmus Andersson) — The pricing sub-system's mid-weight (475) discipline.

## 14. Do's and Don'ts

### Do
- Keep `button-primary` near-black (`#181d26`). The brand's primary CTA is ink, not the link blue.
- Reserve `button-primary` for one primary action per viewport. The system is designed for scarcity at the brand-action layer.
- Use `button-secondary` (white with hairline outline) as the natural pair with `button-primary` — Airtable's signature button row.
- Trust whitespace as the hero atmosphere. Hero bands are intentionally calm — no gradient, no mesh, no atmospheric backdrop.
- Use `signature-coral-card`, `signature-forest-card`, and `hero-card-dark` to break editorial monotony — these are the brand's voltage moments.
- Keep `demo-grid-card` heights uneven within a grid. Uniform heights feel like a spec sheet.
- Treat the pricing surface as its own dialect: keep `pricing-display`, `pricing-card-title`, and `button-pricing-pill` together. Mixing them with Haas / 12px-radius button breaks the sub-system's voice.
- Anchor every editorial band with **96px** vertical padding.
- Use real product UI screenshots inside demo-grid cards. Photography-as-depth.

### Don't
- Don't make `#1b61c9` (link blue) the primary button color. It is the link color. The primary button is `#181d26`.
- Don't add a gradient backdrop to the hero. Airtable's hero is white, full stop.
- Don't bold display-weight type. `display-xl` and `display-lg` are intentionally weight 400 / 500 — going to 700 reads as marketing-page-template.
- Don't use `pill` (9999px) outside the pricing surface.
- Don't repeat the same surface mode in two consecutive bands. Two whites in a row read as a typography blog.
- Don't introduce additional accent colors beyond the documented signature card palette.
- Don't apply box-shadow elevation to content cards — the system uses borders and color contrast.
- Don't use cool greys. Airtable's neutrals are warm-shifted (`#41454d` body has a faint warm cast).
- Don't invert the top nav over dark sections — it stays light over every band.
- Don't bold inside the editorial body. The only true 600 is `legal`.

## 15. Agent Prompt Guide

### Quick Color Reference
```
Bg / Canvas:     #ffffff (white — never tint)
Text / Ink:      #181d26 (near-black with faint warm cast)
Body:            #333840 (default running-text)
Muted:           #41454d (captions, footer, breadcrumbs)
Brand / CTA:     #181d26 (same hex as ink — single role at two layers)
Coral:           #aa2d00 (signature card — homepage anchor)
Forest:          #0a2e0e (signature card — coral sibling)
Cream:           #f5e9d4 (cream callout band)
Dark navy:       #181d26 (mid-page CTA card surface)
Hairline:        #dddddd (every 1px border in the system)
Link:            #1b61c9 (NOT the primary button color)
On-brand:        #ffffff (white text on near-black CTAs)
```

### Example Component Prompts

1. "Create a hero band on `#ffffff` canvas with Haas Groot Disp 40px / 400 / line-height 1.2 headline ('Build the apps your team needs'), 16px / 400 `#333840` subhead, primary CTA (`#181d26` background, white text, 16px / 500 Haas, 12px radius, 16×24px padding) and secondary CTA (white background, `#181d26` text, 1px `#dddddd` border, same radius and padding). 96px vertical padding. No background gradient."

2. "Build a full-bleed signature card on `#aa2d00` coral background, `#ffffff` text, 12px radius, 48px padding. h2 in 32px / 400 Haas, supporting copy in 14px / 400 white. CTA is `button-secondary-on-dark` — white button, dark text, 1px hairline border."

3. "Compose a 3-up demo-grid: each card on `#ffffff` (or rotate through `#fcab79` peach, `#a8d8c4` mint, `#f4d35e` yellow), 10px radius, 16px padding, 1px `#dddddd` border, deliberately uneven heights. Each card carries a product UI screenshot at 16:10, a 14px uppercase category tag, and a 16px / 500 label."

4. "Design a pricing tier card on `#ffffff` (`#f8fafc` for the featured tier — surface tone shift only, no badge), 10px radius, 32px padding. Plan name in Inter Display 20px / 475, price in Inter Display 44.8px / 475, feature checklist in body-md 14px / 400. CTA is `button-pricing-pill` — white background, `#1d1f25` text, 9999px radius, 12×24px padding."

5. "Build a tabbed feature card: light surface `#f8fafc`, 12px radius, 32px padding. Left rail vertically-stacked tab labels in Haas 20px / 400; right pane shows the active tab's headline in Haas 24px / 400 plus body-md description and a small text link in `#1b61c9`."

6. "Design a top nav: 64px tall white bar, Airtable wordmark left, horizontal menu (Platform / Solutions / Resources / Enterprise / Pricing) center-left in Haas 14px / 400 `#181d26`, right cluster carries 'Book Demo' text link, primary 'Sign up for free' button, 'Log In' text link. Stays white on every page — never inverts."

### Iteration Guide
1. Start with `#ffffff` canvas. The white is the brand. Tinting it cream or warm-grey breaks the publication metaphor.
2. Place one `button-primary` per viewport. If you find yourself wanting a second, demote it to `button-secondary`.
3. Pick exactly one signature surface per major band — coral, forest, dark, or cream. Two signature surfaces side-by-side reads as a portfolio site, not Airtable.
4. Keep display weight at 400 / 500. If a headline doesn't feel emphatic enough, scale up before bolding.
5. Use the warm pastel palette (peach / mint / yellow / mustard) only inside demo-grid cards. They are the product's row-tag colors promoted to surface mode — promoting them further (full bands, hero backgrounds) overplays the metaphor.
6. Anchor every band at 96px vertical padding. The vertical rhythm is the brand.
7. When in doubt about emphasis: bigger type before bolder type, signature surface card before solid accent.
8. Pricing-page work uses Inter Display 475 + pill buttons + `#f8fafc` for featured tier. Don't drift back to Haas + 12px-radius button on pricing — the dialect is the signal.
Prose

1. Visual Theme & Atmosphere

Airtable’s marketing surfaces are quietly editorial. The base atmosphere is white canvas (#ffffff), dark-ink type, generous whitespace, and a near-black pill CTA — nothing is fighting for attention until a section needs to. The brand voltage doesn’t come from gradient washes or accent walls; it comes from full-bleed signature cards in #aa2d00 coral, #0a2e0e forest, and #181d26 dark navy that punctuate long-scroll explainer pages every two or three screens. Between those signature bands, the page reads like a print magazine: a headline, supporting copy, a small image cluster, then breathing room.

Type voice is Haas Grotesk at modest weights (400 for display, 500 for sub-titles and buttons). Display headlines never go bolder than 500 — emphasis comes from size and color contrast, not from weight. Body copy stays at 14px / 400 throughout. The pricing surface runs its own dialect: Inter Display at unusual mid-weights (475 / 575) and pill-shaped buttons (9999px) that don’t appear on any other page — a deliberate sub-system signaling “this page is about commercial precision.”

The brand’s voltage moments — coral, forest, dark — borrow their color sense directly from the actual product. Inside the live Airtable base, users colour-code rows using the same warm pastel palette (peach, mint, mustard) that surfaces in the marketing demo-card grids. The marketing site, in effect, dramatizes the database UI by promoting its row-tag colours to full-bleed surface mode.

Where Notion reaches for warm-grey neutrals and Linear commits to a near-black canvas, Airtable holds the white page as scaffolding and lets the signature cards do the punctuation. The result is a confident, typography-first publication — a workflow magazine that quietly reminds the reader that every screenshot is a real product UI.

Key Characteristics:

  • Primary CTA is #181d26 near-black with white text and a 12px corner — confident, not decorative.
  • Secondary CTA is a white button with a hairline outline in #dddddd. The two together are Airtable’s signature button row.
  • Hero is white canvas. No atmospheric gradient, no mesh, no aurora.
  • Brand voltage lives in signature surface cards: coral, forest, dark, cream — each a full-bleed editorial moment.
  • Demo-card grids carry product UI fragments on warm pastel surfaces (peach, mint, yellow, mustard).
  • Section rhythm: white → coral → white → cream → dark → white → cream → footer. Canvas resets between every signature surface.
  • Border radius is hierarchical: 12px primary CTA + signature cards, 10px content cards, 6px inputs, full circles for icon buttons. Pricing buttons jump to pill (9999px) to flag the sub-system.
  • Vertical rhythm is 96px between major bands — universal across every page.

2. Color Palette & Roles

Primary

  • Bg / Canvas (#ffffff): The default page floor — the white of every editorial body.
  • Text / Ink (#181d26): Display type, body emphasis, primary button text-on-light.
  • Brand / Primary CTA (#181d26): Same hex as ink because they share a role at type and button layers.

Brand & Dark

  • Brand Active (#0d1218): Press state on the primary CTA.
  • Surface Dark (#181d26): The dark navy mid-page CTA cards (“The path to 10× every person in your organization”).
  • Surface Dark Elevated (#1d1f25): Articles-page hero base behind the rainbow-stripe overlay.

Accent — Signature Cards (the brand voltage)

  • Signature Coral (#aa2d00): The largest full-bleed signature card on the homepage. Dark coral / oxide red holding white type.
  • Signature Forest (#0a2e0e): Deep green signature card sibling to coral.
  • Signature Cream (#f5e9d4): Beige callout band — softer surface holding dark type.
  • Signature Peach (#fcab79), Mint (#a8d8c4), Yellow (#f4d35e), Mustard (#d9a441): Demo-card surfaces inside multi-card grid sections.

Interactive

  • Link (#1b61c9): Inline body links and anchor text. No underline by default.
  • Link Active (#1a3866): Pressed link state.
  • Selected: Selection background uses the system blue tint at 12% alpha.
  • Disabled (#9297a0): Disabled secondary button outline tone.

Neutral Scale

  • Ink (#181d26): Strongest type and primary CTA bg.
  • Text Body (#333840): Default running-text.
  • Text Muted (#41454d): Footer links, breadcrumbs, captions.
  • Text Faint (#9297a0): Disabled secondary button outline.
  • Hairline (#dddddd): 1px input borders, table dividers, secondary-button outlines.

Surface & Borders

  • Bg (#ffffff): Canvas.
  • Bg Soft (#f8fafc): Tabbed feature cards and the featured pricing tier surface.
  • Bg Strong (#e0e2e6): The light-gray “Start building with Airtable” pre-footer banner.
  • Bg Dark (#181d26): Mid-page dark navy CTA cards.
  • Border (#dddddd): Default 1px hairline.
  • Border Strong (#9297a0): Disabled secondary button outline.

Shadow Colors

  • Card Flat: No shadow; relies on color contrast against the surface band.
  • Button Rest: Soft drop with subtle blue-tinted glow at low alpha — the link-blue tint reads as a faint accent under the dark button.
  • Button Focus: Outer 2px blue ring at higher alpha for keyboard focus.

Semantic

  • Info (#254fad) / Info Border (#458fff): Inline info badges and focused-input outline.
  • Success (#006400) / Success Border (#39bf45): Confirmation states.
  • Danger (#c41c1c): Destructive actions, validation errors.
  • Warning (#d9a441): Caution states — same hex as the mustard demo-card surface.

A note on the misleading CSS variable: Airtable’s stylesheet exposes --theme_button-background-primary: #1b61c9 at :root, but this maps to the link colour, not the primary button. The primary button is always #181d26. Treating link-blue as the brand action is the most common mistake when reading Airtable’s CSS.

3. Typography Rules

Font Family

  • Primary: "Haas Groot Disp", "Haas", "Inter Display" for display (h1/h2 sizes); "Haas", "Inter" for everything ≤ 24px.
  • Pricing sub-system: "Inter Display", system-ui, sans-serif at variable mid-weights 475 / 575.
  • Fallback chain: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif.
  • OpenType features: defaults, no aggressive feature toggling — Haas reads cleanest at its natural settings.
  • Substitutes: If Haas Grotesk and Haas Groot Disp are unavailable, Inter Display (variable) is the closest open-source pair for both. Adjust line-height down by ~5% to match Haas’s tighter cap-height.

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingOT FeaturesNotes
display-xlHaas Groot Disp485001.100Articles page h2 — second-tier editorial
display-lgHaas Groot Disp404001.200Homepage hero h1
display-mdHaas Groot Disp324001.200Platform-page h2 — feature heads
title-lgHaas244001.350.12pxSection titles
title-mdHaas Groot Disp204001.500Sub-section titles inside tabbed cards
title-smHaas185001.400Article-card titles
label-mdHaas165001.400Demo-card titles, list labels
buttonHaas165001.400Standard CTA button labels
body-mdHaas144001.250Body copy, footer links, top-nav
captionHaas145001.350.16pxLight captions, meta text
legalHaas13.126001.200Cookie / legal CTA buttons
pricing-displayInter Display44.84751.100Pricing-page h1
pricing-sectionInter Display284751.200Pricing-page section heads
pricing-card-titleInter Display204751.300Pricing tier card plan name
pricing-feature-rowInter Display144751.400Comparison table row text

Principles

  • Display sits at 400 / 500 — never bold. A 40px h1 is not font-weight: 700. Visual emphasis is delegated to size, color contrast, and the signature surface cards.
  • Two type sub-systems. Haas (Groot Disp + Grotesk) carries the editorial body across every page; Inter Display 475 / 575 is reserved for the pricing surface. Never mix the two in one band.
  • Bold is for legal surfaces only. The single 600-weight role is legal — cookie / GDPR CTAs. Bold reads as “system-required” not “brand-loud.”
  • Tracking stays neutral. No aggressive negative tracking; emphasis comes from size, not from compression.
  • Body at 14px / 400 is uncommonly small for tech marketing — it preserves the publication-feel by holding column density that matches print rather than landing pages.
  • Caption uppercase tracking of 0.16px (caption role) signals “metadata” without going full uppercase eyebrow.

4. Component Stylings

Buttons (5 variants)

button-primary — The signature CTA. Background #181d26, text #ffffff, type 16px / 500 Haas, padding 16px × 24px, radius 12px. This is the “Get started for free” / “Sign up for free” button visible on every hero. Reads as confident and final — the system uses it sparingly (one per viewport).

  • Active state: button-primary-active darkens to #0d1218.

button-secondary — White outline. Background #ffffff, text #181d26, type 16px / 500, padding 16px × 24px, radius 12px, 1px hairline #dddddd. The “Book demo” / less-committed pair next to primary.

button-secondary-on-dark — Same shape as secondary but used over coral / forest / dark surfaces. Background stays #ffffff, text stays #181d26 — the system never inverts to a translucent on-dark style.

button-pricing-pill — The pricing-page CTA family. Background #ffffff, text #1d1f25, radius 9999px, padding 12px × 24px. The only place pill-shape appears in marketing.

button-legal — Cookie-consent and legal-banner CTAs. Background #1b61c9, text white, type 13.12px / 600, radius 2px, padding 12px × 10px. The 2px corner and 600 weight signal “this is a required system surface.”

button-icon-circular — 40 × 40px circular button with white background, hairline border, ink icon. Used for carousel controls, share, back affordances.

Cards

hero-band — Full-page-width white-canvas hero. No surface card, no border, no shadow, no atmospheric gradient. Just the headline, sub-headline, and primary + secondary button pair sitting in 96px of whitespace.

signature-coral-card — Large full-bleed coral card. Background #aa2d00, text #ffffff, rounded 12px, internal padding 48px. Carries an h2 in display-md, supporting copy in body-md, and button-secondary-on-dark as the CTA.

signature-forest-card — Deep green signature card. Background #0a2e0e, otherwise identical shape to coral. Used as a demo-grid sibling.

hero-card-dark — Mid-page dark navy CTA. Background #181d26, text #ffffff, rounded 12px, padding 48px. Same hex as the primary button background — the system uses ink as both type color and signature dark surface.

feature-card-tabbed — Light-cream cards. Background #f8fafc, rounded 12px, padding 32px. Left rail carries vertically-stacked tab labels in title-md; right pane shows the active tab’s content.

cream-callout-card — Beige callout. Background #f5e9d4, rounded 10px, padding 24px. Carries product UI fragments or stat callouts.

demo-grid-card — Used in multi-card grids. Background can be #ffffff or one of the demo-grid pastel surfaces (#fcab79, #a8d8c4, #f4d35e, #d9a441). Rounded 10px, padding 16px. Each card frames a product UI fragment. Card heights vary deliberately to dodge a uniform “spec sheet” feel.

article-card — Trending-stories grid. White, rounded 10px, padding 16px. 16:9 illustrated thumbnail, small uppercase category tag, title-sm title, meta line.

Badges & Pills

  • Demo-card category tag: small uppercase 14px / 500 in body-md, transparent or #f8fafc background.
  • Pricing-card “Most popular” badge: rare; the system prefers using surface-tone shift (bg-soft) rather than a badge.

Inputs / Forms

text-input — Default. Background #ffffff, text #181d26, type body-md, rounded 6px, padding 12px × 16px, height 44px. 1px hairline border #dddddd.

text-input-focus — Border thickens or recolors to #458fff (info-border).

top-nav — 64px-tall white bar pinned to top of every page. Wordmark left; primary horizontal menu (Platform, Solutions, Resources, Enterprise, Pricing) center-left; right cluster carries “Book Demo” outline link, “Sign up for free” primary button, “Log In” text link. Stays light on every page — never inverted over dark sections.

footer — Light surface, 6-column link list at desktop covering Platform / Solutions / Resources / Learn / Company. Vertical padding 96px split across upper link block and lower legal row.

Pricing Sub-System (separate dialect)

pricing-tier-card — Standard tier. Background #ffffff, text #1d1f25, type pricing-card-title (20 / 475), rounded 10px, padding 32px. Plan name + price block in pricing-display (44.8 / 475), feature checklist, button-pricing-pill at bottom.

pricing-tier-card-featured — Featured tier. Background shifts to #f8fafc. No accent border, no badge — surface-tone shift is the only signal.

pricing-comparison-row — Each row of the long comparison table. Labels left column; checkmarks or values across 4 plan columns. 12px vertical padding per row, hairline divider between rows.

Decorative

Articles vertical rainbow stripe hero — Multi-color vertical bands at varying widths sitting on #1d1f25. The h1 + sub-head + CTA cluster sits center-left on top of the stripes. Single-page hero treatment, not a system-wide signature.

5. Layout Principles

Spacing System

Base unit 4px. Tokens: xxs:4 · xs:8 · sm:12 · md:16 · lg:24 · xl:32 · xxl:48 · section:96. Section padding is 96px between every major editorial band — universal vertical rhythm constant. Card internal padding ranges 16–48px depending on card density: 32px for tabbed feature cards and pricing tier cards; 48px for signature coral / forest / dark cards; 24px for cream callouts; 16px for demo-grid cards.

Grid & Container

  • Max content width: ~1280px centered, with 48px horizontal breathing room.
  • Editorial body: single 8/12-column at large breakpoints, collapsing to single-column on mobile.
  • Demo-card grids: 3 or 4 columns at desktop, 2 at tablet, 1 at mobile. Card sizes are deliberately uneven within the grid.
  • Logo strip: 6 monochrome partner logos at desktop; wraps to 3-up on mobile.

Whitespace Philosophy

Airtable uses whitespace as the dominant atmospheric tool. Hero sections sit in 96px+ of pure whitespace above and below the headline + sub-headline pair, with no decoration in that whitespace. The hero is intentionally calm — there is no gradient, no aurora, no atmospheric mesh. The system trusts whitespace alone.

Section Cadence

Page rhythm: white canvas → coral signature card → white body → cream callout band → dark navy CTA → light gray pre-footer banner → footer. The canvas resets between every signature surface — two whites in a row read as a typography blog, not Airtable.

6. Shapes & Radius Scale

TierTokenValueUse
Micromicro2pxCookie-consent and legal CTA buttons — system-required surfaces
Standardsm6pxText inputs, small inline buttons
Comfortablemd10pxSecondary content cards, article cards, cream callouts
Largelg12pxPrimary CTA buttons, signature surface cards, tabbed feature cards
Pillpill9999pxPricing-page CTAs only — sub-system signal
Fullfull9999px / 50%Circular icon buttons, avatars

There are no compound radii. Photography geometry: product UI screenshots inside demo-card grids retain native aspect ratios (4:3 or 16:10) and crop into 10px-radius containers. Hero illustrations bleed full-width with no rounding. Article-card thumbnails use 16:9 with 10px corners. Avatars are perfect circles.

7. Depth & Elevation

LevelTreatmentUse
0 — FlatNo shadow, no borderBody sections, top nav, footer, signature cards
1 — Hairline1px #dddddd borderInputs, sub-nav rails, comparison-table dividers, secondary buttons
2 — Button restSoft drop with subtle blue-tinted glow at low alphaPrimary CTA buttons (the blue tint is a holdover from link color)
3 — Button focusOuter 2px blue ring at higher alphaKeyboard focus state
4 — Card flatNo shadow; color contrast against surface bandSignature coral / forest / dark cards, cream callouts
5 — Modal0 24px 48px rgba(24,29,38,0.16)Floating popovers, modals only

Shadow Philosophy

The elevation philosophy is color-block first, shadow second. Shadows are minimal; depth is delegated to the contrast between white canvas and signature surface cards. There is no soft-glow / atmospheric-shadow / heavy-elevation language anywhere in the marketing system. Photography-as-depth: every demo-card carries a real product UI screenshot or mockup, contributing depth through legible artifact density rather than decorative effects.

8. Interaction & Motion

Easing Curves

  • Standard ease: cubic-bezier(0.4, 0, 0.2, 1) — default for color transitions, button feedback.
  • Emphasized ease: cubic-bezier(0.16, 1, 0.3, 1) — used on signature card hover and section reveals.

Duration Buckets

  • Fast (120ms): Color transitions, focus ring expansion.
  • Standard (200ms): Card hover, button press feedback, dropdown opens.
  • Slow (320ms): Signature card reveal, section-on-scroll fade-in, modal entrance.

Per-Component Micro-States

  • Button hover (primary): Background brightens slightly via 4% white overlay; no transform. 200ms standard ease.
  • Button press (primary): Background drops to #0d1218 over 80ms.
  • Button hover (secondary): Border thickens from 1px #dddddd → 1px #181d26 over 120ms.
  • Card hover (signature): No transform, no shadow shift. Internal CTA underline grows 1px → 2px.
  • Tab hover (feature card tabbed): Active tab gains a 1px left-rail accent in #181d26 over 120ms.
  • Link hover: Underline appears (none → 1px) over 120ms standard ease.
  • Input focus: Border recolors #dddddd#458fff over 120ms; 2px outer ring expands from 0 → 2px.

Page Transitions

Standard browser navigation. Section-on-scroll reveals are a 320ms fade-in-up (16px offset) gated by IntersectionObserver. Demo-card grids stagger in left-to-right with 80ms increments. Signature cards reveal with no stagger — they’re meant to feel monumental.

Reduced Motion

prefers-reduced-motion: reduce honored: all transforms removed, transitions reduced to opacity-only at 100ms, demo-card stagger reveals are skipped, signature card on-scroll reveals fade in without offset.

9. Accessibility & A11y

Contrast Pairs

  • Text on bg: #181d26 on #ffffff = 17.4 — AAA at every size.
  • Body on bg: #333840 on #ffffff = 12.1 — AAA.
  • Muted on bg: #41454d on #ffffff = 9.3 — AAA.
  • On-brand on brand: #ffffff on #181d26 = 16.6 — AAA.
  • On-coral: #ffffff on #aa2d00 = 6.2 — AA at body sizes (use display sizes for AAA).
  • On-cream: #181d26 on #f5e9d4 = 15.1 — AAA.
  • Link on bg: #1b61c9 on #ffffff = 5.7 — AA.

Focus Indicators

Every focusable element shows a 2px solid #458fff ring with 2px offset. The info-border blue is used (rather than the link blue) so the ring stays distinct from inline text links.

ARIA Patterns

  • Buttons: Native <button> elements; aria-label only when icon-only (carousel controls, share).
  • Tabs (feature card): ARIA role="tablist" + role="tab" with aria-selected and aria-controls.
  • Pricing comparison table: <table> with <thead> plan headers, <th scope="row"> for feature labels.
  • Navigation: <nav aria-label="Primary"> for top nav; mobile drawer uses aria-expanded.
  • Signature cards: <section> with aria-labelledby referencing the card’s h2.

Keyboard Navigation

Tab order follows visual reading order. Skip-link at top of every page jumps to <main>. Mobile nav sheet traps focus when open; Escape closes. Demo-card links activate on Enter/Space. Pricing tier cards expose CTA as the primary keyboard target, with feature checklists reachable via tab.

Screen Reader Hints

Demo-card screenshots use descriptive alt text describing the product UI fragment shown (“Airtable base view showing project tracker”). Decorative chrome (rainbow stripes on the articles hero) uses aria-hidden="true". The Airtable wordmark in nav uses aria-label="Airtable home".

Reduced Motion Handling

All transforms and stagger reveals are removed. Signature card on-scroll fade-ins are skipped — cards appear in their final state. Tab transitions inside feature cards become instant.

10. Responsive Behavior

NameWidthKey Changes
Mobile< 768pxSingle-column body; top nav collapses to hamburger; demo-grid drops to 1-up; signature cards stay full-bleed; logo strip wraps to 2 rows; footer collapses to single-column
Tablet768–1024px2-up demo-grid; top nav stays horizontal but tightens; cream-callout cards stack 2-up; pricing comparison table becomes horizontally scrollable
Desktop1024–1280px3-up demo-grid (and 4-up for tighter content); full top-nav with all menu items visible; pricing tier cards render 4-across
Wide> 1280pxSame as Desktop with more outer breathing room; max content width caps at ~1280px and the page adds outer margin rather than scaling type up

Touch Targets

  • button-primary and siblings render at 48×48px minimum (16px vertical padding + 16px line-height) — comfortably above WCAG AAA’s 44×44.
  • button-icon-circular is exactly 40×40px — slightly under WCAG’s recommended 44, but the centered icon and dot-radius compensate visually.
  • text-input height is 44px.

Collapsing Strategy

  • Top nav collapses to a hamburger at < 768px; the menu opens as a full-screen sheet rather than a dropdown.
  • Card grids reduce columns rather than scaling cards down.
  • The feature-card-tabbed re-stacks the tab rail above the content pane on mobile.
  • The pricing comparison table converts to horizontally-scrollable swipe at < 1024px; the four plan headers stay visible while body rows scroll.

Image Behavior

  • Demo-card UI screenshots crop to fit their container rather than scaling up.
  • Hero illustrations bleed full-width on mobile, losing horizontal margin.
  • Signature card images compress to card width without cropping.

11. Content & Voice

Tone

Editorial, sober, workflow-pragmatic. Airtable writes as a publication for builders. There is no “transform your business” theatre, no “magic” framing. Headlines describe what the product does in production-grade language (“Production apps in prototype speed”, “The path to 10× every person in your organization”). Body copy supports with concrete customer examples (HBO, Time, Conde Nast, Netflix).

Microcopy Patterns

  • CTA verbs: “Sign up for free”, “Get started for free”, “Book demo”, “Read the customer story”. Never “Try the magic” or “Start your journey”.
  • Section labels: 14px uppercase eyebrow at 0.16px tracking — “Customers”, “Solutions”, “Resources”.
  • Demo-card titles: One-line capability descriptions — “Build a project tracker” not “Unleash your team’s potential”.

Empty States

Where empty states appear (search results, filtered article list), the recipe is: a single line in text-muted (“No articles match your filter — try a broader topic”) with a link-blue link to all articles.

Error Messages

Pattern: short, declarative, action-oriented. “Email already in use — try signing in” not “Oops! Something went wrong.” Errors carry an icon-x in #c41c1c and inline guidance.

Success Confirmations

Single-line toast in #181d26 text on #ffffff background with a 4px-radius success-border accent stripe at the left. “Demo booked” not “Hooray!”.

CTA verb conventions

The brand prefers the simple, declarative present-imperative: “Get started”, “Sign up”, “Book demo”, “Read more”. Pricing CTAs add specificity: “Start free”, “Talk to sales”, “Contact us”. The pricing pill button always pairs with verb-noun specificity (“Start free”, not just “Start”).

12. Dark Mode & Theming

Airtable’s marketing surface is light-only. There is no dark-mode toggle on airtable.com — the publication metaphor depends on white canvas. Intra-page dark contrast is achieved through the signature bg-dark (#181d26) cards, not via a global theme switch.

In-product surfaces (the actual Airtable base UI behind login) ship with their own theme system that includes dark variants — those are out of scope for this marketing spec. Customer-facing app extensions (the embeddable forms and shared base views) inherit the marketing light theme by default.

13. Lineage & Influences

Airtable descends from the editorial-tech-marketing tradition — sites like Stripe, Notion, and Linear that treat product copy as long-form publication. The signature surface card is Airtable’s own contribution to the genre: a full-bleed full-color card carrying a single product callout, pioneered (in this exact form) by Airtable’s 2022–2023 redesigns. The near-black pill CTA discipline echoes Linear’s near-black surface approach but pivots from “near-black canvas” to “near-black CTA over white canvas” — a different relationship between dark and light.

Pricing-page Inter Display at weight 475 references Stripe’s pricing page typography (Stripe ships Sohne at custom mid-weights for similar reasons). The 4-tier pricing comparison grid pattern is borrowed from the SaaS canon — Notion, Asana, Linear all ship variants — but Airtable’s strict typographic separation between marketing (Haas) and pricing (Inter Display) is unusually disciplined.

  • Stripe — Confident single-color CTA discipline; pricing-page typographic sub-system. https://stripe.com
  • Linear — Near-black surface as primary brand voltage. https://linear.app
  • Notion — White-canvas editorial publication metaphor. https://notion.so
  • Print magazine grids (Wired, NYT Magazine) — Hairline borders + signature full-bleed cards as editorial cadence.
  • Inter Display variable (Rasmus Andersson) — The pricing sub-system’s mid-weight (475) discipline.

14. Do’s and Don’ts

Do

  • Keep button-primary near-black (#181d26). The brand’s primary CTA is ink, not the link blue.
  • Reserve button-primary for one primary action per viewport. The system is designed for scarcity at the brand-action layer.
  • Use button-secondary (white with hairline outline) as the natural pair with button-primary — Airtable’s signature button row.
  • Trust whitespace as the hero atmosphere. Hero bands are intentionally calm — no gradient, no mesh, no atmospheric backdrop.
  • Use signature-coral-card, signature-forest-card, and hero-card-dark to break editorial monotony — these are the brand’s voltage moments.
  • Keep demo-grid-card heights uneven within a grid. Uniform heights feel like a spec sheet.
  • Treat the pricing surface as its own dialect: keep pricing-display, pricing-card-title, and button-pricing-pill together. Mixing them with Haas / 12px-radius button breaks the sub-system’s voice.
  • Anchor every editorial band with 96px vertical padding.
  • Use real product UI screenshots inside demo-grid cards. Photography-as-depth.

Don’t

  • Don’t make #1b61c9 (link blue) the primary button color. It is the link color. The primary button is #181d26.
  • Don’t add a gradient backdrop to the hero. Airtable’s hero is white, full stop.
  • Don’t bold display-weight type. display-xl and display-lg are intentionally weight 400 / 500 — going to 700 reads as marketing-page-template.
  • Don’t use pill (9999px) outside the pricing surface.
  • Don’t repeat the same surface mode in two consecutive bands. Two whites in a row read as a typography blog.
  • Don’t introduce additional accent colors beyond the documented signature card palette.
  • Don’t apply box-shadow elevation to content cards — the system uses borders and color contrast.
  • Don’t use cool greys. Airtable’s neutrals are warm-shifted (#41454d body has a faint warm cast).
  • Don’t invert the top nav over dark sections — it stays light over every band.
  • Don’t bold inside the editorial body. The only true 600 is legal.

15. Agent Prompt Guide

Quick Color Reference

Bg / Canvas:     #ffffff (white — never tint)
Text / Ink:      #181d26 (near-black with faint warm cast)
Body:            #333840 (default running-text)
Muted:           #41454d (captions, footer, breadcrumbs)
Brand / CTA:     #181d26 (same hex as ink — single role at two layers)
Coral:           #aa2d00 (signature card — homepage anchor)
Forest:          #0a2e0e (signature card — coral sibling)
Cream:           #f5e9d4 (cream callout band)
Dark navy:       #181d26 (mid-page CTA card surface)
Hairline:        #dddddd (every 1px border in the system)
Link:            #1b61c9 (NOT the primary button color)
On-brand:        #ffffff (white text on near-black CTAs)

Example Component Prompts

  1. “Create a hero band on #ffffff canvas with Haas Groot Disp 40px / 400 / line-height 1.2 headline (‘Build the apps your team needs’), 16px / 400 #333840 subhead, primary CTA (#181d26 background, white text, 16px / 500 Haas, 12px radius, 16×24px padding) and secondary CTA (white background, #181d26 text, 1px #dddddd border, same radius and padding). 96px vertical padding. No background gradient.”

  2. “Build a full-bleed signature card on #aa2d00 coral background, #ffffff text, 12px radius, 48px padding. h2 in 32px / 400 Haas, supporting copy in 14px / 400 white. CTA is button-secondary-on-dark — white button, dark text, 1px hairline border.”

  3. “Compose a 3-up demo-grid: each card on #ffffff (or rotate through #fcab79 peach, #a8d8c4 mint, #f4d35e yellow), 10px radius, 16px padding, 1px #dddddd border, deliberately uneven heights. Each card carries a product UI screenshot at 16:10, a 14px uppercase category tag, and a 16px / 500 label.”

  4. “Design a pricing tier card on #ffffff (#f8fafc for the featured tier — surface tone shift only, no badge), 10px radius, 32px padding. Plan name in Inter Display 20px / 475, price in Inter Display 44.8px / 475, feature checklist in body-md 14px / 400. CTA is button-pricing-pill — white background, #1d1f25 text, 9999px radius, 12×24px padding.”

  5. “Build a tabbed feature card: light surface #f8fafc, 12px radius, 32px padding. Left rail vertically-stacked tab labels in Haas 20px / 400; right pane shows the active tab’s headline in Haas 24px / 400 plus body-md description and a small text link in #1b61c9.”

  6. “Design a top nav: 64px tall white bar, Airtable wordmark left, horizontal menu (Platform / Solutions / Resources / Enterprise / Pricing) center-left in Haas 14px / 400 #181d26, right cluster carries ‘Book Demo’ text link, primary ‘Sign up for free’ button, ‘Log In’ text link. Stays white on every page — never inverts.”

Iteration Guide

  1. Start with #ffffff canvas. The white is the brand. Tinting it cream or warm-grey breaks the publication metaphor.
  2. Place one button-primary per viewport. If you find yourself wanting a second, demote it to button-secondary.
  3. Pick exactly one signature surface per major band — coral, forest, dark, or cream. Two signature surfaces side-by-side reads as a portfolio site, not Airtable.
  4. Keep display weight at 400 / 500. If a headline doesn’t feel emphatic enough, scale up before bolding.
  5. Use the warm pastel palette (peach / mint / yellow / mustard) only inside demo-grid cards. They are the product’s row-tag colors promoted to surface mode — promoting them further (full bands, hero backgrounds) overplays the metaphor.
  6. Anchor every band at 96px vertical padding. The vertical rhythm is the brand.
  7. When in doubt about emphasis: bigger type before bolder type, signature surface card before solid accent.
  8. Pricing-page work uses Inter Display 475 + pill buttons + #f8fafc for featured tier. Don’t drift back to Haas + 12px-radius button on pricing — the dialect is the signal.
Ship with this

Drop airtable into your project, then ship the actual sections in an afternoon.

1 · install design
npx design-md add airtable
2 · ship landing page
npx agentkit init --design airtable
How AgentKit reads DESIGN.md
You might also like