Discord design system.

Discord design system — Voice / chat platform. Deep blurple, dark-first surfaces, playful accent moments.

See it in context

The same design tokens applied across artifact kinds — a website, an app, a slide, a poster. Original mocks re-skinned with this system, not screenshots.

Website
Slides
App
Poster

Design tokens

56 tokens conforming to the Open Design token contract — the same structured palette, type, spacing, and motion values your agent reads to theme any artifact.

Surface

  • --bg #313338
  • --surface #2b2d31
  • --surface-warm #1e1f22

Text

  • --fg #dbdee1
  • --fg-2 #f2f3f5
  • --muted #949ba4
  • --meta #80848e

Border

  • --border rgba(255, 255, 255, 0.06)
  • --border-soft #3f4147

Accent

  • --accent #5865f2
  • --accent-on #ffffff
  • --accent-hover #4752c4
  • --accent-active color-mix(in oklab, var(--accent), black 14%)

Semantic

  • --success #23a55a
  • --warn #f0b232
  • --danger #f23f43

Typography

  • --font-display "gg sans", "Helvetica Neue", Helvetica, Arial, sans-serif
  • --font-body "gg sans", "Helvetica Neue", Helvetica, Arial, sans-serif
  • --font-mono "gg mono", Consolas, "Andale Mono", "Courier New", Courier, monospace

Type scale

  • --text-xs 12px
  • --text-sm 14px
  • --text-base 16px
  • --text-lg 18px
  • --text-xl 20px
  • --text-2xl 24px
  • --text-3xl 32px
  • --text-4xl 56px
  • --leading-body 1.375
  • --leading-tight 1.10
  • --tracking-display -0.02em

Spacing

  • --space-1 4px
  • --space-2 8px
  • --space-3 12px
  • --space-4 16px
  • --space-5 20px
  • --space-6 24px
  • --space-8 32px
  • --space-12 40px
  • --section-y-desktop 80px
  • --section-y-tablet 48px
  • --section-y-phone 32px

Radius

  • --radius-sm 4px
  • --radius-md 8px
  • --radius-lg 16px
  • --radius-pill 9999px

Elevation

  • --elev-flat none
  • --elev-ring 0 0 0 1px var(--border)
  • --elev-raised rgba(0, 0, 0, 0.4) 0px 2px 4px, 0 0 0 1px rgba(255, 255, 255, 0.06)

Focus

  • --focus-ring 0 0 0 3px rgba(88, 101, 242, 0.3)

Motion

  • --motion-fast 80ms
  • --motion-base 200ms
  • --ease-standard cubic-bezier(0.2, 0, 0, 1)

Layout

  • --container-max 1200px
  • --container-gutter-desktop 24px
  • --container-gutter-tablet 16px
  • --container-gutter-phone 16px

Design System Inspired by Discord

Category: Productivity & SaaS Voice / chat platform. Deep blurple, dark-first surfaces, playful accent moments.

1. Visual Theme & Atmosphere

