Skip to content

Color converter — HEX, RGB, HSL & OKLCH

Converteer HEX naar RGB, HSL, OKLCH, OKLAB en CMYK in je browser — kopieer elk formaat met één klik. Gratis, geen account, je kleuren verlaten de pagina nooit.

Geen tracking Draait in je browser Gratis
Alle kleurconversie gebeurt lokaal in je browser. Er gaat geen data naar een server.
Gamut: sRGB Display P3 Rec2020
Contrast vs:
AA AA-Lg AAA AAA-Lg · APCA Lc
Kleurenblindheid-simulatie (8 typen)
Protanopia (rood-blind)
Deuteranopia (groen-blind)
Tritanopia (blauw-blind)
Achromatopsia (totaal)
Protanomaly (rood-zwak)
Deuteranomaly (groen-zwak)
Tritanomaly (blauw-zwak)
Achromatomaly (gedeeltelijk)
Tints / Shades / Tones / Harmonies

Tints

Shades

Tones

Harmonies

Copy as code
Referentie van gangbare kleuren
Beoordeeld op CSS Color 4-conformiteit, OKLAB-matrix-correctheid, WCAG 2.x + APCA Lc-nauwkeurigheid, en 8-type CVD-simulatie-pariteit met gepubliceerde Brettel + Machado-waarden. — Go Tools Engineering-team · May 27, 2026

Wat is een color converter?

Een color converter is een klein hulpmiddel dat één enkele kleurwaarde vertaalt tussen de formaten die je toolchain, je design system en je browser daadwerkelijk begrijpen — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB en de 148 CSS named colors. Online converters zijn al een vast onderdeel van webtooling sinds de vroege jaren 2000, toen het antwoord bijna altijd een eenvoudige HEX-naar-RGB-textbox was, gebouwd voor een Geocities-tijdperk-stylesheet. Wat een moderne converter onderscheidt van die oude tools, zijn drie dingen: een unified-field-UX waarin elk formaat tegelijk bewerkbaar is in plaats van een eenrichtings-dropdown, een OKLCH-bron-van-waarheid die de canonieke waarde intern vasthoudt zodat round-trips bit-stabiel blijven, en perceptuele wiskunde verankerd in W3C CSS Color 4 in plaats van de gamma-verstrikte HSL-rekenkunde die de generatie van 2003 shippte.

Verschillende kleurruimtes bestaan omdat verschillende problemen verschillende representaties nodig hebben, en geen enkele ruimte is overal goed in. RGB is hardware-native — hij mapt direct op de rode, groene en blauwe subpixels van een LCD of de fosforen van een CRT, met elke channel gecodeerd als 8-bit integer van 0 tot 255. HEX is gewoon RGB in grondtal-16, gepakt in een string van zes tekens voor compacte CSS- en Figma-copy-paste. HSL, HSV en HWB zijn designer-cognitieve ruimtes — cilindrische hervormingen van RGB waarmee je met intuïtieve sliders kleurtoon kunt draaien, verlichten of verdonkeren. HSL werd in 1978 gepubliceerd naast HSV door Alvy Ray Smith; HWB werd toegevoegd in 1996 als schoner mentaal model (Hue + hoeveelheid Wit + hoeveelheid Zwart). CMYK is een drukproces-abstractie — een subtractieve inktstapel (Cyaan, Magenta, Yellow, Key=zwart) die modelleert hoe inkt licht absorbeert op papier in plaats van hoe een scherm het uitzendt. OKLCH en OKLAB zijn perceptuele ruimtes — ze zijn zo ontworpen dat gelijke numerieke afstand overeenkomt met gelijke waargenomen afstand, waardoor ze onmisbaar zijn voor design-system-ramps en toegankelijkheids-wiskunde. Named colors zijn CSS-legacy: de 148 SVG/CSS3-namen zoals `tomato`, `rebeccapurple` en `slategray` die met elke browser meekomen.

Meer dan twintig jaar was sRGB "goed genoeg" — een IEC-standaard uit 1996, gebouwd rond de fosfor-primaria van de CRT-monitoren van die tijd. Hij definieerde stilletjes de bovengrens van wat een webkleur kon betekenen. Toen braken wide-gamut-displays die aanname open. Apple's Display P3 dekt ongeveer 50% meer van het zichtbare spectrum dan sRGB en zit nu in elke iPhone, iPad en MacBook vanaf 2017. Rec2020 dekt nog meer en is de broadcaststandaard voor HDR-tv. HSL bakte sRGB's gamma-eigenaardigheden diep in zijn definitie, en daarom oogt een HSL-ramp visueel ongelijkmatig op een wide-gamut-display — een groen op L=50% oogt helderder dan een blauw op L=50%, omdat HSL's L geometrisch is, niet perceptueel. In 2020 publiceerde Björn Ottosson OKLAB, een perceptueel-uniforme kleurruimte afgeleid van CIE-LAB met gecorrigeerde lightness-respons en schoner gedrag bij hoge verzadiging. OKLCH is de polaire vorm ervan (Lightness / Chroma / Hue), dezelfde shape als HSL maar met de perceptuele wiskunde gerepareerd. CSS Color 4 voegde `oklch()`- en `oklab()`-syntax toe in 2022; Chrome 111 shippte ondersteuning in maart 2023, Safari 15.4 had het al sinds maart 2022, en Firefox 113 landde in mei 2023. Tailwind v4, uitgebracht in 2025, maakte OKLCH zijn standaard color-token-formaat; shadcn/ui volgde kort daarna. Deze tool weerspiegelt die verschuiving door OKLCH tot de interne bron van waarheid te maken — elke conversie loopt via OKLCH, dus een HEX → RGB → OKLAB → HEX round-trip stapelt geen float-drift op, en het direct bewerken van de L-channel van OKLCH werkt elk ander veld exact bij.

Welke ruimte je pakt hangt volledig af van wat je doet. **HEX** is de juiste keuze voor web-embedding, copy-paste tussen designtools en code, en overal waar compacte identifiers ertoe doen — `#3b82f6` past comfortabel in een CSS-variabele en de meeste front-end-developers herkennen 'm op het zicht. De aparte hex naar RGB converter dekt de meest voorkomende richting in één stap; de omgekeerde RGB naar hex converter dekt het geval waarin je losse channel-integers hebt van een designer of een pipeline voor pixelwiskunde. **RGB** is voor directe hardware-adressering — overal waar je 0-255 integers nodig hebt (canvas-API's, beeldmanipulatie, hardware LED-strips, OpenGL-kleurattributen). **HSL** is de legacy designer-cognitieve ruimte — kleurtoon draaien, verlichten, verdonkeren — en nog steeds nuttig als je een snelle CSS-kleur moet tweaken in een project dat nog niet naar OKLCH is gemigreerd. De eenrichtings- hex naar HSL converter is de juiste shortcut als dat is wat je nodig hebt. **HSV en HWB** zijn designer-color-picker-ruimtes. HSV (Hue, Saturation, Value) matcht het saturation-value-vierkant dat de meeste picker-UI's tekenen, dus dat is wat Photoshop, Figma en Sketch rapporteren als je op de eyedropper klikt. HWB is het schonere mentale model — kies een pure kleurtoon, voeg dan wit toe om lichter of zwart om donkerder te maken — en CSS Color 4 voegde native `hwb()`-ondersteuning toe in alle evergreen-browsers. **CMYK** is voor printvoorbereiding. Een nuchtere disclaimer: onze CMYK-uitvoer is een naïeve sRGB-gebaseerde benadering met de standaardformule `K = 1 - max(R,G,B); C = (1-R-K)/(1-K)`. Echte printnauwkeurigheid vereist een ICC-profiel-conversie tegen de specifieke pers, inkt en papier — typisch US Web Coated SWOP v2 of Fogra39 — wat kanalen 5-15% kan verschuiven. Behandel onze CMYK als startschatting, niet als deliverable. De eenrichtings- hex naar CMYK converter past dezelfde formule met dezelfde caveat toe. **OKLCH** is de standaardkeuze voor nieuwe code in 2025 en verder — moderne design systems, toegankelijkheidsbewuste paletgeneratie, overal waar perceptuele uniformiteit telt. De eenrichtings- hex naar OKLCH converter bestaat voor snelle migratie van een legacy-palet. **OKLAB** is de rechthoekige neef gebruikt voor palet-wiskunde: midpoints tussen twee kleuren, afstandsberekeningen, kleurenblindheid-simulatie-matrices en andere bewerkingen die lineaire-as-rekenkunde nodig hebben. **Named colors** zijn voor documentatie, code-commentaar, mockups en proza — de 148 CSS named colors zijn een vast woordenboek, en de tool vindt de dichtstbijzijnde named color voor elke invoer via ΔE-afstand in OKLAB.

