Slik lager datamaskiner farger: RGB, HEX og det binære systemet
#FF0000. #00FF00. #0000FF. Du har sannsynligvis sett disse i et designdokument eller i kode. De ser ut som kryptiske koder — men det er faktisk fargenavn.
Fra topp til bunn: rød, grønn, blå. Det er navnene datamaskiner bruker på farger. La oss se på hvor de kommer fra.
RGB — tre bokstaver som skaper farger
Red, Green, Blue. Lysets tre primærfarger. Alle fargene vi ser, lages ved å blande disse tre i bestemte mengder.
Vi ser RGB hver dag
Nesten alt med en skjerm bruker RGB.
- Skjermer / TV — hvert piksel består av tre punkter: rød, grønn og blå
- Smarttelefonskermer — samme oppbygning, bare mindre piksler
- Gaming-tastatur-LED — tre LED-er per tast: R, G og B
- PC-kabinettbelysning — RGB-strips sender RGB-signaler
Zoom inn nok på en skjerm, og du ser det selv. Rød, grønn, blå. Det er det hele. Millioner av bittesmå RGB-punkter utgjør til sammen bildet du ser.
Farger blandes
Hver RGB-kanal har en styrke fra 0 til 255.
RGB(255, 0, 0)— bare rød på maks → ren rødRGB(0, 255, 0)— bare grønn på maks → ren grønnRGB(255, 255, 0)— rød + grønn → gulRGB(0, 0, 0)— alt slukket → svartRGB(255, 255, 255)— alt på maks → hvit
Det kan virke rart at rød + grønn = gul, men dette er additiv fargeblanding med lys. Det er annerledes enn å blande maling (rød + grønn = brun). Lys blir lysere jo mer du legger til, og når alt er på, er resultatet hvitt.
Dra i de tre glidebryterne nedenfor og se selv.
Det 8-sifrede tallet til høyre er kanalens binære representasjon. Når du drar i glidebryteren, endres tallet i takt. Neste tema er hvordan 0-er og 1-ere kan representere 256 verdier.
Hvorfor akkurat 0 til 255?
Datamaskiner jobber bare med 0 og 1. Ett enkelt 0 eller 1 kalles en bit. For hver bit som legges til, fordobles antallet mulige verdier.
8 bits = 1 byte. En farge har tre RGB-kanaler, det vil si 3 bytes = 24 bit totalt. 24 bit kan representere ca. 16,7 millioner farger — nok til at det menneskelige øyet ikke klarer å skille dem fra hverandre, og det er grunnen til at 1 byte per kanal er standarden.
Les et binærtal selv
Hver posisjon har en fast verdi. Fra venstre til høyre: 128, 64, 32, 16, 8, 4, 2, 1 — potenser av 2.
Legg sammen alle posisjonene med 1, og du får det tilsvarende desimaltallet.
Det er akkurat derfor maksverdien for 8 bit er 255. Og det er den nøyaktige grunnen til at én RGB-kanal spenner fra 0 til 255.
HEX — samme tall, kortere
RGB(255, 255, 255). Det er 16 tegn. Litt langt å skrive i en CSS-regel eller et designverktøy hele tiden. Derfor kom det en kortere notasjon.
Hva er heksadesimalt?
Heksadesimalt er et tallsystem som representerer 0 til 15 med ett enkelt tegn. Våre vanlige tall dekker bare 0–9 — ti tegn. De manglende seks hentes fra alfabetet.
Tre regler:
- 0–9 er som normalt
- Fra 10 starter vi med A
- F er det høyeste enkelt tegn (= 15)
Hvorfor akkurat heksadesimalt?
4 binære sifre (0000 – 1111) gir nøyaktig 16 kombinasjoner.
4 binære sifre = 1 heksadesimalt tegn. Fire sifre krymper til ett. Siden en RGB-kanal er 8 bit, passer den nøyaktig til to heksadesimale tegn.
Slik konverterer du RGB til HEX
La oss konvertere RGB(255, 87, 51).
14 tegn krymper til 7 tegn.
Les fargen fra HEX
Omvendt kan du få en følelse av fargen bare ved å se på HEX-koden.
#FF5733— R maks (FF), G halvveis (57), B lav (33) → sterk oransje-rød#3576E0— R lav (35), G middels (76), B sterk (E0) → blå med litt fiolett#29A85A— R lav (29), G sterk (A8), B lav (5A) → frisk grønn
Kan du skille de tre delene, vet du allerede om fargen er oransje, blå eller grønn — og designer og utvikler snakker samme språk.
Kort oppsummering
- RGB — tre kanaler (rød, grønn, blå), hver fra 0 til 255
- 8-bits binært — årsaken til at én kanal kan representere 256 verdier
- HEX — en kortere notasjon som skriver de samme tallene med bare to tegn
Når de tre begrepene henger sammen, er fargekoder ikke lenger fremmedspråk. RGB’s tre tall er direkte HEX’s seks tegn.
Neste steg er å oversette disse tallene til designernes språk. Forespørsler som «litt lysere», «mindre mettet» eller «det samme på papir» er vanskelige å håndtere med bare RGB og HEX. Hvordan HSL, CMYK og OKLCH løser dette, beskrives i RGB er ikke nok: HSL, CMYK og OKLCH – fargenotasjoner forklart.