BrandToPrompt

Mixpanel Design System: Precise Data-First UI Language

Visit Site

Explore Mixpanel's design system - colors, typography, and spacing for analytics UI. Build data-focused interfaces with precision and clarity.

6 min read1,015 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
Garnett Medium
Secondary Font
Apercu Pro

Design Style

Style
data-forward minimalist with high contrast and subtle personality
Visual Density
compact grid-based with disciplined 8px spacing scale
Border Style
mixed: 4px small elements, 8px cards, 100px pill buttons

Full Analysis

Mixpanel Brand Design System Deep-Dive

1. Brand Overview

Mixpanel’s design language is unapologetically data-forward and product-led. Everything about the interface says: “We are here to help you understand your product’s numbers.” It’s not fluffy, it’s not playful—it’s precise. The design feels like it’s built for product managers, analysts, and engineers who live inside dashboards.

The first impression: high contrast between content and background, restrained palette, and typography that leans modern yet approachable. The brand pushes clarity over decoration. White and deep charcoal (#1f2023) do most of the heavy lifting, with pops of saturated purple (#4f44e0) and green (#219464) in functional contexts.

They’ve chosen Garnett as their core typeface, with weights and sizes adjusted tightly for headlines and legibility in data-heavy contexts. There’s also Apercu Pro in certain captions—likely for a human touch in otherwise analytical spaces. This is not a generic sans-serif approach; Garnett’s proportions give Mixpanel’s UI a subtle personality.

Spacing follows a clean 8px scale, with occasional 4px and 5px adjustments (interesting choice—probably for pixel-perfect icon alignment). Rounded corners range from tight 4px radii for small UI bits to massive 100px pills for buttons and CTAs. Shadows are used sparingly; when they appear, they’re soft and tinted with purples (rgba(218, 208, 255, 0.5)), reinforcing the brand’s signature hue.

The feeling is: serious tool, friendly interface. This isn’t a consumer app design—it’s a professional analytics platform with a visual language that says “trust the data.”


2. Color System

2.1 Primary Colors

The main brand anchor is a deep, saturated purple (#4f44e0)—used for charts, highlights, and key interactive elements. It reads as creative intelligence—purple often signals originality and vision, which fits a product about understanding and predicting user behavior.

Secondary accents are functional:

  • Green (#219464) for positive states (success, growth metrics).
  • Red-orange (#e34f2f) for negative states (errors, declines).

Primary background: pure white (#ffffff). Primary text: charcoal (#2a2a2f), with a deeper #1f2023 for certain elements.

2.2 Complete Palette

Color NameHexRoleUsage
White#ffffffBackgroundMain page canvas, cards
Charcoal Dark#1f2023Text / BackgroundHeadings, dark sections
Transparent Lavender#e8ddffOverlaySoft background tints
Text Highlight#accef7HighlightInline text emphasis
Inverted Secondary Text#f6f6f6TextOn dark backgrounds
Positive Green#219464FunctionalSuccess states, growth metrics
Negative Red-Orange#e34f2fFunctionalErrors, warnings
Chrome Active Text#ffffffUI TextOn active nav or buttons
Chart Axis Label#626266UI TextAxis labels in charts
Disabled Text#8f8f91UI TextDisabled states
Chrome Hover#463dbbInteractiveHover state for chrome/nav
Chart Axis Line#e9e9e9UI ElementDivider lines in charts
Primary Text#2a2a2fTextBody copy
Chart Highlight Purple#4f44e0Chart AccentActive data highlights
Chrome Active Background#322e6fUI ElementActive chrome/nav background
Black Transparent#000000 @ 10-20%OverlayHover/focus backgrounds

2.3 Color Relationships

White (#ffffff) against charcoal (#1f2023) gives excellent contrast—well above WCAG AA for body text. Purple (#4f44e0) on white is readable, but on dark backgrounds it needs a lighter text color (hence #f6f6f6). Positive and negative colors are saturated enough to stand out without clashing with the purple core.

Dark mode here is essentially inverted background with lighter text (#f6f6f6). The chart axis grey (#626266) is subtle—it’s low contrast but fine for non-essential labels.

2.4 Usage Guide

  • White + Charcoal: Default pairing for most UI.
  • Purple (#4f44e0): Use for data highlights, CTAs. Avoid flooding large areas—it’s a power color.
  • Green / Red: Keep to functional states—don’t use for decoration.
  • Lavender tint (#e8ddff): Good for background panels in charts.
  • Avoid pairing purple with red—too much visual tension.
  • Use #accef7 highlights sparingly in text—it’s bright against white.

3. Typography

3.1 Font Families

Primary: Garnett Medium / Garnett Regular — custom, not from Google or Adobe Fonts.

Secondary: Apercu Pro in some captions.

Fallbacks: “Placeholder” fonts noted in extraction—likely internal system fonts for when Garnett isn’t loaded.

No variable font usage.

3.2 Type Scale

ElementFontSizeWeightLine Height
Heading-1Garnett Medium60px (3.75rem)4001.20
Heading-1Garnett Medium48px (3.00rem)4001.20
Heading-1Garnett Medium36px (2.25rem)4001.20
Heading-1Garnett Medium28px (1.75rem)4001.20
Heading-1Garnett Medium22px (1.38rem)4001.20
Heading-1Garnett Medium18px (1.13rem)4001.40
Heading-1 BoldGarnett Medium18px (1.13rem)7001.40
Heading-1 MediumGarnett Medium18px (1.13rem)5001.40
BodyGarnett Regular16px (1.00rem)4001.60
Body MediumGarnett Medium16px (1.00rem)5001.00
CaptionGarnett Medium14px (0.88rem)4001.20
CaptionGarnett Regular14px (0.88rem)4001.50
CaptionApercu Pro14px (0.88rem)4001.29
Linksans-serif12px (0.75rem)400-
CaptionGarnett Medium12px (0.75rem)5001.00
CaptionGarnett Regular12px (0.75rem)4001.68
Caption UppercaseGarnett Medium12px (0.75rem)5001.80
Caption UppercaseApercu Pro Medium12px (0.75rem)5001.80
CaptionGarnett12px (0.75rem)4001.00
LinkGarnett Regular12px (0.75rem)4001.68

3.3 Hierarchy

The heading scale is tight—ratios roughly 1.33x between steps. This makes transitions between headline sizes feel consistent. Body text at 16px is readable; captions drop to 14px or 12px for dense data. Uppercase captions with 2.4px letterspacing are used for labels—gives a nice “chart axis” feel.


4. Spacing & Layout

4.1 Spacing Scale

Base: 8px grid. They also use 4px and 5px increments for micro-adjustments.

ValueRemCountUsage
4px0.25rem16Icon padding
5px0.31rem4Fine-tuned alignment
8px0.50rem52Small gaps
10px0.63rem108Button padding, tight component gaps
16px1.00rem27Body padding
24px1.50rem15Card padding
32px2.00rem1Section spacing
40px2.50rem2Large gaps
80px5.00rem16Hero section spacing
152px9.50rem1Massive layout spacing
160px10.00rem4Hero banners

4.2 Layout

Breakpoints:

  • 98px (!!) — probably a micro breakpoint for extreme narrow cases
  • 807px / 808px — tablet boundary
  • 1199px / 1200px — desktop start
  • 1439px — large desktop

Responsive approach: fixed breakpoints; not fluid typography.


5. Visual Elements

Border Radius

Notable: heavy use of 4px, 8px, 12px, 16px, and 100px for pills.

RadiusCountUsage
0px 0px 40px 40px2Footer blocks
0px 16px 0px 0px12Cards with one rounded edge
4px57Buttons, inputs
8px19Cards
10px1Rare component
12px12Images, modals
16px22Larger cards
24px11Big containers
32px1Hero block
40px1Large panel
100px23Pill buttons
100%10Circular avatars

Shadows

Purples dominate: rgba(218, 208, 255, 0.5) 0px 40px 24px -32px is the main. Soft shadows, minimal black drop shadows.

Borders: Rare—2px inset black borders only in iframes.


6. Components

6.1 Buttons

No direct button data extracted—likely styled via Vuetify.

Given radii, pill buttons use border-radius: 100px with purple or white backgrounds depending on context.

States:

  • Hover: chrome hover color #463dbb
  • Active: chrome active #322e6f
  • Disabled: #8f8f91 text with reduced opacity

Three styles:

  1. Blue (rgb(0,0,238)) no underline.
  2. Black no underline.
  3. White underline.

Hover: color changes to defined hover token or default text color; underline often removed.

6.3 Forms

No input styles extracted—likely consistent with 4px or 8px radius, grey borders (#e9e9e9), and disabled text color.

6.4 Cards

Padding: multiples of 24px. Shadows: purple-tinted soft drop. Radii: 8px or 12px.


7. Design Tokens

:root {
  /* Colors */
  --color-white: #ffffff;
  --color-charcoal-dark: #1f2023;
  --color-transparent-lavender: #e8ddff;
  --color-text-highlight: #accef7;
  --color-inverted-secondary-text: #f6f6f6;
  --color-positive-green: #219464;
  --color-negative-red-orange: #e34f2f;
  --color-chrome-active-text: #ffffff;
  --color-chart-axis-label: #626266;
  --color-disabled-text: #8f8f91;
  --color-chrome-hover: #463dbb;
  --color-chart-axis-line: #e9e9e9;
  --color-primary-text: #2a2a2f;
  --color-chart-highlight-purple: #4f44e0;
  --color-chrome-active-background: #322e6f;

  /* Typography */
  --font-heading: "Garnett Medium", sans-serif;
  --font-body: "Garnett Regular", sans-serif;
  --font-caption: "Apercu Pro", sans-serif;

  /* Spacing */
  --space-4: 4px;
  --space-5: 5px;
  --space-8: 8px;
  --space-10: 10px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --space-80: 80px;
  --space-152: 152px;
  --space-160: 160px;

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-xxl: 24px;
  --radius-pill: 100px;
  --radius-full: 100%;

  /* Shadows */
  --shadow-purple-lg: rgba(218, 208, 255, 0.5) 0px 40px 24px -32px;
  --shadow-purple-sm: rgba(218, 208, 255, 0.5) -1px 1px 4px 0px;
}

8. AI Coding Assistant Prompt

# Mixpanel Design System Specification

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

## Brand Context
Mixpanel's design is data-first, high-contrast, and professional. It uses a restrained palette with functional greens/reds and a signature purple for highlights. Typography is modern sans-serif with clear hierarchy.

## Color Palette
- White: #ffffff — Primary background
- Charcoal Dark: #1f2023 — Text, dark sections
- Transparent Lavender: #e8ddff — Soft background tints
- Text Highlight: #accef7 — Inline emphasis
- Inverted Secondary Text: #f6f6f6 — On dark backgrounds
- Positive Green: #219464 — Success states
- Negative Red-Orange: #e34f2f — Error states
- Chrome Active Text: #ffffff — On active UI elements
- Chart Axis Label: #626266 — Chart labels
- Disabled Text: #8f8f91 — Disabled UI states
- Chrome Hover: #463dbb — Hover state for nav/chrome
- Chart Axis Line: #e9e9e9 — Chart dividers
- Primary Text: #2a2a2f — Body copy
- Chart Highlight Purple: #4f44e0 — Data highlights
- Chrome Active Background: #322e6f — Active nav backgrounds

## Typography
Fonts:
- Headings: "Garnett Medium", sans-serif
- Body: "Garnett Regular", sans-serif
- Captions: "Apercu Pro", sans-serif

Sizes:
| Level | Size | Weight | Line Height | Use |
|-------|------|--------|-------------|-----|
| H1 | 60px | 400 | 1.20 | Page titles |
| H2 | 48px | 400 | 1.20 | Section titles |
| H3 | 36px | 400 | 1.20 | Subsections |
| H4 | 28px | 400 | 1.20 | Smaller headings |
| H5 | 22px | 400 | 1.20 | UI headings |
| Body | 16px | 400 | 1.60 | Paragraphs |
| Caption | 14px | 400 | 1.20-1.50 | Labels |
| Small | 12px | 400/500 | 1.00-1.80 | Meta info |

## Spacing & Grid
Base: 8px
Scale: 4px, 5px, 8px, 10px, 16px, 24px, 32px, 40px, 80px, 152px, 160px

## Border Radius
- none: 0px — Tables
- sm: 4px — Buttons, inputs
- md: 8px — Cards
- lg: 12px — Modals
- xl: 16px — Large cards
- xxl: 24px — Containers
- pill: 100px — CTA buttons
- full: 100% — Avatars

## Shadows & Depth
- Purple large: rgba(218, 208, 255, 0.5) 0px 40px 24px -32px
- Purple small: rgba(218, 208, 255, 0.5) -1px 1px 4px 0px

## Component Specifications

### Primary Button
```css
.btn-primary {
  background: #4f44e0;
  color: #ffffff;
  padding: 10px 24px;
  border-radius: 100px;
  font-weight: 500;
  font-size: 16px;
  border: none;
  transition: background 150ms ease;
}
.btn-primary:hover { background: #463dbb; }
.btn-primary:focus { outline: 2px solid #accef7; outline-offset: 2px; }
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
```

### Secondary Button
```css
.btn-secondary {
  background: #ffffff;
  color: #4f44e0;
  padding: 10px 24px;
  border-radius: 100px;
  border: 1px solid #4f44e0;
}
.btn-secondary:hover { background: #e8ddff; }
```

### Navigation Links
```css
.nav-link {
  color: #1f2023;
  text-decoration: none;
}
.nav-link:hover {
  color: #463dbb;
}
```

### Input Fields
```css
.input {
  border: 1px solid #e9e9e9;
  border-radius: 4px;
  padding: 8px 10px;
  font-size: 16px;
}
.input:focus { border-color: #4f44e0; outline: none; }
.input:disabled { color: #8f8f91; background: #f6f6f6; }
```

### Card
```css
.card {
  background: #ffffff;
  border-radius: 8px;
  padding: 24px;
  box-shadow: rgba(218, 208, 255, 0.5) 0px 40px 24px -32px;
}
```

## Layout & Responsive Rules
Max content width: ~1200px
Page padding: 16px mobile / 24px desktop
Grid gap: multiples of 8px
Breakpoints:
- Mobile: <807px
- Tablet: 808px–1199px
- Desktop: >1200px

## Interaction Rules
- Transition: 150ms ease for state changes
- Focus indicators: 2px solid highlight (`#accef7`)
- Loading: dim component, keep layout stable

## DO
- Use only colors from palette
- Maintain 8px grid
- Keep headings in Garnett Medium
- Use uppercase captions with 2.4px spacing for labels
- Use purple shadows for depth

## DON'T
- Invent new colors
- Mix rounded and sharp corners
- Use heavy black shadows
- Overuse purple backgrounds
- Stretch avatars

## Code Examples

Primary Button:
```css
<button class="btn-primary">Sign Up</button>
```

Secondary Button:
```css
<button class="btn-secondary">Learn More</button>
```

Form Input:
```css
<input class="input" placeholder="Enter name" />
```

9. Summary

TL;DR — Mixpanel’s design is crisp, functional, and data-first. White + charcoal form the base, purple accents guide interaction, and Garnett’s modern typography keeps it human. Spacing is disciplined, shadows are subtle, and corners are consistently rounded.

Brand Keywords:

  • data-driven-minimalist
  • purple-functional
  • analytics-professional
  • modern-readable