BrandToPrompt

YouTube Design System: Functional Content-First UI

Visit Site

Explore YouTube's design system - colors, typography, spacing, and components. Learn how YouTube builds a functional, content-first interface.

7 min read1,219 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
YouTube Noto
Secondary Font
YouTube Sans

Design Style

Style
restrained and functional with minimal chrome, bold accent colors, and compact layouts
Visual Density
compact grid-based with high information density
Border Style
mixed: 4px cards, 18px pill buttons, 50% avatars

Full Analysis

YouTube Brand Design System Deep-Dive

1. Brand Overview

YouTube’s design system is the visual backbone of the largest video-sharing platform on the planet. This is a product used by billions of people every month, across every device imaginable. That scale shows in the design choices — everything is engineered for clarity, speed, and familiarity. There’s no experimental typography here, no eccentric layouts. It’s utility-first.

The YouTube UI is designed primarily for content immersion. The platform’s brand is secondary to the content creators’ brands. YouTube’s own visual language is restrained: headline red, heavy use of black, white, and neutral greys, and a type stack built for performance. This works because the product’s job is to frame video, not upstage it.

Navigation, search, and interaction affordances are immediately obvious. Buttons are large enough for touch and mouse users. States are clear — hover, active, focus — with distinct visual changes. They’ve built a system that can scale from a 4K TV to a low-end Android phone without losing clarity.

The design philosophy is “functional consistency.” The same patterns repeat across watch pages, home feed, and channel pages. Even live chat and interactive overlays follow the same radius, color, and typography rules. This is not about visual experimentation — it’s about maintaining a mental model for the user.

For designers and developers, YouTube’s system is a masterclass in brand restraint. They’ve got a globally recognized red, but they deploy it sparingly. The UI lives mostly in shades of black, grey, and white. That makes creator thumbnails and video content pop — the UI fades back.

And importantly: this is an interface designed to survive over a decade of small incremental changes. The base grid, the palette, the typography stack — all are stable foundations that have shifted only slightly over the years. That’s exactly what you want in a platform with this kind of scale.


2. Color System

2.1 Primary Colors

The primary brand color is red. Specifically, #ff0000 (--yt-brand-youtube-red). This is instantly recognizable and psychologically loaded — urgency, excitement, attention. YouTube uses it for brand marks (logo, play button) and sparingly for UI elements like "Subscribe" buttons or live badges.

The “spec” brand red is also defined as #ff0033 (--yt-spec-static-brand-red). This is a slightly warmer, pinker variant used in overlays and certain brand contexts. They also have deeper reds (#c00 and #c30027) for contrast requirements.

Competitor comparison: Netflix leans heavily into red backgrounds with white text; YouTube avoids large red fields in the UI entirely. Their red is an accent, not a background.

2.2 Complete Palette

Here’s every extracted color in a structured table:

Color Name / VariableHexRoleUsage
Primary Black (primary)#000000Base text, icons, dark theme bgDefault text, dark UI backgrounds
Secondary Transparent (secondary)rgba(0,0,0,0)Overlay baseTransparent surfaces
Dark Grey#0f0f0fDark theme panelsCards, headers in dark mode
Light Grey 1#eeeeeeLight surfacesBackgrounds, dividers
Medium Grey#606060Secondary textMetadata, captions
Brand Blue#065fd4Links, CTAsLink text, accent buttons
Light Grey 2#e3e3e3BordersInput borders, dividers
White#ffffffBackground / textLight mode background, text on dark
Deep Blue#005fccHover/focus accentsLink hover states
Light Grey 3#f0f0f0Hover bgHovered list items
Mid Grey#c6c6c6Hover bordersButton hover borders
Light Blue Tint#def1ffHover bg for infoNotification hovers
Brand Red (--yt-brand-youtube-red)#ff0000BrandLogo, subscribe buttons
Spec Brand Red (--yt-spec-static-brand-red)#ff0033Brand accentOverlays, CTA backgrounds
Brand Medium Red#cc0000Darker brand redHover states
Brand Red Contrast#c30027Contrast on redText over brand red
Overlay Brandrgba(225,0,45,0.9)Overlay scrimModal backgrounds
CTA Blue#4285f4Send buttonsLive chat send
Error Orange#dd2c00Error statesValidation, error banners
Sponsor Green#107516Success statesSponsor badges
Moderator Bluehsl(225,84%,66%)Role badgeLive chat moderator
Mention Orange#ff5722MentionsLive chat mentions
Disabled Grey#9b9b9bDisabled textDisabled buttons

