Gradienter

Därför blir vissa gradienter grå i mitten, och så stoppar du det

Blått och gult borde ge en härlig gradient. Blanda dem på standardsättet och du får en grå fläck i mitten. Här är exakt varför, och fyra sätt att hålla varje övergång ren.

GradientlyVerifierat Gradiently-konto··5 minuters läsning
Omslag: Loganberry Hermitage · GR·E0AX·68

Kortversionen

  • En gyttjig gradient är en som blir grå, brun eller matt där färgerna möts, i stället för att förbli klar hela vägen över.
  • Orsaken är blandning i färgrymden sRGB, där halvvägspunkten mellan två motsatta färger, som blått och gult, är en platt grå.
  • Blandning i OKLCH bevarar färgintensiteten genom att färdas runt nyanshjulet i stället för rakt genom grått.
  • Ett handplockat mittstopp, som turkos mellan blått och gult, rättar gyttja i vilket verktyg och format som helst.
  • Angränsande nyanser på färghjulet blir nästan aldrig gyttjiga, och därför är analoga gradienter de säkraste att designa.
På den här sidan

En gyttjig gradient är en övergång som blir grå, brun eller matt i mitten, trots att båda färgerna är klara. Det händer eftersom de flesta verktyg blandar färger i färgrymden sRGB och blandar röda, gröna och blå värden i raka linjer. När de två färgerna ligger på motsatta sidor av färghjulet möts de raka linjerna nära grått. Lösningen är att välja vilken väg övergången tar: lägg till en färg i mitten, blanda i OKLCH eller använd nyanser som ligger närmare varandra.

Därför blir motsatta färger grå

Titta på siffrorna. Rent blått är röd 0, grön 0, blå 255. Rent gult är röd 255, grön 255, blå 0. Halvvägs mellan dem hamnar varje kanal på ungefär 128, vilket är #808080: en mellangrå. Samma sak händer med rött och cyan, orange och azurblått, eller vilket annat komplementärt par som helst. Matematiskt går den raka linjen mellan dem rakt genom gråaxeln.

Tre komplementära par blandade på standardsättet. Alla passerar samma platta grå i mitten.

Ett andra, subtilare problem är den mörka svackan. Blått till rött i sRGB passerar #800080, en lila som är mörkare än båda ändarna, så övergångens mitt ser ut som ett blåmärke. Färgerna är inte motsatta, men övergången tappar ändå ljushet där de möts.

Lösning 1: lägg till ett mittstopp

Den enklaste lösningen fungerar i varje verktyg och format: välj färgen du vill ha i mitten och placera den där själv. Välj en klar, mättad färg som ligger mellan ändarna på färghjulet. Mellan blått och gult är det turkos eller grönt. Mellan orange och blått tar en rosa den varma vägen, den som de flesta solnedgångsgradienter använder.

Samma tre par med ett handplockat mittstopp. Inget grått någonstans.

Lösning 2: blanda i OKLCH

OKLCH beskriver färg som ljushet, kroma (intensitet) och nyans, och det utformades så att lika steg ser ut som lika förändringar för människor. Blandning i OKLCH håller uppe kroman och svänger runt nyanshjulet i stället för att skära rakt över det, så övergången kollapsar aldrig till grått. I CSS ber du om det med en enda fras. Du kan också välja vilket håll runt hjulet den ska ta.

