Markt
Prijzen
InloggenBegin
PraktijkgidsCSS en web
CSS en web

Design tokens: één bron voor kleur en typografie

Een merkkleur die in veertig bestanden staat, gaat afwijken. Een token staat op één plek en elk platform leest ervan. Zo structureer je design tokens, benoem je ze zodat ze blijven werken en lever je ze aan code en ontwerptools.

GradientlyGeverifieerd Gradiently-account·1 oktober 2026·5 min lezen
Cover: Topaz Temple · GR·N058·5B

De korte versie

  • Design tokens zijn benoemde, platformneutrale waarden voor ontwerpbeslissingen zoals kleuren, lettertypefamilies, formaten, spatiëring, hoekradii, schaduwen en bewegingstijden.
  • De meeste tokensystemen gebruiken drie lagen: primitieve tokens bevatten ruwe waarden, semantische tokens beschrijven een doel en componenttokens passen doelen toe op specifieke onderdelen.
  • Het formaat van de W3C Design Tokens Community Group slaat tokens op als JSON met de eigenschappen $value en $type en verwijst naar andere tokens met accolades.
  • Tools zoals Style Dictionary zetten één tokenbestand om naar CSS custom properties, JavaScript en iOS- en Android-resources.
  • Dark mode en meerdere merken komen neer op het verwisselen van de waarden achter semantische tokens, terwijl componenten ongewijzigd blijven.
Op deze pagina
Hoe een design token eruitzietPrimitieve, semantische en componenttokensDesign tokens zo benoemen dat de namen blijven werkenVan tokenbestand naar CSS en appsDark mode en meerdere merkenDesign tokens uitrollen

Design tokens zijn benoemde waarden voor elke ontwerpbeslissing die een merk herhaalt: kleuren, lettertypen, lettergroottes, spatiëring, hoekradii, schaduwen en animatietiming. In plaats van #5b21b6 in een stylesheet, een Figma-bestand en een iOS-app te typen, definieer je color.brand.700 één keer, in één bestand, en genereer je daaruit het formaat van elk platform. Wijzig de token en elk product wordt tegelijk bijgewerkt. Die ene bron van waarheid is het hele punt.

Hoe een design token eruitziet

Een token heeft een naam, een waarde en een type. Het formaat van de W3C Design Tokens Community Group schrijft ze als JSON, met eigenschappen die met een dollarteken beginnen zodat ze niet botsen met groepsnamen.

json
{
  "color": {
    "violet": {
      "100": { "$type": "color", "$value": "#ede9fe" },
      "500": { "$type": "color", "$value": "#8b5cf6" },
      "700": { "$type": "color", "$value": "#6d28d9" },
      "900": { "$type": "color", "$value": "#4c1d95" }
    },
    "ink": { "$type": "color", "$value": "#14121f" },
    "paper": { "$type": "color", "$value": "#faf8ff" }
  },
  "font": {
    "heading": { "$type": "fontFamily", "$value": ["Fraunces", "Georgia", "serif"] },
    "body": { "$type": "fontFamily", "$value": ["Inter", "system-ui", "sans-serif"] }
  },
  "radius": {
    "control": { "$type": "dimension", "$value": { "value": 10, "unit": "px" } }
  },
  "duration": {
    "quick": { "$type": "duration", "$value": { "value": 160, "unit": "ms" } }
  }
}
Primitieve tokens in het formaat van de community group. Groepen nesten vrij; het pad, zoals color.violet.700, wordt de naam van de token.
De kleurtokens hierboven als stalen. Dit zijn ruwe ingrediënten: nog niets zegt welke een knop of een kop is.

Primitieve, semantische en componenttokens

Een platte lijst kleuren is een palet, geen systeem. De structuur die jaren standhoudt heeft drie lagen, die elk naar de laag eronder verwijzen. Componenten raken nooit ruwe waarden aan; ze vragen om een doel.

Primitief

Voorbeeldnaam

color.violet.700

Waarde

#6d28d9

Verandert wanneer

Het palet opnieuw wordt ontworpen
Semantisch

Voorbeeldnaam

color.action.primary

Waarde

{color.violet.700}

Verandert wanneer

Een rol naar een andere kleur verhuist
Semantisch

Voorbeeldnaam

color.text.default

Waarde

{color.ink}

Verandert wanneer

Dark mode, een nieuw merk
Component

Voorbeeldnaam

button.primary.background

Waarde

{color.action.primary}

Verandert wanneer

