Markt
Prijzen
InloggenBegin
PraktijkgidsCSS en web
CSS en web

color-mix() in CSS: kleuren mengen in de browser

color-mix() laat de browser het kleurwerk doen dat je vroeger in een preprocessor of op het oog deed. Kies de juiste kleurruimte en één merkkleur levert een heel palet aan tinten, schakeringen en doorschijnende versies.

GradientlyGeverifieerd Gradiently-account·1 oktober 2026·5 min lezen
Cover: Rain Rampart · GR·A80B·X7

De korte versie

  • De CSS-functie color-mix mengt twee kleuren in een benoemde kleurruimte, bijvoorbeeld color-mix(in oklab, #7c3aed 40%, white).
  • Geef je maar één percentage op, dan krijgt de andere kleur de rest; zonder percentages is de mix half om half.
  • Mengen in oklab houdt de helderheid gelijkmatig en voorkomt de grijze middens die sRGB-mengen tussen verre tinten geeft.
  • Een kleur mengen met transparent is de zuiverste manier om een doorschijnende versie te maken van een kleur die in een custom property staat.
  • color-mix() werkt in alle huidige grote browsers, dus het is veilig voor productie, met een gewone kleur als terugval voor heel oude.
Op deze pagina
color-mix()-syntaxisIn welke kleurruimte je mengtTinten en schakeringen uit één merkkleurTransparantie met color-mix()Veelgemaakte fouten met color-mix()Browserondersteuning en terugvallenKleuren mengen voor verlopen

De color-mix CSS-functie, color-mix(), mengt twee kleuren in een kleurruimte naar keuze en geeft een nieuwe kleur terug. Schrijf color-mix(in oklab, #7c3aed 40%, white) en je krijgt een lichtviolet dat voor 40 procent uit violet en voor 60 procent uit wit bestaat, waarneembaar gemengd. Het werkt in elke huidige grote browser. Samen met custom properties maakt het van één merkkleur tinten, schakeringen, hoverstaten en doorschijnende overlays, zonder één vastgecodeerde hex.

color-mix()-syntaxis

css
/* color-mix(in <colour space>, <colour> [<percentage>], <colour> [<percentage>]) */

.a { color: color-mix(in oklab, #7c3aed, white); }          /* 50% each */
.b { color: color-mix(in oklab, #7c3aed 40%, white); }      /* 40% violet, 60% white */
.c { color: color-mix(in oklab, #7c3aed, black 30%); }      /* 70% violet, 30% black */
.d { color: color-mix(in srgb, #7c3aed 50%, transparent); } /* violet at half opacity */
.e { color: color-mix(in oklch shorter hue, #2563eb, #f59e0b); }
De kleurruimte komt eerst en wordt voluit geschreven. Op tint gebaseerde ruimtes zoals oklch en hsl accepteren ook een tintrichting: shorter, longer, increasing of decreasing.
Geen percentages

Wat de browser gebruikt

50% en 50%

Opmerkingen

Een gelijke mix
Eén percentage, zeg 30%

Wat de browser gebruikt

30% en 70%

Opmerkingen

De andere kleur krijgt de rest
Twee die optellen tot 100%

Wat de browser gebruikt

Zoals geschreven

Opmerkingen

De duidelijkste vorm om later te lezen
Twee die optellen tot meer dan 100%

Wat de browser gebruikt

Teruggeschaald naar 100%

Opmerkingen

60% en 60% gedraagt zich als 50% en 50%
Twee die optellen tot minder dan 100%

Wat de browser gebruikt

Opgeschaald, daarna doorschijnend gemaakt

Opmerkingen

20% en 30% geeft een resultaat met halve dekking
Wat je schrijftWat de browser gebruiktOpmerkingen
Geen percentages50% en 50%Een gelijke mix
Eén percentage, zeg 30%30% en 70%De andere kleur krijgt de rest
Twee die optellen tot 100%Zoals geschrevenDe duidelijkste vorm om later te lezen
Twee die optellen tot meer dan 100%Teruggeschaald naar 100%60% en 60% gedraagt zich als 50% en 50%
Twee die optellen tot minder dan 100%Opgeschaald, daarna doorschijnend gemaakt20% en 30% geeft een resultaat met halve dekking
Hoe percentages worden opgelost. De laatste rij verrast mensen: een totaal onder 100 maakt het resultaat gedeeltelijk transparant.

In welke kleurruimte je mengt

De kleurruimte bepaalt het pad tussen de twee kleuren. In sRGB middelt de browser rood-, groen- en blauwgetallen, wat makkelijk te beredeneren is maar niet is hoe ogen zien. Twee verre tinten gaan onderweg door een doffe grijstint. In oklab volgt de mix de waargenomen helderheid en kleur, dus het midden blijft zuiver en de stappen ogen gelijkmatig. Verloopinterpolatie legt dezelfde keuze uit voor verlopen, en daar is het effect het makkelijkst te zien.

Blauw naar geel in drie ruimtes. Het midden van elke strook is precies wat color-mix() bij 50 procent in die ruimte teruggeeft: #808080 in sRGB, een licht blauwgrijs in oklab.
  • oklab voor tinten, schakeringen en het meeste dagelijkse mengen. Gelijkmatige helderheid, geen grijze dip.
  • oklch wanneer je wilt dat de tint reist, bijvoorbeeld twee merkkleuren mengen tot een derde die er op het kleurenwiel tussenin ligt.
  • srgb voor mengen met transparent of om aan te sluiten op oudere ontwerptools die in sRGB mengen.
  • srgb-linear voor fysiek gebaseerd lichtmengen, dat in het midden helderder oogt.

Voor de achtergrond over waarom waarnemingsgebaseerde ruimtes zich beter gedragen, zie OKLCH uitgelegd. Recente versies van de specificatie laten je de kleurruimte weglaten, met oklab als standaard, maar de ondersteuning voor die verkorting is nieuwer, dus schrijf in oklab expliciet.

Tinten en schakeringen uit één merkkleur

Het nuttigste patroon is een schaal die uit één variabele wordt opgebouwd. Meng naar wit voor tinten, naar zwart voor schakeringen. Verander de variabele en elke stap wordt bijgewerkt, ideaal voor producten met meerdere merken of thema’s die de gebruiker kiest.

css
:root {
  --brand: #7c3aed;

  --brand-100: color-mix(in oklab, var(--brand) 20%, white);
  --brand-200: color-mix(in oklab, var(--brand) 40%, white);
  --brand-300: color-mix(in oklab, var(--brand) 60%, white);
  --brand-400: color-mix(in oklab, var(--brand) 80%, white);
  --brand-500: var(--brand);
  --brand-600: color-mix(in oklab, var(--brand) 80%, black);
  --brand-700: color-mix(in oklab, var(--brand) 60%, black);
}
Een schaal van zeven stappen uit één kleur. Verwissel --brand voor een willekeurige hex en de schaal volgt.
Waar de schaal hierboven op uitkomt voor #7c3aed, berekend in oklab. Gemengd in sRGB komen de tinten iets grijzer uit en de schakeringen iets vlakker.

Mengen met puur wit en zwart is een beginpunt. Voor warmere tinten meng je naar gebroken wit zoals #fdf6ec; voor rijkere schakeringen naar diep marineblauw in plaats van zwart. Zo voelt de schaal als jouw merk in plaats van een generieke reeks. Tinten, tonen en schakeringen behandelt de kleurtheorie.

Transparantie met color-mix()

Vóór color-mix() betekende een doorschijnende versie van een kleur in een variabele dat je de kanalen apart moest opslaan. Nu meng je met transparent. Het deel dat je houdt is de dekking.

css
.badge {
  color: var(--brand);
  background: color-mix(in srgb, var(--brand) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent);
}

.button:hover {
  background: color-mix(in oklab, var(--brand), black 12%);
}
Een getinte badge en een hoverstaat uit dezelfde variabele. Geen tweede kleur om te onderhouden.

Veelgemaakte fouten met color-mix()

  • De kleurruimte weglaten in code die in oudere browsers moet draaien. De hele declaratie wordt genegeerd, niet alleen de ruimte.
  • Voor elke schakering met zwart mengen. Schakeringen van verzadigde kleuren worden dof; meng liever naar een diepe versie van de tint.
  • Verwachten dat percentages onder 100 dekkend blijven. color-mix(in oklab, red 20%, blue 30%) is half transparant.
  • hsl gebruiken voor tinten. Helderheid in hsl is niet waarnemingsgebaseerd, dus een geel en een blauw met dezelfde mix lijken helemaal niet dezelfde stap.

Browserondersteuning en terugvallen

color-mix() is sinds 2023 beschikbaar in Chrome, Edge, Firefox en Safari, en de huidige ondersteuning staat op caniuse. Moet je heel oude browsers dekken, declareer dan eerst een gewone kleur en laat de gemengde die overschrijven. Browsers die de tweede regel niet begrijpen negeren hem.

css
.card {
  background: #ede9fe;
  background: color-mix(in oklab, var(--brand) 15%, white);
}
Eerst de terugval, dan de verbetering. De cascade doet de rest.

Een volledig thema op basis van deze patronen, met lichte en donkere modus, staat in CSS-variabelen voor theming.

Kleuren mengen voor verlopen

color-mix() is handig in verlopen, waar het een middelste stop uit twee merkkleuren kan berekenen zodat de overgang nooit door modder gaat. linear-gradient(135deg, var(--a), color-mix(in oklch, var(--a), var(--b)), var(--b)) geeft je een derde stop op het tintpad tussen de twee. Het onderliggende probleem staat in modderige verlopen.

Als je merkkleur in een Gradiently Mark leeft, bevat het recept van de Mark al een familie verwante kleuren die goed samenwerken, en in de Markt kun je zoeken op kleurwoorden zoals “diep violet” om er een te vinden die rond jouw begintint is gebouwd.

Vind een kleurverloop dat alleen van jou is

Blader door duizenden Marks, ontwerp er gratis mee en claim de Mark die bij je past.

Bekijk de Markt

Vragen die mensen stellen

Wat doet color-mix() in CSS?

Het mengt twee kleuren in een kleurruimte die je noemt en geeft het resultaat terug, bijvoorbeeld color-mix(in oklab, red 30%, white).

Welke kleurruimte moet ik gebruiken met color-mix()?

Gebruik oklab voor tinten, schakeringen en het meeste mengen, oklch wanneer je wilt dat de tint reist, en srgb voor mengen met transparent.

Hoe maak ik een kleur transparant met color-mix()?

Meng hem met transparent: color-mix(in srgb, var(--brand) 20%, transparent) geeft de merkkleur met 20 procent dekking.

Wordt color-mix() in alle browsers ondersteund?

Het werkt in huidige versies van Chrome, Edge, Firefox en Safari. Declareer eerst een gewone kleur als terugval voor oudere browsers.

Wat gebeurt er als de percentages niet optellen tot 100?

Totalen boven 100 worden teruggeschaald. Totalen onder 100 worden opgeschaald en het resultaat wordt gedeeltelijk transparant.

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

color-mix()-syntaxisIn welke kleurruimte je mengtTinten en schakeringen uit één merkkleurTransparantie met color-mix()Veelgemaakte fouten met color-mix()Browserondersteuning en terugvallenKleuren mengen voor verlopen

Deel deze gids

Volgende in CSS en web

CSS-variabelenthema: licht, donker en merkkleuren

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.

Kleur

OKLCH uitgelegd: waarneembare kleur voor ontwerpers

5 min lezen

HSL beloofde leesbare kleur en kwam bijna waar. OKLCH houdt het leesbare deel en herstelt de leugen over helderheid, daarom stappen designsystemen erop over.

Kleurverlopen

Kleurverloop-interpolatie: sRGB versus OKLab uitgelegd

5 min lezen

Kies blauw en geel, meng ze en het midden wordt grijs. Dat is niet het falen van je kleuren, het is de wiskunde van de kleurruimte die de menging doet, en sinds CSS Color 4 kun je die veranderen.

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