Color Converter

Converteer kleuren tussen HEX-, RGB-, HSL- en HSV-indelingen met een visuele kleurkiezer

Probeer een voorbeeld

Klik op kleurvak om kleurkiezer te openen

Of bewerk een waarde hieronder

HEX
RGB
HSL
HSV

Wat is kleurconversie?

Een kleurconverter zet een kleurwaarde om van de ene notatie naar de andere — bijvoorbeeld van een HEX-triplet (#6366F1) naar een RGB-tuple (99, 102, 241) of een HSL-drietal (239, 84%, 67%). Dezelfde kleur kan ook worden uitgedrukt als een HSV-drietal (239, 59%, 95%). Elk formaat codeert dezelfde visuele kleur met een ander wiskundig model; verschillende tools, programmeertalen en API's verwachten afhankelijk van de context uiteenlopende formaten.

HEX en RGB beschrijven kleur allebei als een mix van rood, groen en blauw licht. HEX is een compacte hexadecimale weergave van diezelfde drie kanaalwaarden van 0 tot 255 die RGB decimaal uitschrijft. HSL (Hue, Saturation, Lightness) en HSV (Hue, Saturation, Value) herordenen dezelfde informatie in een cilindrisch coördinatensysteem waarbij de tint een hoek op een kleurenwiel is (0–360 graden) en verzadiging en helderheid of waarde percentages zijn. Dit maakt HSL en HSV intuïtiever voor taken zoals het creëren van lichtere of donkerdere tinten van dezelfde kleur.

Het omzetten tussen deze formaten vereist goed gedefinieerde wiskunde. De W3C CSS Color Module Level 4-specificatie documenteert de algoritmen die browsers gebruiken om elke CSS-kleur naar een sRGB-triplet om te zetten. De formules zijn deterministisch: een bepaalde invoer levert altijd dezelfde uitvoer, zodat conversies verliesvrij zijn zolang waarden niet worden afgerond of begrensd. De meeste kleurkiezers en ontwerptoepassingen gebruiken intern dezelfde formules.

Waarom deze kleurconverter gebruiken?

Ontwerptoepassingen exporteren kleuren in één formaat, je CSS heeft een ander nodig en de API die je aanroept verwacht een derde. In plaats van conversiecode te schrijven of de juiste formule op te zoeken, plak je een waarde en krijg je elk formaat tegelijk.

Directe live conversie
Typ of kies een kleur en zie HEX, RGB, HSL en HSV in realtime bijwerken. Geen verzendknop, geen server-roundtrip.
🔒
Privacy-first verwerking
Alle conversieberekeningen worden in je browser uitgevoerd. Er worden geen kleurwaarden, gebruiksgegevens of cookies ergens naartoe verzonden.
🔀
Alle vier formaten tegelijk
Één invoer levert gelijktijdig HEX, RGB, HSL en HSV op. Kopieer het gewenste formaat met één klik.
📋
Geen account vereist
Open de pagina en begin direct met converteren. Geen registratie, geen e-mailadres, geen limieten. Werkt offline na het laden.

Toepassingen van de kleurconverter

CSS-ontwikkeling
Een ontwerper geeft je een HEX-waarde uit Figma, maar je componentbibliotheek gebruikt HSL voor theming. Converteer de waarde en zet hem in je CSS custom properties of Tailwind-configuratie.
Backend API-integratie
Uw eindpunt accepteert kleuren als RGB-arrays voor het genereren van grafieken. Converteer de merk-HEX-codes uit de stijlgids naar de integer-triplets die de API verwacht.
Onderhoud van ontwerpsystemen
Bij het documenteren van een ontwerpsysteem moet u elk kleurtoken vermelden in HEX voor snelle naslag, RGB voor Canvas-rendering en HSL voor programmatische tintgeneratie.
QA en visueel testen
Het vergelijken van de pixelkleur van een screenshot (doorgaans gerapporteerd in RGB door browser DevTools) met de verwachte HEX-waarde uit een Figma-specificatie. Snelle conversie bevestigt of markeert afwijkingen.
Datavisualisatie
Grafiekbibliotheken zoals D3.js en Chart.js accepteren kleuren in verschillende formaten afhankelijk van de methode. Eenmalig converteren zorgt voor consistente notatie in uw datasetconfiguratie.
Kleurtheorie leren
Studenten die computergraphics of webontwerp bestuderen, kunnen zien hoe dezelfde kleur zich vertaalt over HEX, RGB, HSL en HSV. Door één kanaal aan te passen en de anderen te zien veranderen, ontwikkelt u intuïtie voor hoe kleurmodellen zich tot elkaar verhouden.

Kleurformatreferentie

De tabel hieronder geeft de vijf meest gebruikte kleurformaten weer, met dezelfde indigo-kleur (#6366F1) in elke notatie. HEX en RGB worden het meest ondersteund in CSS en JavaScript. HSL heeft de voorkeur voor theming omdat het aanpassen van helderheid en verzadiging eenvoudig is. HSV is het model dat de meeste kleurkiezers in grafische ontwerpsoftware gebruiken.

FormaatVoorbeeld (indigo)KanalenVeelgebruikt in
HEX#6366F16 (or 3/8)CSS, design tools, brand guides
RGBrgb(99, 102, 241)3 (0–255 each)CSS, Canvas API, image processing
HSLhsl(239, 84%, 67%)3 (deg, %, %)CSS, color theming, accessibility tuning
HSVhsv(239, 59%, 95%)3 (deg, %, %)Color pickers, Photoshop, Figma
CMYKcmyk(59%, 58%, 0%, 5%)4 (0–100% each)Print design, prepress workflows

HEX vs RGB vs HSL

Alle drie formaten beschrijven dezelfde sRGB-kleurruimte. Het verschil zit in hoe ze de gegevens presenteren, wat de leesbaarheid en het gemak van manipulatie in verschillende contexten beïnvloedt.

HEX
Een hexadecimale tekenreeks van 6 cijfers (of verkorte notatie van 3 cijfers). Compact en universeel in CSS, ontwerptoepassingen en huisstijlrichtlijnen. Moeilijk in één oogopslag te lezen: #6366F1 vertelt je niets over de tint. Ondersteunt een optionele 8-cijferige vorm (#6366F180) voor alfatransparantie.
RGB
Drie gehele getallen van 0 tot 255 voor de rood-, groen- en blauwkanalen. Het native formaat voor Canvas 2D, WebGL en de meeste beeldverwerkingsbibliotheken. Per kanaal eenvoudig te manipuleren, maar het aanpassen van de waargenomen helderheid vereist het gelijktijdig wijzigen van alle drie waarden.
HSL
Tint (0–360 graden), verzadiging (0–100%) en helderheid (0–100%). Ontworpen voor menselijke leesbaarheid. Om een kleur lichter te maken, verhoog je L. Om te desatureren, verlaag je S. CSS ondersteunt native de hsl()-notatie, en moderne CSS color-mix() en relatieve kleursyntaxis bouwen daarop voort.

Codevoorbeelden

Kleurconversie tussen HEX, RGB en HSL in veelgebruikte programmeertalen en omgevingen. Elk voorbeeld gebruikt dezelfde indigo-kleur (#6366F1) voor eenvoudige vergelijking.

JavaScript
// HEX → RGB
function hexToRgb(hex) {
  const n = parseInt(hex.replace('#', ''), 16)
  return [(n >> 16) & 255, (n >> 8) & 255, n & 255]
}
hexToRgb('#6366f1') // → [99, 102, 241]

// RGB → HSL
function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255
  const max = Math.max(r, g, b), min = Math.min(r, g, b)
  const l = (max + min) / 2
  if (max === min) return [0, 0, Math.round(l * 100)]
  const d = max - min
  const s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
  let h = 0
  if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6
  else if (max === g) h = ((b - r) / d + 2) / 6
  else h = ((r - g) / d + 4) / 6
  return [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)]
}
rgbToHsl(99, 102, 241) // → [239, 84, 67]
Python
import colorsys

# HEX → RGB
def hex_to_rgb(hex_str: str) -> tuple[int, int, int]:
    h = hex_str.lstrip('#')
    return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))

