Design system extracted from https://www.netflix.com/vn/ on 2026-08-27 (code-based analysis).
— · card padding: ——0%{background-color:rgb(35,35,35);}40%{background-color:rgb(35,35,35);}70%{background-color:rgb(65,65,65);}90%{background-color:rgb(35,35,35);}
| Field | Value |
|---|---|
| Site / Project | https://www.netflix.com/vn/ |
| Analyzed on | 2026-08-27 |
| Analysis mode | Automated code extraction (no AI) |
This design system was extracted programmatically from the source page. It is built on a dark canvas (#000000), ink text (#000000), a vivid accent (#EB3942). All type is set in var(--hcw--local-design--Text-TextFontFamily). Detected font weights: 100, 300, 400, 500, 700, 900. Detected style signatures: glassmorphism; gradient-rich / aurora; technical / mono accents.
Logo asset(s): https://occ.a.nflxso.net/dnmt/api/v6/iL4oJVDYZ8KLSrJ6eG2OwtghbfQ/AAAAAfwxusEeCteu-L_QQ56_G2cohyI1E4BIh2uyr5t9gDhH0CKWHw3NVhndjuF7yQ26z3cYq_lnzY5pP6OarHyiibuiy2jIIa5sIhSvgal1S6u9YDVAyVoX6osPniEKN-dYy77H_pLfOCD7.svg
| Hex | RGB | HSL | Count |
|---|---|---|---|
#000000 | 0, 0, 0 | 0° 0% 0% | 92 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 41 |
#A9A9A9 | 169, 169, 169 | 0° 0% 66% | 16 |
#232323 | 35, 35, 35 | 0° 0% 14% | 9 |
#161616 | 22, 22, 22 | 0° 0% 9% | 5 |
#E50914 | 229, 9, 20 | 357° 92% 47% | 5 |
#808080 | 128, 128, 128 | 0° 0% 50% | 4 |
#EB3942 | 235, 57, 66 | 357° 82% 57% | 4 |
#2BB871 | 43, 184, 113 | 150° 62% 45% | 4 |
#D89D31 | 216, 157, 49 | 39° 68% 52% | 4 |
#414141 | 65, 65, 65 | 0° 0% 25% | 4 |
#192247 | 25, 34, 71 | 228° 48% 19% | 3 |
#461518 | 70, 21, 24 | 356° 54% 18% | 2 |
#ECECEC | 236, 236, 236 | 0° 0% 93% | 2 |
#210E17 | 33, 14, 23 | 332° 40% 9% | 2 |
#465A7E | 70, 90, 126 | 219° 29% 38% | 2 |
#050042 | 5, 0, 66 | 245° 100% 13% | 2 |
#000438 | 0, 4, 56 | 236° 100% 11% | 2 |
#C11119 | 193, 17, 25 | 357° 84% 41% | 2 |
#99161D | 153, 22, 29 | 357° 75% 34% | 2 |
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
|---|---|---|---|
--color-background | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-primary | #E50914 | 229, 9, 20 | 357° 92% 47% |
--color-accent | #EB3942 | 235, 57, 66 | 357° 82% 57% |
--color-surface | #ECECEC | 236, 236, 236 | 0° 0% 93% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #A9A9A9 | 169, 169, 169 | 0° 0% 66% |
--color-border | #808080 | 128, 128, 128 | 0° 0% 50% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
radial-gradient(11% 56% at 17% 50%, #461518 0%, transparent 100%),radial-gradient(11% 56% at 83% 50%, #461518 0%, transparent 100%)0deg,
transparent 0%,
#6f181d 50%,
transparent 100%
)`
180deg,
rgba(0, 0, 0, 0.8000) 0.000%, rgba(0, 0, 0, 0.7889) 8.333%, rgba(0, 0, 0, 0.7556) 16.67%, rgba(0, 0, 0, 0.7000) 25.00%, rgba(0, 0, 0, 0.6222) 33.33%, rgba(0, 0, 0, 0.5222) 41.67%, rgba(0, 0, 0, 0.4000) 50.00%, rgba(0, 0, 0, 0.2778) 58.33%, rgba(0, 0, 0, 0.1778) 66.67%, rgba(0, 0, 0, 0.1000) 75.00%, rgba(0, 0, 0, 0.04444) 83.33%, rgba(0, 0, 0, 0.01111) 91.67%, rgba(0, 0, 0, 0.000) 100.0%
)`
linear-gradient(360deg, rgba(0, 0, 0, 0.9000) 0.000%, rgba(0, 0, 0, 0.8965) 8.500%, rgba(0, 0, 0, 0.8861) 17.00%, rgba(0, 0, 0, 0.8688) 25.50%, rgba(0, 0, 0, 0.8444) 34.00%, rgba(0, 0, 0, 0.8132) 42.50%, rgba(0, 0, 0, 0.7750) 51.00%, rgba(0, 0, 0, 0.7368) 59.50%, rgba(0, 0, 0, 0.7056) 68.00%, rgba(0, 0, 0, 0.6813) 76.50%, rgba(0, 0, 0, 0.6639) 85.00%, rgba(0, 0, 0, 0.6535) 93.50%, rgba(0, 0, 0, 0.6500) 102.0%)linear-gradient(360deg, rgba(0, 0, 0, 0.8500) 3.000%, rgba(0, 0, 0, 0.8465) 11.08%, rgba(0, 0, 0, 0.8361) 19.17%, rgba(0, 0, 0, 0.8187) 27.25%, rgba(0, 0, 0, 0.7944) 35.33%, rgba(0, 0, 0, 0.7632) 43.42%, rgba(0, 0, 0, 0.7250) 51.50%, rgba(0, 0, 0, 0.6868) 59.58%, rgba(0, 0, 0, 0.6556) 67.67%, rgba(0, 0, 0, 0.6313) 75.75%, rgba(0, 0, 0, 0.6139) 83.83%, rgba(0, 0, 0, 0.6035) 91.92%, rgba(0, 0, 0, 0.6000) 100.0%)linear-gradient(12deg, rgba(0, 0, 0, 0.8500) 36.00%, rgba(0, 0, 0, 0.8465) 40.58%, rgba(0, 0, 0, 0.8361) 45.17%, rgba(0, 0, 0, 0.8187) 49.75%, rgba(0, 0, 0, 0.7944) 54.33%, rgba(0, 0, 0, 0.7632) 58.92%, rgba(0, 0, 0, 0.7250) 63.50%, rgba(0, 0, 0, 0.6868) 68.08%, rgba(0, 0, 0, 0.6556) 72.67%, rgba(0, 0, 0, 0.6313) 77.25%, rgba(0, 0, 0, 0.6139) 81.83%, rgba(0, 0, 0, 0.6035) 86.42%, rgba(0, 0, 0, 0.6000) 91.00%)linear-gradient(7deg, rgba(0, 0, 0, 0.8500) 10.00%, rgba(0, 0, 0, 0.8465) 17.25%, rgba(0, 0, 0, 0.8361) 24.50%, rgba(0, 0, 0, 0.8187) 31.75%, rgba(0, 0, 0, 0.7944) 39.00%, rgba(0, 0, 0, 0.7632) 46.25%, rgba(0, 0, 0, 0.7250) 53.50%, rgba(0, 0, 0, 0.6868) 60.75%, rgba(0, 0, 0, 0.6556) 68.00%, rgba(0, 0, 0, 0.6312) 75.25%, rgba(0, 0, 0, 0.6139) 82.50%, rgba(0, 0, 0, 0.6035) 89.75%, rgba(0, 0, 0, 0.6000) 97.00%)linear-gradient(360deg, rgba(0, 0, 0, 0.8500) 8.000%, rgba(0, 0, 0, 0.8465) 15.67%, rgba(0, 0, 0, 0.8361) 23.33%, rgba(0, 0, 0, 0.8187) 31.00%, rgba(0, 0, 0, 0.7944) 38.67%, rgba(0, 0, 0, 0.7632) 46.33%, rgba(0, 0, 0, 0.7250) 54.00%, rgba(0, 0, 0, 0.6868) 61.67%, rgba(0, 0, 0, 0.6556) 69.33%, rgba(0, 0, 0, 0.6312) 77.00%, rgba(0, 0, 0, 0.6139) 84.67%, rgba(0, 0, 0, 0.6035) 92.33%, rgba(0, 0, 0, 0.6000) 100.0%)50% 500% at 50% -420%,
rgba(64, 97, 231, 0.4) 80%,
rgba(0, 0, 0, 0.1) 100%
)`
to right,
rgba(33, 13, 22, 1) 16%,
rgba(184, 40, 105, 1),
rgba(229, 9, 20, 1),
rgba(184, 40, 105, 1),
rgba(33, 13, 22, 1) 84%
)`
> 3 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.
Primary typeface: var(--hcw--local-design--Text-TextFontFamily) — stack: var(--hcw--local-design--Text-TextFontFamily)
var(--hcw--local-design--Text-TextFontFamily)Netflix Sans"Netflix Sans Variable"unsetvar(--hcw--local-design--Select-TextFontFamily)var(--hcw--local-design--Button-TextFontFamily)var(--hcw--local-design--Input-TextFontFamily)NKufiGraphikTH"Netflix Sans Debug"| Token | Size |
|---|---|
| display | 120px |
| headline-lg | 32px |
| headline-md | 24px |
| title-lg | 20px |
| body-lg | 18px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 10px |
| Size | Count |
|---|---|
| 0.8125rem | 3 |
| 1.125rem | 3 |
| 1rem | 2 |
| 1.5rem | 2 |
| 0.625rem | 1 |
| 1.25rem | 1 |
| 4rem | 1 |
| 5rem | 1 |
| 6.25rem | 1 |
| 7.5rem | 1 |
| 0.875rem | 1 |
| 2em | 1 |
| 1em | 1 |
Weights in use: 100, 300, 400, 500, 700, 900
| Value | Count |
|---|---|
| 1.5 | 5 |
| 1 | 3 |
| 0 | 1 |
| Token | Value |
|---|---|
| xs | 2px |
| sm | 8px |
| md | 16px |
| Value | Count |
|---|---|
| 0.125rem | 5 |
| 1rem | 1 |
| 0.3rem | 1 |
| 0.4rem | 1 |
| 0.5rem | 1 |
| 0.55rem | 1 |
| 4px | 1 |
| .67em | 1 |
| 1em | 1 |
| .35em | 1 |
| Token | Value |
|---|---|
| sm | 2px |
| md | 8px |
| lg | 16px |
| Radius | Count |
|---|---|
0.125rem | 7 |
0.5rem | 5 |
0 | 4 |
8px | 2 |
inherit | 1 |
1rem | 1 |
Container max-width: 960px
noneinherit-webkit-transform 0.2s ease-in-outtransform 0.2s ease-in-outcubic-bezier(0.32,0.94,0.6,1)cubic-bezier(0.4,0,0.68,0.06)cubic-bezier(0.32,0.94,0.6,1)var(--hcw--local-design--Button-Easing)var(--hcw--local-design--Button-EasingHovered)var(--hcw--local-design--Button-EasingDisabled)var(--hcw--local-design--Button-EasingPressed)cubic-bezier(0.4,0,0.68,0.06)@keyframes animation-1o3pzgb-autofillStart { }
@keyframes animation-und0r9-autofillEnd { }
@keyframes loading { 0%{background-color:rgb(35,35,35);}40%{background-color:rgb(35,35,35);}70%{background-color:rgb(65,65,65);}90%{background-color:rgb(35,35,35);} }
animation-und0r9-autofillEndanimation-1o3pzgb-autofillStartloading 4000ms infinite linearnoneblur(30px):root {
--hcw--layout-container--alignItems: initial;
--hcw--layout-container--alignItems-xs: initial;
--hcw--layout-container--alignItems-s: initial;
--hcw--layout-container--alignItems-m: initial;
--hcw--layout-container--alignItems-l: initial;
--hcw--layout-container--alignItems-xl: initial;
--hcw--layout-container--alignItems-xxl: initial;
--hcw--layout-container--alignItems-xxxl: initial;
--hcw--layout-container--flexDirection: initial;
--hcw--layout-container--flexDirection-xs: initial;
--hcw--layout-container--flexDirection-s: initial;
--hcw--layout-container--flexDirection-m: initial;
--hcw--layout-container--flexDirection-l: initial;
--hcw--layout-container--flexDirection-xl: initial;
--hcw--layout-container--flexDirection-xxl: initial;
--hcw--layout-container--flexDirection-xxxl: initial;
--hcw--layout-container--justifyContent: initial;
--hcw--layout-container--justifyContent-xs: initial;
--hcw--layout-container--justifyContent-s: initial;
--hcw--layout-container--justifyContent-m: initial;
--hcw--layout-container--justifyContent-l: initial;
--hcw--layout-container--justifyContent-xl: initial;
--hcw--layout-container--justifyContent-xxl: initial;
--hcw--layout-container--justifyContent-xxxl: initial;
--hcw--layout-container--columnSpacing: initial;
--hcw--layout-container--columnSpacing-xs: initial;
--hcw--layout-container--columnSpacing-s: initial;
--hcw--layout-container--columnSpacing-m: initial;
--hcw--layout-container--columnSpacing-l: initial;
--hcw--layout-container--columnSpacing-xl: initial;
--hcw--layout-container--columnSpacing-xxl: initial;
--hcw--layout-container--columnSpacing-xxxl: initial;
--hcw--layout-container--rowSpacing: initial;
--hcw--layout-container--rowSpacing-xs: initial;
--hcw--layout-container--rowSpacing-s: initial;
--hcw--layout-container--rowSpacing-m: initial;
--hcw--layout-container--rowSpacing-l: initial;
--hcw--layout-container--rowSpacing-xl: initial;
--hcw--layout-container--rowSpacing-xxl: initial;
--hcw--layout-container--rowSpacing-xxxl: initial;
--hcw--layout-container--maxWidth: initial;
--hcw--layout-container--maxWidth-xs: initial;
--hcw--layout-container--maxWidth-s: initial;
--hcw--layout-container--maxWidth-m: initial;
--hcw--layout-container--maxWidth-l: initial;
--hcw--layout-container--maxWidth-xl: initial;
--hcw--layout-container--maxWidth-xxl: initial;
--hcw--layout-container--maxWidth-xxxl: initial;
--hcw--layout-container--padding: initial;
--hcw--layout-container--padding-xs: initial;
--hcw--layout-container--padding-s: initial;
--hcw--layout-container--padding-m: initial;
--hcw--layout-container--padding-l: initial;
--hcw--layout-container--padding-xl: initial;
--hcw--layout-container--padding-xxl: initial;
--hcw--layout-container--padding-xxxl: initial;
--hcw--layout-container--width: inherit;
--hcw--layout-container--width-xs: inherit;
--hcw--layout-container--width-s: inherit;
--hcw--layout-container--width-m: inherit;
}
Do
#EB3942 for interactive highlights and key moments — it is used sparingly on the source page.#000000; surfaces should stay within the detected neutral ramp.Don't
:root {
--color-background: #000000;
--color-primary: #E50914;
--color-accent: #EB3942;
--color-surface: #ECECEC;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #A9A9A9;
--color-border: #808080;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--font-sans: var(--hcw--local-design--Text-TextFontFamily);
--font-size-display: 120px;
--font-size-headline-lg: 32px;
--font-size-headline-md: 24px;
--font-size-title-lg: 20px;
--font-size-body-lg: 18px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 10px;
--radius-sm: 2px;
--radius-md: 8px;
--radius-lg: 16px;
--space-xs: 2px;
--space-sm: 8px;
--space-md: 16px;
--container-max: 960px;
}