DESIGN.md · Analysis

Udemy

udemy.com · 14 Jul 2026 · 47 colors · Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif

Udemy

Udemy is a global online learning platform offering 26,000+ courses across skills, careers, and AI. The design system balances accessibility with vibrant energy through a purple-dominant palette and clean, modern typography.

Colors

surface#ffffff
surface-dim#f5f5f5
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f0f0f0
surface-container#e9e9e9
surface-container-high#e0e0e0
surface-container-highest#d8d8d8
on-surface#1a1a1a
on-surface-variant#5a5a5a
inverse-surface#2a2a2a
inverse-on-surface#f5f5f5
outline#c1c1c1
outline-variant#d7d7d7
surface-tint#5022c3
primary#5022c3
on-primary#ffffff
primary-container#8072e6
on-primary-container#ffffff
inverse-primary#c0c4fc
secondary#68b631
on-secondary#ffffff
secondary-container#a8d968
on-secondary-container#1a3d0a
tertiary#e9e729
on-tertiary#223509
tertiary-container#f3f2b8
on-tertiary-container#5c6a12
error#d32f2f
on-error#ffffff
error-container#ffcdd2
on-error-container#b71c1c
primary-fixed#eeeffc
primary-fixed-dim#d8e0fb
on-primary-fixed#180a3d
on-primary-fixed-variant#371783
secondary-fixed#e8f5e9
secondary-fixed-dim#c8e6c9
on-secondary-fixed#1b5e20
on-secondary-fixed-variant#558b2f
tertiary-fixed#f9f9d7
tertiary-fixed-dim#f3f2b8
on-tertiary-fixed#223509
on-tertiary-fixed-variant#5c6a12
background#ffffff
on-background#1a1a1a
surface-variant#e2e2e2

Typography