Eén component een uitzondering nodig heeft
LaagVoorbeeldnaamWaardeVerandert wanneer
Primitiefcolor.violet.700#6d28d9Het palet opnieuw wordt ontworpen
Semantischcolor.action.primary{color.violet.700}Een rol naar een andere kleur verhuist
Semantischcolor.text.default{color.ink}Dark mode, een nieuw merk
Componentbutton.primary.background{color.action.primary}Eén component een uitzondering nodig heeft
Verwijzingen tussen accolades zijn aliassen. Wijzig color.violet.700 en elke token die ernaar verwijst volgt.
json
{
  "color": {
    "action": {
      "primary": { "$type": "color", "$value": "{color.violet.700}" },
      "primary-hover": { "$type": "color", "$value": "{color.violet.900}" }
    },
    "text": {
      "default": { "$type": "color", "$value": "{color.ink}" },
      "on-action": { "$type": "color", "$value": "{color.paper}" }
    },
    "surface": {
      "page": { "$type": "color", "$value": "{color.paper}" },
      "tint": { "$type": "color", "$value": "{color.violet.100}" }
    }
  }
}
Semantische tokens beschrijven waar een kleur voor dient. Dit is de laag waarin ontwerpers en ontwikkelaars met elkaar moeten praten.

Veel teams stoppen bij twee lagen, primitief en semantisch, en voegen componenttokens alleen toe waar een component echt afwijkt. Zo blijft het bestand klein genoeg om te begrijpen.

Design tokens zo benoemen dat de namen blijven werken

Namen overleven waarden. Een token met de naam color.purple breekt op de dag dat het merk turquoise wordt; een token met de naam color.action.primary overleeft dat. Benoem semantische tokens naar rol en laat primitieve namen de waarde beschrijven.

Namen die slecht verouderen

  • color.purple gebruikt voor knoppen
  • text.dark, dat licht is in dark mode
  • spacing.16 gebruikt als opmaakregel
  • blue2, blueNew, blueFinal
  • hero.gradient.lisa vernoemd naar een persoon

Namen die blijven werken

  • color.action.primary
  • color.text.default
  • space.section verwijzend naar {space.16}
  • Een genummerde schaal zoals blue.100 tot blue.900
  • gradient.hero met zijn stops als tokens

Kies een patroon, zoals categorie, dan rol, dan variant, dan status, en leg het vast in je merkstijlgids. Consistentie in naamgeving telt zwaarder dan welk patroon je kiest.

Van tokenbestand naar CSS en apps

Het tokenbestand wordt niet zoals het is meegeleverd. Een buildstap zet het om naar wat elk platform nodig heeft. Style Dictionary is daarvoor de meest gebruikte opensourcetool, en andere lezen hetzelfde formaat. Voor het web is de uitvoer meestal CSS custom properties.

css
:root {
  --color-violet-100: #ede9fe;
  --color-violet-700: #6d28d9;
  --color-violet-900: #4c1d95;
  --color-ink: #14121f;
  --color-paper: #faf8ff;

  --color-action-primary: var(--color-violet-700);
  --color-text-default: var(--color-ink);
  --color-surface-page: var(--color-paper);

  --font-heading: Fraunces, Georgia, serif;
  --radius-control: 10px;
  --duration-quick: 160ms;
}

.button {
  background: var(--color-action-primary);
  color: var(--color-paper);
  border-radius: var(--radius-control);
  transition: background var(--duration-quick) ease;
}
Gegenereerde uitvoer. Aliassen worden var()-verwijzingen, zodat de semantische laag tot in de browser blijft bestaan. Zie CSS-variabelen voor thema’s.

Gebruik je Tailwind v4, dan is het @theme-blok zelf een tokenlaag: elke --color-*-variabele wordt een utility. Tailwind-kleuren laat zien hoe je een tokenreeks erin aansluit. Hetzelfde bestand kan ook Swift-constanten en Android-resources maken, en daar betalen tokens zichzelf terug bij teams die op meerdere platforms werken.

Dark mode en meerdere merken

Omdat componenten alleen semantische tokens lezen, is een thema gewoon een andere set waarden voor die laag. Dark mode definieert color.text.default en color.surface.page opnieuw; een tweede merk definieert color.action.primary opnieuw. Aan de componenten verandert niets.

css
@media (prefers-color-scheme: dark) {
  :root {
    --color-text-default: #e9e5f5;
    --color-surface-page: #0b0a14;
    --color-action-primary: var(--color-violet-500);
  }
}

[data-brand="harbour"] {
  --color-action-primary: #0f766e;
}
Twee overschrijvingen, geen aanpassingen aan componenten. Ook verlopen verdienen eigen donkere waarden; dark mode verlopen legt uit hoe je ze afstemt.

Tokens in ontwerptools

Figma Variables ondersteunen collecties en modi, die netjes overeenkomen met primitieve en semantische tokens en met lichte en donkere thema’s. Houd het tokenbestand als bron en synchroniseer naar de ontwerptool, niet andersom, anders zijn de twee binnen een maand het oneens.

Design tokens uitrollen

  1. 1

    Inventariseer wat er is

    Verzamel elke gebruikte kleur, lettergrootte en spatiëringswaarde. Verwacht duplicaten die één hexcijfer verschillen.

  2. 2

    Definieer primitieven

    Breng ze terug tot heldere schalen. Kleurreeksen bouwen in OKLCH houdt de stappen gelijkmatig; zie OKLCH uitgelegd.

  3. 3

    Voeg de semantische laag toe

    Benoem rollen: tekst, vlak, rand, actie, feedback. Laat elk naar een primitief verwijzen.

  4. 4

    Automatiseer de build

    Genereer CSS en app-resources uit het bestand in je build, nooit met de hand.

  5. 5

    Bewaak het

    Lint op ruwe hexwaarden in componenten, zodat nieuwe code vanaf dag één tokens gebruikt.

