Marknaden
Priser
Logga inKom igång
FältguidenCSS och webb
CSS och webb

color-mix() i CSS: blanda färger i webbläsaren

color-mix() låter webbläsaren göra färgmatematiken du förr gjorde i en preprocessor eller på känn. Välj rätt färgrum så kan en varumärkesfärg ge en hel palett av toner, nyanser och genomskinliga versioner.

GradientlyVerifierat Gradiently-konto·1 oktober 2026·5 minuters läsning
Omslag: Rain Rampart · GR·A80B·X7

Kortversionen

  • CSS-funktionen color-mix blandar två färger i ett namngivet färgrum, till exempel color-mix(in oklab, #7c3aed 40%, white).
  • Om du bara anger ett procentvärde får den andra färgen resten; utan något blir blandningen hälften av varje.
  • Att blanda i oklab håller ljusheten jämn och undviker de grå mitterna som sRGB-blandning ger mellan avlägsna nyanser.
  • Att blanda en färg med transparent är det renaste sättet att göra en genomskinlig version av en färg som lagrats i en anpassad egenskap.
  • color-mix() fungerar i alla aktuella större webbläsare, så den är säker i produktion med en vanlig färg som reserv för mycket gamla.
På den här sidan
Syntaxen för color-mix()Vilket färgrum du ska blanda iToner och nyanser från en varumärkesfärgGenomskinlighet med color-mix()Vanliga misstag med color-mix()Webbläsarstöd och reserverAtt blanda färger för gradienter

CSS-funktionen color-mix, color-mix(), blandar två färger i ett färgrum du väljer och returnerar en ny färg. Skriv color-mix(in oklab, #7c3aed 40%, white) och du får en blek violett som är 40 procent violett och 60 procent vit, blandad perceptuellt. Den fungerar i alla aktuella större webbläsare. Tillsammans med anpassade egenskaper gör den en varumärkesfärg till toner, nyanser, hovringslägen och genomskinliga överlägg utan en enda hårdkodad hex.

Syntaxen för color-mix()

css
/* color-mix(in <colour space>, <colour> [<percentage>], <colour> [<percentage>]) */

.a { color: color-mix(in oklab, #7c3aed, white); }          /* 50% each */
.b { color: color-mix(in oklab, #7c3aed 40%, white); }      /* 40% violet, 60% white */
.c { color: color-mix(in oklab, #7c3aed, black 30%); }      /* 70% violet, 30% black */
.d { color: color-mix(in srgb, #7c3aed 50%, transparent); } /* violet at half opacity */
.e { color: color-mix(in oklch shorter hue, #2563eb, #f59e0b); }
Färgrummet kommer först och skrivs ut. Nyansbaserade rum som oklch och hsl accepterar också en nyansriktning: shorter, longer, increasing eller decreasing.
Inga procentvärden

Webbläsaren använder

50 % och 50 %

Anteckningar

En jämn blandning
Ett procentvärde, säg 30 %

Webbläsaren använder

30 % och 70 %

Anteckningar

Den andra färgen får resten
Två som summerar till 100 %

Webbläsaren använder

Som skrivet

Anteckningar

Den tydligaste formen att läsa senare
Två som summerar till mer än 100 %

Webbläsaren använder

Skalas ned till 100 %

Anteckningar

60 % och 60 % beter sig som 50 % och 50 %
Två som summerar till mindre än 100 %

Webbläsaren använder

Skalas upp, och görs sedan genomskinlig

Anteckningar

20 % och 30 % ger ett resultat med halv opacitet
Du skriverWebbläsaren använderAnteckningar
Inga procentvärden50 % och 50 %En jämn blandning
Ett procentvärde, säg 30 %30 % och 70 %Den andra färgen får resten
Två som summerar till 100 %Som skrivetDen tydligaste formen att läsa senare
Två som summerar till mer än 100 %Skalas ned till 100 %60 % och 60 % beter sig som 50 % och 50 %
Två som summerar till mindre än 100 %Skalas upp, och görs sedan genomskinlig20 % och 30 % ger ett resultat med halv opacitet
Hur procentvärden löses. Sista raden förvånar folk: en summa under 100 gör resultatet delvis genomskinligt.

Vilket färgrum du ska blanda i

Färgrummet avgör vägen mellan de två färgerna. I sRGB medelvärdesbildar webbläsaren röda, gröna och blå tal, vilket är snabbt att resonera om men inte hur ögon ser. Två avlägsna nyanser passerar ett trist grått på vägen. I oklab följer blandningen upplevd ljushet och färg, så mitten förblir ren och stegen ser jämna ut. Gradientinterpolation förklarar samma val för gradienter, och effekten syns lättast där.

Blått till gult i tre rum. Mittpunkten på varje remsa är exakt det color-mix() returnerar vid 50 procent i det rummet: #808080 i sRGB, ett ljust blågrått i oklab.
  • oklab för toner, nyanser och det mesta vardagliga blandandet. Jämn ljushet, inget grått dyk.
  • oklch när du vill att nyansen ska färdas, till exempel för att blanda två varumärkesfärger till en tredje som ligger mellan dem på hjulet.
  • srgb för att blanda med transparent eller matcha äldre designverktyg som blandar i sRGB.
  • srgb-linear för fysikaliskt baserad ljusblandning, som ser ljusare ut i mitten.

För bakgrunden till varför perceptuella rum beter sig bättre, se OKLCH förklarat. Nyare versioner av specifikationen låter dig utelämna färgrummet och falla tillbaka på oklab, men stödet för den genvägen är nyare, så skriv in oklab uttryckligen.

Toner och nyanser från en varumärkesfärg

Det mest användbara mönstret är en skala byggd av en enda variabel. Blanda mot vitt för ljusare toner, mot svart för mörkare nyanser. Ändra variabeln så uppdateras varje steg, vilket är idealiskt för produkter med flera varumärken eller teman som användaren väljer.

css
:root {
  --brand: #7c3aed;

  --brand-100: color-mix(in oklab, var(--brand) 20%, white);
  --brand-200: color-mix(in oklab, var(--brand) 40%, white);
  --brand-300: color-mix(in oklab, var(--brand) 60%, white);
  --brand-400: color-mix(in oklab, var(--brand) 80%, white);
  --brand-500: var(--brand);
  --brand-600: color-mix(in oklab, var(--brand) 80%, black);
  --brand-700: color-mix(in oklab, var(--brand) 60%, black);
}
En skala i sju steg från en färg. Byt --brand mot vilken hex som helst så följer skalan.
Vad skalan ovan blir för #7c3aed, beräknad i oklab. Blandade i sRGB blir tonerna lite gråare och nyanserna lite plattare.

Att blanda med rent vitt och svart är en startpunkt. För varmare toner, blanda mot ett benvitt som #fdf6ec; för rikare nyanser, blanda mot en djup marinblå i stället för svart. Det håller skalan i känslan av ditt varumärke snarare än en generisk ramp. Toner, nyanser och skuggningar tar upp färgteorin.

Genomskinlighet med color-mix()

Före color-mix() betydde en genomskinlig version av en färg lagrad i en variabel att man lagrade kanalerna separat. Nu blandar du med transparent. Mängden du behåller är opaciteten.

css
.badge {
  color: var(--brand);
  background: color-mix(in srgb, var(--brand) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent);
}

.button:hover {
  background: color-mix(in oklab, var(--brand), black 12%);
}
En tonad etikett och ett hovringsläge från samma variabel. Ingen andra färg att underhålla.

Vanliga misstag med color-mix()

  • Att utelämna färgrummet i kod som måste köras i äldre webbläsare. Hela deklarationen släpps, inte bara rummet.
  • Att blanda med svart för varje nyans. Nyanser av mättade färger blir matta; blanda i stället mot en djup version av nyansen.
  • Att vänta sig att procentvärden under 100 förblir ogenomskinliga. color-mix(in oklab, red 20%, blue 30%) är halvt genomskinlig.
  • Att använda hsl för toner. Ljusheten i hsl är inte perceptuell, så ett gult och ett blått i samma blandning ser inte alls ut som samma steg.

Webbläsarstöd och reserver

color-mix() har funnits i Chrome, Edge, Firefox och Safari sedan 2023, och aktuellt stöd listas på caniuse. Om du behöver täcka mycket gamla webbläsare, deklarera en vanlig färg först och låt den blandade åsidosätta den. Webbläsare som inte förstår den andra raden ignorerar den.

css
.card {
  background: #ede9fe;
  background: color-mix(in oklab, var(--brand) 15%, white);
}
Reserven först, förbättringen sedan. Kaskaden gör resten.

Ett helt tema byggt på de här mönstren, med ljust och mörkt läge, finns i CSS-variabler för teman.

Att blanda färger för gradienter

color-mix() är praktisk inuti gradienter, där den kan beräkna ett mittstopp av två varumärkesfärger så att blandningen aldrig passerar lera. linear-gradient(135deg, var(--a), color-mix(in oklch, var(--a), var(--b)), var(--b)) ger dig ett tredje stopp på nyansvägen mellan de två. Det underliggande problemet tas upp i leriga gradienter.

Om din varumärkesfärg bor i en Gradiently-Mark rymmer Markens recept redan en familj av besläktade färger valda för att fungera tillsammans, och Marknaden låter dig söka på färgord som ”djup violett” för att hitta en byggd kring den nyans du utgår från.

Hitta en gradient som bara är din

Bläddra bland tusentals Marks, designa med vilken som helst av dem utan kostnad och säkra den som känns som du.

Utforska Marknaden

Vanliga frågor

Vad gör color-mix() i CSS?

Den blandar två färger i ett färgrum du anger och returnerar resultatet, till exempel color-mix(in oklab, red 30%, white).

Vilket färgrum ska jag använda med color-mix()?

Använd oklab för toner, nyanser och det mesta blandandet, oklch när du vill att nyansen ska färdas, och srgb för att blanda med transparent.

Hur gör jag en färg genomskinlig med color-mix()?

Blanda den med transparent: color-mix(in srgb, var(--brand) 20%, transparent) ger varumärkesfärgen med 20 procents opacitet.

Stöds color-mix() i alla webbläsare?

Den fungerar i aktuella versioner av Chrome, Edge, Firefox och Safari. Deklarera en vanlig färg först som reserv för äldre webbläsare.

Vad händer om procentvärdena inte summerar till 100?

Summor över 100 skalas ned. Summor under 100 skalas upp och resultatet blir delvis genomskinligt.

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

På den här sidan

Syntaxen för color-mix()Vilket färgrum du ska blanda iToner och nyanser från en varumärkesfärgGenomskinlighet med color-mix()Vanliga misstag med color-mix()Webbläsarstöd och reserverAtt blanda färger för gradienter

Dela den här guiden

Nästa i CSS och webb

Bygg ett tema med CSS-variabler: ljust, mörkt och varumärkesfärger

Läs vidare

Alla guider om CSS och webb
CSS och webb

Bygg ett tema med CSS-variabler: ljust, mörkt och varumärkesfärger

5 minuters läsning

Teman går fel när färger namnges efter hur de ser ut i stället för vad de gör. Namnge rollerna, peka dem mot en palett, så blir ljust läge, mörkt läge och ett andra varumärke några rader vardera.

Färg

OKLCH förklarat: perceptuell färg för designers

5 minuters läsning

HSL lovade läsbar färg och levererade nästan. OKLCH behåller den läsbara delen och rättar lögnen om ljushet, vilket är varför designsystem går över till det.

Gradienter

Gradientinterpolering: sRGB, OKLab och varför det spelar roll

5 minuters läsning

Välj blått och gult, blanda dem, och mitten blir grå. Det är inte dina färger som sviker. Det är färgrymdens matematik som sköter blandningen, och sedan CSS Color 4 kan du ändra den.

Hitta looken som bara är din.

Varje Mark är en levande bakgrund med en enda ägare. Prova en ledig Mark och säkra din när det känns rätt.

Börja designa

Kontrollera ett certifikat

Skriv ett certifikatnummer eller en Marks kod för att se vem som äger den.

Fungerar med ChatGPT och Claude

Be din AI om en design. Den skapar den i din Mark, redo att redigera.

ChatGPTClaude
Så ansluter du

Produkt

  • Marknaden
  • Utforska
  • Priser
  • Certifikat

Lär dig

  • Fältguiden
  • Hjälpcenter
  • Nyheter

Utvecklare

  • Översikt
  • ChatGPT och Claude
  • API-referens
  • API-nycklar

Företaget

  • Om oss
  • Kontakta oss
  • Logga in

Juridik

  • Villkor
  • Integritet
  • Återbetalningar
  • Mark-skydd
  • Cookies
  • Alla policyer
Rör dig över bokstäverna. Var och en bär en riktig Mark.Tryck på en bokstav för att se dess Mark.Ett namn. Tio Marks inuti.
© 2026 Gradiently