# Airtable — Style Reference
> A sober, editorial workflow-software interface anchored on white canvas and dark-ink type, where brand voltage comes from full-bleed signature cards in coral, dark green, peach, and dark navy that punctuate long-scroll explainer pages. Primary actions use a near-black pill CTA; secondary actions sit in a white outlined button. Type runs Haas Grotesk in modest weights — never bold for its own sake.

**Theme:** light

**Source website:** [https://www.airtable.com/](https://www.airtable.com/)  
Use the live official website to compare and validate this extracted snapshot. The current source website remains authoritative.

## Tokens — Colors

| Name | Value | Token | Role |
|---|---|---|---|
| primary | `#181d26` | `--color-primary` | primary role extracted from the source design |
| primary active | `#0d1218` | `--color-primary-active` | primary active role extracted from the source design |
| ink | `#181d26` | `--color-ink` | ink role extracted from the source design |
| body | `#333840` | `--color-body` | body role extracted from the source design |
| muted | `#41454d` | `--color-muted` | muted role extracted from the source design |
| hairline | `#dddddd` | `--color-hairline` | hairline role extracted from the source design |
| border strong | `#9297a0` | `--color-border-strong` | border strong role extracted from the source design |
| canvas | `#ffffff` | `--color-canvas` | canvas role extracted from the source design |
| surface soft | `#f8fafc` | `--color-surface-soft` | surface soft role extracted from the source design |
| surface strong | `#e0e2e6` | `--color-surface-strong` | surface strong role extracted from the source design |
| surface dark | `#181d26` | `--color-surface-dark` | surface dark role extracted from the source design |
| surface dark elevated | `#1d1f25` | `--color-surface-dark-elevated` | surface dark elevated role extracted from the source design |
| signature coral | `#aa2d00` | `--color-signature-coral` | signature coral role extracted from the source design |
| signature forest | `#0a2e0e` | `--color-signature-forest` | signature forest role extracted from the source design |
| signature cream | `#f5e9d4` | `--color-signature-cream` | signature cream role extracted from the source design |
| signature peach | `#fcab79` | `--color-signature-peach` | signature peach role extracted from the source design |
| signature mint | `#a8d8c4` | `--color-signature-mint` | signature mint role extracted from the source design |
| signature yellow | `#f4d35e` | `--color-signature-yellow` | signature yellow role extracted from the source design |
| signature mustard | `#d9a441` | `--color-signature-mustard` | signature mustard role extracted from the source design |
| on primary | `#ffffff` | `--color-on-primary` | on primary role extracted from the source design |
| on dark | `#ffffff` | `--color-on-dark` | on dark role extracted from the source design |
| link | `#1b61c9` | `--color-link` | link role extracted from the source design |
| link active | `#1a3866` | `--color-link-active` | link active role extracted from the source design |
| info | `#254fad` | `--color-info` | info role extracted from the source design |
| info border | `#458fff` | `--color-info-border` | info border role extracted from the source design |
| success | `#006400` | `--color-success` | success role extracted from the source design |
| success border | `#39bf45` | `--color-success-border` | success border role extracted from the source design |
| pricing ink | `#1d1f25` | `--color-pricing-ink` | pricing ink role extracted from the source design |

## Tokens — Typography

### Haas Groot Disp, Haas, sans-serif · `--font-primary`
- **Substitute:** Inter, system-ui, sans-serif
- **Weights:** 500, 400
- **Sizes:** 48px, 40px, 32px, 20px
- **Line height:** 1.1, 1.2, 1.5
- **Letter spacing:** 0
- **Role:** Brand typography family observed across the documented type scale.

### Haas, sans-serif · `--font-family-2`
- **Substitute:** Inter, system-ui, sans-serif
- **Weights:** 400, 500, 600
- **Sizes:** 24px, 18px, 16px, 14px, 13.12px
- **Line height:** 1.35, 1.4, 1.25, 1.2
- **Letter spacing:** 0.12px, 0, 0.16px
- **Role:** Brand typography family observed across the documented type scale.

### Inter Display, system-ui, sans-serif · `--font-family-3`
- **Substitute:** Inter, system-ui, sans-serif
- **Weights:** 475
- **Sizes:** 44.8px, 28px, 20px
- **Line height:** 1.1, 1.2, 1.3
- **Letter spacing:** 0
- **Role:** Brand typography family observed across the documented type scale.

### Type Scale

| Role | Size | Line Height | Letter Spacing | Token |
|---|---|---|---|---|
| display-xl | 48px | 1.1 | 0 | `--text-display-xl` |
| display-lg | 40px | 1.2 | 0 | `--text-display-lg` |
| display-md | 32px | 1.2 | 0 | `--text-display-md` |
| title-lg | 24px | 1.35 | 0.12px | `--text-title-lg` |
| title-md | 20px | 1.5 | 0 | `--text-title-md` |
| title-sm | 18px | 1.4 | 0 | `--text-title-sm` |
| label-md | 16px | 1.4 | 0 | `--text-label-md` |
| button | 16px | 1.4 | 0 | `--text-button` |
| body-md | 14px | 1.25 | 0 | `--text-body-md` |
| caption | 14px | 1.35 | 0.16px | `--text-caption` |
| legal | 13.12px | 1.2 | 0 | `--text-legal` |
| pricing-display | 44.8px | 1.1 | 0 | `--text-pricing-display` |
| pricing-section | 28px | 1.2 | 0 | `--text-pricing-section` |
| pricing-card-title | 20px | 1.3 | 0 | `--text-pricing-card-title` |

## Tokens — Spacing & Shapes

**Density:** comfortable

### Spacing Scale

| Name | Value | Token |
|---|---|---|
| xxs | 4px | `--spacing-xxs` |
| xs | 8px | `--spacing-xs` |
| sm | 12px | `--spacing-sm` |
| md | 16px | `--spacing-md` |
| lg | 24px | `--spacing-lg` |
| xl | 32px | `--spacing-xl` |
| xxl | 48px | `--spacing-xxl` |
| section | 96px | `--spacing-section` |

### Border Radius

| Name | Value | Token |
|---|---|---|
| xs | 2px | `--radius-xs` |
| sm | 6px | `--radius-sm` |
| md | 10px | `--radius-md` |
| lg | 12px | `--radius-lg` |
| pill | 9999px | `--radius-pill` |
| full | 9999px | `--radius-full` |

### Layout

- **Section gap:** 96px
- **Card padding:** 24px
- **Element gap:** 16px
- **Max content width:** 1200px

## Components

### button primary
**Role:** button primary component

- **backgroundColor:** `{colors.primary}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.button}`
- **rounded:** `{rounded.lg}`
- **padding:** `16px 24px`

### button primary active
**Role:** button primary active component

- **backgroundColor:** `{colors.primary-active}`
- **textColor:** `{colors.on-primary}`
- **rounded:** `{rounded.lg}`

### button secondary
**Role:** button secondary component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.button}`
- **rounded:** `{rounded.lg}`
- **padding:** `16px 24px`

### button secondary on dark
**Role:** button secondary on dark component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.button}`
- **rounded:** `{rounded.lg}`
- **padding:** `16px 24px`

