Color Converter

Konvertera färger mellan HEX-, RGB-, HSL- och HSV-format med en visuell färgväljare

Prova ett exempel

Klicka på färgrutan för att öppna färgväljaren

Eller redigera valfritt värde nedan

HEX
RGB
HSL
HSV

Vad är färgkonvertering?

En färgkonverterare översätter ett färgvärde från en notation till en annan — till exempel från ett HEX-triplet (#6366F1) till ett RGB-tupel (99, 102, 241) eller ett HSL-tripel (239, 84 %, 67 %). Samma färg kan även uttryckas som ett HSV-tripel (239, 59 %, 95 %). Varje format kodar samma visuella färg med en annan matematisk modell. Olika verktyg, språk och API:er förväntar sig olika format beroende på sammanhang.

HEX och RGB beskriver båda färg som en blandning av rött, grönt och blått ljus. HEX är en kompakt hexadecimal representation av samma tre kanalvärden (0–255) som RGB anger i decimal. HSL (Hue, Saturation, Lightness) och HSV (Hue, Saturation, Value) omorganiserar samma information i ett cylindriskt koordinatsystem där nyansen är en vinkel på färghjulet (0–360 grader) och mättnad samt ljusstyrka anges i procent. Det gör HSL och HSV mer intuitiva för uppgifter som att skapa ljusare eller mörkare nyanser av samma kulör.

Konvertering mellan dessa format kräver väldefinierad matematik. W3C CSS Color Module Level 4-specifikationen dokumenterar de algoritmer som webbläsare använder för att lösa upp en CSS-färg till ett sRGB-triplet. Formlerna är deterministiska: en given inmatning ger alltid samma utdata, och konverteringar är förlustfria så länge värdena inte rundas av eller begränsas. De flesta färgväljare och designverktyg bygger på dessa formler internt.

Varför använda denna Color Converter?

Designverktyg exporterar färger i ett format, CSS behöver ett annat och API:et du anropar förväntar sig ett tredje. Istället för att skriva konverteringskod eller söka efter rätt formel — klistra in ett värde och få alla format på en gång.

Omedelbar livekonvertering
Skriv in eller välj en färg och se HEX, RGB, HSL och HSV uppdateras i realtid. Ingen skicka-knapp, ingen serveranrop.
🔒
Integritetsfokuserad bearbetning
All konverteringslogik körs i webbläsaren. Inga färgvärden, ingen användningsdata och inga kakor skickas någonstans.
🔀
Alla fyra format samtidigt
En inmatning ger HEX, RGB, HSL och HSV på en gång. Kopiera det format du behöver med ett enda klick.
📋
Inget konto krävs
Öppna sidan och börja konvertera direkt. Ingen registrering, ingen e-post, inga hastighetsbegränsningar. Fungerar offline när sidan väl laddats.

Användningsområden

CSS-utveckling
En designer ger dig ett HEX-värde från Figma, men ditt komponentbibliotek använder HSL för temahantering. Konvertera värdet och lägg in det i CSS custom properties eller Tailwind-konfigurationen.
Backend-API-integration
Ditt API-slutpunkt tar emot färger som RGB-arrayer för diagramgenerering. Konvertera varumärkets HEX-koder från stilguiden till de heltals-triplar som API:et förväntar sig.
Underhåll av designsystem
När du dokumenterar ett designsystem behöver du varje färgtoken listad i HEX för snabb referens, RGB för Canvas-rendering och HSL för programmatisk nyansgenerering.
QA och visuell testning
Jämför en skärmdumps pixelfärg (vanligtvis rapporterad i RGB av webbläsarens DevTools) med det förväntade HEX-värdet från en Figma-spec. En snabb konvertering bekräftar eller flaggar avvikelser.
Datavisualisering
Diagrambibliotek som D3.js och Chart.js tar emot färger i olika format beroende på metod. Konvertera en gång och håll en konsekvent notation i hela dataset-konfigurationen.
Lär dig färgteori
Studenter i datorgrafik eller webbdesign kan se hur samma färg mappas till HEX, RGB, HSL och HSV. Att justera en kanal och se hur de andra förändras bygger intuition för hur färgmodellerna förhåller sig till varandra.

Färgformatsreferens

Tabellen nedan listar de fem vanligaste färgformaten och visar samma indigofärg (#6366F1) i varje notation. HEX och RGB har bredast stöd i CSS och JavaScript. HSL föredras för temahantering eftersom justering av ljusstyrka och mättnad är rakt fram. HSV är den modell de flesta färgväljare i grafiska designverktyg använder.

FormatExempel (indigo)KanalerVanlig användning
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

Alla tre formaten beskriver samma sRGB-färgrymd. Skillnaden ligger i hur de exponerar data, vilket påverkar läsbarhet och hur enkelt det är att manipulera dem i olika sammanhang.

HEX
En 6-siffrig hexadecimal sträng (eller 3-siffrig kortform). Kompakt och universell i CSS, designverktyg och varumärkesriktlinjer. Svår att läsa direkt: #6366F1 avslöjar ingenting om nyansen. Stöder en valfri 8-siffrig form (#6366F180) för alfatransparens.
RGB
Tre heltal från 0 till 255 för de röda, gröna och blå kanalerna. Det inbyggda formatet för Canvas 2D, WebGL och de flesta bildbehandlingsbibliotek. Enkelt att manipulera kanal för kanal, men justering av upplevd ljusstyrka kräver att alla tre värden ändras samtidigt.
HSL
Nyans (0–360 grader), mättnad (0–100 %) och ljusstyrka (0–100 %). Utformat för mänsklig läsbarhet. Öka L för att göra en färg ljusare, minska S för att desaturera. CSS stöder hsl()-notationen inbyggt, och modern CSS color-mix() och relativ färgsyntax bygger vidare på den.

Kodexempel

Färgkonvertering mellan HEX, RGB och HSL i vanliga språk och miljöer. Varje exempel använder samma indigofärg (#6366F1) för enkel jämförelse.

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

Vanliga frågor

Vad är skillnaden mellan HSL och HSV?
Båda använder nyans och mättnad, men definierar ljusstyrka på olika sätt. HSL använder lightness (ljusstyrka) där 50 % är den rena färgen, 0 % är svart och 100 % är vitt. HSV använder value (värde), där 100 % är den rena färgen och 0 % är svart — det finns ingen direkt vit slutpunkt. I praktiken används HSL i CSS och webbutveckling, medan HSV är modellen bakom de flesta färgväljare i designprogram som Photoshop och Figma.
Hur konverterar man HEX till RGB i JavaScript?
Tolka hex-strängen till ett heltal med parseInt(hex, 16) och extrahera sedan varje kanal med bitskiftning: (n >> 16) & 255 för rött, (n >> 8) & 255 för grönt och n & 255 för blått. Detta fungerar för valfri 6-siffrig hex-sträng med eller utan inledande #. För 3-siffrig kortform som #F0F, expandera varje siffra först (FF00FF) innan tolkning.
Kan jag använda HSL direkt i CSS?
Ja. Alla moderna webbläsare stöder hsl() och hsla() i CSS. Från och med CSS Color Level 4 är syntaxen hsl(239 84% 67%) med blankstegsavgränsade värden (kommatecken accepteras fortfarande). Du kan också lägga till alfa som en fjärde parameter: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox och Edge stöder alla denna syntax.
Är färgkonvertering förlustbehäftad?
Matematiskt sett nej. HEX, RGB, HSL och HSV beskriver alla samma sRGB-färgrymd och konverteringarna är reversibla. I praktiken kan små avrundningsskillnader uppstå eftersom HEX är begränsat till 256 steg per kanal och HSL-procentsatser vanligtvis rundas till heltal. Upprepade konverteringar fram och tillbaka kan ackumulera avrundningsfel på 1–2 enheter.
Vad är det 8-siffriga HEX-formatet?
Det 8-siffriga HEX-formatet lägger till två alfa-(transparens-)siffror till den vanliga 6-siffriga HEX-färgen. Till exempel innebär #6366F180 samma indigofärg med 50 % genomskinlighet (0x80 = 128, ungefär 50 % av 255). CSS stöder denna notation i alla moderna webbläsare. Kortformen har 4 siffror, till exempel #63F8.
Varför ser min färg annorlunda ut på en annan skärm?
Färgutseendet beror på skärmens färgprofil, ljusstyrka och gammakalibrering. Två skärmar kan visa samma sRGB-värde (#6366F1) på olika sätt om deras färgprofiler skiljer sig åt. Färgkonverteringsverktyg arbetar i ett definierat färgrum (vanligtvis sRGB) och ger matematiskt korrekta resultat. Upplevda skillnader är ett skärmkalibreringsfel, inte ett konverteringsfel.
Hur skapar jag en ljusare eller mörkare nyans av en färg?
Konvertera färgen till HSL och justera L-kanalen (lightness). Att öka L mot 100 % ger ljusare toner; att minska det mot 0 % ger mörkare nyanser. Nyansen och mättnaden förblir oförändrade. I CSS kan du göra detta direkt: hsl(239 84% 80%) är en ljusare version av hsl(239 84% 67%). Modern CSS erbjuder också color-mix(in srgb, #6366F1, white 30%) för samma effekt utan manuell konvertering.