hex_to_rgb('#6366f1')  # → (99, 102, 241)

# RGB → HSL (colorsys uses HLS order)
r, g, b = 99 / 255, 102 / 255, 241 / 255
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f"hsl({h * 360:.0f}, {s * 100:.0f}%, {l * 100:.0f}%)")
# → hsl(239, 84%, 67%)

# RGB → HSV
h, s, v = colorsys.rgb_to_hsv(r, g, b)
print(f"hsv({h * 360:.0f}, {s * 100:.0f}%, {v * 100:.0f}%)")
# → hsv(239, 59%, 95%)
Go
package main

import (
	"fmt"
	"math"
)

func hexToRGB(hex string) (int, int, int) {
	var r, g, b int
	fmt.Sscanf(hex, "#%02x%02x%02x", &r, &g, &b)
	return r, g, b
}

func rgbToHSL(r, g, b int) (int, int, int) {
	rf, gf, bf := float64(r)/255, float64(g)/255, float64(b)/255
	max := math.Max(rf, math.Max(gf, bf))
	min := math.Min(rf, math.Min(gf, bf))
	l := (max + min) / 2
	if max == min {
		return 0, 0, int(math.Round(l * 100))
	}
	d := max - min
	s := d / (2 - max - min)
	if l <= 0.5 {
		s = d / (max + min)
	}
	var h float64
	switch max {
	case rf: h = (gf - bf) / d; if gf < bf { h += 6 }
	case gf: h = (bf - rf) / d + 2
	case bf: h = (rf - gf) / d + 4
	}
	return int(math.Round(h / 6 * 360)), int(math.Round(s * 100)), int(math.Round(l * 100))
}

