Kortversjonen
- Fargekontrast er forskjellen i lyshet mellom tekst og bakgrunn, målt som et forhold fra 1:1 (ingen forskjell) til 21:1 (svart på hvitt).
- WCAG 2 nivå AA krever minst 4,5:1 for vanlig tekst og 3:1 for stor tekst, som er omtrent 24 px vanlig eller 18,66 px fet.
- Ikoner, feltkanter og andre deler av et grensesnitt folk må se, trenger også minst 3:1 mot omgivelsene.
- På hvitt er
#767676den lyseste vanlige grå som klarer 4,5:1 for brødtekst, og#777777feiler så vidt. - På en gradient endrer kontrasten seg fra punkt til punkt, så du må teste det verste stedet bak ordene, ikke gjennomsnittsfargen.
På denne siden
Fargekontrast er forskjellen i lyshet mellom tekst og fargen bak den, og den avgjør om folk i det hele tatt kan lese ordene dine. Retningslinjene for tilgjengelig webinnhold (WCAG) måler den som et forhold fra 1:1, der de to fargene er like, til 21:1, svart på hvitt. På nivå AA trenger vanlig tekst minst 4,5:1 og stor tekst minst 3:1. Alt annet i denne guiden handler om å nå disse tallene uten å gjøre designet ditt forsagt.
Kontrast betyr noe for alle, ikke bare for folk med nedsatt syn. Mobiler i sollys, svake prosjektorer, billige skjermer og slitne øyne krymper alle forskjellen mellom farger. Design med nok kontrast blir rett og slett lest mer.
WCAGs kontrastforhold i klartekst
Tre regler i WCAG 2 dekker nesten alle designbeslutninger. De kommer fra W3Cs suksesskriterier, og de er det de fleste tilgjengelighetsrevisjoner og forskrifter viser til.
| Hva | Nivå AA | Nivå AAA | Merknader |
|---|---|---|---|
| Vanlig tekst | 4,5:1 | 7:1 | Brødtekst, bildetekster, etiketter, knapper |
| Stor tekst | 3:1 | 4,5:1 | Minst 18 pt (omtrent 24 px), eller 14 pt fet (omtrent 18,66 px) |
| Ikoner og deler av grensesnittet | 3:1 | 3:1 | Feltkanter, kurver som bærer mening, ikoner uten etikett |
| Logoer og dekor | Ingen | Ingen | Logotyper og rent dekorativ tekst er unntatt |
To detaljer tar folk på senga. For det første handler «stor» om størrelsen slik den gjengis, så en overskrift på 24 px på en mobil som skalerer den ned, teller kanskje ikke lenger som stor. For det andre er en deaktivert knapp unntatt, men en lysegrå plassholder folk må forstå, er det ikke.
Slik regnes kontrastforholdet ut
Forholdet sammenligner den relative luminansen til de to fargene: hvor mye lys hver av dem gir fra seg, vektet slik øyet ser. Grønt bidrar mest, rødt mindre og blått svært lite, og derfor kan et mettet blått være overraskende mørkt og et gult overraskende lyst. Formelen er (L1 + 0.05) / (L2 + 0.05), der L1 er den lyseste fargen.
// WCAG 2 contrast ratio between two hex colours
const channel = (c) => {
c /= 255
return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4
}
const luminance = (hex) => {
const [r, g, b] = [1, 3, 5].map((i) => channel(parseInt(hex.slice(i, i + 2), 16)))
return 0.2126 * r + 0.7152 * g + 0.0722 * b
}
const contrast = (a, b) => {
const [hi, lo] = [luminance(a), luminance(b)].sort((x, y) => y - x)
return (hi + 0.05) / (lo + 0.05)
}
contrast('#767676', '#ffffff') // 4.54, passes for body text
contrast('#777777', '#ffffff') // 4.48, failsDu trenger ikke regne den ut for hånd. WebAIMs kontrastsjekker tar to hex-koder og forteller hvilke nivåer som består, og fargevelgeren i utviklerverktøyene i Chrome viser forholdet for all tekst du inspiserer.
Fargepar som består og feiler
Merkevarefarger havner ofte i det kinkige midtpartiet, for mørke til mørk tekst og for lyse til hvit tekst. Middels grønne, oransje, rosa og lyseblå farger er de vanlige syndebukkene. Dette er vanlige kombinasjoner, med de faktiske forholdene.
| Tekst på bakgrunn | Forhold | Vanlig tekst | Stor tekst |
|---|---|---|---|
Hvit på #7c3aed fiolett | 5,7:1 | Består | Består |
Hvit på #8b5cf6 lys fiolett | 4,2:1 | Feiler | Består |
Hvit på #2563eb blå | 5,2:1 | Består | Består |
Hvit på #3b82f6 himmelblå | 3,7:1 | Feiler | Består |
Hvit på #10b981 grønn | 2,5:1 | Feiler | Feiler |
#0b0b10 nesten svart på #10b981 grønn | 7,7:1 | Består | Består |
Hvit på #f59e0b rav | 2,2:1 | Feiler | Feiler |
#999999 grå på hvitt | 2,9:1 | Feiler | Feiler |
#6b7280 grå på hvitt | 4,8:1 | Består | Består |
Hvorfor gradienter gjør kontrast vanskeligere
En flat bakgrunn har ett kontrastforhold. En gradient har et ulikt ett i hvert punkt. Hvit tekst som lett består over den mørke enden av en blanding, kan feile helt i den lyse enden, og en overskrift som strekker seg over gradienten, både består og feiler på samme linje.
linear-gradient(90deg, #1f0b3a 0%, #7c3aed 55%, #f472b6 100%)Regelen er enkel: test det lyseste punktet bak lys tekst, eller det mørkeste punktet bak mørk tekst. Hvis det verste punktet består, består hele linjen. Gjennomsnittsfarger og pipetteprøver fra midten vil lure deg.
Slik retter du kontrasten på en gradient
- 1
Flytt ordene til den rolige enden
Plasser tekst over den mørkeste eller lyseste delen av gradienten, og la den lyse overgangen skje et annet sted.
- 2
Snevre inn spennet bak teksten
Hold den delen av gradienten som ligger bak ord, innenfor et lite lyshetsområde. Resten av lerretet kan være så dristig du vil.
- 3
Legg til et mykt slør
En mild mørk eller lys tone bak teksten, som en gradient fra gjennomsiktig til 30 % svart, løfter kontrasten uten en synlig boks.
- 4
Gå større og tyngre
Stor tekst trenger bare 3:1. Et tyngre snitt og en større størrelse kan gjøre en linje som feiler, til en som består.
- 5
Test på en ekte mobil
Sjekk designet på full lysstyrke og på lav, utendørs om du kan. Forholdstall er gulvet, ikke målet.
.card {
background: linear-gradient(90deg, #1f0b3a 0%, #7c3aed 55%, #f472b6 100%);
color: #ffffff;
}
/* A soft scrim keeps white text above 4.5:1 across the pink end */
.card .text {
background: linear-gradient(90deg, transparent 0%, rgb(31 11 58 / 0.55) 60%);
padding: 1rem 1.25rem;
}Ordene går rett over den lyseste delen av flaten, og kontrasten faller.
Det samme designet med den rolige, mørke regionen flyttet bak ordene.
Dette er tanken bak lesbarheten i Gradiently: en Mark vet hvor ordene dine er, flytter sin roligste region med best kontrast bak dem og velger lyst eller mørkt blekk per linje fra sin egen palett. For flere teknikker som fungerer overalt, les tekst på gradient og lesbar tekst over foto. For mørke grensesnitt spesielt, se design for mørk modus.
Spørsmål folk stiller
Hva er et godt kontrastforhold?
Minst 4,5:1 for vanlig tekst og 3:1 for stor tekst oppfyller WCAG nivå AA. For lange tekster er 7:1 (nivå AAA) behageligere.
Hva regnes som stor tekst i WCAG?
Tekst på minst 18 punkt, omtrent 24 px, eller minst 14 punkt fet, omtrent 18,66 px. Stor tekst trenger bare 3:1 på nivå AA.
Hva er den lyseste grå jeg kan bruke på hvitt?
#767676 er den lyseste vanlige grå som når 4,5:1 på hvitt. #777777 måler 4,48:1 og feiler for brødtekst.
Må logoer oppfylle kontrastkravene?
Nei. WCAG unntar tekst som er en del av en logo eller et merkenavn, og rent dekorativ tekst. Alt folk må lese eller bruke, teller fortsatt.
Hvordan sjekker jeg kontrast på en gradientbakgrunn?
Mål tekstfargen mot det lyseste punktet bak lys tekst, eller det mørkeste punktet bak mørk tekst. Hvis det verste punktet består, består hele linjen.
Skrevet av Gradiently
Teamet bak Gradiently, et designverktøy bygget rundt Marks: levende gradienter som gjør at alt du designer ser ut som ditt.
Se profilen vår