Tokens houden het product consistent, maar merken driften ook in de beelden die erbuiten worden gemaakt: posts, slides, banners. Een merkkit in Gradiently bevat dezelfde beslissingen, je kleurenpaletten, kop- en broodlettertypen, logo’s en toon, zodat ontwerpen uit de Studio erbij passen. En omdat Gradiently werkt binnen ChatGPT, Claude en andere assistenten die remote MCP-servers ondersteunen, kan een assistent met een afgebakende API-sleutel ontwerpen in je huisstijl maken vanuit dezelfde werkruimte. Merkconsistentie behandelt de bredere gewoonte.

Koppel je AI-assistent

Laat Claude of een andere MCP-client Marks zoeken en ontwerpen maken die in de Studio openen.

Lees de ontwikkelaarsdocs

Vragen die mensen stellen

Wat zijn design tokens?

Benoemde waarden voor ontwerpbeslissingen zoals kleuren, lettertypen, spatiëring, radii en beweging, opgeslagen in één platformneutraal bestand en omgezet naar CSS, appcode en variabelen van ontwerptools.

Wat is het verschil tussen primitieve en semantische tokens?

Primitieve tokens bevatten ruwe waarden, zoals color.violet.700. Semantische tokens beschrijven een doel, zoals color.action.primary, en verwijzen naar een primitief.

Zijn design tokens hetzelfde als CSS-variabelen?

Nee. Tokens zijn de bron, opgeslagen in een neutraal formaat zoals JSON; CSS custom properties zijn één uitvoer die eruit wordt gegenereerd, naast uitvoer voor andere platformen.

Is er een standaardformaat voor design tokens?

De W3C Design Tokens Community Group publiceert een JSON-formaat met $value, $type en aliassen tussen accolades, dat tools zoals Style Dictionary kunnen lezen.

Hoe gaan design tokens om met dark mode?

Componenten lezen semantische tokens en een donker thema levert andere waarden voor die tokens, zodat componenten niet hoeven te veranderen.

Deel deze gids

Geschreven door GradientlyGeverifieerd Gradiently-account

Het team achter Gradiently, een ontwerptool rond Marks: levende kleurverlopen die alles wat je ontwerpt op jou laten lijken.

Bekijk ons profiel

Op deze pagina

Hoe een design token eruitzietPrimitieve, semantische en componenttokensDesign tokens zo benoemen dat de namen blijven werkenVan tokenbestand naar CSS en appsDark mode en meerdere merkenDesign tokens uitrollen

Deel deze gids

Volgende in CSS en web

CSS lineair kleurverloop: de complete gids voor linear-gradient()

Lees verder

Alle gidsen over CSS en web
CSS en web

CSS-variabelenthema: licht, donker en merkkleuren

5 min lezen

Thema’s gaan mis als kleuren worden genoemd naar hoe ze eruitzien in plaats van wat ze doen. Benoem de rollen, wijs ze naar een palet, en lichte modus, donkere modus en een tweede merk worden elk een paar regels.

CSS en web

Tailwind-kleuren: het palet gebruiken en uitbreiden

5 min lezen

Het standaardpalet is een goed beginpunt en een slecht eindpunt, omdat duizenden sites het delen. Zo werken Tailwind-kleuren in v4 en zo voeg je je eigen toe zonder iets te breken.

Branding

Een huisstijlgids maken die mensen echt gebruiken

5 min lezen

De meeste stijlgidsen worden één keer geopend en vergeten. Die werken, zijn kort, tonen elke regel en staan waar mensen ontwerpen. Zo schrijf je er zo een.

Vind de look die alleen van jou is.

Elke Mark is een levende achtergrond met één eigenaar. Probeer een beschikbare Mark en claim de jouwe als het goed voelt.

Begin met ontwerpen

Controleer een certificaat

Typ een certificaatnummer of de code van een Mark om te zien wie hem bezit.

Werkt met ChatGPT en Claude

Vraag je AI om een ontwerp. Hij maakt het in jouw Mark, klaar om te bewerken.

ChatGPTClaude
Zo verbind je

Product

  • Markt
  • Verkennen
  • Prijzen
  • Certificaten

Leren

  • Praktijkgids
  • Helpcentrum
  • Wat is er nieuw

Ontwikkelaars

  • Overzicht
  • ChatGPT en Claude
  • API-referentie
  • API-keys

Bedrijf

  • Over ons
  • Contact
  • Inloggen

Juridisch

  • Voorwaarden
  • Privacy
  • Terugbetalingen
  • Mark-bescherming
  • Cookies
  • Alle beleidsstukken
Beweeg over de letters. Elke letter draagt een echte Mark.Raak een letter aan om zijn Mark te zien.Eén naam. Tien Marks erin.
© 2026 Gradiently