(Plus many role-specific chat colors defined as HSL/HSLA in CSS variables.)

2.3 Color Relationships

Contrast: Text colors (#000, #0f0f0f, #606060) over white (#fff) easily pass WCAG AA. The brand red (#ff0000) on white is high contrast; white text over brand red also passes when using the darker contrast variant (#c30027).

Dark mode uses #0f0f0f as the base with white text. Secondary text in dark mode is light grey (#bcbcbc) for readability.

2.4 Usage Guide

  • Use red sparingly — only for brand marks, primary CTAs like Subscribe, or live indicators.
  • Blue (#065fd4) is the interaction color. Use it for links and secondary actions.
  • Greys create the hierarchy: darker for important text (#0f0f0f), mid (#606060) for metadata, light greys for dividers.
  • Avoid combining brand red with brand blue — they fight for attention.
  • In dark mode, maintain high contrast by pairing #0f0f0f backgrounds with #fff text.

3. Typography

3.1 Font Families

YouTube uses a mix of:

  • YouTube Noto — custom variant of Noto Sans, primary UI font.
  • YouTube Sans — for certain headings.
  • Roboto — fallback and for smaller UI text.
  • Fallbacks: Arial, Helvetica.

All are sourced from Google Fonts (Roboto, Roboto Mono) or custom-hosted (YouTube Sans, YouTube Noto). Variable fonts are supported.

3.2 Type Scale

ElementFontSizeWeightLine Height
Heading-1YouTube Noto23.98px (1.50rem)5001.30
Heading-1Roboto20px (1.25rem)700
Heading-1YouTube Noto20px4001.30
Heading-1YouTube Sans20px7001.40
Heading-1YouTube Noto19.25px4001.30
Heading-1YouTube Noto18px4001.30
Heading-1YouTube Noto18px7001.30
Heading-1Roboto18px4001.44
Heading-1YouTube Noto17.05px4001.17
Heading-1Roboto16px4001.38
Heading-1YouTube Noto16px4001.30
Heading-1YouTube Noto14.96px4001.34
ButtonYouTube Noto14.96px4001.34
Heading-1YouTube Noto14.3px5001.30
CaptionRoboto14px5001.43
ButtonRoboto14px5002.57
LinkRoboto14px5002.57
CaptionRoboto14px4001.43
CaptionYouTube Noto14px4001.30
CaptionYouTube Noto14px5001.30
ButtonYouTube Noto14px5001.30 (uppercase)
ButtonYouTube Noto14px5002.86
CaptionYouTube Noto13.97px5001.30 (uppercase)
ButtonArial13.33px4000
CaptionArial13.33px4000
ButtonYouTube Noto13.07px4003.60
CaptionYouTube Noto13.07px5001.84
LinkRoboto13px5001.38
CaptionYouTube Noto13px4001.00
CaptionYouTube Noto12px4001.30
CaptionYouTube Noto12px5001.30
CaptionRoboto12px4001.25
ButtonYouTube Noto11.99px4004.67
CaptionYouTube Noto11.99px4004.67
CaptionRoboto11.7px700
CaptionYouTube Noto11px4001.30
ButtonYouTube Noto11px4001.30
CaptionRoboto10px400
LinkRoboto10px400
ButtonRoboto10px400
CaptionRoboto0px400— (uppercase)

3.3 Hierarchy

Hierarchy is subtle. The largest heading in the UI is 23.98px, which isn’t huge — content thumbnails dominate. Sizes step down in small increments (20px, 19.25px, 18px…), keeping density high. Weight shifts (400 vs 500 vs 700) do more work than size shifts in defining importance.

This works because the UI is busy — smaller type keeps the chrome from overwhelming the feed.


4. Spacing & Layout

4.1 Spacing Scale

Base unit: 8px grid, with occasional half-steps (4px) and odd values for specific tweaks.

ValueRemCountUsage
1px0.06rem3Hairline borders
2.5px0.16rem3Icon offsets
4px0.25rem37Tight gaps
5px0.31rem14Small paddings
6px0.38rem9Icon padding
7px0.44rem13Micro spacing
8px0.50rem61Core grid unit
10px0.63rem11Button padding
12px0.75rem62Common gap
15px0.94rem2Specific layout
16px1.00rem12Section padding
18px1.13rem11Card padding
20px1.25rem8Section padding
24px1.50rem9Grid gaps
32px2.00rem3Large padding
50px3.13rem2Hero spacing
56px3.50rem1Hero spacing
100px6.25rem2Huge gaps
120px7.50rem1Hero section

4.2 Layout

Breakpoints are granular — dozens of pixel-specific ones from 250px to 2244px. This suggests highly tuned responsive layouts for different embed contexts and device classes. No single “container max width” — it’s fluid.


5. Visual Elements

Border Radius

Ranges from sharp (0px) to full circles (50%). Common values:

  • 4px, 8px, 10px: cards, buttons, badges.
  • 18px: pill buttons.
  • 50%: avatars, round icons.
  • Odd custom radii: 0px 40px 40px 0px (search button), 28px 0px 0px 28px (rounded on one side).

Shadows

Minimal. A few low-opacity black shadows for elevation:

  • rgba(0,0,0,0.1) 0px 8px 23px
  • rgba(0,0,0,0.16) 0px 2px 5px etc.

Shadows are rare — borders and background colors handle separation.

Borders

Mostly 1px solid in grey or black, low opacity. Dividers use rgba(0,0,0,0.1) or light grey.


6. Components

6.1 Buttons

Variant 1: Neutral Pill Button

  • Default: bg rgba(0,0,0,0.05), text #0f0f0f, padding 0 16px, radius 18px, border none.
  • Hover: bg #e5e5e5, scale(1.67).
  • Active: bg rgba(255,255,255,0.3), inset shadow, 50% opacity.
  • Focus: bg #0f0f0f, white text, 2px white border.

Variant 2: Search Button

  • Default: bg #f8f8f8, border 1px solid #d3d3d3, radius 0px 40px 40px 0px.
  • Hover: bg #e5e5e5, border 1px solid #c6c6c6, scale(1.67).
  • Active/Focus: same pattern as above.

Variant 3: Outline Blue

  • Default: transparent bg, text #065fd4, border 1px solid rgba(0,0,0,0.1), radius 18px.
  • Hover: bg #2266cc, border #3a3a3a, box-shadow overlay.
  • Focus: bg #0f0f0f, white text, 2px white border, inset blue glow.

Four styles:

  • Black (#0f0f0f) no underline.
  • Darker black (#030303) no underline.
  • Blue (#065fd4) bold.
  • Grey (#606060) bold.

Hover: color inherit, still no underline.

6.3 Forms

Text inputs: transparent bg, no border by default. On focus: bg var(--yt-spec-overlay-tonal-hover), border 2px solid var(--yt-spec-call-to-action).


7. Design Tokens (CSS Custom Properties)

:root {
  /* Colors */
  --color-primary-black: #000000;
  --color-dark-grey: #0f0f0f;
  --color-light-grey-1: #eeeeee;
  --color-medium-grey: #606060;
  --color-brand-blue: #065fd4;
  --color-light-grey-2: #e3e3e3;
  --color-white: #ffffff;
  --color-deep-blue: #005fcc;
  --color-light-grey-3: #f0f0f0;
  --color-mid-grey: #c6c6c6;
  --color-light-blue-tint: #def1ff;
  --color-brand-red: #ff0000;
  --color-spec-brand-red: #ff0033;
  --color-brand-medium-red: #cc0000;
  --color-brand-red-contrast: #c30027;
  --color-overlay-brand: rgba(225,0,45,0.9);
  --color-cta-blue: #4285f4;
  --color-error-orange: #dd2c00;
  --color-sponsor-green: #107516;
  --color-moderator-blue: hsl(225,84%,66%);
  --color-mention-orange: #ff5722;
  --color-disabled-grey: #9b9b9b;

  /* Typography */
  --font-youtube-noto: "YouTube Noto", Roboto, Arial, Helvetica;
  --font-youtube-sans: "YouTube Sans", Roboto;
  --font-roboto: Roboto, Arial;
  --font-arial: Arial;

  /* Spacing */
  --space-1: 1px;
  --space-2-5: 2.5px;
  --space-4: 4px;
  --space-5: 5px;
  --space-6: 6px;
  --space-7: 7px;
  --space-8: 8px;
  --space-10: 10px;
  --space-12: 12px;
  --space-15: 15px;
  --space-16: 16px;
  --space-18: 18px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-50: 50px;
  --space-56: 56px;
  --space-100: 100px;
  --space-120: 120px;

  /* Border Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 10px;
  --radius-xl: 18px;
  --radius-full: 50%;

  /* Shadows */
  --shadow-1: rgba(0,0,0,0.1) 0px 8px 23px 0px;
  --shadow-2: rgba(0,0,0,0.16) 0px 2px 5px 0px, rgba(0,0,0,0.2) 0px 3px 6px 0px;
}

8. AI Coding Assistant Prompt

# YouTube Design System Specification

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

## Brand Context
YouTube’s design is functional, content-first, and globally recognizable. UI chrome is restrained to black, white, and neutral greys, with brand red and blue accents for key actions. Typography is compact, sans-serif, and optimized for dense information layouts.

## Color Palette
- Primary Black: #000000 — default text, dark theme backgrounds
- Dark Grey: #0f0f0f — dark panels, headers
- Light Grey 1: #eeeeee — light surfaces, dividers
- Medium Grey: #606060 — secondary text
- Brand Blue: #065fd4 — links, CTAs
- Light Grey 2: #e3e3e3 — borders
- White: #ffffff — backgrounds, text on dark
- Deep Blue: #005fcc — hover/focus accents
- Light Grey 3: #f0f0f0 — hover backgrounds
- Mid Grey: #c6c6c6 — hover borders
- Light Blue Tint: #def1ff — info hover backgrounds
- Brand Red: #ff0000 — logo, subscribe buttons
- Spec Brand Red: #ff0033 — overlays, CTA backgrounds
- Brand Medium Red: #cc0000 — hover states
- Brand Red Contrast: #c30027 — text on red
- Overlay Brand: rgba(225,0,45,0.9) — modal backgrounds
- CTA Blue: #4285f4 — send buttons
- Error Orange: #dd2c00 — errors
- Sponsor Green: #107516 — success
- Moderator Blue: hsl(225,84%,66%) — role badges
- Mention Orange: #ff5722 — live chat mentions
- Disabled Grey: #9b9b9b — disabled text

## Typography
- Headings: "YouTube Noto", Roboto, Arial, Helvetica
- Secondary Headings: "YouTube Sans", Roboto
- Body: Roboto, Arial
- Fallback: Arial

| Level | Size | Weight | Line Height | Use For |
|-------|------|--------|-------------|---------|
| H1 | 23.98px | 500 | 1.30 | Page titles |
| H1 Alt | 20px | 700 | — | Section titles |
| Body | 14px | 400 | 1.43 | Paragraph text |
| Button | 14px | 500 | 1.30 | Interactive labels |
| Caption | 12px | 400 | 1.30 | Metadata |

## Spacing & Grid
Base: 8px grid. Available: 1px, 2.5px, 4px, 5px, 6px, 7px, 8px, 10px, 12px, 15px, 16px, 18px, 20px, 24px, 32px, 50px, 56px, 100px, 120px.

## Border Radius
- none: 0px — flat edges
- sm: 4px — small cards, inputs
- md: 8px — buttons, cards
- lg: 10px — larger containers
- pill: 18px — pill buttons
- full: 50% — avatars, circular buttons

## Shadows & Depth
Minimal shadows. Use:
- rgba(0,0,0,0.1) 0px 8px 23px 0px
- rgba(0,0,0,0.16) 0px 2px 5px 0px, rgba(0,0,0,0.2) 0px 3px 6px 0px

## Component Specifications

### Primary Button (Neutral Pill)
Default: bg rgba(0,0,0,0.05), color #0f0f0f, padding 0 16px, radius 18px, no border.
Hover: bg #e5e5e5, scale(1.67).
Active: bg rgba(255,255,255,0.3), inset shadow, opacity 0.5.
Focus: bg #0f0f0f, color #fff, border 2px solid #fff.

### Search Button
Default: bg #f8f8f8, border 1px solid #d3d3d3, radius 0 40px 40px 0.
Hover: bg #e5e5e5, border #c6c6c6.
Focus: same as primary.

### Outline Blue Button
Default: transparent bg, text #065fd4, border 1px solid rgba(0,0,0,0.1), radius 18px.
Hover: bg #2266cc, border #3a3a3a.
Focus: bg #0f0f0f, white text, 2px white border.

### Links
- Default: no underline, color #065fd4 for interactive, #0f0f0f/#030303/#606060 for others.
- Hover: color inherit, no underline.

### Input Fields
Default: transparent bg, no border.
Focus: bg var(--yt-spec-overlay-tonal-hover), border 2px solid var(--yt-spec-call-to-action).

## Layout & Responsive Rules
Fluid width with breakpoints at: 250px, 300px, 768px, 1024px, 1280px, 1600px, 2244px (and many intermediates).

## Interaction Rules
- Transitions: ~150ms ease on state changes.
- Focus indicators: 2px solid white or brand blue inset glow.
- Hover scaling: up to 1.67 for some buttons.

## DO
- Use only defined palette.
- Maintain 8px grid.
- Keep red usage minimal and intentional.
- Use compact type sizes to keep UI density.
- Keep shadows subtle.

## DON'T
- Flood UI with red backgrounds.
- Introduce unapproved colors.
- Mix sharp and rounded corners arbitrarily.
- Overuse shadows.

## Code Examples

### Primary Button
```css
.btn-primary {
  background: rgba(0,0,0,0.05);
  color: #0f0f0f;
  padding: 0 16px;
  border-radius: 18px;
  border: none;
  font-weight: 500;
  font-size: 14px;
}
.btn-primary:hover {
  background: #e5e5e5;
  transform: scale(1.67);
}
.btn-primary:focus {
  background: #0f0f0f;
  color: #fff;
  border: 2px solid #fff;
}
```

### Search Button
```css
.btn-search {
  background: #f8f8f8;
  border: 1px solid #d3d3d3;
  border-radius: 0 40px 40px 0;
}
.btn-search:hover {
  background: #e5e5e5;
  border-color: #c6c6c6;
}
```

### Input
```css
.input {
  background: transparent;
  border: none;
}
.input:focus {
  background: var(--yt-spec-overlay-tonal-hover);
  border: 2px solid var(--yt-spec-call-to-action);
}
```

9. Summary

TL;DR — YouTube’s design language is content-first, with a restrained palette, compact typography, and consistent spacing. Red is sacred. Blue is functional. Everything else is neutral. The system is built for scale and familiarity, not novelty.

Brand Keywords:

  • content-first
  • restrained-functional
  • global-accessible
  • high-density
  • brand-disciplined