Färg

Hexkoder för färg, RGB, HSL och OKLCH förklarade

#7c3aed, rgb(124 58 237), hsl(262 83% 58%) och oklch(54.1% 0.247 293) är samma violett. Här är vad varje skrivsätt egentligen säger, och när var och en gör nytta.

GradientlyVerifierat Gradiently-konto··5 minuters läsning
Omslag: Mauve Corridor · GR·1BS7·H0

Kortversionen

  • Hexkoder som #7c3aed är ett kompakt sätt att skriva värden för rött, grönt och blått från 0 till 255, var och ett som två hexadecimala siffror.
  • RGB, hex och HSL beskriver samma sRGB-färger, så vilken färg som helst som skrivs i ett av dem kan konverteras exakt till de andra.
  • HSL är lätt att justera för hand, men dess ljushetsvärde stämmer inte med hur ljusa färger faktiskt ser ut, så gult och blått vid 50 % ser mycket olika ut.
  • OKLCH beskriver färg efter upplevd ljushet, kromatisk styrka och nyans, vilket gör det till det bästa skrivsättet för att bygga paletter, toner och mjuka gradienter.
  • En praktisk tumregel: dela varumärkesfärger som hex, och bygg paletter och gradienter i OKLCH.
På den här sidan

Hexkoder för färg som #7c3aed är det vanligaste sättet att skriva en färg på skärmen: ett # följt av sex tecken som anger mängden rött, grönt och blått. RGB skriver samma tal decimalt, HSL ordnar om dem till nyans, färgmättnad och ljushet, och OKLCH beskriver färg så som ögat uppfattar den. De är olika skrivsätt för samma färger, och vart och ett är bäst på ett eget jobb.

Fem färger som används som exempel genom hela den här guiden. Tabellen nedan skriver var och en i alla fyra skrivsätten.

Så fungerar hexkoder för färg

En hexkod är tre par av hexadecimala siffror: #RRGGBB. Bas 16 räknar 0 till 9 och sedan a till f, så varje par löper från 00 (ingen) till ff (255, full). I #7c3aed är rött 7c (124), grönt 3a (58) och blått ed (237): mycket blått, en hel del rött, lite grönt, vilket ger violett. Tre kanaler med 256 värden ger 16 777 216 möjliga färger.

  • Förkortning: #f0c är detsamma som #ff00cc. Varje siffra dubbleras, så det fungerar bara för färger vars par upprepas.
  • Genomskinlighet: en kod med åtta siffror lägger till alfa i slutet. #7c3aed80 är violetten med ungefär 50 % opacitet, eftersom 80 är 128 av 255.
  • Versaler spelar ingen roll: #7C3AED och #7c3aed är identiska.
  • Grått har tre lika par: #767676, #1a1a1a och #f4f4f4 är alla neutrala.

RGB: samma tal decimalt

RGB skriver de tre kanalerna som vanliga tal från 0 till 255. Modern CSS skiljer dem åt med mellanslag och lägger till genomskinlighet efter ett snedstreck; den äldre syntaxen med kommatecken och rgba() fungerar fortfarande överallt. RGB är praktiskt när ett verktyg eller ett API ber om tal, eller när du snabbt vill se hur en färg är sammansatt.

css
/* All four lines are the same violet */
color: #7c3aed;
color: rgb(124 58 237);
color: rgb(124, 58, 237);
color: hsl(262 83% 58%);

/* The same violet at 50% opacity */
color: #7c3aed80;
color: rgb(124 58 237 / 0.5);
Modern syntax med mellanslag överst, den äldre syntaxen med kommatecken under. Webbläsare accepterar båda.

HSL: nyans, färgmättnad och ljushet

HSL beskriver en färg med sin nyans som en vinkel på färgcirkeln (0 är rött, 120 grönt, 240 blått), sin färgmättnad från grått (0 %) till full färg (100 %) och sin ljushet från svart (0 %) via den rena färgen (50 %) till vitt (100 %). Det är lätt att justera för hand: för att få en mörkare violett sänker du sista talet.

Haken är att HSL:s ljushet är en formel, inte ett mått på hur ljus en färg ser ut. Gult vid 50 % ljushet ser långt ljusare ut än blått vid 50 %. Bygg en palett genom att hålla HSL-ljusheten lika, så ser färgerna inte lika ljusa ut, vilket är precis varför standardregnbågar ser randiga ut. Se regnbågsgradienter för det synliga resultatet.

OKLCH: färg så som du ser den