### button legal
**Role:** button legal component

- **backgroundColor:** `{colors.link}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.legal}`
- **rounded:** `{rounded.xs}`
- **padding:** `12px 10px`

### button icon circular
**Role:** button icon circular component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **rounded:** `{rounded.full}`
- **size:** `40px`

### button pricing pill
**Role:** button pricing pill component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.pricing-ink}`
- **typography:** `{typography.button}`
- **rounded:** `{rounded.pill}`
- **padding:** `12px 24px`

### text link
**Role:** text link component

- **backgroundColor:** `transparent`
- **textColor:** `{colors.link}`
- **typography:** `{typography.body-md}`

### top nav
**Role:** top nav component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **height:** `64px`

### hero band
**Role:** hero band component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.display-lg}`
- **padding:** `96px`

### signature coral card
**Role:** signature coral card component

- **backgroundColor:** `{colors.signature-coral}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.display-md}`
- **rounded:** `{rounded.lg}`
- **padding:** `48px`

### signature forest card
**Role:** signature forest card component

- **backgroundColor:** `{colors.signature-forest}`
- **textColor:** `{colors.on-primary}`
- **typography:** `{typography.display-md}`
- **rounded:** `{rounded.lg}`
- **padding:** `48px`

### hero card dark
**Role:** hero card dark component