De conversie-graaf in het hart van dit alles is goed gedefinieerd en verrassend schoon. sRGB en linear-sRGB zijn gerelateerd via een stukgewijze gammacurve gespecificeerd in W3C CSS Color 4 §11.2 (ongeveer een 2,4-exponent met een klein lineair segment rond nul). Linear-sRGB en CIE XYZ D65 zijn gerelateerd via een vaste 3×3-matrix uit CSS Color 4 §15.1. XYZ D65 en OKLAB zijn gerelateerd via twee matrices en een derdemachtswortel-stap (de LMS-cone-respons-stap, per Ottosson 2020). OKLAB en OKLCH zijn gerelateerd via een cartesiaans-naar-polair-transform — `C = sqrt(a² + b²); H = atan2(b, a)`. HEX is gewoon sRGB geserialiseerd als `#RRGGBB` in grondtal-16. RGB ↔ HSL, RGB ↔ HSV, RGB ↔ HWB zijn directe geometrische transforms binnen sRGB, gedefinieerd in CSS Color 4 §5-7. CMYK is de naïeve sRGB-gebaseerde formule hierboven. De hele pipeline is een gerichte graaf met OKLCH intern als wortel; elk ander formaat wordt op elke toetsaanslag daaruit berekend.

Naast de kern-conversie shipt deze tool features die de legacy-generatie niet had. **Display P3- en Rec2020-gamutdetectie** — drie badges markeren of de huidige kleur binnen het reproduceerbare bereik van elke ruimte valt, met een **Snap to sRGB**-knop die binaire chroma-reductie gebruikt (per CSS Color 4's informatieve algoritme) om de kleur te verkleinen totdat hij past. **WCAG 2- + APCA Lc-dubbele contrast-badges** — beide metrieken in één rij weergegeven zodat je vandaag de regelgevende standaard haalt en met de toekomstgerichte perceptuele metriek sanity-checkt. **8 kleurenblindheid-simulaties** — protanopia, deuteranopia en tritanopia via de Brettel-Viénot-Mollon 1997 dichromatie-matrices; protanomaly, deuteranomaly en tritanomaly via Machado-Oliveira-Fernandes 2009 anomale-trichromatie-matrices op severity 0,66; achromatopsia en gedeeltelijke achromatomaly via rec601 luminantie-gewichten. **OKLCH-uniforme paletgeneratie** — tints, shades, tones en harmonies gebouwd door de L-channel in gelijke stappen te verzetten met vaste C en H (dezelfde constructie als het standaardpalet van Tailwind v4). **CSS / Tailwind v4 / SwiftUI / Compose / Flutter-codesnippets** — plak-klare uitvoer voor de vijf platforms die de meeste cross-team-teams aanspreken. **EyeDropper API-integratie** op Chromium-browsers (Chrome, Edge, Brave, Opera) voor het pakken van kleuren overal op het scherm inclusief buiten de browser. **URL-hash-state** — de huidige kleur codeert in de URL als `#hex=...` of `#oklch=...` zodat je een live link naar exact dezelfde kleur met één kopie kunt delen.

Alles in deze tool draait lokaal in je browser. Je kleurwaarden worden nooit geüpload, nooit gelogd, nooit geanalyseerd, nooit op een server opgeslagen. Nul netwerkverzoeken terwijl je typt — open DevTools → Netwerk en kijk: typen in een willekeurig veld triggert nul verkeer. Het verschil met klassieke server-gebaseerde converters is direct meetbaar: een tool die op elke toetsaanslag de waarde via een endpoint heen en weer stuurt, betaalt 80-300 ms latency per wijziging en logt de waarde aan de serverkant — twee redenen waarom unified-field-bewerken op afstand niet kan werken zoals het hier doet. Dat maakt de tool veilig voor onaangekondigde merkpaletten, interne design-token-systemen, concept-mockups en al het andere vertrouwelijke kleurwerk. Geen cookies registreren wat je plakt; geen analytics vuren op kleurwijzigingen. Dezelfde houding strekt zich uit tot de URL-hash: het `#hex=...`-fragment leeft alleen in je adresbalk en wordt nooit naar de server verzonden (browsers nemen het fragment niet op in HTTP-verzoeken), dus zelfs een gedeelde link lekt de kleur niet naar enige derde partij anders dan de ontvanger die je 'm stuurt. Voor teams die werken aan pre-launch merkwerk, embargoed campagnes of klantpaletten onder NDA telt dat zwaarder dan de gemakskop suggereert. Wil je het zelf controleren: open de pagina, ga offline (DevTools → Netwerk → Offline) en typ door — de conversies blijven doorlopen, de gamut-badges blijven werken, de paletgeneratie blijft werken. Alleen de eerste paginalaadbeurt heeft het netwerk nodig; daarna is de tool volledig autonoom. Voor een diepere duik in waarom OKLCH in 2024–2026 de standaard werd voor design systems, lees onze begeleidende gids: OKLCH-kleurruimte uitgelegd — waarom Tailwind v4 erop overstapte.

// sRGB → linear → XYZ D65 → OKLAB → OKLCH
// References: W3C CSS Color 4 §11-15, Ottosson 2020 (https://bottosson.github.io/posts/oklab/)
// Worked example: #3b82f6 (Tailwind blue-500)

const srgb = [0x3b, 0x82, 0xf6].map(v => v / 255); // [0.231, 0.510, 0.965]

const toLinear = (v) => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
const lin = srgb.map(toLinear); // gamma-decoded linear-sRGB

// linear-sRGB → XYZ D65 (CSS Color 4 §15.1 matrix)
const [lr, lg, lb] = lin;
const x = 0.4124564 * lr + 0.3575761 * lg + 0.1804375 * lb;
const y = 0.2126729 * lr + 0.7151522 * lg + 0.0721750 * lb;
const z = 0.0193339 * lr + 0.1191920 * lg + 0.9503041 * lb;

// XYZ D65 → LMS (Ottosson 2020 matrix), cube-root, → OKLAB
const l_ = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);
const m_ = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);
const s_ = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.6338517070 * z);
const L = 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_;
const a = 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_;
const b = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_;

// OKLAB → OKLCH (Cartesian to polar)
const C = Math.sqrt(a * a + b * b);
const H = (Math.atan2(b, a) * 180 / Math.PI + 360) % 360;
console.log(`oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`);
// → oklch(0.629 0.193 263.4)

Kernfuncties

9 simultaan bewerkbare kleurruimtes

Elk formaat — HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB en CSS named color — is een direct bewerkbaar veld, geen eenrichtings-dropdown. Typ een `oklch()`-waarde en HEX, RGB, HSL worden allemaal bijgewerkt; plak een hex uit Figma en OKLCH werkt bij met de matchende perceptuele coördinaten. De cursor in het veld dat je bewerkt blijft staan — alleen de andere acht velden re-renderen op elke toetsaanslag, dus bewerken voelt natuurlijk.

OKLCH als bron van waarheid — bit-perfecte round-trips

De interne canonieke representatie is OKLCH, de perceptueel-uniforme polaire vorm van OKLAB (Ottosson 2020). Elk ander formaat wordt daarvan afgeleid op elke toetsaanslag. Dit betekent dat HEX → RGB → HSL → OKLAB → HEX round-trips zonder float-drift verlopen — de originele hex komt onveranderd terug. Legacy-converters die conversies via HSL of sRGB routen, stapelen per-stap-afrondingsfout op; deze tool niet.

Display P3 + Rec2020 gamut-waarschuwingen

Drie live badges (sRGB, Display P3, Rec2020) tonen of de huidige kleur binnen het reproduceerbare bereik van elke ruimte valt. Handig als je in OKLCH werkt en wilt weten welke displays de waarde accuraat zullen weergeven — veel Tailwind v4 OKLCH-kleuren overschrijden sRGB maar passen in P3, wat de meeste Apple-apparaten sinds 2017 kunnen renderen. De Snap to sRGB-knop gebruikt het binaire chroma-reductie-algoritme van CSS Color 4 om de kleur te verkleinen totdat hij past.