OKLCH kommer från Oklab, ett färgrum som Björn Ottosson publicerade 2020 och som numera ingår i CSS. Det använder tre värden: L är upplevd ljushet från 0 % till 100 %, C är kromatisk styrka, alltså hur färgstark den är, från 0 för grått upp till ungefär 0,37 för de mest intensiva färgerna, och H är nyansvinkeln. Lika L-värden ser verkligen lika ljusa ut, så du kan ändra en egenskap utan att störa de andra.

FärgHexRGBHSLOKLCH
Violett#7c3aed124 58 237262 83% 58%54.1% 0.247 293
Himmelsblå#0ea5e914 165 233199 89% 48%68.5% 0.148 237
Orange#f97316249 115 2225 95% 53%70.5% 0.187 48
Grön#16a34a22 163 74142 76% 36%62.7% 0.17 149
Bläck#11182717 24 39221 39% 11%21% 0.032 265
Samma fem färger i fyra skrivsätt. HSL- och OKLCH-värdena är avrundade. Lägg märke till hur HSL kallar den gröna mörkare än violetten, medan OKLCH visar att den i själva verket är ljusare.

OKLCH glänser i gradienter. Vid blandning i vanlig sRGB, standard för hexfärger, dras en rak linje genom RGB-kuben, och färger på motsatta sidor av cirkeln möts i grått. Blandning i OKLCH behåller kromatisk styrka och färdas i stället runt nyanscirkeln.

Samma två stopp. I sRGB faller mitten till en grå oliv; i OKLCH passerar den turkos och grönt. Mer i grumliga gradienter.
css
.band {
  /* Tell the browser which space to blend in */
  background: linear-gradient(in oklch 90deg, #2563eb, #facc15);
}

:root {
  /* One hue, a scale of equal steps in perceived lightness */
  --violet-90: oklch(90% 0.05 293);
  --violet-70: oklch(70% 0.16 293);
  --violet-54: oklch(54.1% 0.247 293);
  --violet-35: oklch(35% 0.16 293);
  --violet-20: oklch(20% 0.08 293);
}
OKLCH gör toner och skuggor förutsägbara: ändra L i jämna steg och sänk C nära ändarna så att färgerna håller sig inom skärmens omfång.

Vilken färgkod du använder till vad

UppgiftBästa skrivsättVarför
Grafisk manual, överlämning av designHexKort, universellt, går att klistra in i alla verktyg
Genomskinlighet i CSSRGB eller hex med 8 siffrorTydlig alfa efter snedstrecket
Snabba justeringar för handHSLLätt att putta på nyans eller mörkhet
Paletter, toner och skuggorOKLCHLika steg ser lika ut
GradienterOKLCHBlandar utan grå mitt
Skärmar med brett färgomfångOKLCHKan nå färger utanför sRGB
TryckCMYK eller accentfärgerSkärmkoder trycks aldrig exakt; se tryck av gradienter
Inget av dem är fel. Konsten är att använda var och ett där det hjälper.

För att testa något av de här värdena visar oklch.com en färg i varje skrivsätt och varnar när den hamnar utanför en skärms omfång, och MDN:s färgreferens täcker varje syntax. Om du väljer färger snarare än skriver dem är så väljer du varumärkesfärger nästa steg, och färgkontrast visar hur du kontrollerar att texten förblir läsbar.

Vanliga frågor

Vad betyder de sex tecknen i en hexkod för färg?

De är tre par hexadecimala siffror för rött, grönt och blått. Varje par löper från 00 (0) till ff (255), så #7c3aed betyder rött 124, grönt 58, blått 237.

Är hex samma sak som RGB?

Ja. Hex är RGB skrivet i bas 16. #7c3aed och rgb(124 58 237) är exakt samma färg.

Vad är OKLCH?

OKLCH är ett färgskrivsätt baserat på färgrummet Oklab. Det beskriver upplevd ljushet, kromatisk styrka och nyans, så lika ljushetsvärden ser lika ljusa ut, vilket gör paletter och gradienter mycket mer förutsägbara.

Hur lägger jag till genomskinlighet i en hexkod?

Lägg till två siffror till för alfa. #7c3aed80 är ungefär 50 % opacitet och #7c3aedcc ungefär 80 %. I CSS kan du också skriva rgb(124 58 237 / 0.5).

Vilken färgkod ska jag använda i CSS?

Hex duger för enstaka färger. Använd OKLCH för paletter, toner, mörkt läge och gradienter, där den perceptuella ljusheten undviker ojämna steg och grå mitt.

Dela den här guiden

Skriven av GradientlyVerifierat Gradiently-konto

Teamet bakom Gradiently, ett designverktyg byggt kring Marks: levande gradienter som får allt du gör att kännas som ditt.

Se vår profil