- **backgroundColor:** `{colors.surface-dark}`
- **textColor:** `{colors.on-dark}`
- **typography:** `{typography.display-md}`
- **rounded:** `{rounded.lg}`
- **padding:** `48px`

### feature card tabbed
**Role:** feature card tabbed component

- **backgroundColor:** `{colors.surface-soft}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.title-lg}`
- **rounded:** `{rounded.lg}`
- **padding:** `32px`

### cream callout card
**Role:** cream callout card component

- **backgroundColor:** `{colors.signature-cream}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.title-lg}`
- **rounded:** `{rounded.md}`
- **padding:** `24px`

### demo grid card
**Role:** demo grid card component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.label-md}`
- **rounded:** `{rounded.md}`
- **padding:** `16px`

### logo strip
**Role:** logo strip component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.muted}`
- **typography:** `{typography.body-md}`
- **padding:** `32px`

### article card
**Role:** article card component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.title-sm}`
- **rounded:** `{rounded.md}`
- **padding:** `16px`

### topic filter rail
**Role:** topic filter rail component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.body}`
- **typography:** `{typography.body-md}`
- **width:** `240px`

### text input
**Role:** text input component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.body-md}`
- **rounded:** `{rounded.sm}`
- **padding:** `12px 16px`
- **height:** `44px`

### text input focus
**Role:** text input focus component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.ink}`
- **rounded:** `{rounded.sm}`

### pricing tier card
**Role:** pricing tier card component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.pricing-ink}`
- **typography:** `{typography.pricing-card-title}`
- **rounded:** `{rounded.md}`
- **padding:** `32px`

### pricing tier card featured
**Role:** pricing tier card featured component

- **backgroundColor:** `{colors.surface-soft}`
- **textColor:** `{colors.pricing-ink}`
- **typography:** `{typography.pricing-card-title}`
- **rounded:** `{rounded.md}`
- **padding:** `32px`

### pricing comparison row
**Role:** pricing comparison row component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.body}`
- **typography:** `{typography.body-md}`
- **padding:** `12px`

### cta band light
**Role:** cta band light component

- **backgroundColor:** `{colors.surface-strong}`
- **textColor:** `{colors.ink}`
- **typography:** `{typography.display-md}`
- **rounded:** `{rounded.lg}`
- **padding:** `48px`

### footer
**Role:** footer component

- **backgroundColor:** `{colors.canvas}`
- **textColor:** `{colors.body}`
- **typography:** `{typography.body-md}`
- **padding:** `64px`

## Do's and Don'ts

### Do

- Use `--color-primary` for the brand's primary interaction treatment.
- Keep page surfaces anchored to `--color-canvas`.
- Preserve every typography style's documented size, line height, and letter spacing.
- Compare major implementation decisions against [the live Airtable website](https://www.airtable.com/).

### Don't

- Do not introduce colors outside the documented color token set.
- Do not replace `--color-ink` with an arbitrary neutral.
- Do not flatten documented component states or spacing relationships.
- Do not treat this extracted snapshot as newer than the live source website.

## Layout

Use the documented spacing scale and component geometry as the implementation baseline. Validate responsive composition and current page rhythm against [the live source](https://www.airtable.com/).