WCAG 2 + APCA contrast in één rij

Contrast tegen zowel wit als zwart wordt getoond met twee metrieken naast elkaar: de WCAG 2.1-ratio (4,5:1 = AA lopende tekst, 7:1 = AAA) voor regelgevende compliance vandaag, en de APCA Lc-score (het toekomstgerichte WCAG 3 perceptuele contrastalgoritme). APCA is polariteit-gevoelig (licht-op-donker weegt anders dan donker-op-licht), wat WCAG 2's symmetrische formule fout doet. Gebruik beide: WCAG voor audits, APCA voor echte leesbaarheid.

Kleurenblindheid-simulatie over 8 deficiëntietypen

Live voorvertoningen voor de drie dichromaties (protanopia, deuteranopia, tritanopia) via Brettel-Viénot-Mollon 1997-matrices, de drie anomale trichromaties (protanomaly, deuteranomaly, tritanomaly) via Machado-Oliveira-Fernandes 2009-matrices op severity 0,66, plus achromatopsia en achromatomaly via rec601 luminantie-gewichten. Dekt ongeveer 8% van de mannen en 0,5% van de vrouwen — de populaties waarvoor je ontwerp toegankelijk moet blijven.

OKLCH-uniforme tints, shades, tones en harmonies

Palet-ramps worden gegenereerd door de L-channel in gelijke OKLCH-stappen te verzetten met vaste Chroma en Hue — dezelfde constructie als Tailwind v4. Het resultaat is perceptueel gelijkmatig: de visuele afstand tussen de stops 400 en 500 oogt identiek aan die tussen 500 en 600, wat een HSL-ramp niet kan garanderen. Harmonies (complement, triad, tetrad, split-complement) roteren Hue met exacte hoeken en behouden L+C.

Copy as CSS / Tailwind v4 / SwiftUI / Compose / Flutter

Met één klik codegeneratie voor de vijf platforms waarheen de meeste cross-team-teams shippen: CSS custom property (`--color-brand: oklch(0.629 0.193 263.4)`), Tailwind v4 `@theme`-token, SwiftUI `Color(red:green:blue:)`-literal, Jetpack Compose `Color(0xFF3B82F6)`-constante, Flutter `Color(0xFF3B82F6)`. De exacte syntax die elk platform verwacht, klaar om te plakken in een merkstylesheet, een iOS-asset catalog of een Android-thema.

Handgeschreven OKLCH-picker (nul afhankelijkheden)

Het SL-vierkant + de hue-slider + de alpha-slider zijn geschreven in plain canvas + JavaScript zonder externe picker-bibliotheek. De OKLCH-gradient op de hue-slider wordt berekend uit echte OKLCH-wiskunde, niet benaderd met HSL, dus het slepen van de slider produceert perceptueel-uniforme kleurtoonrotatie. Het bundle-gewicht blijft onder 10 KB voor de hele interactieve laag; de first paint is snel, zelfs op cold loads.

100% in-browser — geen upload, geen tracking

Alle conversie-wiskunde, paletgeneratie, contrastscoring en gamutdetectie draait lokaal in je browser. Je kleurwaarden worden nooit verzonden, nooit op een server opgeslagen, nooit gelogd, nooit geanalyseerd. Nul netwerkverzoeken terwijl je typt — verifieer in DevTools. Veilig voor onaangekondigde merkpaletten, interne design-tokens, concept-mockups en al het andere vertrouwelijke kleurwerk.

Color converter-alternatieven vergeleken

ColorHexa

browsertool

Een veteraan-concurrent met diepe per-kleur-informatiepagina's — genereert een volledige SEO-pagina per hex met conversies, paletten, harmonies en gradients. UI is gedateerd (esthetiek van begin jaren 2010), geen OKLCH-ondersteuning, geen APCA-contrast, geen wide-gamut-afhandeling. Sterk voor SEO-vindbaarheid van een specifieke kleur ("#FF5733" als zoekquery); zwakker voor actief designwerk waar unified-field-UX ertoe doet.

RapidTables

browsertool

Brede selectie eenrichtings-converters (HEX naar RGB, RGB naar HEX, HEX naar HSL, enz.) plus andere unit-tools. Elke conversie is een aparte pagina met een eenrichtingsformulier — geen live unified-fields-ervaring. Geen OKLCH-ondersteuning, geen gamut-waarschuwingen, geen contrast-check. Bruikbaar voor losse snelle conversies wanneer je vanuit een Google-zoekopdracht binnenkomt; deze tool is sneller voor elke workflow met meer dan één conversie.

HTMLColorCodes

browsertool

Sterke color-picker en palet-generator met een schone UI. De picker-UX is goed voor visuele exploratie. De converter-kant is basaal — HEX, RGB, HSL, HSV, CMYK alleen; geen OKLCH, geen OKLAB, geen gamutdetectie. Het beste als je variaties van een kleur visueel wilt verkennen; deze tool wint wanneer je moderne kleurruimtes of nauwkeurige conversie-wiskunde nodig hebt.

OKLCH.com

browsertool

Prachtig gebouwde OKLCH-gerichte tool door Andrey Sitnik (auteur van de postcss-oklab-function polyfill). Best-in-class voor OKLCH-specifieke exploratie met een wide-gamut-bewuste picker en paletgeneratie. Dekt HEX/RGB/HSL/CMYK-conversie niet als primaire uitvoer — gericht op OKLCH alleen. Pak OKLCH.com wanneer je puur OKLCH-designwerk doet; pak deze tool wanneer je cross-space-conversie nodig hebt.

ConvertingColors

browsertool

Dekt veel kleurruimtes (HEX, RGB, HSL, HSV, CMYK, XYZ, CIELAB en meer) met een per-kleur-SEO-contentpagina-model vergelijkbaar met ColorHexa. Mist moderne OKLCH-ondersteuning, geen APCA-contrast, geen wide-gamut-afhandeling, en de auto-gegenereerde contentpagina's ogen content-farm-achtig. Goed voor het uitpluizen van individuele kleur-metadata; deze tool is sneller voor actief design- en toegankelijkheidswerk.

IT-Tools

open-source browsertool

Schone zelf-hostbare Vue 3-verzameling devtools, met een color converter tussen veel andere utilities. UX is consistent over de hele suite. De color converter dekt HEX, RGB, HSL, HSV, CMYK; geen OKLCH, geen gamut-waarschuwingen, geen contrast-check, geen kleurenblindheid-simulatie. De moeite waard om lokaal te draaien als je een zelf-gehoste multi-tool-collectie wilt; deze tool is de toegewijde, diepere alleen-kleur-optie.

W3Schools Color Converter

browsertool

Basale HEX/RGB/HSL-toggle op een beginnersvriendelijke pagina, alomtegenwoordig in zoekresultaten voor color-converter-queries. Geen OKLCH, geen geavanceerde features. Bruikbaar als leerreferentie naast W3Schools' uitleg-content. Deze tool wint op elke andere as: meer ruimtes, perceptuele wiskunde, gamut + contrast + CVD-features, moderne Tailwind v4 / SwiftUI / Compose / Flutter codeexport.

Voorbeelden van kleurconversie

Tailwind v4 merkkleur → OKLCH

#3b82f6

OKLCH-uitvoer: `oklch(0.629 0.193 263.4)`. Plak dat direct in een Tailwind v4 `@theme`-blok als `--color-brand-500: oklch(0.629 0.193 263.4);` en de rest van je ramp lijnt perceptueel uit. Tailwind v4 standaardiseerde in 2024 op OKLCH voor zijn standaardpalet juist omdat de L-channel de waargenomen helderheid consistent houdt over kleurtonen heen — green-500 en blue-500 ogen even helder, wat HSL/RGB-ramps niet kunnen garanderen. De hex blijft letterlijk bewaard als je ook een fallback nodig hebt voor oudere browsers.

Web-hex → SwiftUI Color-literal

#FF5733

