Design tokens in no-code UI-builders voor consistente thema's
Design tokens in no-code UI-builders helpen teams kleuren, typografie, afstanden en varianten één keer te definiëren, zodat ze consistente UI kunnen afleveren zonder giswerk.

Waarom teams naar inconsistente UI afdrijven
Inconsistente UI begint zelden als een "ontwerpprobleem." Het begint als een tijdprobleem. Iemand heeft nú een knop nodig, dus ze kopiëren er één van een andere pagina en passen het aan totdat het er ongeveer goed uitziet.
Zo sluipen kleine verschillen erin: twee blauwtinten die bijna hetzelfde zijn, een hoekradius die van 6 naar 8 verandert, een kop die "een beetje vet" lijkt, en padding die afhangt van wie het scherm bouwde. In no-code builders is het nog makkelijker om kleine eenmalige aanpassingen te doen omdat de controls direct zichtbaar zijn en veranderingen onschuldig aanvoelen.
Naarmate het product groeit, versnelt de drift. Meer pagina's betekent meer herhaalde patronen. Meer bouwers betekent meer persoonlijke smaak. Meer teamleden betekent meer "quick fixes" die geïsoleerd gebeuren. Als de ene persoon het klantportaal bouwt en een ander het adminpaneel, eindig je met twee verschillende interpretaties van hetzelfde merk.
"Praten op gevoel" verschijnt in het dagelijkse werk: een kleur kiezen totdat het "goed genoeg lijkt", spacing met een paar pixels schuiven omdat het scherm "te krap" voelt, een nieuwe knopstijl maken in plaats van een bestaande te gebruiken, lettergroottes mixen omdat de standaard "een beetje klein" lijkt, of één scherm repareren zonder de rest te controleren.
De kosten tonen zich later. Reviews vertragen omdat feedback subjectief wordt ("laat het meer lijken op die andere pagina"). Herwerk stapelt zich op omdat wijzigingen moeilijk overal door te voeren zijn. Web en mobiel wijken uit elkaar omdat verschillende mensen vergelijkbare maar niet-identieke keuzes maken.
Design tokens lossen dit op door "ongeveer goed"-beslissingen te vervangen door gedeelde waarden. De UI blijft consistent, ook als het team en de app groeien.
Design tokens, in gewone taal
Design tokens zijn benoemde beslissingen over je UI. In plaats van te zeggen "gebruik dit blauw" of "maak knoppen ruimtelijk", geef je die keuzes duidelijke namen die iedereen kan hergebruiken.
Een token is niet de ruwe waarde. De ruwe waarde kan 16px, #2563EB of 600 (font-weight) zijn. De token is het label dat uitlegt wat die waarde in jouw product betekent, zoals space-4, color-primary of font-weight-semibold.
Die verschuiving stopt het gokken op gevoel. Wanneer mensen waarden kiezen op gezichtsscherpte, verzamel je langzaam vijf verschillende blauwen, drie iets verschillende koppen en spacing die per scherm wisselt.
Tokens werken het beste als enkele bron van waarheid. Als elk scherm en component naar dezelfde set namen verwijst, kun je de look in de hele app veranderen door een paar tokenwaarden bij te werken, niet door tientallen schermen te doorzoeken.
Tokens overbruggen ook design en bouw. Ontwerpers gebruiken token-namen in specs en bouwers gebruiken dezelfde namen in een no-code UI-builder, zodat het ontwerp de overdracht overleeft.
De meeste token-sets vallen in een paar categorieën: kleurrollen (primary, background, text, danger), typografie (font family, maten, gewichten, line-height), spacing-steps (padding, margins, gaps), vorm en diepte (radius, border widths, shadows) en soms motion (duraties en easing).
Het tokenset dat de meeste producten echt nodig hebben
De meeste teams hebben geen enorm token-archief nodig. Ze hebben een kleine, duidelijke set die de meeste schermen dekt zodat mensen stoppen met gissen. Dit geldt extra in no-code tools, waar "even dit één keer"-aanpassingen snel verspreiden.
Een praktisch startersset dekt vijf groepen:
- Kleur: een paar merkrollen (primary, secondary), een neutrale set (text, background, border) en statusrollen (success, warning, error). Voeg hover- en disabled-rollen toe als je die vaak gebruikt.
- Typografie: één letterfamilie (twee maximaal), een kleine schaal (bijv. 12/14/16/20/24/32), de gewichten die je echt gebruikt en bijpassende line-heights.
- Spacing: een simpele ladder (bijv. 4/8/12/16/24/32) voor padding en gaps.
- Vorm en effecten: een paar radii (none/sm/md/lg), border widths en een kleine set schaduwen (0-3).
- Motion (optioneel): alleen als je app animaties gebruikt, met 2–3 duraties en 1–2 easing-namen.
Één regel houdt de bibliotheek sane: als een waarde op drie of meer plekken voorkomt, maak er een token van. Als het één keer voorkomt, wees kritisch voordat het de "nieuwe norm" wordt.
Naamgevingsregels die token-chaos voorkomen
Goede token-namen voorkomen discussies nog voordat ze beginnen. Als mensen een token kunnen raden zonder te zoeken, zullen ze het hergebruiken. Als dat niet kan, maken ze een nieuwe en splitst je thema.
Gebruik semantische namen eerst (niet kleuren)
Geef de voorkeur aan namen die de taak beschrijven die een waarde in de UI uitvoert, niet hoe het eruitziet. text-primary vertelt wanneer het gebruikt moet worden. blue-600 is alleen verf.
Een nuttig patroon is twee lagen:
- Basistokens: ruwe bouwstenen zoals
color-blue-600,space-16,font-14 - Semantische tokens: UI-rollen zoals
text-primary,bg-surface,border-muted
In een no-code UI-builder zijn semantische tokens wat niet-ontwerpers helpt snel de juiste waarde te kiezen zonder te gokken.
Regels voor het toevoegen van nieuwe tokens
De meeste token-bibliotheken worden rommelig omdat "nieuw" de default is. Maak "hergebruik" de default.
Houd regels simpel:
- Voeg een token alleen toe als het in 2+ plaatsen wordt gebruikt of een echte staat ondersteunt (hover, disabled, error).
- Als het een one-off is, houd het lokaal voor de component.
- Als twee tokens slechts minimaal verschillen, kies er één en verwijder de andere.
- Als je het doel van een token niet in één zin kunt uitleggen, voeg het dan niet toe.
Standaardiseer daarna de naamgeving. Kies één casing-stijl (kebab-case werkt goed), gebruik vaste prefixes (text-, bg-, border-, icon-, space-) en houd scales consistent (space-4, space-8, space-12, space-16).
Stappenplan: definieer tokens vanuit wat je al gebruikt
Zie je huidige UI als bewijs. Maak eerst een korte inventaris: verzamel screenshots, inspecteer stijlen en noteer elke kleurwaarde, fontgrootte en spacingwaarde die je in productie ziet (inclusief one-offs die maar op één scherm voorkomen).
Vervolgens reduceer je duplicaten met opzet. Je vindt meestal hetzelfde grijs in vijf licht verschillende hex-waarden, of spacing die springt tussen 14, 15 en 16. Kies één waarde om te behouden en map de oude waarden naar die ene. Hier worden tokens praktisch: je stopt met discussies over smaak en gaat akkoord over een kleine set gedeelde keuzes.
Een stevige eerste versie kan in één doorloop gebouwd worden:
- Palet-tokens: ruwe kleuren (brand, neutrals, feedback-kleuren)
- Semantische tokens: betekenis-gebaseerde kleuren (text, background, border, success, warning)
- Typografie-schaal: 6–8 maten met duidelijke rollen (body, label, H1-H3)
- Spacing-schaal: 6–10 stappen die je overal hergebruikt
- Component-basics: een paar standaard radii en schaduwen
Voor elk token voeg je één zin guidance toe: waar het te gebruiken en waar niet. Bijvoorbeeld: “text-muted is voor helper-tekst, niet voor primaire knoppen.”
Bepaal tenslotte eigenaarschap. Het helpt om één persoon (of een kleine groep) te noemen die wijzigingen goedkeurt, met een eenvoudige regel: "Voeg een nieuw token toe alleen als een bestaand token niet past." Dat houdt het systeem stabiel terwijl het product groeit.
Hoe tokens toepassen in een no-code UI-builder
Begin met defaults die elk scherm erft: een basis tekststijl (font, grootte, line-height, kleur), kopstijlen (H1-H3) en een kleine set layout-spacingregels zodat pagina's niet willekeurig aanvoelen.
Map daarna tokens naar wat jouw tool thema-instellingen noemt: theme variables, global styles, style presets of design system settings. Het doel is dat het kiezen van “Primary” of “Space/16” een token selecteert, geen eenmalige waarde.
Houd herbruikbare stijlen gefocust op patronen die je elke dag gebruikt. Een starterset kan een kaartstijl bevatten (achtergrond, rand, radius, padding, shadow), een formulier-veldstijl (label, input, helptekst), knopstijlen en regels voor rij-dichtheid en hoverstaten in tabellen.
Staten zijn waar inconsistentie binnensluipt, dus definieer ze vroeg. Elke interactieve component moet token-gedreven waarden hebben voor hover, focus, disabled en error. Focus moet overal dezelfde ringkleur en -dikte gebruiken. Error moet overal dezelfde border- en tekstkleur-koppeling gebruiken.
Plan tot slot delen. Als je workspace templates of herbruikbare modules ondersteunt, zet tokens en basisstijlen in een "starter app" waar nieuwe projecten van kopiëren. Zo beginnen nieuwe schermen standaard consistent.
Componentvarianten die consistent blijven
Varianten bepalen of een UI-systeem rustig en voorspelbaar blijft of verandert in een verzameling one-offs. Varianten werken het beste als een dunne laag die naar tokens mappt voor kleur, typografie en spacing.
Begin met een kleine set sleutelcomponenten die je overal gebruikt: buttons, inputs, badges, alerts en cards. Geef elk dezelfde twee keuzedimensies: size en intent. Grootte hoort mechanisch te zijn (typografie en spacing). Intentie hoort betekenis te zijn (semantische kleuren).
Grootte en intentie zonder giswerk
Groottevarianten blijven consistent als ze maar een paar token-gebaseerde eigenschappen veranderen: fontgrootte, padding en border-radius. Intent-varianten moeten vooral kleurrollen (achtergrond, tekst, rand) veranderen en nooit stilletjes spacing aanpassen.
Een set die de meeste producten dekt:
- Sizes: sm, md, lg
- Intents: primary, secondary, danger
- Staten: default, hover, focus, disabled
Interactie-regels teams kunnen volgen
Definieer staatregels die op elk component van toepassing zijn, niet alleen op knoppen. Bijvoorbeeld: focus toont altijd een zichtbare ring, hover verhoogt contrast op een consistente manier en disabled gebruikt dezelfde opacity en blokkeert klikken.
Voeg alleen een nieuwe variant toe wanneer die een terugkerende betekenis vertegenwoordigt (zoals "danger"). Als het een eenmalige layoutbehoefte is, is het meestal een nieuwe component of een wrapper, geen een variant die iedereen later misbruikt.
Web- en mobielthema's op één lijn houden
Wanneer een product op web en mobiel uitkomt, betekent "zelfde merk" niet altijd "zelfde pixels." Het doel is dat schermen als één familie aanvoelen, ook al hebben platforms verschillende defaults.
Begin met gedeelde tokens die goed reizen: kleurrollen (background, surface, text, primary, danger), een typografieschaal (maten en gewichten) en spacing-tokens (4, 8, 12, 16, 24). Deze halen het giswerk weg en maken updates voorspelbaar.
Accepteer daarna reële verschillen. Mobiel heeft grotere touchtargets en vaak iets meer spacing. Web heeft dichtere tabellen, sidebars en multi-column layouts. Fonts kunnen ook verschillen: je gebruikt misschien een merkfont op het web maar kiest platform-standaarden op iOS/Android voor leesbaarheid en performance.
Een praktische aanpak is twee lagen: globale tokens die betekenis definiëren en platform-tokens die bepalen hoe die betekenis gerenderd wordt.
- Global:
color.text,color.primary,space.md,radius.sm,type.body - Web-only:
type.family.web,control.height.web,space.tableRow - Mobile-only:
type.family.mobile,control.height.mobile,space.touch
Houd componentnamen consistent (Button/Primary) ook als maten verschillen. Vereis contrastchecks voor beide thema's voor release.
Governance: hoe tokens gezond blijven
Tokens werken alleen als ze stabiel en begrijpelijk blijven. Zonder lichte governance voegen teams ongemerkt "nog een blauw" of "nog een padding" toe en ben je terug bij gokken op gevoel.
Een lichte change-flow voor tokens
Houd het proces klein maar echt:
- Request: iedereen kan vragen om een nieuwe token of wijziging, met screenshot en reden.
- Review: één ontwerper en één bouwer checken de impact over belangrijke schermen.
- Approve: bevestig naamgeving, toegankelijkheid (contrast, tappable grootte) en of het écht nieuw is.
- Release: publiceer updates volgens schema (wekelijks of per sprint), niet ad hoc.
- Communiceer: deel wat er is veranderd en wat je voortaan moet gebruiken.
Onderhoud een eenvoudige changelog met deprecations. Als een oude token wordt vervangen, zeg wat te gebruiken, houd de oude tijdelijk werkend en markeer hem duidelijk zodat nieuwe schermen die niet gebruiken.
Opschonen hoort bij het werk. Verwijder eens per maand ongebruikte tokens en componentvarianten (of markeer ze in ieder geval).
Maak tokens bruikbaar voor iedereen
Niet-ontwerpers hebben voorbeelden nodig, geen theorie.
Do: gebruik de spacing-ladder voor gaps en gebruik de Primary Button-variant voor de belangrijkste actie.
Don’t: zet padding op "13px omdat het goed uitziet" of maak een nieuwe knopstijl om één scherm te matchen.
Koppel tokenwerk aan productprioriteiten: nieuwe features, rebrands en toegankelijkheidsfixes moeten token-updates aansturen, niet persoonlijke voorkeur.
Veelgemaakte fouten en valkuilen
De snelste manier om de voordelen van tokens te verliezen is ze als een dumpplaats te behandelen. Je begint met goede intenties, daarna stapelen een paar snelle fixes zich op en is het team weer aan het gokken.
Een veelval is te veel tokens te vroeg maken. Als elk scherm zijn eigen kleur- of spacing-token krijgt, bouw je geen systeem — je catalogiseert uitzonderingen. Voeg alleen een token toe wanneer je minstens twee plekken kunt aanwijzen waar het gebruikt wordt.
Een ander stil probleem is dat ruwe waarden ongemerkt in componenten sluipen. Iemand zet button-padding op 14px "alleen dit keer" of gebruikt een hexkleur direct in een card. Weken later herinnert niemand zich waarom het anders is. Maak er een gewoonte van: als het zichtbaar en herhaalbaar is, moet het een token zijn.
Let ook op het mixen van token-types. Basistokens (zoals gray-900 of space-4) beschrijven ruwe waarden. Semantische tokens (zoals text-primary of surface-muted) beschrijven betekenis. Problemen ontstaan wanneer de ene component basistokens gebruikt en een andere semantische tokens voor dezelfde rol.
Staten zijn een andere pijnbron op latere fases. Teams definiëren vaak normale stijlen en patchen dan focus, hover, disabled en error vlak voor release. Zo eindig je met inconsistente focus-ringen en drie verschillende "error"-roden.
Voer voordat je opschaalt een korte valcheck uit:
- Beperk nieuwe tokens tot gedeelde behoeften, niet one-off schermen
- Vermijd ruwe waarden in componenten waar mogelijk
- Scheid base- vs semantische tokens en pas ze consequent toe
- Definieer staten (focus, error, disabled) vroeg
- Laat ruimte voor dark mode of een toekomstige rebrand door semantische tokens te wisselen, niet componenten te herschrijven
Korte checklist voordat je gaat schalen
Voordat je UI naar meer schermen, teams of producten rolt, controleer of je basis duidelijk genoeg is om zonder gokken te kopiëren.
- Kleurrollen zijn semantisch. Tokens dekken tekst (default, muted, inverse), oppervlakken (page, card), randen (default, focus) en statussen (success, warning, danger).
- Type past in een kleine schaal. Een korte set tekststijlen (H1-H3, body, small) met gedefinieerde grootte, gewicht en line-height.
- Spacing gebruikt stappen die mensen onthouden. Veelvoorkomende paddings en gaps komen van een strakke ladder (4, 8, 12, 16, 24). Als "14" steeds terugkomt, is dat een teken dat je ladder moet worden aangepast.
- Topcomponenten hebben varianten. Je meest gebruikte componenten hebben grootte (sm/md/lg) en intentie (primary/secondary/danger) die bij tokenrollen passen.
- Eigenaarschap is helder. Eén persoon (of kleine groep) keurt wijzigingen goed met een lichte routine: waarom, impact en wanneer te releasen.
Voorbeeld: UI-drift stoppen in een portal en adminpaneel
Een klein team bouwt twee apps tegelijk: een klantportal en een intern adminpaneel. Verschillende mensen werken aan verschillende schermen en ze bouwen snel in een no-code UI-builder. Na een paar weken voelt de UI "niet goed" aan, ook al kan niemand precies aanwijzen waarom.
Voor tokens stapelen review-opmerkingen zich op: knoppen lijken bijna hetzelfde maar zijn het net niet, spacing verschuift tussen schermen, formuliervelden matchen niet en het portal voelt "vriendelijk" terwijl het adminpaneel per ongeluk "streng" aanvoelt.
Ze lossen het op door een klein, praktisch tokenset in te voeren. Ze definiëren semantische kleuren (Primary, Success, Danger, TextMuted), een spacing-schaal (4, 8, 12, 16, 24) en knopvarianten (Primary, Secondary, Ghost) met één radius en consistente staten.
Nu stoppen bijdragers met willekeurige hexwaarden en fontgroottes op elk scherm. Ze kiezen tokens en varianten, zodat elke nieuwe pagina dezelfde beslissingen erft.
Bouwen gaat sneller omdat keuzes al gemaakt zijn. Reviews verschuiven van kleine visuele nitpicks naar echte UX-vraagstukken. "Maak deze knop de primary-variant" vervangt "Kun je hem iets blauwer en een tikje hoger maken?"
Dan komt er een kleine rebrand: de primaire kleur verandert en de typografieschaal wordt aangescherpt. Met tokens werkt het team een paar waarden bij en ververst zowel portal als adminpaneel tegelijk.
Volgende stappen: klein beginnen, dan standaardiseren
Kies één flow die mensen veel gebruiken en waar duidelijke drift is, zoals onboarding, een instellingenpagina of een eenvoudig formulier. Het converteren van één flow is de snelste manier om het idee te bewijzen en het gokken te stoppen.
Begin met een klein, veilig tokenset: primary/background/text/border/danger, een korte typografieschaal, een spacing-ladder en 2–3 radius- en schaduwlevels. Maak daarna een klein componentset dat alleen tokens gebruikt: één knop, één input, één kaart, één alert. Voeg varianten alleen toe als ze een echt probleem oplossen.
Houd een korte review met het team met twee screenshots: één "voor"-scherm met inconsistent padding en fonts en één "na"-scherm opgebouwd uit tokens en varianten. Kom overeen op een paar regels (zoals "geen hard-coded kleuren" en "spacing moet een token zijn") en los de belangrijkste inconsistenties eerst op.
Voor rollout: zet nieuwe schermen eerst om en backfill oudere schermen als je ze toch aanraakt. Als support vraagt om een nieuw adminfilter, bouw dat paneel dan met token-gebaseerde componenten en vervang alleen wat je bewerkt.
Als je volledige producten bouwt (backend, web en mobiel) in AppMaster, helpt het om tokens en herbruikbare UI-stijlen vroeg in te stellen zodat nieuwe schermen dezelfde beslissingen erven. Zo kunnen visuele consistentie en applicatielogica samen vooruit zonder later herhaald opruimwerk.
FAQ
UI-drift begint meestal met kleine "even dit één keer"-aanpassingen: een component kopiëren, padding knijpen of een kleur bij elkaar zoeken met het oog. Na verloop van tijd stapelen die kleine verschillen zich op over pagina’s en collega’s, en worden reviews subjectieve discussies in plaats van snelle checks aan de hand van gedeelde regels.
Design tokens zijn benoemde UI-beslissingen die mensen hergebruiken in plaats van raw-waarden te gokken. De waarde kan 16px of #2563EB zijn, maar de tokennaam legt het doel uit, zoals space-16 of color-primary, zodat iedereen steeds dezelfde keuze maakt.
Begin met kleurrollen, typografie, spacing en een kleine set radii en schaduwen. Dat dekt de meeste schermen en stopt de grootste "ik gok even"-problemen, terwijl het tokenset klein genoeg blijft zodat mensen het echt gebruiken.
Een praktische vuistregel: maak een token aan als een waarde op twee of meer plekken voorkomt, of als die waarde een echte staat ondersteunt (hover, focus, disabled, error). Als het echt éénmalig is, houd het dan lokaal in de component.
Semantische namen beschrijven waarvoor de token bedoeld is, zoals text-primary of bg-surface, zodat mensen zonder het palet te kennen de juiste keuze maken. Rohere namen zoals blue-600 zijn prima als basis, maar direct gebruik daarvan in componenten vergroot de kans op misbruik.
Maak een audit van wat je al uitrolt: verzamel kleuren, fontgroottes en spacingwaarden die je in productie ziet en merge dichtbijliggende duplicaten met opzet. Zodra je een klein, schoon overzicht hebt, map je oude waarden naar de dichtstbijzijnde token zodat nieuwe schermen tokens gebruiken in plaats van opnieuw bijna-gelijke waarden in te voeren.
Stel eerst globale defaults in, map daarna tokens naar wat je builder thema-instellingen noemt (variabelen, global styles of presets) zodat componenten namen gebruiken in plaats van hexcodes en pixels. Maak vervolgens een kleine set herbruikbare stijlen voor veelgebruikte componenten en zorg dat hun hover-, focus-, disabled- en error-staten ook tokens gebruiken.
Houd varianten eenvoudig en voorspelbaar: beperk ze tot grootte en intentie. Grootte verandert alleen token-gedreven properties zoals fontgrootte en padding; intentie wisselt semantische kleurrollen. Zo verandert een “danger”-knop niet stiekem spacing of typografie.
Deel globale semantische tokens over platformen zodat de betekenis gelijk blijft, en laat platform-specifieke tokens verschillen behandelen zoals touchgroottes en dichtheid. Het doel is “zelfde familie, niet dezelfde pixels” zodat web en mobiel consistent aanvoelen binnen hun beperkingen.
Wijs eigenaarschap toe en gebruik een kleine reviewflow voor wijzigingen zodat nieuwe tokens geen snelle fixes worden. Plan publicaties op een ritme en depreceer oude tokens in plaats van ze stiekem te vervangen — dat houdt het systeem stabiel terwijl meer mensen schermen bouwen, ook in AppMaster-projecten waar veel bijdragers snel werken.


