← Back to all designs

Intercom

An editorial customer-service marketing canvas built around a soft cream-white ground, charcoal type set in Saans (Intercom's proprietary geometric sans), and a single confident Fin Orange (#ff5600) reserved for the Fin AI brand. Cards live as floating white tiles with thin hairline borders and minimal radii (8–16px). Display headlines run Saans at weight 500 with measured negative tracking. The s

Homepage Example

Welcome to Intercom

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

Get Started Learn More

Pixel Perfect

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

Design Tokens

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

Built for Teams

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

Color Palette (25)

primary#111111
on-primary#ffffff
ink#111111
ink-muted#626260
ink-subtle#7b7b78
ink-tertiary#9c9fa5
canvas#f5f1ec
surface-1#ffffff
surface-2#ebe7e1
inverse-canvas#000000
inverse-surface-1#313130
inverse-ink#ffffff
inverse-ink-muted#9c9fa5
hairline#d3cec6
hairline-soft#ebe7e1
fin-orange#ff5600
report-orange#fe4c02
report-blue#65b5ff
report-green#0bdf50
report-pink#ff2067
report-lime#b3e01c
report-cyan#03b2cb
brand-blue#0007cb
semantic-error#c41c1c
semantic-success#0bdf50

Typography (13)

Intercom
display-xl72px · weight 500
Intercom
display-lg56px · weight 500
Intercom
display-md40px · weight 500
Intercom
headline28px · weight 500
Intercom
card-title22px · weight 500
Intercom
subhead20px · weight 400
Intercom
body-lg18px · weight 400
Intercom
body16px · weight 400
Intercom
body-sm14px · weight 400
Intercom
caption12px · weight 400
Intercom
button15px · weight 500
Intercom
eyebrow14px · weight 500
Intercom
mono13px · weight 400

Components (20)

button-primary
button-primary
button-primary-pressed
button-primary-pressed
button-secondary
button-secondary
button-tertiary
button-tertiary
button-fin
button-fin
pricing-card
pricing-card
pricing-card-featured
pricing-card-featured
feature-card
feature-card
product-mockup-card
product-mockup-card
testimonial-card
testimonial-card
customer-logo-tile
customer-logo-tile
text-input
text-input
text-input-focused
text-input-focused
pricing-tab-default
pricing-tab-default
pricing-tab-selected
pricing-tab-selected
faq-row
faq-row
cta-banner
cta-banner
startup-discount-card
startup-discount-card
top-nav
top-nav
footer
footer

Border Radius

xs (4px)
sm (6px)
md (8px)
lg (12px)
xl (16px)
xxl (24px)
pill (9999px)
full (9999px)

Design Philosophy

Overview

Intercom's marketing canvas is a soft cream-white ground (`{colors.canvas}` ≈ #f5f1ec) — not pure white. The warmth is the brand's signal: this is editorial, calm, and product-focused, not bright SaaS. On top of the cream canvas sit white floating cards (`{colors.surface-1}`), thin hairline dividers (`{colors.hairline}`), and charcoal type (`{colors.ink}` #111111).

Display type is **Saans** — Intercom's proprietary geometric sans — set at weight 500 with measured negative letter-spacing (-2.0px on 72px display). Body type is the same family at weight 400. The single proprietary mono is **SaansMono**, used sparingly for code snippets and product UI screenshots embedded in the marketing surface.

The single chromatic accent is **Fin Orange** (`{colors.fin-orange}` #ff5600) — Intercom's AI-product brand color. It surfaces on the Fin product CTA, the Fin badge in pricing, and a few inline emphasis moments. It is NOT a system primary; the system primary is charcoal `{colors.ink}`. Intercom also maintains a small **report palette** (`{colors.report-blue}`, `{colors.report-green}`, `{colors.report-pink}`, `{colors.report-lime}`) used inside in-product analytics surfaces shown in mockups.

The page rhythm is heavy on **product mockups**: every section's payload is a high-fidelity screenshot of Intercom's product UI, framed in white cards with `{rounded.xl}` 16px corners. The marketing chrome is intentionally quiet so the product can be the protagonist.

**Key Characteristics:**

Colors

> Source pages: intercom.com (home), /pricing, /helpdesk, /customers, /helpdesk/inbox.

Brand & Accent

Surface

Text

Semantic & Report Palette (in-product mockups)

The report palette appears INSIDE product UI mockups — these are Intercom's in-product chart colors, not marketing surface colors.

Typography

Font Family

The same family carries the entire hierarchy. Hierarchy is carried by size + weight + tracking, not by family change.

Hierarchy

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

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

| `{typography.display-xl}` | 72px | 500 | 1.05 | -2.0px | Largest hero headline |

| `{typography.display-lg}` | 56px | 500 | 1.10 | -1.4px | Section opener headlines |

| `{typography.display-md}` | 40px | 500 | 1.15 | -0.8px | Sub-section headlines |

| `{typography.headline}` | 28px | 500 | 1.20 | -0.5px | Pricing tier titles, CTA banner |

| `{typography.card-title}` | 22px | 500 | 1.25 | -0.3px | Card title, feature card |

| `{typography.subhead}` | 20px | 400 | 1.40 | -0.2px | Lead body, intro paragraphs |

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

| `{typography.body}` | 16px | 400 | 1.50 | 0 | Default body |

| `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Card body, footer |

| `{typography.caption}` | 12px | 400 | 1.40 | 0 | Captions, meta |

| `{typography.button}` | 15px | 500 | 1.20 | 0 | Pill / square button labels |

| `{typography.eyebrow}` | 14px | 500 | 1.30 | 0 | Section eyebrow (sentence case) |

| `{typography.mono}` | 13px | 400 | 1.50 | 0 | SaansMono for code in mockups |

Principles

Note on Font Substitutes

If implementing without Saans, suitable substitutes include **Söhne** (paid), **Inter** (free, weight 500), or **Geist Sans** (free). Inter at weight 500 is the closest free substitute; SaansMono can be approximated with **JetBrains Mono** at weight 400.

Layout

Spacing System

Grid & Container

Whitespace Philosophy

The cream canvas does the work white space would in another brand. Sections separate by ample vertical breathing room (`{spacing.section}` 96px) plus the lift-onto-white cards.

Elevation & Depth

| Level | Treatment | Use |

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

| 0 (flat) | No shadow, no border | Default for body type, hero text, footer |

| 1 (lift on cream) | `{colors.surface-1}` white background on `{colors.canvas}` cream | Pricing cards, feature cards, product mockups |

| 2 (hairline lift) | `{colors.surface-1}` + 1px `{colors.hairline}` border | Floating tiles with extra definition |

| 3 (deep accent) | `{colors.inverse-canvas}` true black | Quote / testimonial callout strip |

Intercom resists drop shadows. Depth is communicated by the white-on-cream surface change.

Decorative Depth

Shapes

Border Radius Scale

| Token | Value | Use |

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

| `{rounded.xs}` | 4px | Small chips, badges |

| `{rounded.sm}` | 6px | Inline tags |

| `{rounded.md}` | 8px | All buttons, form inputs |

| `{rounded.lg}` | 12px | Pricing cards, feature cards, FAQ rows |

| `{rounded.xl}` | 16px | Product mockup cards |

| `{rounded.xxl}` | 24px | Oversized CTA banners |

| `{rounded.pill}` | 9999px | Tab toggles |

| `{rounded.full}` | 9999px | Avatar circles |

Photography & Illustration Geometry

Components

Buttons

**`button-primary`** — Charcoal CTA. The default primary CTA across all pages.

**`button-secondary`** — White button on cream. Used for secondary CTAs.

**`button-tertiary`** — Plain text button.

**`button-fin`** — Fin Orange CTA — reserved for Fin AI product CTAs.

Pricing Tabs

**`pricing-tab-default`** + **`pricing-tab-selected`** — Pill-toggle on `/pricing`.

Cards & Containers

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

**`pricing-card-featured`** — Featured / recommended tier — inverts to charcoal.

**`feature-card`** — Generic feature highlight.

**`product-mockup-card`** — The dominant card type — frames a high-fidelity product UI screenshot.

**`testimonial-card`** — Customer quote with avatar + name + company.

**`startup-discount-card`** — The "Startups get 90% off" tinted card.

**`customer-logo-tile`** — Small tile in the customer marquee.

**`cta-banner`** — Closing CTA panel near page bottom.

Inputs & Forms

**`text-input`** + **`text-input-focused`** — Form fields on contact and search overlays.

FAQ

**`faq-row`** — Expandable accordion row in the pricing FAQ.

Navigation

**`top-nav`** — Sticky cream bar with the Intercom wordmark left, nav links centered, log-in + sign-up pair right.

Footer

**`footer`** — Dense link grid on `{colors.canvas}` cream with the Intercom wordmark left.

Do's and Don'ts

Do

Don't

Responsive Behavior

Breakpoints

| Name | Width | Key Changes |

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

| Desktop-XL | 1440px | Default desktop layout |

| Desktop | 1280px | Card grid 3-up maintained |

| Tablet | 1024px | Card grid 3-up → 2-up |

| Mobile-Lg | 768px | Pricing comparison becomes accordion; nav hamburger |

| Mobile | 480px | Single-column; display-xl scales 72px → ~32px |

Touch Targets

Collapsing Strategy

Image Behavior

Iteration Guide

1. Focus on ONE component at a time and reference it by its `components:` token name.

2. When introducing a section, decide first whether it sits on `{colors.canvas}` cream (default) or whether it lifts onto a `{colors.surface-1}` white card.

3. Default body to `{typography.body}` at weight 400.

4. Run `npx @google/design.md lint DESIGN.md` after edits.

5. Add new variants as separate component entries.

6. Treat Fin Orange as a product accent: Fin CTA and Fin badge only.

7. Lead every section with a product screenshot.

Known Gaps