Back to Gallery
Star
Language

DESIGN.md

Design System Inspiration of Intercom

1. Visual Theme & Atmosphere

Intercom's website is a warm, confident customer service platform that communicates "AI-first helpdesk" through a clean, editorial design language. The page operates on a warm off-white canvas (#faf9f6) with off-black (#111111) text, creating an intimate, magazine-like reading experience. The signature Fin Orange (#ff5600) — named after Intercom's AI agent — serves as the singular vibrant accent against the warm neutral palette.

The typography uses Saans — a custom geometric sans-serif with aggressive negative letter-spacing (-2.4px at 80px, -0.48px at 24px) and a consistent 1.00 line-height across all heading sizes. This creates ultra-compressed, billboard-like headlines that feel engineered and precise. Serrif provides the serif companion for editorial moments, and SaansMono handles code and uppercase technical labels. MediumLL and LLMedium appear for specific UI contexts, creating a rich five-font ecosystem.

What distinguishes Intercom is its remarkably sharp geometry — 4px border-radius on buttons creates near-rectangular interactive elements that feel industrial and precise, contrasting with the warm surface colors. Button hover states use scale(1.1) expansion, creating a physical "growing" interaction. The border system uses warm oat tones (#dedbd6) and oklab-based opacity values for sophisticated color management.

Key Characteristics:

  • Warm off-white canvas (#faf9f6) with oat-toned borders (#dedbd6)
  • Saans font with extreme negative tracking (-2.4px at 80px) and 1.00 line-height
  • Fin Orange (#ff5600) as singular brand accent
  • Sharp 4px border-radius — near-rectangular buttons and elements
  • Scale(1.1) hover with scale(0.85) active — physical button interaction
  • SaansMono uppercase labels with wide tracking (0.6px–1.2px)
  • Rich multi-color report palette (blue, green, red, pink, lime, orange)
  • oklab color values for sophisticated opacity management

2. Color Palette & Roles

Primary

  • Off Black (#111111): --color-off-black, primary text, button backgrounds
  • Pure White (#ffffff): --wsc-color-content-primary, primary surface
  • Warm Cream (#faf9f6): Button backgrounds, card surfaces
  • Fin Orange (#ff5600): --color-fin, primary brand accent
  • Report Orange (#fe4c02): --color-report-orange, data visualization

Report Palette

  • Report Blue (#65b5ff): --color-report-blue
  • Report Green (#0bdf50): --color-report-green
  • Report Red (#c41c1c): --color-report-red
  • Report Pink (#ff2067): --color-report-pink
  • Report Lime (#b3e01c): --color-report-lime-300
  • Green (#00da00): --color-green
  • Deep Blue (#0007cb): Deep blue accent

Neutral Scale (Warm)

  • Black 80 (#313130): --wsc-color-black-80, dark neutral
  • Black 60 (#626260): --wsc-color-black-60, mid neutral
  • Black 50 (#7b7b78): --wsc-color-black-50, muted text
  • Content Tertiary (#9c9fa5): --wsc-color-content-tertiary
  • Oat Border (#dedbd6): Warm border color
  • Warm Sand (#d3cec6): Light warm neutral

3. Typography Rules

Font Families

  • Primary: Saans, fallbacks: Saans Fallback, ui-sans-serif, system-ui
  • Serif: Serrif, fallbacks: Serrif Fallback, ui-serif, Georgia
  • Monospace: SaansMono, fallbacks: SaansMono Fallback, ui-monospace
  • UI: MediumLL / LLMedium, fallbacks: system-ui, -apple-system

Hierarchy

Role Font Size Weight Line Height Letter Spacing
Display Hero Saans 80px 400 1.00 (tight) -2.4px
Section Heading Saans 54px 400 1.00 -1.6px
Sub-heading Saans 40px 400 1.00 -1.2px
Card Title Saans 32px 400 1.00 -0.96px
Feature Title Saans 24px 400 1.00 -0.48px
Body Emphasis Saans 20px 400 0.95 -0.2px
Nav / UI Saans 18px 400 1.00 normal
Body Saans 16px 400 1.50 normal
Body Light Saans 14px 300 1.40 normal
Button Saans 16px / 14px 400 1.50 / 1.43 normal
Button Bold LLMedium 16px 700 1.20 0.16px
Serif Body Serrif 16px 300 1.40 -0.16px
Mono Label SaansMono 12px 400–500 1.00–1.30 0.6px–1.2px uppercase

4. Component Stylings

Buttons

Primary Dark

  • Background: #111111
  • Text: #ffffff
  • Padding: 0px 14px
  • Radius: 4px
  • Hover: white background, dark text, scale(1.1)
  • Active: green background (#2c6415), scale(0.85)

Outlined

  • Background: transparent
  • Text: #111111
  • Border: 1px solid #111111
  • Radius: 4px
  • Same scale hover/active behavior

Warm Card Button

  • Background: #faf9f6
  • Text: #111111
  • Padding: 16px
  • Border: 1px solid oklab(... / 0.1)

Cards & Containers

  • Background: #faf9f6 (warm cream)
  • Border: 1px solid #dedbd6 (warm oat)
  • Radius: 8px
  • No visible shadows

Navigation

  • Saans 16px for links
  • Off-black text on white
  • Small 4px–6px radius buttons
  • Orange Fin accent for AI features

5. Layout Principles

Spacing: 8px, 10px, 12px, 14px, 16px, 20px, 24px, 32px, 40px, 48px, 60px, 64px, 80px, 96px

Border Radius: 4px (buttons), 6px (nav items), 8px (cards, containers)

6. Depth & Elevation

Minimal shadows. Depth through warm border colors and surface tints.

7. Do's and Don'ts

Do

  • Use Saans with 1.00 line-height and negative tracking on all headings
  • Apply 4px radius on buttons — sharp geometry is the identity
  • Use Fin Orange (#ff5600) for AI/brand accent only
  • Apply scale(1.1) hover on buttons
  • Use warm neutrals (#faf9f6, #dedbd6)

Don't

  • Don't round buttons beyond 4px
  • Don't use Fin Orange decoratively
  • Don't use cool gray borders — always warm oat tones
  • Don't skip the negative tracking on headings

8. Responsive Behavior

Breakpoints: 425px, 530px, 600px, 640px, 768px, 896px

9. Agent Prompt Guide

Quick Color Reference

  • Text: Off Black (#111111)
  • Background: Warm Cream (#faf9f6)
  • Accent: Fin Orange (#ff5600)
  • Border: Oat (#dedbd6)
  • Muted: #7b7b78

Example Component Prompts

  • "Create hero: warm cream (#faf9f6) background. Saans 80px weight 400, line-height 1.00, letter-spacing -2.4px, #111111. Dark button (#111111, 4px radius). Hover: scale(1.1), white bg."