ServicesProcessWorkWhy JangoContactBlogCareersStart a project
Back to all articles
Design5 min read

Modern Design Tokens with Vanilla CSS

E
Elena Rostov
Published on 2026-07-11
Modern Design Tokens with Vanilla CSS

As web designs grow, maintaining brand color palettes across hundreds of files becomes difficult. While Utility frameworks have popularized inline styling, Vanilla CSS custom properties (Variables) remain the most native and scalable solution for styling modern web platforms.

1. Define Global Tokens

Declare your color schemes inside the :root selector in a global stylesheet. Organize variables by semantic intent: branding (e.g. --violet), layout (e.g. --bg), and outlines (e.g. --line). This creates a single source of truth for the entire visual catalog.

By mapping design variables to functional concepts rather than raw values, you build layouts that adapt to design system revisions. Instead of hardcoding colors, use: color: var(--text); background: var(--surface);.

2. Theme Switching Made Simple

Instead of compiling separate stylesheets, swap token values by appending a class (like .light) to the root document. The browser recalculates variable bindings instantly with zero rendering lag.

/* Example theme config */
:root {
  --bg: #050508;
  --text: #ffffff;
}
html.light {
  --bg: #ffffff;
  --text: #0b1020;
}

3. Layout Flexibility

Using CSS variables inside layout grids allows developer teams to implement fluid responsiveness. Setting gap: var(--card-gap) lets you adjust spacing globally inside media queries in one single code line, keeping stylesheets brief and readable.