BrandToPrompt

Klaviyo Design System: Human-Centered SaaS UI Patterns

Visit Site

Explore Klaviyo's design system - colors, typography, and UI specs. Create marketing automation interfaces with Klaviyo's visual language.

7 min read1,215 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
Instrument Sans

Design Style

Style
professional yet approachable with dark neutrals and playful accents
Visual Density
precise 8px grid with balanced spacing and consistent rhythm
Border Style
mixed: 4px small UI, 8px medium surfaces, 32px pill buttons

Full Analysis

Klaviyo Brand Design System Deep-Dive

1. Brand Overview

Klaviyo’s design language sits in a space that’s part data-driven SaaS, part approachable marketing tool. The vibe is professional but not sterile — they use deep, grounded neutrals with bursts of warm and playful colors to keep the tool feeling human. This isn’t fintech minimalism. It’s a marketing automation platform designed for people who care about customer relationships, so the UI has to balance clarity with personality.

Looking at the extracted data, the brand leans heavily on Instrument Sans for all typography, which instantly gives the site a contemporary, clean voice. The typeface is geometric but not cold, and it holds weight well in both large, bold headings and small captions. The weight distribution is consistent — headings are mostly 500–600, body text is 400–500 — which keeps visual rhythm tight.

The primary color is a very dark charcoal (#232121) that functions as both text and action color. It’s confident, almost black, but softer. The palette surrounding it is huge — eggplants, violets, poppies, sky blues, oranges, yellows — which suggests a design system built for varied content states (alerts, promos, seasonal campaigns). This isn’t a brand that sticks to three corporate colors. They’ve got a full spectrum and they use it.

Spacing is on an 8px scale (with some 4px increments). That’s the modern standard for responsive design. The breakpoints are granular — 26 distinct widths — which means they’ve tuned responsiveness carefully for multiple device classes.

Borders and radii are deliberate: 4px for small UI, 8px for medium surfaces, and pill-shaped 32px+ for CTAs. Shadows are used sparingly and subtly; depth comes more from contrast and color than heavy drop-shadows.

Overall: Klaviyo’s design system is built for a complex web app where multiple components need to coexist without chaos. The colors give them range, the typography keeps them anchored, and the spacing/border rules ensure consistency.


2. Color System

2.1 Primary Colors

Primary is #232121 (RGB 35,33,33). This is the backbone — used for text, button borders, and filled states for primary actions. It reads as black at first glance but isn’t pure black, which softens contrast and makes white text less aggressive. Compared to competitors like Mailchimp (who go bold yellow) or HubSpot (bright orange), Klaviyo’s primary is understated. That works because their interface is loaded with functional colors — they don’t need the primary to do all the emotional work.

Secondary is transparent (rgba(0,0,0,0)) — essentially a placeholder for components that don’t have a brand background but still need a defined interaction style.

2.2 Complete Palette

Here’s the full extracted palette with roles and usage:

Color NameHexRoleUsage
Primary Charcoal#232121PrimaryText, primary buttons, borders
White#ffffffBaseBackgrounds, text on dark
Eggplant 500#744a6eAccentDecorative, secondary UI
Core Violet Mid#b5a3e0AccentHighlights, secondary actions
Core Stone Tint#eeebe8NeutralBackground tint
Core Orange 200#ffa43eAccentAlerts, promos
Core Cotton 900#aea594NeutralText on light surfaces
Core Pink Mid#f4cdf5AccentHighlights
Ocean#005077AccentLinks, data visualizations
Warning Brown#62290aFunctionalWarning text
Orange 600#e89538AccentButtons, icons
Core Poppy Mid#fb968cAccentButtons, promo highlights
Pink 500#f1c0f2AccentHighlights
Orange 800#8c5a22AccentDeep accent
Core Yellow 800#8b8b45FunctionalWarning backgrounds
Eggplant Mid#a2869eAccentSecondary UI
Core Poppy Tint#fcb7b0AccentSoft promo bg
Poppy 700#b1463bAccentButtons
Core Eggplant 200#bfacbcAccentSecondary bg
Pink Tint#f9e2f9AccentSoft bg
Cotton Shade#e9dcc6NeutralBackground
Core Yellow 500#fcfc7eFunctionalAlerts
Charcoal 900#0f0e0eNeutralText
Core Cotton Mid#f4ede2NeutralBackground
Gray 80#737373NeutralSecondary text
Sky 600#8ebed9AccentLinks
Check Icon Red#ef4444FunctionalError icons
Dark Borderhsla(0,0%,100%,.2)BorderDividers on dark
Ocean Mid Tint#1c65adAccentLinks
Core Orange 100#ffe3c3AccentPromo bg
Input Field Background#3e3b37NeutralForm bg
Charcoal Shade#191717NeutralSurfaces
Poppy 900#692a23AccentDeep promo
Stone Mid#e7e2ddNeutralBackground
Eggplant Shade#40293dAccentDeep accent
Core Eggplant 50#f1edf1AccentLight bg
Violet 500#9176d1AccentLinks
Poppy#f96353AccentButtons
Pink 100#fbebfbAccentLight bg
Cool Gray 100#ebeef0NeutralBackground
Core Sky 900#425864AccentDeep link bg
Core Eggplant 100#d4c7d2AccentLight bg
Core Yellow Shade#e5e573FunctionalAlerts
Poppy 600#e35a4cAccentButtons
Mobile Input Border#d1d5dbBorderMobile inputs
Charcoal 50#e9e9e9NeutralBackground
Sky 300#bde0f4AccentLinks
Eggplant 700#52354eAccentDeep accent
Core Cool Gray 500#c0c7ceNeutralText
Core Stone 400#e2ddd6NeutralBackground
Pink 600#dbafdcAccentHighlights
Stone 600#c7c1baNeutralBackground
Charcoal 200#9a9999NeutralText
Core Stone#dbd4ccNeutralBackground
Lavender Light#ccc0eaAccentHighlights
Gray 40#e2e5e8NeutralBackground
Core Orange Mid#ffc27eAccentPromo
Sky Tint#d1eaf8AccentLight bg
Core Eggplant 900#311f2eAccentDeep bg
Stone 700#9b9791NeutralText
Sunflower Yellow#f0c92dFunctionalAlerts
Core Violet 700#675494AccentLinks
Core Orange 900#6b451aAccentDeep promo
Core Pink 800#856a85AccentDeep bg
Core Poppy 400#fa8275AccentButtons
Violet 50#f4f1faAccentLight bg
Core Sky#9cd1efAccentLinks
Yellow Tint#fefec4FunctionalAlerts
Input Text#373f47NeutralForm text
Storm#6d777eNeutralText
Core Charcoal 100#bbbabaNeutralText
Violet 900#3d3258AccentDeep bg
Charcoal 400#4f4d4dNeutralText
Core Sky 700#6f94aaAccentLinks
Charcoal 800#131212NeutralText
Core Cool Gray 900#515457NeutralText
Core Yellow 100#fefed7FunctionalAlerts
Core Violet 100#ddd5f1AccentLight bg
Charcoal Medium#5d5e60NeutralText
Core Yellow 400#fdfd98FunctionalAlerts
Stone 100#f4f2efNeutralBackground
Orange 700#b5742cAccentButtons
Eggplant 600#6a4364AccentDeep accent
Sky 100#e0f1faAccentLight bg
Core Pink Shade#ab88acAccentDeep bg
Yellow 700#b3b359FunctionalAlerts
Core Poppy 800#89362eAccentButtons
Core Pink 300#f6d5f6AccentHighlights
Core Cool Gray 800#6a6d71NeutralText
Core Yellow 900#6a6a35FunctionalAlerts
Core Poppy 50#feefeeAccentLight bg
Violet 600#846bbeAccentLinks
Orange 50#fff6ecAccentLight bg
Core Violet 400#a791daAccentLinks
Core Poppy 100#fdcfcaAccentLight bg
Input Placeholder Text#b9b9b9NeutralForm placeholder
Core Charcoal Mid#6c6a6aNeutralText
Stone 900#5c5956NeutralText
Warning Yellow#eea458FunctionalAlerts
Yellow 300#fdfda9FunctionalAlerts
Core Cool Gray 600#afb5bbNeutralText
Violet 800#504173AccentDeep bg
Core Orange 400#ffb665AccentPromo
Cool Gray 400#cdd2d8NeutralBackground
Core Cotton Tint#f9f6f0NeutralBackground
Core Sky 400#b0daf2AccentLinks
Storm Shade#42484cNeutralText
Cool Gray 300#d5d9deNeutralBackground
Stone 800#787570NeutralText
Sage Tint 2#e2efd3AccentBackground
Core Eggplant 400#906e8bAccentDeep accent
Core Sky 800#567383AccentDeep link bg
Search Bar Sticky#2c2d2fNeutralBackground
Pink 900#655166AccentDeep bg
Storm Tint#afafafNeutralText
Poppy Light#f9c1b9AccentLight bg
Poppy Dark#cc3c28AccentButtons
Orange Tint#ffd5a6AccentPromo bg
Forest Green#518b22AccentSuccess

2.3 Color Relationships

They’ve built a full functional spectrum: error (#ef4444), warning (#eea458, #f0c92d), success (#518b22), multiple alert yellows, and a wide range of accent tones. Accessibility-wise, #232121 on white easily passes WCAG AA/AAA for normal text. Some lighter tints (e.g., #f4cdf5 pink) will fail on white — those are decorative, not for text.

Dark mode is hinted at — there’s a --color-dark-border and multiple charcoal shades, so the system probably supports inverted schemes.

2.4 Usage Guide

  • Use #232121 for text and primary actions.
  • Pair dark charcoal with light tints for cards and panels.
  • Functional colors (reds, yellows, green) are for states — don’t use them for decoration.
  • Avoid pairing saturated accents (poppy, orange) together — they’ll fight.
  • Eggplant and violet tones are safe secondary accents.

3. Typography

3.1 Font Families

All typography is Instrument Sans — no fallbacks listed in the data, but likely system sans as backup. No Google Fonts or Adobe Fonts sources are declared — probably self-hosted.

3.2 Type Scale

ElementFontSizeWeightLine Height
ButtonInstrument Sans64px (4rem)6001.09
Heading-1Instrument Sans58px (3.63rem)6001.20
Heading-1Instrument Sans48px (3rem)6001.20
Heading-1Instrument Sans32px (2rem)6001.20
Heading-1Instrument Sans28px (1.75rem)6001.20
Heading-1Instrument Sans24px (1.5rem)4001.20
Heading-1Instrument Sans20px (1.25rem)5001.30
Heading-1Instrument Sans18px (1.13rem)5001.33
LinkInstrument Sans18px (1.13rem)5001.33
Heading-1Instrument Sans18px (1.13rem)4001.50
LinkInstrument Sans18px (1.13rem)6001.50
LinkInstrument Sans16px (1rem)4001.50
LinkInstrument Sans16px (1rem)5001.25
ButtonInstrument Sans16px (1rem)4001.50
Heading-1Instrument Sans16px (1rem)4001.50
ButtonInstrument Sans16px (1rem)5000.88
ButtonInstrument Sans14px (0.88rem)5001.43
CaptionInstrument Sans14px (0.88rem)5001.43
LinkInstrument Sans14px (0.88rem)5001.43
LinkInstrument Sans14px (0.88rem)4001.00
CaptionInstrument Sans14px (0.88rem)4001.50
LinkInstrument Sans12px (0.75rem)5001.00
CaptionInstrument Sans12px (0.75rem)6001.00
LinkInstrument Sans12px (0.75rem)4001.67
ButtonInstrument Sans12px (0.75rem)4001.00
CaptionInstrument Sans8px (0.5rem)5001.00

3.3 Hierarchy

They keep heading line heights tight (1.2) — gives strong vertical rhythm. Body and captions open up to 1.5. Buttons sometimes compress to 0.88 line height — makes them feel compact even with larger text. The large 64px button text is unusual — likely for hero CTAs.


4. Spacing & Layout

4.1 Spacing Scale

Base scale: 8px. Common values:

ValueremCountUse
1px0.06rem28Hairline borders
2px0.13rem34Tight gaps
4px0.25rem302Micro spacing, icon gaps
8px0.5rem44Small padding
10px0.63rem15Input padding
12px0.75rem61Button padding
13px0.81rem5Odd micro-adjustments
14px0.88rem2Rare
16px1rem14Standard padding
20px1.25rem26Component gaps
24px1.5rem30Section spacing
32px2rem49Large gaps
36px2.25rem27Hero spacing
40px2.5rem3Rare
48px3rem9Hero padding
56px3.5rem17Section paddings
70px4.38rem1Rare hero
75px4.69rem5Hero spacing
88px5.5rem2Hero spacing
120px7.5rem1Large hero gaps

4.2 Layout

Breakpoints: 26 distinct widths from 380px to 1999px. They clearly test for multiple device widths — not just standard mobile/tablet/desktop. Likely a flexible grid with max-width constraints around 1366–1372px for desktop content.


5. Visual Elements

Border Radius

ValueCountElements
2px1Badge
4px69Badge, image, button
8px12Nav, div
32px12Link, button
50px1Input
52px4Anchor
58px2Input, form
50%1Div
100%11Anchor, button

They use 32px for pill buttons — visually strong. 100% for circular buttons/icons.

Shadows

Three shadow styles:

  • rgba(0,0,0,0.16) 8px 8px 24px — soft depth.
  • rgba(0,0,0,0.21) 0px 13px 37px — slightly more dramatic.
  • rgb(128,128,128) 0px 0px 5px — rare.

Shadows are subtle, not a core depth cue.

Borders

Primary border: 2px solid #232121 for links/buttons. Thin 1px borders for navigation. Occasional light gray borders for inputs.


6. Components

6.1 Buttons

Primary Dark Button

  • Default: bg #232121, text #fff, padding 12px 30px, radius 32px, border 2px solid #232121.
  • Hover: bg var(--color-core-white), text var(--color-core-charcoal), scale 1.03, box-shadow 1px 1px 9px var(--color-core-charcoal-shade).
  • Active: 0.75 opacity, bg var(--color-button-active-background).
  • Focus: bg #fafafa, text #122124, outline -webkit-focus-ring-color solid 2px.

Outline Button

  • Default: transparent bg, text #232121, padding 12px 20px, radius 52px, border 1px solid #232121.
  • Hover: same as above with scale and shadow.
  • Active/Focus: similar.

Tab Active

  • Default: bg #89362e (Poppy 900), text #fff, padding 8px, radius 4px.
  • Hover/Focus: bg var(--color-poppy-mid), text var(--color-charcoal).

Tab Inactive

  • Default: bg #f96353 (Poppy), text #232121, padding 8px, radius 4px.
  • Hover/Focus: same as above.

Carousel Button

  • Default: bg rgba(44,45,46,0.1), text #232121, radius 100%.
  • Hover/Focus: transparent bg, text var(--color-charcoal).

Two styles:

  • Dark text (#232121), underline. Hover keeps underline.
  • White text (#fff), no underline default but hover adds underline.

6.3 Forms

Email input:

  • Default: bg #fff, text #000, radius 50px, padding 10px 12px 0 24px.
  • Focus: outline none, box-shadow var(--xy-node-boxshadow-selected), bg var(--color-white).

6.4 Cards

No explicit card data, but backgrounds pull from neutral tints (#f4ede2, #e7e2dd) and shadows are light (rgba(0,0,0,0.16)).


7. Design Tokens (CSS Variables)

:root {
  /* Colors */
  --color-primary: #232121;
  --color-secondary: transparent;
  --color-white: #ffffff;
  --color-eggplant-500: #744a6e;
  /* ... include all palette colors from table above ... */

  /* Typography */
  --font-family-primary: "Instrument Sans", sans-serif;
  --font-size-button-xl: 64px;
  --font-size-h1-lg: 58px;
  /* ... all sizes ... */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 600;

  /* Spacing */
  --space-1: 1px;
  --space-2: 2px;
  --space-4: 4px;
  --space-8: 8px;
  /* ... up to 120px ... */

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-pill: 32px;
  --radius-full: 100%;

  /* Shadows */
  --shadow-sm: rgba(0,0,0,0.16) 8px 8px 24px;
  --shadow-md: rgba(0,0,0,0.21) 0px 13px 37px;
  --shadow-light: rgb(128,128,128) 0px 0px 5px;
}

8. AI Coding Assistant Prompt

# Klaviyo Design System Specification

You are a Klaviyo design expert. Build UIs matching their visual language exactly.

## Brand Context
Klaviyo balances professional SaaS clarity with approachable marketing energy. Dark charcoal and white form the base, with a wide accent spectrum for states and highlights. Typography is consistent and geometric, spacing is precise on an 8px grid, and buttons use strong pill shapes.

## Color Palette
- Primary Charcoal: #232121 — Text, primary buttons, borders
- White: #ffffff — Backgrounds, text on dark
- Eggplant 500: #744a6e — Secondary accents
- Core Violet Mid: #b5a3e0 — Highlights
- Core Orange 200: #ffa43e — Alerts/promos
- Core Poppy Mid: #fb968c — Buttons/promos
- Check Icon Red: #ef4444 — Error icons
- Forest Green: #518b22 — Success states
- Warning Yellow: #eea458 — Warnings
- Poppy: #f96353 — Buttons
[...include all colors from palette table...]

## Typography
Font: "Instrument Sans", sans-serif
| Level | Size | Weight | Line Height | Use |
|-------|------|--------|-------------|-----|
| Button XL | 64px | 600 | 1.09 | Hero CTA |
| H1 LG | 58px | 600 | 1.20 | Page title |
| H1 SM | 32px | 600 | 1.20 | Subtitles |
| Body | 16px | 400 | 1.50 | Paragraphs |
| Caption | 14px | 400 | 1.50 | Metadata |
[...all levels...]

## Spacing & Grid
Base: 8px grid
Scale: 1px, 2px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 36px, 40px, 48px, 56px, 70px, 75px, 88px, 120px
Component mapping:
- Button padding: 12px vertical, 20–30px horizontal
- Card padding: 24–32px
- Section gaps: 48–56px

## Border Radius
- sm: 4px — Small buttons, badges
- md: 8px — Cards, nav
- pill: 32px — CTAs
- full: 100% — Circular buttons/icons

## Shadows & Depth
- sm: rgba(0,0,0,0.16) 8px 8px 24px — Cards
- md: rgba(0,0,0,0.21) 0px 13px 37px — Modals
- light: rgb(128,128,128) 0px 0px 5px — Rare

## Component Specifications

### Primary Button
Default: bg #232121, color #fff, padding 12px 30px, radius 32px, border 2px solid #232121
Hover: bg #fff, color var(--color-core-charcoal), scale 1.03, shadow 1px 1px 9px var(--color-core-charcoal-shade)
Active: opacity 0.75, bg var(--color-button-active-background)
Focus: bg #fafafa, color #122124, outline 2px solid -webkit-focus-ring-color

### Secondary Button
Default: transparent bg, color #232121, padding 12px 20px, radius 52px, border 1px solid #232121
Hover: bg #fff, color var(--color-core-charcoal), scale 1.03, shadow as primary

### Input Field
Default: bg #fff, color #000, radius 50px, padding 10px 12px 0 24px
Focus: outline none, shadow var(--xy-node-boxshadow-selected), bg #fff

### Card
bg neutral tint, radius 8px, padding 24–32px, shadow sm

## Layout & Responsive Rules
Max width: ~1366px
Mobile padding: 16px
Desktop padding: 32px
Breakpoints: 380px, 575px, 576px, 577px, 767px, 768px, 769px, 800px, 840px, 916px, 990px, 992px, 1023px, 1024px, 1025px, 1080px, 1100px, 1120px, 1199px, 1200px, 1280px, 1300px, 1365px, 1366px, 1372px, 1999px

## Interaction Rules
- Transition: 150ms ease for hover/focus
- Focus indicators: 2px solid outline
- Hover scale: 1.03 for buttons

## DO List
- Use only palette colors
- Maintain 8px grid
- Use Instrument Sans for all text
- Keep button radii consistent
- Use shadows only for surface elevation

## DON'T List
- Don't invent new colors
- Don't mix sharp and rounded corners
- Don't apply heavy shadows
- Don't use accent colors for body text

## Code Examples

### Primary Button
```css
.btn-primary {
  background: #232121;
  color: #fff;
  padding: 12px 30px;
  border-radius: 32px;
  border: 2px solid #232121;
  font-weight: 500;
  font-size: 16px;
  transition: all 150ms ease;
}
.btn-primary:hover {
  background: #fff;
  color: #232121;
  transform: scale(1.03);
  box-shadow: 1px 1px 9px #191717;
}
```

### Input Field
```css
.input-email {
  background: #fff;
  color: #000;
  border-radius: 50px;
  padding: 10px 12px 0 24px;
  border: none;
}
.input-email:focus {
  outline: none;
  box-shadow: 0 0 0 2px #232121;
}
```

### Card
```css
.card {
  background: #f4ede2;
  border-radius: 8px;
  padding: 24px;
  box-shadow: rgba(0,0,0,0.16) 8px 8px 24px;
}
```

9. Summary

TL;DR — Klaviyo’s design system is dark-neutral first, with a huge accent palette for states. Instrument Sans keeps typography clean and consistent. Spacing is strict on an 8px grid. Buttons are bold pill shapes with subtle hover motion. Shadows are light and rarely used.

Brand Keywords: data-driven-friendly, dark-neutral-base, accent-rich, geometric-type, 8px-grid-precision