Crash Courses · Masters
CSS Custom Properties & Design Tokens
Use CSS variables to build maintainable, themeable design systems.
10 min read+175 XP on completionCert: HTML & CSS Crash Course
Tap any word in the text below to start reading from there.
CSS Custom Properties & Design Tokens
Define once, use everywhere. Change --color-primary in one place and every button, card, and link updates.
Defining Tokens
:root {
--color-primary: #f59e0b;
--color-text: #1a1a1a;
--color-bg: #ffffff;
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
--radius: 8px;
}
.button {
background: var(--color-primary);
padding: var(--spacing-sm) var(--spacing-md);
border-radius: var(--radius);
}Dark Mode
:root { --color-bg: #ffffff; --color-text: #111827; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--color-bg: #0f0f0e; --color-text: #f9f9f7;
}
}
:root[data-theme="dark"] { --color-bg: #0f0f0e; --color-text: #f9f9f7; }
body { background: var(--color-bg); color: var(--color-text); }All components automatically switch — no per-component changes needed.
var() Fallbacks
color: var(--color-accent, #f59e0b); /* fallback if var undefined */
padding: var(--spacing-md, 16px);Scoped Component Variables
.card {
--card-padding: 24px;
padding: var(--card-padding);
}
.card.compact { --card-padding: 12px; } /* only affects .card.compact subtree */Reading progress
0% read
In this module
CSS Custom Property
:root
Design Token
var() fallback
0%