func main() {
	r, g, b := hexToRGB("#6366f1")
	fmt.Println(r, g, b)         // → 99 102 241
	fmt.Println(rgbToHSL(r, g, b)) // → 239 84 67
}
CSS
/* Modern CSS supports multiple color formats natively */

/* HEX notation */
.button { color: #6366f1; }

/* RGB functional notation */
.button { color: rgb(99 102 241); }

/* HSL — easier to adjust lightness and saturation */
.button { color: hsl(239 84% 67%); }

/* CSS Color Level 4: relative color syntax (Chrome 119+) */
.button-light { color: hsl(from #6366f1 h s calc(l + 20%)); }

/* color-mix() for tinting without manual conversion */
.button-muted { color: color-mix(in srgb, #6366f1 70%, white); }

Veelgestelde vragen

Wat is het verschil tussen HSL en HSV?
Beide gebruiken tint en verzadiging, maar ze definiëren helderheid anders. HSL gebruikt lightness, waarbij 50% de zuivere kleur is, 0% zwart en 100% wit. HSV gebruikt value (of brightness), waarbij 100% de zuivere kleur is en 0% zwart. HSV heeft geen direct wit eindpunt. In de praktijk wordt HSL gebruikt in CSS en webontwikkeling, terwijl HSV het model is achter de meeste kleurkiezers in ontwerpsoftware zoals Photoshop en Figma.
Hoe converteer ik HEX naar RGB in JavaScript?
Parseer de hex-tekenreeks naar een geheel getal met parseInt(hex, 16) en extraheer elk kanaal met bit shifting: (n >> 16) & 255 voor rood, (n >> 8) & 255 voor groen en n & 255 voor blauw. Dit werkt voor elke 6-cijferige hex-tekenreeks met of zonder het voorloopteken #. Expand voor verkorte notaties zoals #F0F eerst elk cijfer (FF00FF) voordat je parseert.
Kan ik HSL direct in CSS gebruiken?
Ja. Alle moderne browsers ondersteunen hsl() en hsla() in CSS. Vanaf CSS Color Level 4 is de syntaxis hsl(239 84% 67%) met spatie-gescheiden waarden (komma's worden nog steeds geaccepteerd). Je kunt ook alfa toevoegen als vierde parameter: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox en Edge ondersteunen deze syntaxis allemaal.
Is kleurconversie verliesgevend?
Wiskundig gezien niet. HEX, RGB, HSL en HSV beschrijven allemaal dezelfde sRGB-kleurruimte en de conversies zijn omkeerbaar. In de praktijk kunnen kleine afrondingsverschillen optreden omdat HEX beperkt is tot 256 stappen per kanaal en HSL-percentages doorgaans worden afgerond op gehele getallen. Heen en terug converteren kan afrondingsfouten van 1–2 eenheden accumuleren.
Wat is het 8-cijferige HEX-formaat?
Het 8-cijferige HEX-formaat voegt twee alfa (transparantie) cijfers toe aan de standaard 6-cijferige HEX-kleur. Bijvoorbeeld: #6366F180 staat voor dezelfde indigo-kleur met 50% doorzichtigheid (0x80 = 128, ongeveer 50% van 255). CSS ondersteunt deze notatie in alle moderne browsers. De verkorte vorm bestaat uit 4 cijfers, zoals #63F8.
Waarom ziet mijn kleur er anders uit op een ander scherm?
Kleurweergave is afhankelijk van het kleurprofiel, de helderheid en de gammacalibratie van het scherm. Twee schermen kunnen dezelfde sRGB-waarde (#6366F1) anders weergeven als hun kleurprofielen afwijken. Kleurconversietools werken in een gedefinieerde kleurruimte (doorgaans sRGB) en produceren wiskundig correcte uitvoer. Waargenomen verschillen zijn een kalibratieprobleem van het scherm, geen conversiefout.
Hoe kies ik een lichtere of donkerdere tint van een kleur?
Converteer de kleur naar HSL en pas het L (lightness) kanaal aan. L verhogen richting 100% levert lichtere tinten op; verlagen richting 0% geeft donkerdere tinten. De tint en verzadiging blijven gelijk. In CSS kun je dit direct doen: hsl(239 84% 80%) is een lichtere versie van hsl(239 84% 67%). Moderne CSS biedt ook color-mix(in srgb, #6366F1, white 30%) voor hetzelfde effect zonder handmatige conversie.