Discord’s product is engineered for evenings, raids, and group voice — so the entire surface is dark-first. The default canvas is the deep Background Primary (#313338 light theme, #1e1f22 dark theme), with chat columns layered on slightly lighter or darker shades to denote channels, threads, and side panels. The signature Blurple (#5865f2) is reserved for the brand mark, primary CTAs, mentions, and the “you” affordance — used sparingly so it pops against the muted neutrals.

Typography is gg sans (Discord’s custom Whitney-replacement) for prose and chrome, with rounded geometric shapes that feel approachable but still legible at the small sizes a chat client demands. Headings step up incrementally; chat rows are tight (4–8px between message groups) so hours of scrollback feel scannable.

The shape language is rounded but not balloon-soft: 8px radii on cards, 4px on inputs, full pills on status badges and tags. Servers are rounded-square avatars at 48px that morph to circles on hover — a tiny piece of motion that has become part of the brand’s identity.

Key Characteristics:

  • Dark-first surfaces: #1e1f22 / #2b2d31 / #313338 (3-step depth)
  • Blurple #5865f2 as the only saturated accent in the chat surface
  • gg sans (Whitney-style) for all text — friendly, geometric, neutral
  • Rounded-square server avatars (16px radius) that snap to circles on hover
  • Tight chat-row spacing, generous side-panel padding
  • Status dots: green online, yellow idle, red dnd, gray offline
  • Pixel-snapped 1px dividers in subtle off-white at low alpha

2. Color Palette & Roles

Primary

  • Blurple (#5865f2): Brand primary, primary CTA, mention highlight.
  • Blurple Hover (#4752c4): Hover/active for blurple.
  • Blurple Soft (#7289da): Legacy blurple, secondary accent in marketing.

Surface (Dark Theme — default)

  • Background Tertiary (#1e1f22): Server list rail, deepest background.
  • Background Secondary (#2b2d31): Channel sidebar, settings sidebar.
  • Background Primary (#313338): Chat surface, message column.
  • Background Floating (#111214): Floating popovers, tooltips, autocomplete.
  • Background Modifier Hover (rgba(78, 80, 88, 0.3)): Hover overlay on rows.
  • Background Modifier Selected (rgba(78, 80, 88, 0.6)): Active row.

Surface (Light Theme)

  • Light Bg Primary (#ffffff): Chat surface in light theme.
  • Light Bg Secondary (#f2f3f5): Sidebar in light theme.
  • Light Bg Tertiary (#e3e5e8): Deepest light surface.

Text

  • Header Primary (#f2f3f5): Channel headers, modal titles in dark theme.
  • Header Secondary (#b5bac1): Muted headers.
  • Text Normal (#dbdee1): Body text in dark theme — slightly cooler than pure white.
  • Text Muted (#949ba4): Timestamps, server names, secondary metadata.
  • Text Link (#00a8fc): Hyperlinks in messages — sky blue, distinct from blurple.
  • Channels Default (#80848e): Inactive channel name in sidebar.

Status & Semantic

  • Status Online (#23a55a): Online dot, success states.
  • Status Idle (#f0b232): Idle dot, away.
  • Status DND (#f23f43): Do-not-disturb, also serves as destructive red.
  • Status Streaming (#593695): “Streaming” purple.
  • Status Offline (#80848e): Offline gray.
  • Mention Highlight (rgba(88, 101, 242, 0.1)): Soft blurple wash on @mention rows.

Border & Divider

  • Background Modifier Accent (rgba(255, 255, 255, 0.06)): Standard divider in dark.
  • Border Subtle (#3f4147): Solid divider for cards.

3. Typography Rules

Font Family

  • Body / UI / Headings: gg sans, with fallback: "Helvetica Neue", Helvetica, Arial, sans-serif
  • Display (legacy / Whitney): Whitney, with fallback: gg sans
  • Code / Mono: "gg mono", with fallback: Consolas, Andale Mono, Courier New, Courier, monospace

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Display Herogg sans56px (3.5rem)8001.1-0.02emMarketing hero
Page Headinggg sans24px (1.5rem)7001.25normalSettings/profile titles
Channel Namegg sans16px (1rem)6001.25normal#general, channel header
Message Bodygg sans16px (1rem)4001.375normalStandard chat text
Usernamegg sans16px (1rem)5001.25normalAuthor of a message
Timestampgg sans12px (0.75rem)5001.25normal”Today at 4:32 PM”
Sidebar Channelgg sans16px (1rem)5001.25normalChannel list rows
Server Namegg sans16px (1rem)6001.25normalServer header
Caption / Metagg sans12px (0.75rem)4001.30.02emStatus text, edited tag
Code Inlinegg mono0.875em400inheritnormalInline code
Code Blockgg mono14px (0.875rem)4001.5normaltriple-fenced block

Principles

  • Friendly geometry: gg sans replaces Whitney with rounded terminals on a/g/s — the brand wants warmth without breaking legibility.
  • Weight contrast over color contrast: hierarchy comes from 400→500→600→700→800 weight steps; the surface stays neutral.
  • 16px body: chat messages do not shrink below 16px. Density comes from line-height (1.375), not font size.

4. Component Stylings

Buttons

Primary

  • Background: #5865f2
  • Text: #ffffff
  • Padding: 8px 16px
  • Radius: 4px
  • Hover: #4752c4
  • Use: Primary CTAs, “Continue”, “Join Server”

Secondary

  • Background: #4e5058
  • Text: #ffffff
  • Padding: 8px 16px
  • Radius: 4px
  • Hover: #6d6f78

Tertiary / Subtle (Link-style)

  • Background: transparent
  • Text: #dbdee1
  • Hover: text underlined, no background change

Danger

  • Background: #da373c
  • Text: #ffffff
  • Hover: #a12d2f

Inputs

  • Background: #1e1f22
  • Text: #dbdee1
  • Border: 1px solid #1e1f22
  • Radius: 4px
  • Padding: 10px 12px
  • Focus: border #5865f2

Server Avatars

  • Size: 48×48px
  • Radius: 16px (rounded square) by default; transitions to 50% on hover and active.
  • Active state: 4px white pill on the left edge of the icon column.

Status Dots

  • Size: 10×10px
  • Border: 3px solid background-tertiary (creates the “notch” effect)
  • Position: bottom-right of avatar.

Cards / Embeds

  • Background: #2b2d31 (dark) or #f2f3f5 (light)
  • Left border: 4px solid embed accent color.
  • Radius: 4px
  • Padding: 8px 16px

Mention Pill

  • Background: rgba(88, 101, 242, 0.3)
  • Text: #c9cdfb
  • Padding: 0 2px
  • Radius: 3px

5. Spacing & Layout

  • Base unit: 4px. Scale: 4, 8, 12, 16, 20, 24, 32, 40.
  • Server rail: 72px wide, fixed.
  • Channel sidebar: 240px wide.
  • Member list: 240px wide on desktop.
  • Chat column: fluid, min 380px.

6. Motion

  • Duration: 200ms for hover; 350ms for the avatar circle-morph; 80ms for tooltip fade.
  • Easing: cubic-bezier(0.215, 0.61, 0.355, 1) for the avatar morph (snappy then settle).
  • Notification pulse: 1.4s ease-in-out infinite on unread mention indicator.

7. Usage Guardrails

  • Preserve the dark shell, compact density, and blurple action hierarchy together; using blurple on a light marketing-style layout breaks the Discord product feel.
  • Keep navigation-heavy surfaces structured around rails, sidebars, and chat columns rather than isolated decorative cards.
  • Use the rounded-square avatar and status-dot language when representing people, servers, or active presence.
Mode
design-system
Scenario
design
Surface
web
Manifest id
design-system-discord

Tags

  • design-system
  • first-party
  • design
  • productivity-saas

Open Design Desktop

One design system. Every output unmistakably your brand

Inside the full Vibe Design Workspace, use the same brand rules across websites, slide decks, interactive prototypes, dashboards, images, and HTML video. Connect Codex, Claude Code, Cursor, and other coding agents already on your computer, then create locally for free.

  • Web, slides, prototypes, dashboards, images, and video
  • 140+ design systems, plus the full template and skill library
  • Connect local Codex and 21+ coding agents · Free to use
Download free

Available for macOS, Windows, and Linux