SwiftUI-uitvoer (onder Copy as code → SwiftUI): `Color(red: 255/255, green: 87/255, blue: 51/255)`. De klassieke iOS- / macOS-workflow: een designer dropt een hex in het merkpaneel van Figma, je plakt die hier, en kopieert de SwiftUI-literal in een `View`. De expressievorm (met de expliciete `/255`-deling) is bewust — die overleeft een code review beter dan de ondoorzichtige `Color(red: 1.0, green: 0.341, blue: 0.2)` omdat de originele merk-hex in de broncode zichtbaar blijft.

Designerpalet-kleurstaal → CMYK-benadering voor print

#FF6347

CMYK-uitvoer: ongeveer `cmyk(0%, 61%, 72%, 0%)`. Dit is een naïeve sRGB → CMYK-conversie via de standaardformule `K = 1 − max(R,G,B); C = (1−R−K)/(1−K)` — bruikbaar als snelle startschatting voor een printofferte, maar geen vervanging voor de echte conversie. Een drukkerij draait het bestand door een ICC-profiel (typisch US Web Coated SWOP v2 of Fogra39) afgestemd op de exacte pers, inkt en papier, wat kanalen 5-15% kan verschuiven. Behandel dit getal als sanity check, niet als deliverable.

OKLCH wide-gamut-kleur → sRGB-fallback

oklch(0.7 0.25 30)