css
/* Default for hex colours: sRGB, grey in the middle */
.muddy   { background: linear-gradient(90deg, #0000ff, #ffff00); }

/* OKLCH, shorter way round the wheel: through teal and green */
.clean   { background: linear-gradient(90deg in oklch, #0000ff, #ffff00); }

/* OKLCH, longer way round: through magenta, red and orange */
.sunset  { background: linear-gradient(90deg in oklch longer hue, #0000ff, #ffff00); }

/* OKLab: straight line, but with even lightness */
.even    { background: linear-gradient(90deg in oklab, #0000ff, #ffff00); }
Interpolationsnyckelorden är en del av CSS Color Level 4 och fungerar i aktuella versioner av de stora webbläsarna.
Blått till gult på tre sätt till. OKLab jämnar ut ljusheten men mjukar fortfarande upp motsatser mot grått, medan OKLCH behåller färgen.

OKLab är också värt att känna till. Det är standard i modern CSS-färgsyntax och ger mjuka, jämna övergångar, men eftersom det fortfarande färdas i en rak linje tappar äkta motsatser intensitet i mitten. Använd OKLab för färger som redan ligger nära varandra, och OKLCH eller ett mittstopp för färger som ligger långt ifrån varandra. För hela syntaxen, se OKLCH-gradienter i CSS, eller utforska rymden på oklch.com.

Lösning 3: välj närmare nyanser

Det mest pålitliga sättet att undvika gyttja är att inte be om den. Färger som ligger intill varandra på hjulet, som blått och violett eller orange och rosa, blandas rent i vilken färgrymd som helst eftersom deras raka linje aldrig går nära grått. Därför ger analoga färger de säkraste gradienterna, och därför kräver komplementära par försiktighet, se komplementfärger.

ParStandardresultatRen brygga
Blått och gultPlatt gråttTurkos #14b8a6 eller grönt #22c55e
Orange och blåttGråbruntRosa #ec4899 eller violett #8b5cf6
Lila och gröntMatt gråblåttBlått #0ea5e9
Rött och cyanPlatt gråttViolett #8b5cf6
Rosa och gröntGyttjigt beigeBlekgult #fde68a eller lavendel #c4b5fd
Blått och röttMörk lila svackaKlar magenta #d946ef
Vanliga par som blir gyttjiga som standard, och en mittfärg som håller dem rena.

Lösning 4: håll koll på ljusheten

Gyttja är inte bara grått. En övergång kan också se matt ut när ljusheten sviktar i mitten, eller när ena änden är mycket mörkare än den andra och övergången sker i ett smalt band. Håll ljusheten hos dina stopp någorlunda jämn, eller ändra den stadigt åt ett håll, och ge övergången utrymme. En stoppposition på 40 % eller 60 % ser ofta mer naturlig ut än en mekanisk 50 %.

Blir gyttjigt

  • Motsatta färger utan något emellan
  • En ljus och en mörk ände som möts i ett smalt band
  • Många orelaterade färger i en övergång
  • Att lita på standardblandningen för komplementära par

Förblir rent

  • En vald klar färg i mittpunkten
  • Blandning i OKLCH för nyanser långt ifrån varandra
  • Angränsande nyanser plus en accent
  • Att kontrollera mittpunkten för sig innan du levererar

Gyttja blir värre i mesh gradienter, där flera färger möts på en gång. Samma regler gäller varje överlappning: håll grannar nära varandra och lägg en brygga mellan motsatser.

Vill du hellre utgå från en övergång som redan är balanserad kan du söka på Marknaden med färgord som ”blått och gult” eller ”djup turkos” och designa med vilken Mark du än hittar.

Vanliga frågor

Varför ser min gradient grå ut i mitten?

Dina färger ligger nära varandra som motsatser på färghjulet och blandas i sRGB, där halvvägspunkten mellan motsatser är grå.

Hur rättar jag en gyttjig gradient?

Lägg till ett klart mittstopp mellan de två färgerna, blanda i OKLCH i stället för sRGB, eller välj färger som ligger närmare varandra på färghjulet.

Vad betyder in oklch i en CSS-gradient?

Det säger åt webbläsaren att blanda färgerna i färgrymden OKLCH, som bevarar färgintensiteten och svänger runt nyanshjulet i stället för att passera genom grått.

Är OKLab eller OKLCH bäst för gradienter?

OKLab ger jämna, mjuka övergångar för färger som ligger nära varandra. OKLCH är bättre för nyanser långt ifrån varandra eftersom det bevarar deras intensitet.

Vilka färgkombinationer blir aldrig gyttjiga?

Angränsande nyanser, som blått och violett eller orange och rosa, blandas rent i nästan vilken färgrymd som helst.

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