All designs

Netflix

Streaming. Red-on-black cinema chrome, poster art as the entire layout.

extracted from https://www.netflix.com/ on 2026-07-03

Netflix Bulgaria - Watch TV Shows Online, Watch Movies Online

light-leaning · 1 stylesheets · 0 native variables

fonts Netflix Sans · Netflix Sans Variable · NKufi · GraphikTH · Netflix Sans Debug · Netflix Sans JA
---
name: netflix-com-design-system
source: https://www.netflix.com/
extracted: 2026-07-03
theme: light  # measured from neutral usage weight
colors:  # roles inferred from usage frequency + luminance; names verified against values
  canvas: "#ffffff"
  ink: "#161616"
  text-muted: "#a9a9a9"
  surface: "#ececec"
  hairline: "#808080"
  accent: "#e50914"  # red
  accent-2: "#eb3942"  # red
  accent-3: "#2bb871"  # green
fonts:
  primary: "Netflix Sans"  # medium-confidence: usage counts are close
---

# Netflix Bulgaria - Watch TV Shows Online, Watch Movies Online — Design System

Extracted from **https://www.netflix.com/** on 2026-07-03.

Every value below is mined from the site's live CSS (0 native custom properties, ranked usage counts). Role assignments are inferred from usage and luminance and marked as such — treat them as a strong starting point, not gospel.

## Overview

The system reads as light: measured neutral usage weighs 104 light against 116 dark. The palette is chromatic: 12 saturated values against 7 neutrals, led by red (`#e50914`). **Netflix Sans** leads the font stack, though usage counts are close — verify against rendered pages before committing. Corner radii run 0.125rem to 1rem.

## Usage rules

Derived from the measured usage below — each rule cites its evidence.

- Chromatic color carries 33% of measured usage — this palette uses color structurally. Saturated values can hold large surfaces here; timidity would misrepresent the source.
- The theme is light (measured neutral weight 104:116). Don't flip individual sections to the opposite mode.
- `0.125rem` is the workhorse radius (x16); treat the other radii as exceptions, not options.
- The only shadows are blur-less hairline offsets — this system barely uses elevation; don't add soft drop shadows.

## Colors

### Neutrals (light → dark)

| Token | Value | Usage | Inferred role |
| --- | --- | --- | --- |
| `neutral-50` | `#ffffff` | 100 | **canvas** — lightest neutral, matches the measured light-leaning theme |
| `neutral-100` | `#ececec` | 4 | **surface** — neutral closest to canvas luminance |
| `neutral-400` | `#a9a9a9` | 34 | **text-muted** — most-used mid-luminance neutral |
| `neutral-500` | `#808080` | 13 | **hairline** — next neutral near canvas, hairline-border weight |
| `neutral-800` | `#414141` | 5 | — |
| `neutral-900` | `#232323` | 13 | — |
| `neutral-950` | `#161616` | 17 | **ink** — darkest neutral, highest contrast against canvas |

### Accents

| Token | Value | Usage | Inferred role |
| --- | --- | --- | --- |
| `red` | `#e50914` | 13 | **accent** — most-used chromatic color |
| `red-2` | `#eb3942` | 12 | **accent-2** — supporting chromatic color |
| `green` | `#2bb871` | 12 | **accent-3** — supporting chromatic color |
| `orange` | `#d89d31` | 12 | — |
| `deep-blue` | `#050042` | 12 | — |
| `red-3` | `#c11119` | 6 | — |
| `red-4` | `#99161d` | 6 | — |
| `blue` | `#465a7e` | 6 | — |
| `deep-blue-2` | `#192247` | 5 | — |
| `deep-red` | `#461518` | 2 | — |
| `pink` | `#b82869` | 2 | — |
| `red-5` | `#e00000` | 2 | — |

## Typography

**Netflix Sans** has the most `font-family` declarations, but the margin over the rest is thin — treat the primary-face call as provisional and verify on rendered pages. Full list by usage:

| Family | Usage |
| --- | --- |
| Netflix Sans | 7 |
| Netflix Sans Variable | 4 |
| NKufi | 4 |
| GraphikTH | 4 |
| Netflix Sans Debug | 1 |
| Netflix Sans JA | 1 |

**Size scale (px):** `10`, `13`, `14`, `16`, `18`, `20`, `24`, `32`, `64`, `80`, `100`, `120`

**Weights in use:** `100` (x6), `300` (x1), `400` (x15), `500` (x4), `700` (x4), `900` (x1)

**Line-heights (unitless):** `1`, `1.5`

## Spacing

Most-used values (px): `2`, `4`, `7`, `12`, `16`, `22`, `24`, `32`, `36`, `40`, `80`, `96`

## Border radius

| Token | Value | Usage |
| --- | --- | --- |
| `radius-sm` | `0.125rem` | 16 |
| `radius-md` | `0.5rem` | 8 |
| `radius-lg` | `1rem` | 1 |

## Shadows (ordered by blur radius)

- `shadow-sm` — `0 0.25rem 0.5rem 0 rgba(0,0,0,0.8)` (x1)

## Breakpoints

`600px`, `960px`, `1280px`, `1600px`, `1920px`, `2560px`

## Starter recipes

Tokens composed into components. The source site's real components were **not** inspected — these are starting points built from the extracted values, with contrast ratios computed rather than assumed.

```css
.button-primary {
  background: var(--color-accent); /* #e50914 */
  color: var(--color-canvas); /* #ffffff — contrast 4.8:1 */
  border-radius: 0.125rem;
  font-weight: 500;
}

.card {
  background: var(--color-surface); /* #ececec */
  border: 1px solid var(--color-hairline); /* #808080 */
  border-radius: 0.125rem; /* most-used finite radius */
  box-shadow: var(--shadow-sm);
}

.input {
  background: var(--color-canvas); /* #ffffff */
  color: var(--color-ink); /* #161616 — contrast 18.1:1 */
  border: 1px solid var(--color-hairline); /* #808080 */
  border-radius: 0.125rem;
  /* placeholder color: var(--color-text-muted) #a9a9a9 */
}

.nav {
  background: var(--color-canvas); /* #ffffff */
  border-bottom: 1px solid var(--color-hairline); /* #808080 */
  color: var(--color-ink); /* #161616 */
  /* inactive links: var(--color-text-muted) #a9a9a9 */
  /* active link: var(--color-accent) #e50914 — contrast vs canvas 4.8:1 */
}

.modal {
  background: var(--color-surface); /* #ececec */
  border-radius: 0.125rem;
  box-shadow: var(--shadow-sm); /* largest mined shadow */
}

.modal-backdrop {
  background: color-mix(in srgb, var(--color-ink) 55%, transparent); /* scrim from #161616 */
}

.input-error {
  border-color: #e50914; /* mined token: red */
  /* error text: #e50914 on canvas — contrast 4.8:1 */
}

.input-success {
  border-color: #2bb871; /* mined token: green */
}
```

## Observations

- 7 of 19 extracted colors are neutrals.
- 1 distinct shadow; the softest reaches 0px blur.
- 6 breakpoints, from 600px to 2560px.

## Files

- `tailwind.css` — Tailwind v4 `@theme` block; tokens become utilities (e.g. `bg-neutral-900`, `text-red`).
- `variables.css` — framework-agnostic `:root` variables, same values.
- `tokens.json` — W3C Design Tokens format for Figma plugins, Style Dictionary, etc.