Discord is the place where communities hang out, and its interface is built to feel like a clubhouse, not an enterprise tool.
Needs work: freshness conflict · token source unverified · verification v2 missing
Discord is the place where communities hang out, and its interface is built to feel like a clubhouse, not an enterprise tool. The product UI lives almost entirely in dark mode by default — deep slate-navy surfaces (#313338 chat, #2B2D31 channel sidebar, #1E1F22 server rail) layered like physical panels, with one electric accent doing all the talking: Blurple (#5865F2). Blurple is a portmanteau of "blue" and "purple," and that in-between quality is the whole personality — friendly but not corporate, energetic but not aggressive. It is the most-tapped color in the app and the single most recognizable thing about the brand.
The marketing site (discord.com) is the playful sibling of the product: bright Blurple fields, hand-drawn-feeling illustrations of Wumpus (the brand mascot) and friends, big rounded headlines, and a tone that reads like a group chat. Where the product is dark and focused, the marketing surface is bright and loud. Both share the same DNA — generous rounded corners, the Blurple accent, and gg sans, Discord's proprietary typeface introduced in the 2021 rebrand to replace Whitney/Uni Sans. gg sans has rounded terminals and a warm, geometric character that echoes the friendly curves of the Clyde logo.
The 2021 rebrand brightened the original Blurple (#7289DA) into the more saturated, confident #5865F2 seen today, and standardized a five-color "Discord palette" (Blurple, Green, Yellow, Fuchsia, Red) for accents, statuses, and illustration.
Key Characteristics:
#5865F2) as the universal interactive accent — buttons, links, mentions, active states#1E1F22 → #2B2D31 → #313338)#5865F2): Primary interactive color — CTAs, links, mentions, active channel, selected state, focus rings. The workhorse of every actionable element.#4752C4): Hover/pressed state for Blurple buttons. A darker, deeper Blurple.#3C45A5): Pressed/active state, the deepest Blurple step.#FFFFFF): Primary text on dark surfaces, button labels on Blurple.#5865F2): The signature. Brand and interaction.#57F287): Success, online status, positive confirmation, Nitro accents.#FEE75C): Idle status, highlights, playful accent, warnings (soft).#EB459E): Nitro / premium accent, decorative pop, special moments.#ED4245): Errors, destructive actions, Do Not Disturb status, mention badges.#1E1F22): Server rail (left-most), deepest surface, also app chrome.#2B2D31): Channel sidebar, member list — the second layer.#313338): Main chat area — the surface you read on.#111214): Tooltips, popouts, context menus — darker than primary for lift.rgba(78,80,88,0.3)): Row hover in lists and channels.rgba(78,80,88,0.6)): Selected channel/row background.#FFFFFF): Main chat area in light mode.#F2F3F5): Channel sidebar in light mode.#E3E5E8): Server rail / deepest light surface.#DBDEE1): Primary body / message text. Soft off-white, not pure white, to reduce eye strain.#F2F3F5): Headings, usernames, strong labels.#949BA4): Timestamps, secondary metadata, placeholder, channel names (inactive).#B5BAC1): Default icon/interactive element color.#DBDEE1): Hovered icon/interactive element.#00A8FC): Inline hyperlinks in messages (a brighter cyan-blue, distinct from Blurple).rgba(255,255,255,0.06)): Hairline dividers between sections.#1E1F22): Channel/server separators, input outlines on dark.#1E1F22): Message box and form input fill on dark."gg sans", "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif"ginto", "gg sans", sans-serif — Discord uses a Ginto-family display face for big marketing headlines."gg mono", Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", Menlo, Monaco, monospacegg sans ships in six weights: 300 (Light), 400 (Normal), 500 (Medium), 600 (Semibold), 700 (Bold), 800 (Extrabold). The product UI primarily uses 400, 500, 600, and 700.
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Marketing Hero | ginto / gg sans | 56px | 800 | 1.1 | -0.02em | Landing page headline |
| Display Large | gg sans | 32px | 700 | 40px (1.25) | -0.01em | Modal titles, big moments |
| Heading 1 | gg sans | 24px | 700 | 30px (1.25) | normal | Section headers |
| Heading 2 | gg sans | 20px | 600 | 26px (1.30) | normal | Sub-sections, settings groups |
| Channel Name | gg sans | 16px | 600 | 20px (1.25) | normal | Channel/server headers |
| Body Large | gg sans | 16px | 400 | 22px (1.375) | normal | Message text, descriptions |
| Body | gg sans | 14px | 400 | 18px (1.29) | normal | Standard UI text, list items |
| Label | gg sans | 12px | 600 | 16px (1.33) | 0.02em | Section labels (UPPERCASE) |
| Caption | gg sans | 12px | 400 | 16px (1.33) | normal | Timestamps, helper text |
| Code | gg mono | 14px | 400 | 18px (1.29) | normal | Inline code, code blocks |
#DBDEE1, never #FFFFFF, on dark surfaces — reduces glare during long chat sessions.0.02em tracking for scannable structure.Discord buttons are filled, borderless, and pill-to-rounded. Default height is 38px (medium); a 32px small and a 44px large also exist. Radius is 8px for standard buttons (Discord moved toward more rounded buttons post-rebrand; many primary CTAs are fully pill-shaped on marketing).
Primary (Brand)
#5865F2#FFFFFF#4752C4#3C45A5Secondary (Grey)
#4E5058#FFFFFF#6D6F78Success (Green)
#248046#FFFFFF#1A6334Destructive (Red)
#DA373C#FFFFFF#A12828Link / Ghost
#FFFFFF (underline on hover)Outline
#FFFFFF#4E5058Marketing CTA (Pill)
#FFFFFF (on Blurple section) or #5865F2 (on white section)#23272A on white / #FFFFFF on BlurpleText Input (dark)
#1E1F22#DBDEE1#1E1F22 (default), #5865F2 on focus#87898CMessage Box
#383A40#DBDEE1#6D6F78 ("Message #general")Error Input
#1E1F22#FA777C#FA777C 12px belowEmbed (link/bot card)
#2B2D31#5865F2 (color customizable per embed)Settings Card
#2B2D31Modal
#313338#2B2D31)0 8px 16px rgba(0,0,0,0.24)Mention Badge (unread count)
#F23F43 (red)#FFFFFFNitro / Premium Badge
#5865F2 or gradient toward #EB459E#FFFFFFStatus Pill
#23A55A, Idle #F0B232, DND #F23F43, Offline #80848E#2B2D31 ring)Settings Sidebar Item (Active)
#404249#FFFFFF#B5BAC1, transparent bg; hover #35373C bg + #DBDEE1 textChannel Item (Active)
rgba(78,80,88,0.6)#FFFFFF#949BA4; hover rgba(78,80,88,0.3) + #DBDEE1#111214#F2F3F50 4px 8px rgba(0,0,0,0.24)#111214#DBDEE10 8px 16px rgba(0,0,0,0.24)#23A55A (green) — Discord toggles go green when active, not Blurple#80848E#FFFFFF circle with subtle inner shadow; on-state shows a check glyphTier 1 sources: https://discord.com (live production site, verified via live DOM getComputedStyle).
#1E1F22 < #2B2D31 < #313338 as receding-to-near.| Level | Treatment | Use |
|---|---|---|
| Base (Level 0) | Surface color only (#313338) | Main chat, page background |
| Layer (Level 1) | Adjacent darker surface (#2B2D31) | Sidebars, cards — depth via color, not shadow |
| Floating (Level 2) | 0 4px 8px rgba(0,0,0,0.24) on #111214 | Tooltips, popouts, context menus |
| Modal (Level 3) | 0 8px 16px rgba(0,0,0,0.24) on #313338 | Dialogs, settings overlays |
| High (Level 4) | 0 12px 32px rgba(0,0,0,0.36) | Full-screen modals, image lightbox |
Shadow Philosophy: In dark mode, Discord communicates elevation primarily through surface color stepping rather than shadow — a floating panel is darker (#111214) than the surface it sits on (#313338), which reads as lifted. Shadows are reserved for true overlays (menus, modals) and are soft, pure-black, low-opacity. Marketing surfaces use slightly more playful drop shadows and a faint Blurple glow on hovered CTAs.
rgba(0,0,0,0.85) behind dialogs#5865F2) for the single primary action and all interactive accents#1E1F22 / #2B2D31 / #313338)#DBDEE1) for body text, reserving pure white for headers/usernames#23A55A) for toggles and online status, not Blurple#7289DA) — the brand moved to #5865F2 in 2021#FFFFFF) for long-form body text on dark surfaces| Name | Width | Key Changes |
|---|---|---|
| Mobile | <768px | Single panel at a time; swipe between server rail, channels, chat, members |
| Tablet | 768–1024px | Two panels visible; member list collapses to a toggle |
| Desktop | >1024px | Full three/four-panel shell |
#5865F2 if no image#5865F2)#4752C4)#313338#2B2D31#1E1F22 / #111214#DBDEE1)#F2F3F5#949BA4#00A8FC)#23A55A / #57F287)#ED4245 / #F23F43)#F0B232 / #FEE75C)#EB459E)#313338, 40px circular avatar, username in #F2F3F5 16px weight 600 next to timestamp #949BA4 12px, message body #DBDEE1 16px weight 400. Hover: row bg rgba(78,80,88,0.3) with action icons appearing top-right."#5865F2 bg, white 14px weight 500 text, 8px radius, 2px 16px padding, 38px min-height. Hover #4752C4, active #3C45A5, disabled opacity 0.5."#2B2D31 bg, 240px wide. Category labels uppercase 12px weight 600 #949BA4 with 0.02em tracking. Channel items 16px #949BA4, hover rgba(78,80,88,0.3), active rgba(78,80,88,0.6) with white text."#383A40 bg, 8px radius, 11px 16px padding, placeholder #6D6F78 reading 'Message #general', text #DBDEE1 16px."#1E1F22, 48px squircle icons (16px radius) with 8px gaps. Active server shows an 8px white pill on the left edge. Hover morphs the icon from circle to squircle."#5865F2) is the one interactive accent — green is for toggles/status, not actions.#DBDEE1; headers/usernames are #F2F3F5; metadata #949BA4.Discord writes like the friend who runs the group chat — casual, warm, lowercase-comfortable, in on the joke, but never confusing when it matters. The brand voice leans playful ("Group chat that's all fun & games," "hop in when you're free, no need to call") and leans on its mascots (Wumpus, Clyde, Nelly) for personality. But the voice is situational: it gets out of the way in safety, billing, and destructive flows, where copy turns plain and direct.
| Context | Tone |
|---|---|
| Marketing headlines | Playful, lowercase-leaning, community-first ("imagine a place...") |
| CTAs | Short, inviting verbs ("Open Discord", "Join", "Add Friend", "Send") |
| Empty states | Friendly + Wumpus illustration + one suggested action ("It's quiet here... for now.") |
| Success messages | Light, brief, occasionally cheeky ("Friend request sent!") |
| Error messages | Plain and specific — playful tone drops ("Something went wrong. Try again.") |
| Safety / Trust & Safety | Direct, serious, no jokes — clarity over personality |
| Billing / Nitro | Clear value framing, gentle excitement, never pressure |
| Notifications | Concise, scannable, who-did-what-where |
Forbidden in serious flows. No memes, no Wumpus, no exclamation-stacking in safety, account-security, payment-failure, or moderation copy. The playful voice is a feature of discovery and community surfaces, not of consequence surfaces.
Discord was founded in 2015 by Jason Citron and Stan Vishnevskiy, born out of the frustration that existing voice-chat tools (Skype, TeamSpeak, Ventrilo) were clunky for gaming with friends. The original wedge was simple: low-latency voice chat that just worked while you played. From there it grew into "your place to talk" — a platform of community-run servers organized into channels for text, voice, and video.
The brand's central metaphor is the clubhouse: a place that's yours and your friends', persistent, low-pressure, drop-in. The product design encodes this — the three-panel shell is a literal building (rail of buildings → rooms inside → the room you're in), and the dark, focused UI keeps the spotlight on conversation. The mascot Clyde (and the rounded logo built from his face) gives the whole system its friendly geometry; Wumpus, the wide-eyed blob, is the marketing heart.
The 2021 rebrand was a pivotal design moment. Discord broadened from "for gamers" to "for everyone — communities of any kind," and the visual system grew up with it: the new brighter Blurple (#5865F2), the proprietary gg sans typeface replacing licensed fonts, a five-color palette, and a more illustration-forward marketing language. The rebrand kept the playfulness but added range — the system could now be loud and inviting on the landing page and calm and focused in the app.
What Discord refuses: the sterile minimalism of enterprise chat (Slack's neutrality, Teams' corporate gray), and the attention-hungry feed mechanics of social media. There is no algorithmic feed, no like-count dopamine loop. The design's job is to make a room feel alive without making it feel like a product trying to capture you. Blurple is friendly, not urgent; the dark surfaces are a place to settle in, not a dashboard to monitor.
Personas below are fictional archetypes informed by publicly described Discord user segments, not individual people.
Maya, 19, Austin TX. College sophomore who runs a 400-member server for her art community. Lives in dark mode, switches between five servers a day, and treats Discord as her primary social home — more than Instagram. She notices when a server icon's mention badge turns red and triages by color. She expects new features to feel native and unobtrusive; an intrusive popup gets dismissed in half a second. Heavy emoji and custom-sticker user; personality matters as much as function.
Devon, 27, Seattle. Backend engineer who uses Discord for three things: a gaming friend group, two open-source project servers, and a hobby mechanical-keyboard community. Values low-latency voice above all (it's why he came), keeps notifications tightly tuned, and reads code blocks in gg mono daily. Skeptical of feature bloat — he wants the clubhouse to stay a clubhouse, not become a platform that monetizes his attention. Will pay for Nitro for the quality-of-life perks, not the flex.
Priya, 34, London. Community manager who administers a 12,000-member server for a creator. Lives in moderation tools, audit logs, and role/permission settings. For her the playful tone must never leak into safety and moderation surfaces — she needs clear, unambiguous controls. Cares about onboarding flows (rules screens, verification) being legible to brand-new members. Uses the desktop app on a wide monitor with all four panels open.
| State | Treatment |
|---|---|
| Empty (no messages) | Wumpus illustration centered, friendly one-liner in #949BA4 ("This is the start of the #channel channel."), no hard CTA — the message box invites the first message. |
| Empty (no friends/DMs) | Larger Wumpus illustration, headline in #F2F3F5, single Blurple "Add Friend" button. Warm, inviting copy. |
| Loading (first paint) | Skeleton blocks in #3A3C42 matching message-row layout (avatar circle + text bars). Subtle shimmer. Server rail and sidebars paint first. |
| Loading (sending message) | Message appears immediately in a dimmed opacity: 0.6 state; resolves to full opacity on server ack. Fails to a red retry affordance. |
| Error (inline field) | #FA777C 1px border on input, helper text below in #FA777C 12px. One clear sentence. |
| Error (connection) | Top banner in #F0B232 (reconnecting) or #F23F43 (offline) with white text, spans the chat width, auto-clears on reconnect. |
| Error (action failed) | Toast on #111214, #DBDEE1 text, red left accent, plain copy ("Couldn't send. Try again."). No jokes. |
| Success (friend added / settings saved) | Brief toast or inline green flash; a "Saved" pill in #23A55A. Settings pages show a sticky "Careful — you have unsaved changes!" bar in #1E1F22 until saved. |
| Presence states | Online #23A55A, Idle #F0B232 (crescent), DND #F23F43 (minus bar), Offline #80848E, Streaming #593695 (purple). Dot has a #2B2D31 ring against the surface. |
| Disabled | Buttons drop to opacity: 0.5, no hover, cursor: not-allowed. Inputs keep border geometry, text greys to #87898C. |
| Hover (message row) | Row bg shifts to rgba(78,80,88,0.3), action toolbar (react, reply, more) fades in top-right over motion-fast. |
| Spoiler / NSFW | Content covered by heavy blur + #202225 overlay, revealed on click. Streamer mode auto-blurs sensitive UI. |
Durations:
| Token | Value | Use |
|---|---|---|
motion-instant | 0ms | Theme toggles, immediate state flips |
motion-fast | 100ms | Hover reveals, tooltip show, icon color change, message action toolbar |
motion-standard | 200ms | The default — popouts, dropdowns, tab switches, badge pop |
motion-emphasis | 300ms | Modal open, settings page transitions, panel slides |
motion-page | 350ms | Mobile panel swipes, full-screen sheet presentation |
Easings:
| Token | Curve | Use |
|---|---|---|
ease-enter | cubic-bezier(0.0, 0.0, 0.2, 1) | Things appearing — popouts, tooltips, modals |
ease-exit | cubic-bezier(0.4, 0.0, 1, 1) | Things leaving — dismissals, closing menus |
ease-standard | cubic-bezier(0.4, 0.0, 0.2, 1) | Two-way transitions — accordions, tab content |
ease-bounce | cubic-bezier(0.34, 1.56, 0.64, 1) | Playful overshoot — server-icon squircle morph, mention-badge pop, emoji reactions |
Signature motions.
motion-standard / ease-bounce. A white pill simultaneously grows on the left rail edge (4px idle → 40px active). This is the single most recognizable Discord micro-interaction.ease-bounce, motion-standard). Reactions and emoji additions use the same bounce.motion-fast / ease-enter — fast enough to feel instant, smooth enough to feel intentional.0.95 → 1.0 with opacity 0 → 1 over motion-standard / ease-enter; modals additionally fade in a rgba(0,0,0,0.85) scrim. Dismissals use motion-fast / ease-exit.prefers-reduced-motion: reduce, bounce easings collapse to ease-standard, slides become fades, and the squircle morph becomes an instant radius change. The app stays fully usable.Discord is the place where communities hang out, and its interface is built to feel like a clubhouse, not an enterprise tool. The product UI lives almost entirely in dark mode by default — deep slate-navy surfaces (#313338 chat, #2B2D31 channel sidebar, #1E1F22 server rail) layered like physical panels, with one electric accent doing all the talking: Blurple (#5865F2). Blurple is a portmanteau of "blue" and "purple," and that in-between quality is the whole personality — friendly but not corporate, energetic but not aggressive. It is the most-tapped color in the app and the single most recognizable thing about the brand.
Do and Don't guidelines parsed from DESIGN.md.
Do
Don't