display
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 60px · fontWeight: 700 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 14px · fontWeight: 500 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Udemy Sans, -apple-system, BlinkMacSystemFont, Roboto, Segoe UI, Helvetica, Arial, sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Udemy is a global online learning platform democratizing education through accessible, high-quality courses in technology, business, creative skills, and AI. The design system embraces a "Vibrant Minimalism" aesthetic: a bold purple-dominant color palette (#5022c3) energizes the interface while clean typography and generous white space ensure clarity and focus. The brand personality is empowering yet approachable—confident in its mission to transform careers, but never condescending. The UI celebrates learning through dynamic hero sections, intuitive course discovery, and prominent call-to-action buttons that invite action without overwhelming the user. Voice: direct, encouraging, and practical. Example: "Master in-demand skills with expert instructors—start learning today."

Colors

The color system is anchored by a signature purple primary (#5022c3) used exclusively for interactive elements, CTAs, and brand-critical focus states. This purple appears across the full Material 3 token stack: primary-container (#8072e6) for elevated states, primary-fixed (#eeeffc) for subtle backgrounds, and inverse-primary (#c0c4fc) for dark-mode contexts. Supporting accents include a vibrant green secondary (#68b631) for success states and achievement badges, and a golden yellow tertiary (#e9e729) for highlights and promotional badges. The surface stack is anchored in clean whites (#ffffff for surface, #f5f5f5 for surface-dim) with carefully calibrated grays (#e9e9e9, #d8d8d8, #c1c1c1) for dividers, outlines, and container backgrounds. On-surface text is a near-black (#1a1a1a) for maxi

Typography

The typography system uses Udemy Sans as the primary typeface, with Roboto and system fonts as fallbacks, creating a modern, accessible hierarchy. Display (60px, 700 weight, -0.04em tracking) anchors hero sections and major announcements. Headline-lg (40px, 600 weight) introduces key sections like "Learn essential career and life skills." Headline-md (28px, 600 weight) breaks up content zones. Title-lg (20px, 600 weight) labels cards and subsections. Body-lg (18px, 400 weight, 28px line-height) carries descriptive copy and course descriptions. Body-md (16px, 400 weight, 24px line-height) is the default body text, applied to all paragraph content and list items. Label-md (14px, 500 weight, 0.01em tracking) styles button text, form labels, and navigation items. Label-sm (12px, 500 weight, 0.

Layout

The layout system uses a 12-column grid with a 1200px container max-width, maintaining a fluid 24px gutter on desktop and collapsing to 16px on tablet. Page rhythm is established through consistent spacing: 40px (lg) separates major sections (hero to course grid), 24px (md) separates cards within a grid, and 12px (sm) separates inline elements. The hero section spans full-width with a vibrant purple gradient background (#5022c3 to #8072e6), containing a white card overlay (surface-container-lowest) with headline-lg copy and two CTAs. Course cards use the card component (surface, 1px outline-variant border, 24px padding, 1rem rounded) arranged in a 3-column grid on desktop, 2-column on tablet, 1-column on mobile. White-space philosophy prioritizes breathing room: minimum 16px padding inside

Elevation & Depth

Depth is conveyed through a three-tier shadow system and subtle background shifts. Level 1 (Base): surface (#ffffff) with no shadow, used for the main page background and card interiors. Level 2 (Elevated Cards): surface with elevation.md shadow (0 3px 8px rgba(0, 0, 0, 0.15)), 1px outline-variant border (#d7d7d7), and surface-container-high background on hover. Level 3 (Modals & Overlays): modal-content with elevation.lg shadow (0 8px 24px rgba(0, 0, 0, 0.12)), 1.5rem rounded corners, and a semi-transparent dark overlay (rgba(0, 0, 0, 0.5) with 4px blur backdrop-filter). Interactive elements

Shapes

The shape philosophy is "Soft-Technical Clarity"—rounded corners are used strategically to soften the interface while maintaining a professional, modern aesthetic. Buttons use 1rem (16px) border-radius, creating a pill-like appearance that feels approachable and clickable. Cards and modals use 1.5rem (24px) border-radius for a more generous, premium feel. Input fields use 0.5rem (8px) border-radius for a subtle, contained look. Chips and badges use 9999px (full) border-radius for a fully rounded appearance, signaling their role as discrete, removable elements. The hero section and large contai

Components

Action Elements Buttons are the primary interaction mechanism. The button-primary component uses {colors.primary} (#5022c3) background with white text, 12px 24px padding, 48px height, and 1rem border-radius. On hover, the background shifts to #371783 (a darker purple from the primary scale) with a 0 3px 8px rgba(80, 34, 195, 0.2) shadow and 200ms ease-out transition. On active/pressed, the background becomes #281160 (even darker) with no shadow. The button-secondary component uses a transparent background with a 2px solid {colors.primary} border, {colors.primary} text, and the same padding and height. On hover, it gains a {colors.primary-fixed} (#eeeffc) background while maintaining the border. Both button variants use {typography.label-md} (14px, 500 weight) and apply cursor: pointer.

Do's and Don'ts

**Do**

  • Do use {colors.primary} (#5022c3) exclusively for CTAs, links, and active states—never for backgrounds or decorative elements.
  • Do maintain 24px minimum padding inside cards and 40px spacing between major sections to preserve breathing room.
  • Do apply {typography.label-md} (14px, 500 weight) to all button text and form labels for consistency.
  • Do use {elevation.md} (0 3px 8px rgba(0, 0, 0, 0.15)) for cards and {elevation.lg} (0 8px 24px rgba(0, 0, 0, 0.12)) for modals—never mix shadow levels.
  • Do transition all interactive elements (buttons, cards, inputs) with 200ms ease-out timing for smooth, predictable motion.
  • Do use 1rem (16px) border-radius on buttons and 1.5rem (24px) on cards to maintain the soft-technical aesthetic.

**Don't**

  • Don't use secondary (#68b631) or tertiary (#e9e729) as primary CTAs—reserve these for badges, success states, and highlights only.
  • Don't apply shadows to buttons at rest; only add {elevation.md} on hover to signal interactivity.
  • Don't use border-radius values outside the defined scale (sm, DEFAULT, md, lg, xl, full)—custom radii break visual consistency.
  • Don't mix {typography.body-md} and {typography.label-md} in the same context; use body for descriptive copy and label for UI controls.
  • Don't apply text-shadow to body copy or headlines; reserve it only for small labels (label-sm) over busy backgrounds.
  • Don't use {colors.on-surface-variant} (#5a5a5a) for primary text—it's reserved for secondary information and disabled states.