Color Converter

Konvertujte barvy mezi formáty HEX, RGB, HSL a HSV pomocí vizuálního výběru barev

Zkusit příklad

Klikněte na barvu pro otevření výběru

Nebo upravte kteroukoli hodnotu níže

HEX
RGB
HSL
HSV

Co je konverze barev?

Konvertor barev převádí hodnotu barvy z jednoho zápisu do jiného — například z HEX trojice (#6366F1) na RGB n-tici (99, 102, 241) nebo HSL trojici (239, 84%, 67%). Stejnou barvu lze vyjádřit také jako HSV trojici (239, 59%, 95%). Každý formát kóduje stejnou vizuální barvu pomocí jiného matematického modelu; různé nástroje, jazyky a API očekávají různé formáty podle kontextu.

HEX i RGB popisují barvu jako směs červeného, zeleného a modrého světla. HEX je kompaktní hexadecimální reprezentace stejných tří hodnot kanálů v rozsahu 0–255, které RGB uvádí v desítkové soustavě. HSL (odstín, sytost, světlost) a HSV (odstín, sytost, hodnota jasu) přeskupují stejné informace do válcového souřadnicového systému, kde odstín je úhel na barevném kole (0–360 stupňů) a sytost a světlost nebo jas jsou procentuální hodnoty. Díky tomu jsou HSL a HSV intuitivnější pro úkoly jako vytváření světlejších nebo tmavších odstínů stejného tónu.

Převod mezi těmito formáty vyžaduje přesně definovanou matematiku. Specifikace W3C CSS Color Module Level 4 dokumentuje algoritmy, které prohlížeče používají k převodu libovolné CSS barvy na sRGB trojici. Vzorce jsou deterministické: daný vstup vždy produkuje stejný výstup, takže konverze jsou bezztrátové, pokud hodnoty nejsou zaokrouhlovány nebo omezovány. Většina výběrů barev a návrhářských nástrojů se opírá o tyto vzorce.

Proč používat tento konvertor barev?

Návrhářské nástroje exportují barvy v jednom formátu, vaše CSS potřebuje jiný a API, které voláte, očekává třetí. Místo psaní konverzního kódu nebo hledání správného vzorce vložte hodnotu a získejte všechny formáty najednou.

Okamžitá živá konverze
Napište nebo vyberte barvu a sledujte, jak se HEX, RGB, HSL a HSV aktualizují v reálném čase. Bez tlačítka pro odeslání, bez odezvy serveru.
🔒
Zpracování s důrazem na soukromí
Veškerá matematika konverze probíhá ve vašem prohlížeči. Žádné hodnoty barev, žádná data o používání ani soubory cookie nejsou nikam odesílány.
🔀
Všechny čtyři formáty najednou
Jeden vstup produkuje současně HEX, RGB, HSL a HSV. Zkopírujte potřebný formát jedním kliknutím.
📋
Bez nutnosti účtu
Otevřete stránku a začněte konvertovat. Bez registrace, e-mailu ani omezení počtu požadavků. Po načtení funguje i offline.

Případy použití konvertoru barev

Vývoj CSS
Návrhář vám předá HEX hodnotu z Figmy, ale vaše knihovna komponent používá HSL pro téma. Převeďte hodnotu a vložte ji do vlastních CSS vlastností nebo konfigurace Tailwindu.
Integrace backendového API
Váš endpoint přijímá barvy jako RGB pole pro generování grafů. Převeďte brandové HEX kódy ze stylového průvodce na celočíselné trojice, které API očekává.
Správa designového systému
Při dokumentování designového systému potřebujete každý barevný token v HEX pro rychlý přehled, RGB pro vykreslování na Canvas a HSL pro programové generování odstínů.
QA a vizuální testování
Porovnání barvy pixelu na snímku obrazovky (obvykle hlášené v RGB v DevTools prohlížeče) s očekávanou HEX hodnotou ze specifikace Figmy. Rychlá konverze potvrdí nebo označí neshody.
Vizualizace dat
Knihovny grafů jako D3.js a Chart.js přijímají barvy v různých formátech v závislosti na metodě. Převeďte jednou a udržujte konzistentní zápis v celé konfiguraci datové sady.
Výuka teorie barev
Studenti počítačové grafiky nebo webového designu mohou vidět, jak se stejná barva zobrazuje v HEX, RGB, HSL a HSV. Úprava jednoho kanálu a sledování změn ostatních rozvíjí intuici pro vztahy mezi barevnými modely.

Přehled barevných formátů

Níže uvedená tabulka uvádí pět nejčastějších barevných formátů se stejnou indigovou barvou (#6366F1) v každém zápisu. HEX a RGB jsou nejšíře podporovány v CSS a JavaScriptu. HSL je preferován pro tvorbu témat, protože úprava světlosti a sytosti je přímočará. HSV je model používaný výběry barev ve většině softwaru pro grafický design.

FormátPříklad (indigo)KanályBěžné použití
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

Všechny tři formáty popisují stejný barevný prostor sRGB. Rozdíl spočívá v tom, jak zpřístupňují data, což ovlivňuje čitelnost a snadnost manipulace v různých kontextech.

HEX
Šestimístný hexadecimální řetězec (nebo třímístná zkratka). Kompaktní a univerzální v CSS, návrhářských nástrojích a brandových příručkách. Obtížně čitelný na první pohled: #6366F1 neodhaluje odstín. Podporuje volitelný osmimístný formát (#6366F180) pro průhlednost alfa kanálu.
RGB
Tři celá čísla v rozsahu 0 až 255 pro červený, zelený a modrý kanál. Nativní formát pro Canvas 2D, WebGL a většinu knihoven pro zpracování obrázků. Snadná manipulace po jednotlivých kanálech, ale úprava vnímané světlosti vyžaduje změnu všech tří hodnot současně.
HSL
Odstín (0–360 stupňů), sytost (0–100 %) a světlost (0–100 %). Navržen pro lidskou čitelnost. Chcete-li barvu zesvětlit, zvyšte L. Pro desaturaci snižte S. CSS nativně podporuje zápis hsl() a moderní CSS color-mix() a syntaxe relativních barev na něm staví.

Příklady kódu

Konverze barev mezi HEX, RGB a HSL v běžných jazycích a prostředích. Každý příklad používá stejnou indigovou barvu (#6366F1) pro snadné porovnání.

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); }

Nejčastější dotazy

Jaký je rozdíl mezi HSL a HSV?
Oba formáty používají odstín a sytost, ale jas definují odlišně. HSL používá světlost, kde 50 % je čistá barva, 0 % je černá a 100 % je bílá. HSV používá hodnotu jasu, kde 100 % je čistá barva a 0 % je černá. HSV nemá přímý bílý koncový bod. V praxi se HSL používá v CSS a webovém vývoji, zatímco HSV je model za výběry barev ve většině návrhářského softwaru jako Photoshop a Figma.
Jak převést HEX na RGB v JavaScriptu?
Analyzujte hexadecimální řetězec na celé číslo pomocí parseInt(hex, 16) a pak extrahujte každý kanál bitovým posunem: (n >> 16) & 255 pro červenou, (n >> 8) & 255 pro zelenou a n & 255 pro modrou. Toto funguje pro libovolný šestimístný hex řetězec s nebo bez úvodního znaku #. Pro třímístnou zkratku jako #F0F nejprve rozbalte každou číslici (FF00FF) před zpracováním.
Mohu používat HSL přímo v CSS?
Ano. Všechny moderní prohlížeče podporují hsl() a hsla() v CSS. Od CSS Color Level 4 je syntaxe hsl(239 84% 67%) s hodnotami oddělenými mezerami (čárky jsou stále přijímány). Jako čtvrtý parametr lze přidat alfa: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox a Edge tuto syntaxi všechny podporují.
Je konverze barev ztrátová?
Matematicky ne. HEX, RGB, HSL a HSV všechny popisují stejný barevný prostor sRGB a konverze jsou reverzibilní. V praxi se mohou vyskytovat malé zaokrouhlovací rozdíly, protože HEX je omezen na 256 kroků na kanál a procenta HSL jsou typicky zaokrouhlována na celá čísla. Opakovaný převod tam a zpět může hromadit zaokrouhlovací chyby 1–2 jednotek.
Co je osmimístný formát HEX?
Osmimístný formát HEX přidává dvě číslice alfa (průhlednosti) ke standardní šestimístné HEX barvě. Například #6366F180 označuje stejnou indigovou barvu s 50% průhledností (0x80 = 128, přibližně 50 % z 255). CSS tento zápis podporuje ve všech moderních prohlížečích. Zkrácená forma má 4 číslice, například #63F8.
Proč moje barva vypadá jinak na jiném monitoru?
Vzhled barvy závisí na barevném profilu monitoru, jeho jasu a kalibraci gamy. Dva monitory mohou zobrazovat stejnou sRGB hodnotu (#6366F1) odlišně, pokud se jejich barevné profily liší. Nástroje pro konverzi barev pracují v definovaném barevném prostoru (obvykle sRGB) a produkují matematicky správný výstup. Vnímané rozdíly jsou problémem kalibrace displeje, nikoli chybou konverze.
Jak zvolit světlejší nebo tmavší odstín barvy?
Převeďte barvu do HSL a upravte kanál L (světlost). Zvyšováním L směrem ke 100 % vznikají světlejší tóny; snižováním směrem k 0 % vznikají tmavší stíny. Odstín a sytost zůstávají stejné. V CSS to lze provést přímo: hsl(239 84% 80%) je světlejší verze hsl(239 84% 67%). Moderní CSS nabízí také color-mix(in srgb, #6366F1, white 30%) pro stejný efekt bez ruční konverze.