De gamut-rij markeert deze kleur direct als **buiten sRGB** (Display P3 dekt 'm wel, Rec2020 ook). Op een standaardmonitor rendert hij als gedesatureerde benadering; op een P3-capabele display (de meeste laptops geleverd na 2017) rendert hij verzadigd. Klik **Snap to sRGB** om chroma te verlagen tot de kleur in de sRGB-kubus past, en kopieer dan de resulterende hex (rond `#ef6b50`) als fallback. Met OKLCH als bron van waarheid kun je de wide-gamut-waarde in je design-token houden en de gesnapte hex shippen als `@supports not (color: oklch(...))`-fallback.

WCAG-contrast voor lopende tekst verifiëren

#767676

Tegen wit (`#ffffff`) komt de WCAG 2.1-contrastratio uit op ongeveer **4,54:1** — net boven de 4,5:1 AA-drempel voor lopende tekst. Drop één cijfer naar `#777777` en de ratio zakt naar 4,48:1, wat AA niet haalt. De APCA Lc-waarde verschijnt ernaast als toekomstgerichte metriek (WCAG 3 draft) — APCA scoort dit paar rond `Lc 60`, iets onder de aanbevolen `Lc 75` voor lopende tekst. Gebruik beide: WCAG om audits te halen, APCA om er zeker van te zijn dat het resultaat ook echt leesbaar oogt.

De CSS named color vinden die het dichtst bij een merk-hex ligt

#FF6347

Het veld **Named** geeft `tomato (exact)` terug omdat de CSS-spec `tomato` letterlijk definieert als `#FF6347` — een van de 148 named colors die met elke browser meekomen. Probeer een bijna-match als `#FF6348` en het veld geeft `tomato (nearest, ΔE 0.02)` terug, met de dichtstbijzijnde named color en hoe ver hij ernaast zit volgens CIE ΔE (Delta E in OKLAB-ruimte). Handig als je teksten of opmerkingen schrijft en een leesbare kleurnaam wilt in plaats van een hexcode.

Een oude HSL-waarde omzetten naar modern OKLCH

hsl(220 70% 50%)

OKLCH-uitvoer: ongeveer `oklch(0.5 0.187 263)`. HSL's L=50% is **geen** perceptuele 50% — blauw op L=50% oogt veel donkerder dan geel op L=50%, omdat HSL een cilindrische hervorming is van sRGB, niet een uniforme ruimte. OKLCH's L=0,5 komt feitelijk overeen met de mid-grijze luminantie die je oog waarneemt. Wanneer je een HSL-design system naar OKLCH migreert, schuiven de L-waarden (blauwtinten omhoog, geeltinten omlaag) — dat is het systeem dat zichzelf corrigeert, geen bug.

Een palet van 5 lichte en 5 donkere varianten vanuit een merkkleur vinden

#3b82f6

De sectie **Tints / Shades / Tones / Harmonies** genereert 5 lichtere en 5 donkere varianten door de OKLCH L-channel in gelijke stappen te verzetten terwijl C en H vast blijven. Het resultaat is een perceptueel gelijkmatige ramp — de afstand tussen `500` en `600` oogt hetzelfde als die tussen `600` en `700`, en dat is wat een design system nodig heeft. Klik op een kleurstaal om die als actieve kleur te laden, en kopieer de hex/OKLCH. Dezelfde constructie als Tailwind v4's standaard-paletgenerator.

Zo gebruik je de color converter

  1. 1

    Plak of typ elke kleur in elk formaat

    Elk van de 9 formaatvelden (HEX, RGB, HSL, HSV, HWB, CMYK, OKLCH, OKLAB, Named) is direct bewerkbaar — er is geen "Converteren"-knop om op te klikken. Plak een hex uit Figma, typ een `oklch()`-waarde uit een Tailwind-config, drop een `hsl()` uit een oude stylesheet, of typ zelfs een CSS named color zoals `tomato`. De tool parseert incrementeel terwijl je typt, dus een half-getypte waarde blaast de andere niet weg totdat je een geldig formaat vastlegt. Ongeldige invoer krijgt een rustige inline foutmelding; geldige invoer werkt de volledige grid bij.

  2. 2

    Alle 9 formaten worden direct bijgewerkt

    De interne bron van waarheid is OKLCH (perceptueel uniform, gamut-onbegrensd), en elk ander formaat wordt daarvan afgeleid bij elke toetsaanslag. Het veld waarin je typt behoudt zijn cursorpositie ongemoeid — alleen de *andere* acht velden re-renderen. Dat betekent dat je de L-channel van OKLCH direct kunt bewerken en hex, RGB, HSL en CMYK in realtime ziet meeschuiven zonder je cursor te verliezen. De conversie-wiskunde draait volledig in JavaScript met dezelfde OKLAB-primitieven die in moderne browsers zitten.

  3. 3

    Gebruik de picker voor visuele exploratie

    Onder de formaatgrid zit een saturation-lightness-vierkant (sleep om S+L voor de huidige kleurtoon te zetten), een hue-slider (sleep om rond de kleurencirkel te draaien), en een alpha-slider (sleep voor transparantie). Op Chromium-gebaseerde browsers (Chrome, Edge, Brave) activeert de **Eyedropper**-knop de native `EyeDropper`-API — klik ergens op het scherm, ook buiten het browserscherm, om de kleur van die pixel te samplen. Safari en Firefox shippen de API nog niet, dus daar is de knop verborgen en blijven het SL-vierkant + de hue-slider de primaire picker.

  4. 4

    Check gamut en contrast in één oogopslag

    Drie gamut-badges (**sRGB**, **Display P3**, **Rec2020**) tonen of de huidige kleur binnen het reproduceerbare bereik van elke ruimte valt — handig als je in OKLCH werkt en wilt weten welke displays de waarde accuraat zullen weergeven. De contrastrij toont de WCAG 2.1-ratio tegen zowel wit als zwart, plus de APCA Lc-score (toekomstgerichte WCAG 3-metriek). Pass / fail-badges (AA, AAA) verschijnen inline. Als een kleur buiten gamut van sRGB valt, verkleint een **Snap to sRGB**-knop de chroma tot hij past.

  5. 5

    Kopieer in de native syntax van je platform

    Elk van de 9 formaatvelden heeft een eigen **Kopiëren**-knop — één klik, de waarde belandt op je klembord, het label springt kort op "Gekopieerd!" zodat je het weet. Onder de picker genereert de sectie **Copy as code** plak-klare snippets voor vijf platforms: CSS custom property, Tailwind v4 `@theme`-token, SwiftUI `Color(red:green:blue:)`-literal, Jetpack Compose `Color(0xFF...)`-constante, en Flutter `Color(0xFF...)`. De URL-hash (`#hex=...` of `#oklch=...`) wordt ook bijgewerkt zodat je een live link naar exact dezelfde kleur kunt delen.

Veelgemaakte fouten bij kleurconversie

HSL met OKLCH verwarren

Beide ruimtes delen dezelfde cilindrische Hue / Lightness / (Saturation of Chroma)-shape, waardoor ze op papier uitwisselbaar lijken. Dat zijn ze niet. HSL's L is geometrisch — afgeleid van RGB door max- en min-channel-waarden te middelen — en bakt sRGB's gammacurve in. OKLCH's L is perceptueel, verankerd aan het OKLAB-model. Een HSL-ramp op uniforme L oogt visueel ongelijkmatig over kleurtonen heen; een OKLCH-ramp op uniforme L blijft gelijk. Vervang de een niet door de ander in een design-system-migratie zonder bij te tunen.

✗ Fout
Aannemen dat een HSL-palet perceptueel uniform is:
hsl(220 50% 30%) → hsl(220 50% 60%) → hsl(220 50% 90%)
Op het scherm oogt dit ongelijkmatig verdeeld.
✓ Correct
Gebruik OKLCH voor perceptueel-uniforme ramps:
oklch(0.30 0.10 220) → oklch(0.60 0.10 220) → oklch(0.90 0.10 220)
Op het scherm oogt dit gelijkmatig verdeeld.

Naïeve CMYK vertrouwen voor print

De CMYK-uitvoer hier komt uit de standaard schoolboekformule `K = 1 - max(R,G,B)` toegepast op sRGB. Het is een nuttig richtgetal, geen vervanging voor de echte conversie. Drukkerijen draaien bestanden door een ICC-profiel (US Web Coated SWOP v2, Fogra39, Japan Color 2011, enz.) afgestemd op de specifieke pers, inkt en papier. ICC-geconverteerde CMYK kan 5-15% per channel verschillen van de naïeve formule. Stuur de originele sRGB-hex naar de drukker en laat hem de juiste conversie doen.

✗ Fout
Stuur onze CMYK-uitvoer direct naar een pers:
hex #FF6347 → cmyk(0%, 61%, 72%, 0%)
Het geprinte resultaat kan vies of oververzadigd ogen.
✓ Correct
Stuur de originele hex naar de drukker:
hex #FF6347 → laat de drukker ICC-converteren tegen zijn pers
Het geprinte resultaat matcht de schermkleur veel nauwkeuriger.

APCA Lc lezen als WCAG-2-compatibel getal

APCA Lc en WCAG 2-ratio's zijn verschillende schalen die verschillende dingen meten. WCAG 2 geeft een ratio van 1:1 (geen contrast) tot 21:1 (max contrast), met 4,5:1 als wettelijke AA-ondergrens voor lopende tekst. APCA geeft Lc van 0 tot ±108 met teken dat polariteit aangeeft (positief voor donkere tekst op lichte achtergrond, negatief voor lichte tekst op donkere achtergrond). Lc 60 mapt niet naar WCAG 4,5:1; de relatie is niet-lineair en richtingsafhankelijk. Gebruik beide metrieken naast elkaar, niet de een als vertaling van de ander.

✗ Fout
Doen alsof Lc 60 = WCAG 4,5:1:
APCA Lc 60 → "dit haalt AA"
WCAG 2-ratio voor hetzelfde paar zou 3,8:1 kunnen zijn (faalt AA).
✓ Correct
Check beide metrieken onafhankelijk:
WCAG 2-ratio ≥ 4,5:1 voor AA-compliance lopende tekst, EN
APCA |Lc| ≥ 75 voor real-world leesbaarheid.
Beide moeten slagen, niet de een als substituut voor de ander.

HSL gebruiken voor design-system-schaduwen

Het genereren van een 50/100/200/.../900-ramp door de L-channel van HSL te verzetten levert een visueel ongelijkmatige ramp op omdat HSL's L niet perceptueel is. De donkere stops ogen te donker, de lichte stops te licht, en de middelste stops worden samengedrukt. Designers fixen dit door elke stop met de hand te tunen, een oefening van meerdere uren per merkkleur. OKLCH lost het probleem door constructie op — gelijke L-stappen ogen gelijk — dus de ramp is gelijk bij de eerste poging.

✗ Fout
L verzetten in HSL voor schaduwen:
hsl(220 50% 30%) / hsl(220 50% 60%) / hsl(220 50% 90%)
90% oogt uitgewassen; 30% oogt veel donkerder dan de afstand naar 60%.
✓ Correct
L verzetten in OKLCH voor schaduwen:
oklch(0.30 0.10 220) / oklch(0.60 0.10 220) / oklch(0.90 0.10 220)
Elke stap oogt als dezelfde visuele afstand.

Alpha vergeten bij het kopiëren van HEX

8-cijferige hex (`#RRGGBBAA`) en de 4-cijferige verkorte vorm (`#RGBA`) coderen alpha-transparantie in het laatste paar. CSS ondersteunt beide; oudere parsers (waaronder sommige legacy CSS-preprocessors en designtools van vóór 2018) begrijpen alleen 6-cijferige hex en kappen de alpha stilletjes af. Resultaat: een kleur die je 50% transparant verwachtte rendert volledig dekkend. Verifieer altijd dat de doel-syntax 8-cijferige hex accepteert voor je alpha-dragende waarden kopieert; voor legacy-targets, val terug op `rgba()`.

✗ Fout
Kopieer 8-cijferige hex naar een legacy-parser:
#FF573380 → parser kapt af → #FF5733 (geen alpha)
De 50%-transparantie gaat stilletjes verloren.
✓ Correct
Verifieer dat het doel 8-cijferige hex ondersteunt, of gebruik rgba():
voor modern CSS: #FF573380 (8-cijferige hex)
voor legacy-support: rgba(255, 87, 51, 0.5) (altijd ondersteund)
Expliciete alpha-syntax voorkomt stille afkapping.

Naar sRGB snappen zonder Display P3 mee te wegen

Snap to sRGB is een nuttig vangnet voor legacy-contexten, maar het zonder onderscheid toepassen ondermijnt het wide-gamut-display waarvoor je mogelijk ontwerpt. De meeste Apple-apparaten vanaf 2017 renderen Display P3 native; veel moderne Android-apparaten en laptopschermen ook. Een wide-gamut OKLCH-kleur die sRGB overschrijdt maar in P3 past, oogt dramatisch verzadigder op P3-hardware dan de gesnapte sRGB-benadering. Check eerst de P3 gamut-badge; snap alleen wanneer je sRGB-only-legacy-contexten target.

✗ Fout
Snap elke OKLCH-kleur standaard naar sRGB:
oklch(0.7 0.25 30) → snap → oklch(0.7 0.18 30)
P3-displays verliezen 30%+ verzadiging zonder reden.
✓ Correct
Check eerst de Display P3-badge:
als fits-P3: houd de wide-gamut-waarde, voeg sRGB-fallback toe via @supports
als exceeds P3: dan snappen naar sRGB
Laat de wide-gamut-hardware zijn werk doen.

Wie gebruikt deze tool

Frontend-devs migreren naar Tailwind v4 OKLCH-tokens
Tailwind v4 standaardiseerde in 2024 op OKLCH voor zijn standaardpalet. Het migreren van een oud HSL- of hex-gebaseerd design system betekent honderden merkkleuren naar OKLCH omzetten. Plak elke hex, kopieer de OKLCH-uitvoer, drop in het `@theme`-blok. De live gamut-badges markeren kleuren die sRGB overschrijden zodat je kunt beslissen of je de wider-gamut-waarde houdt voor Display P3-displays.
Designers vertalen Figma-kleuren naar iOS / Android
Figma exporteert standaard hex, maar iOS wil SwiftUI `Color(red:green:blue:)`-literals en Android wil Jetpack Compose `Color(0xFF...)`-constantes. Plak de Figma-hex één keer, kopieer de SwiftUI-snippet voor de iOS-engineer en de Compose-snippet voor de Android-engineer — beide al in de exacte syntax die elk platform verwacht, met de originele hex bewaard in een commentaar voor traceerbaarheid.
Designers bereiden printproofs voor (CMYK-benadering)
Wanneer een merkkleur op een gedrukt visitekaartje moet verschijnen, geeft de CMYK-benadering een snelle schatting om te delen met de drukkerij vóór de echte ICC-conversie. Plak de merk-hex, kopieer de CMYK-percentages, stuur naar de drukker voor een snelle prijsopgave — laat dan de ICC-profiel-bewuste conversie van de drukker over om de uiteindelijke kleurmatch tegen de specifieke pers te doen.
Toegankelijkheidsengineers verifiëren WCAG en APCA
WCAG 2.1 is de regelgevende standaard (ADA, EAA, Section 508) vandaag; APCA Lc is de voorgestelde WCAG 3-opvolger. Beide metrieken naast elkaar tonen betekent dat een designer een lopende-tekst-kleur kan verifiëren op 4,5:1 WCAG tegen wit, en dan sanity-checken dat hij ook door APCA Lc 75 komt, op één scherm — zonder tussen twee aparte calculators te springen.
Onderwijzers leggen kleurruimte-concepten uit
De simultane negen-veldenweergave maakt kleurruimte-relaties zichtbaar. Typ een OKLCH-waarde, kijk hoe HSL afdwaalt omdat L iets anders betekent in elke ruimte. Sleep de hue-slider en kijk hoe hex, RGB en CMYK allemaal bijwerken. Laat zien hoe de gamut-badges rood worden als je chroma voorbij sRGB duwt. De tool is zijn eigen klaslokaal-demo voor een graphics- of HCI-cursus op universiteitsniveau.
Brandmanagers vinden de dichtstbijzijnde CSS named color
Wanneer de marketingtekst zegt "een tomaatkleurig accent" maar de feitelijke merk-hex is `#FF6347`, geeft het Named-veld `tomato (exact)` terug omdat dat letterlijk is wat `tomato` oplevert in de CSS-spec. Voor bijna-match-hexen geeft het veld de dichtstbijzijnde named color terug met de ΔE-afstand in OKLAB — handig voor documentatie, proza en informeel kleurbenoemen.
Web-devs converteren legacy HEX-paletten naar OKLCH
Een oudere site kan een merkpalet van 50 kleuren hebben dat in CSS custom properties als hex-codes is gedefinieerd. Moderniseren naar OKLCH laat het merkteam dezelfde ramps in een perceptueel-uniforme ruimte uitdrukken. Plak elke hex, kopieer de OKLCH-uitvoer, swap in de variabele-definities. Het Tints/Shades-paneel eronder verifieert dat de resulterende ramp visueel gelijkmatig is voor je shippt.
Open-source-maintainers documenteren design tokens
Design-token-documentatie moet meestal dezelfde kleur in meerdere syntaxen tonen — hex voor het CSS-codeblok, OKLCH voor de spec-tabel, de named color voor proza-vermeldingen. De simultane-veldweergave laat een maintainer elk in één pass kopiëren in plaats van drie aparte conversies opnieuw te draaien. De deelbare URL-hash laat contributors ook linken naar de exact besproken kleur in een GitHub-issue.

Wiskunde & algoritmen achter kleurconversie

OKLCH als interne bron van waarheid
De tool houdt de canonieke kleurwaarde intern aan als OKLCH-triple. Elk bewerkbaar veld leidt zijn weergavewaarde uit dat triple af op elke toetsaanslag; elke bewerking door de gebruiker werkt eerst het triple bij en triggert dan een re-render van de andere acht velden. Dit elimineert de per-stap float-drift die converters teistert die via HSL of sRGB als pivot routen. De keuze voor OKLCH boven OKLAB is bewust — de polaire vorm behoudt Hue als stabiele as, dus het slepen van de hue-slider crossfadet niet per ongeluk door grijs. Per Björn Ottossons paper uit 2020 is OKLAB's perceptuele uniformiteit het sterkste argument om het te behandelen als lingua franca van moderne kleur-wiskunde.
Matrix-bronnen (W3C CSS Color 4 + Ottosson 2020)
Elke conversiematrix in de codebase wordt geciteerd naar zijn primaire bron. De sRGB ↔ linear-sRGB stukgewijze gammafunctie is W3C CSS Color 4 §11.2 (`v <= 0.04045 ? v/12.92 : ((v+0.055)/1.055)^2.4`). De linear-sRGB ↔ CIE XYZ D65 3×3-matrix is CSS Color 4 §15.1. De XYZ D65 ↔ LMS-matrix en de OKLAB derdemachtswortel-stap zijn uit Ottossons referentie-implementatie op `https://bottosson.github.io/posts/oklab/`, precies zoals gepubliceerd. Geen enkele matrix wordt herberekend of opnieuw afgeleid — ze letterlijk overnemen houdt de uitvoer identiek aan de referentievectoren van de spec.
Naïeve CMYK-formule en de ICC-caveat
Onze CMYK-uitvoer gebruikt de standaard schoolboekformule: `K = 1 - max(R, G, B); C = (1-R-K)/(1-K); M = (1-G-K)/(1-K); Y = (1-B-K)/(1-K)` werkend op genormaliseerde sRGB-waarden. Dit is een bewuste benadering. Echte printnauwkeurigheid vereist een ICC-profiel-conversie tegen de specifieke pers, inkt (bijv. US Web Coated SWOP v2, Fogra39, Japan Color 2011) en papier, wat kanalen 5-15% kan verschuiven. We tonen het CMYK-veld met een zichtbare disclaimer zodat gebruikers onze waarden niet direct naar een pers shippen. Behandel de uitvoer als sanity check voor offertes, niet als deliverable.
Gamutdetectie via channel-range-check
Een kleur wordt als in-gamut beschouwd voor een doelruimte (sRGB, Display P3, Rec2020) als elke channel binnen `[-ε, 1 + ε]` valt na conversie naar de primaria van die ruimte, waarbij `ε = 1e-7` om float-precisie-ruis rond grenzen op te vangen. De gamut-badge voor elke ruimte wordt rood wanneer een channel het bereik overschrijdt. Dit vangt het gangbare geval — een wide-gamut OKLCH-kleur als `oklch(0.7 0.4 30)` rapporteert buiten-sRGB maar in-P3, en vertelt je welke displays hem accuraat zullen weergeven. De check draait op elke toetsaanslag.
Chroma-reductie snap-algoritme
Snap to sRGB gebruikt binaire zoek op de Chroma-as: houd L en H vast op de huidige waarden, zoek C ∈ [0, currentC] voor de grootste C waarvan de sRGB-conversie in-gamut blijft. De zoek loopt maximaal 30 iteraties (precisie ~10⁻⁹), wat ruim genoeg is voor visuele nauwkeurigheid. Dit matcht het informatieve gamut-mapping-algoritme beschreven in CSS Color 4 §13 — lightness en hue behouden terwijl alleen chroma wordt verlaagd, houdt de gesnapte kleur herkenbaar binnen dezelfde kleurtoon-familie. We clippen niet direct op RGB-kanalen omdat dat hue merkbaar vervormt (vooral bij blauwen).
Brettel + Machado CVD-matrices
Kleurenblindheid-simulatie gebruikt twee gepubliceerde matrix-families. De drie dichromaties — protanopia, deuteranopia, tritanopia — gebruiken Brettel-Viénot-Mollon 1997-matrices die werken in linear-RGB (eerst gamma-decoderen, matrix toepassen, weer gamma-encoderen). De drie anomale trichromaties — protanomaly, deuteranomaly, tritanomaly — gebruiken Machado-Oliveira-Fernandes 2009-matrices op severity 0,66, wat overeenkomt met een typische anomale-trichromatie-patiënt. Achromatopsia en gedeeltelijke achromatomaly gebruiken rec601 luminantie-gewichten (`0,299R + 0,587G + 0,114B`) voor een grijsschaal-projectie. Alle acht simulaties renderen op elke kleurwijziging.
WCAG 2 vs APCA: wanneer welke
WCAG 2.x (huidige standaard) berekent een symmetrische contrastratio uit relatieve luminantie: `(L1 + 0,05) / (L2 + 0,05)`, target 4,5:1 voor normale lopende tekst en 7:1 voor AAA. Dat is de wettelijke compliance-ondergrens voor toegankelijkheidsaudits in 2026. APCA (Accessible Perceptual Contrast Algorithm) is de voorgestelde WCAG 3-opvolger — polariteit-gevoelig (licht-op-donker scoort anders dan donker-op-licht), beter gecorreleerd met door mensen ervaren leesbaarheid, target `|Lc| ≥ 75` voor lopende tekst. Beide metrieken in één rij laten een designer WCAG 2 halen voor compliance en APCA voor real-world leesbaarheid zonder tussen twee aparte calculators te hoeven springen.

Aanbevolen aanpak voor kleurconversie

Prefereer OKLCH voor design-system-tokens; HEX voor legacy
Voor elk nieuw design system dat in 2025 of later shipt, definieer merkkleuren en palet-ramps in OKLCH. De L-as geeft automatisch perceptueel-gelijke ramps; de Chroma-as kan wide-gamut-kleuren adresseren die hex niet kan coderen. Houd een hex-fallback voor oudere browsers via `@supports not (color: oklch(0 0 0))` of build-time-PostCSS, maar maak OKLCH de canonieke waarde in je tokenopslag. Legacy-systemen met duizenden bestaande hex-variabelen kunnen op hex blijven tot een geplande migratie — churn niet om het churnen.
Behandel CMYK-uitvoer als benadering, bevestig bij de drukker
De CMYK-getallen die deze tool oppervlakt zijn een naïeve sRGB-gebaseerde formule, geen ICC-profiel-conversie. Gebruik ze voor offertes en interne comps. Stuur vóór elke echte printrun de originele hex (niet de CMYK-benadering) naar de drukker en laat hem zijn eigen ICC-conversie draaien tegen de specifieke pers, inkt en papier. De 5-15% channel-shift van een goede conversie kan makkelijk een scherp rood in een vies oranje veranderen als de benadering direct wordt geshipt.
Gebruik APCA Lc voor toekomstgerichte toegankelijkheid
WCAG 2.x blijft nog enkele jaren de regelgevende ondergrens, maar APCA is de richting waarin de standaard beweegt. Haal voor nieuwe ontwerpen `|Lc| ≥ 75` voor lopende tekst en `|Lc| ≥ 60` voor grote tekst naast de WCAG 2.1-ondergrenzen. APCA vangt leesbaarheidsproblemen op die WCAG 2's symmetrische ratio mist — vooral dunne-streek-tekst op heldere achtergronden, waar de WCAG-ratio er goed uitziet maar de tekst feitelijk verdwijnt op normale leesafstand.
Draai wide-gamut-kleuren door de Display P3 gamut-check
Als je moderne Apple-hardware (iPhone, iPad, MacBook vanaf 2017) target of HDR-bewuste content shipt, definieer dan merkkleuren in OKLCH en gebruik de Display P3-badge om te verifiëren dat ze in P3 passen, zelfs als ze sRGB overschrijden. De wider-gamut-kleuren ogen merkbaar verzadigder op P3-displays en degraderen netjes via browser-toegepaste chroma-compressie op sRGB-only-schermen. Pre-snap niet naar sRGB tenzij je weet dat je hele publiek op legacy-displays zit.
Kies perceptueel uniforme schaduwen via OKLCH-tonen
Wanneer je een 50/100/200/.../900-ramp voor een merkkleur genereert, gebruik dan het Tones-paneel: het verzet L in gelijke stappen met vaste C en H. Het resultaat is een perceptueel-gelijkmatige ramp waar de visuele afstand tussen 400 en 500 identiek oogt aan die tussen 500 en 600. Met de hand HSL-ramps tunen voor dezelfde gelijkmatigheid is een oefening van meerdere uren per kleur; OKLCH geeft het gratis.
Gebruik de Eyedropper spaarzaam voor cross-tab kleurmatching
De EyeDropper-API (alleen Chromium per 2026) laat je ergens op het scherm klikken — ook buiten de browser — om de kleur van die pixel te samplen. Handig voor het matchen van een kleur uit een screenshot, een videoframe of de UI van een andere app. Behandel het resultaat als startpunt, niet als eindwaarde — schermweergave past kleurmanagement toe dat kan afwijken van het bronbestand. Voor canonieke merkkleuren: haal de hex altijd uit de designbron (Figma, Sketch, het merkrichtlijnen-PDF) in plaats van eyedropperen van een screenshot.
Bookmark URL's met `#hex=...` voor deelbare paletbeslissingen
De huidige kleur codeert automatisch in de URL-hash als `#hex=...` of `#oklch=...`. Kopieer de URL, plak in een Slack-thread of een GitHub-issue, en iedereen die hem opent landt op exact dezelfde kleur. Handig voor design-review-threads waarin "het merkblauw" één specifiek OKLCH-triple moet betekenen. De hash werkt bij op elke wijziging, dus de URL in je adresbalk is altijd de live huidige kleur — bookmark 'm om later naar een specifiek palet terug te keren.

Veelgestelde vragen

Hoe converteer ik een hexcode naar RGB?
Splits de 6-cijferige hex in drie 2-cijferige paren, en lees elk paar als een grondtal-16-getal van 0-255. `#FF5733` wordt R=`FF`=255, G=`57`=87, B=`33`=51, wat `rgb(255, 87, 51)` geeft. De 3-cijferige verkorte vorm (`#F73`) zet je uit door elk cijfer te verdubbelen: `#F73` → `#FF7733`. Deze tool doet de conversie live terwijl je typt — plak elke hex (met of zonder de `#`, 3- of 6-cijferig, 4- of 8-cijferig met alpha) en het RGB-veld wordt direct bijgewerkt.
Is hex hetzelfde als RGB?
Ze coderen dezelfde informatie in een andere notatie. Beide beschrijven een kleur als drie kanalen (rood, groen, blauw) op de 0-255-schaal, verankerd aan de sRGB-kleurruimte. Hex pakt de drie kanalen in een 6-tekens grondtal-16-string (`#FF5733`); de `rgb()`-functie schrijft ze uit in decimaal (`rgb(255, 87, 51)`). Ze gaan zonder verlies heen en weer. De verschillen zijn praktisch: hex is korter en past comfortabel in een CSS-variabele, `rgb()` accepteert een aparte alpha-channel via `rgba()` en ondersteunt de percentage-syntax van CSS Color 4.
Hoe lees je een hex-kleurcode?
Een hex-kleur heeft 6 hexadecimale cijfers na het `#`, gegroepeerd als **RR GG BB**. Elk paar codeert één channel van `00` (niets) tot `FF` (vol, 255 decimaal). `#FF0000` is puur rood, `#00FF00` is puur groen, `#0000FF` is puur blauw. Een 8-cijferige hex (`#FF5733CC`) voegt een alpha-paar toe aan het einde — `CC` = 204/255 ≈ 80% dekking. De 3-cijferige verkorte vorm (`#F73`) zet elk cijfer uit door verdubbeling: `#F73` is identiek aan `#FF7733`.
Wat is de formule voor hex naar RGB?
Voor elk 2-cijferig hex-paar vermenigvuldig je het eerste cijfer met 16 en tel je het tweede erbij op: `FF` = 15×16 + 15 = 255, `57` = 5×16 + 7 = 87, `33` = 3×16 + 3 = 51. In JavaScript: `parseInt('FF', 16)` geeft 255. In CSS zit de omgekeerde richting in de parser ingebouwd — `rgb(255 87 51)` en `#FF5733` zijn overal uitwisselbaar waar een `` wordt geaccepteerd. Er is geen afrondingsverlies: 16² = 256, precies passend op de 0-255 byte-range die elke channel inneemt.
Waarom hex gebruiken in plaats van RGB?
Drie redenen: het is korter (`#FF5733` versus `rgb(255, 87, 51)`), het is het formaat dat elke designtool (Figma, Sketch, Photoshop) standaard exporteert, en het is het formaat dat je oog na verloop van tijd herkent — de meeste front-end-developers herkennen `#3b82f6` als Tailwind blue-500 op het zicht. Gebruik `rgb()` (of de moderne ruimte-gescheiden `rgb(R G B / A)`-syntax uit CSS Color 4) als je alpha nodig hebt, een kleur uit JavaScript berekent, of expliciete percentage-syntax voor leesbaarheid wilt.
Kunnen hex-codes alpha / transparantie bevatten?
Ja — gebruik 8-cijferige hex (`#RRGGBBAA`) of 4-cijferige verkorte vorm (`#RGBA`). Het alpha-paar volgt dezelfde 0-`FF`-schaal: `#FF573300` is volledig transparant, `#FF5733FF` is volledig dekkend, `#FF573380` ongeveer 50%. CSS 4-cijferige hex met alpha kwam in 2018 in alle evergreen-browsers. Safari, Chrome, Firefox en Edge ondersteunen het allemaal. Als je heel oude browsers moet bedienen, val terug op `rgba()`, ondersteund sinds IE 9.
Hoeveel kleuren kan hex weergeven?
6-cijferige hex weergeeft precies **16.777.216** kleuren — 256 waarden per channel in de derde macht (256³). Met 8-cijferige hex inclusief alpha is de adresseerbare ruimte 256⁴ ≈ 4,3 miljard, maar de kleurinhoud blijft 16,7 M; de extra dimensie is dekking. Het menselijk oog onderscheidt zo'n 10 miljoen kleuren, dus 24-bit sRGB heet sinds de jaren 90 "truecolor". Moderne wide-gamut-displays (Display P3, Rec2020) dekken meer van het zichtbare spectrum, maar hex zelf zit vast aan sRGB — gebruik OKLCH of `color(display-p3 ...)` om wide-gamut-waarden te adresseren.
Wat is een OKLCH-kleur?
OKLCH is een perceptueel-uniforme kleurruimte afgeleid van OKLAB door de a/b chroma-assen om te zetten naar polaire coördinaten. Channels zijn **Lightness** (0-1), **Chroma** (0 tot ongeveer 0,4 afhankelijk van kleurtoon), **Hue** (0-360°). Anders dan bij HSL oogen gelijke L-waarden even helder over alle kleurtonen heen, waardoor color-ramps in design systems perceptueel consistent blijven. CSS Color 4 voegde de `oklch()`-functie toe in 2022; Chrome 111, Safari 15.4 en Firefox 113 hebben allemaal native ondersteuning. Tailwind v4 en shadcn gebruiken OKLCH voor hun standaardpaletten.
Is OKLCH beter dan HSL?
Voor design systems, ja — en het verschil is meetbaar. HSL's L (lightness) is geometrisch, niet perceptueel: `hsl(60, 100%, 50%)` (geel) oogt zichtbaar helderder dan `hsl(240, 100%, 50%)` (blauw) hoewel beide L=50% rapporteren. OKLCH's L is verankerd aan het OKLAB-perceptuele model van Björn Ottosson (2020), dus gelijke L betekent gelijke waargenomen helderheid. De praktische winst: een OKLCH-ramp levert automatisch visueel gelijkmatige stappen op; een HSL-ramp vereist handmatig per-kleurtoon-bijstellen om er goed uit te zien.
Welke browsers ondersteunen oklch()?
Alle evergreen-browsers sinds medio 2023: **Chrome/Edge 111** (maart 2023), **Safari 15.4** (maart 2022, de vroegste), **Firefox 113** (mei 2023). Gecombineerde caniuse-dekking ligt boven 94%. Voor de resterende IE 11- / oude-Safari long tail gebruik je de `@supports (color: oklch(0 0 0))`-query om een hex-fallback te leveren, of een build-time-tool als PostCSS `postcss-oklab-function` om een sRGB-benadering naast de OKLCH-waarde te inlinen.
Waarom OKLCH gebruiken in Tailwind v4?
Tailwind v4 verplaatste zijn standaardpalet van HSL-gebaseerde naar OKLCH-gebaseerde generatie omdat OKLCH automatisch perceptueel-gelijke ramps geeft. De `blue-500`- en `red-500`-stalen ogen nu daadwerkelijk even helder — onder het v3-HSL-systeem niet, wat designers dwong individuele stops handmatig bij te stellen. OKLCH opent ook bredere gamuts op moderne displays: een Tailwind v4-token als `oklch(0.65 0.25 30)` kan Display P3-roden adresseren die geen enkele hexcode kan bereiken. De build geeft nog steeds hex-fallbacks voor oudere browsers.
Is OKLCH perceptueel uniform?
Ja — dat is precies het punt. OKLCH erft perceptuele uniformiteit van OKLAB, Björn Ottossons kleurruimte uit 2020, specifiek ontworpen om de niet-uniformiteiten van CIELAB (de eerdere best-perceptueel-uniforme ruimte) op te lossen. Een vaste stap in de L-channel komt overeen met een vaste stap in waargenomen helderheid. Een vaste stap in C komt overeen met een vaste stap in waargenomen chroma. Daarom ogen OKLCH-ramps soepel — de wiskunde matcht het menselijk zicht. CIELAB-benaderingen lopen vast rond zeer verzadigde kleuren; OKLAB/OKLCH blijven nauwkeurig over de hele gamut.
Hoe lees je een OKLCH-waarde?
`oklch(L C H)` — drie getallen, optioneel met `/ A` voor alpha. **L** is Lightness van 0 (zwart) tot 1 (wit); geschreven als getal of percentage (`0.6` en `60%` zijn equivalent). **C** is Chroma van 0 (grijs) tot ongeveer 0,4 voor de meest verzadigde sRGB-kleuren; er is geen bovengrens, wide-gamut-kleuren kunnen dat overschrijden. **H** is Hue in graden van 0-360, hetzelfde als HSL (0/360 = rood, 120 = groen, 240 = blauw). Voorbeeld: `oklch(0.629 0.193 263.4)` is Tailwind blue-500.
Wat is het verschil tussen gamut en kleurruimte?
Een **kleurruimte** is een coördinatensysteem dat elke kleur een uniek adres geeft — sRGB, Display P3, Rec2020, OKLCH zijn allemaal kleurruimtes. Een **gamut** (kleurgamut) is de deelverzameling van zichtbare kleuren die een specifieke ruimte (of een apparaat) feitelijk kan reproduceren. sRGB en Display P3 gebruiken vergelijkbare coördinatensystemen maar P3 dekt ~50% meer van het zichtbare spectrum. OKLCH is onbegrensd — het coördinatensysteem kan elke kleur adresseren, maar of je scherm 'm kan weergeven hangt af van het kleurgamut van het scherm. De gamut-badges in deze tool vertellen je welke apparaatfamilies de kleur accuraat zullen weergeven.
Waarom valt mijn OKLCH-kleur buiten het sRGB-gamut?
OKLCH is gamut-onbegrensd — je kunt `oklch(0.7 0.4 30)` schrijven en dat is een geldige kleur, maar de chroma overschrijdt wat sRGB's 256-per-channel byteruimte kan coderen. Op een sRGB-monitor klipt die kleur naar de dichtstbijzijnde in-gamut-benadering (meestal een gedesatureerde versie). Op een Display P3-monitor (de meeste moderne laptops, iPhones, MacBooks) rendert hij correct. Klik op **Snap to sRGB** om chroma te verlagen tot de kleur past, en ship de gesnapte hex als fallback naast de originele OKLCH voor wide-gamut-displays.
Moet ik WCAG 2 of APCA voor contrast gebruiken?
Gebruik **WCAG 2.1** vandaag — dat is de regelgevende standaard (ADA, EAA, Section 508) en wat audit-tools checken. De 4,5:1-ratio voor lopende tekst en 3:1 voor grote tekst zijn de wettelijke ondergrenzen. **APCA** (Accessible Perceptual Contrast Algorithm) is de voorgestelde WCAG 3-opvolger, ontworpen om beter bij waarneming aan te sluiten — hij weegt licht-op-donker anders dan donker-op-licht, wat WCAG 2's symmetrische formule fout doet. APCA is nog draft. Aanbevolen aanpak: haal WCAG 2 voor compliance, en sanity-check met APCA (target `Lc 75`+ voor lopende tekst) om er zeker van te zijn dat het resultaat ook echt leesbaar oogt.
Wat is het verschil tussen HSV en HWB?
Beide zijn cilindrische hervormingen van RGB die dezelfde Hue-channel delen. **HSV** (Hue, Saturation, Value) werd in 1978 door Smith gepubliceerd — Saturation is de kleurigheid, Value is de helderheid. Puur rood is `hsv(0, 100%, 100%)`. **HWB** (Hue, Whiteness, Blackness) werd nogmaals door Smith gepubliceerd in 1996 als intuïtiever alternatief voor kunstenaars — je kiest een pure kleurtoon en voegt dan wit toe om lichter te maken of zwart om donkerder te maken. CSS Color 4 voegde `hwb()`-syntax toe; die werkt in alle evergreen-browsers. HWB is makkelijker uit te leggen ("voeg wit toe") maar HSV blijft gangbaarder in grafische software als Photoshop en Figma.

Gerelateerde tools

Alle tools bekijken →