Kolory RGB i kolory HEX, czyli dwa zapisy tej samej barwy
Ekran składa obraz ze światła trzech podstawowych kolorów, czerwonego, zielonego i niebieskiego. Każda składowa przyjmuje wartość od 0 do 255, co daje 16 777 216 kombinacji. Zapis szesnastkowy niesie tę samą informację w krótszej formie, bo dwie cyfry szesnastkowe kodują jedną składową, więc #3A7BD5 znaczy R=58, G=123, B=213. Przeliczenie RGB na HEX zmienia więc wyłącznie system liczbowy zapisu.
W modelu addytywnym im więcej światła, tym jaśniejszy wynik, a suma wszystkich składowych daje biel. Farba na papierze zachowuje się odwrotnie, bo każda kolejna warstwa pochłania część światła i mieszanina zmierza do czerni. Ta różnica tłumaczy, dlaczego projekt wyglądający świetnie na monitorze bywa rozczarowaniem po wydruku.
HSL i HSV, modele bliższe intuicji
Trudno z pamięci odpowiedzieć na pytanie, jak rozjaśnić kolor #3A7BD5, skoro odpowiedź wymaga zmiany wszystkich trzech składowych naraz. Modele HSL i HSV opisują barwę wielkościami zrozumiałymi dla człowieka. Skróty rozwijają się jako hue, saturation i lightness, czyli odcień na kole barw od 0 do 360°, poziom nasycenia i jasność.
Różnica między nimi bywa myląca, bo w HSL jasność 50% oznacza barwę najczystszą, 100% zawsze daje biel, a 0% czerń, natomiast w HSV wartość 100% daje pełną, najbardziej intensywną postać barwy, a biel powstaje dopiero przy zerowym nasyceniu. Do generowania odmian gotowego koloru, czyli jaśniejszej i ciemniejszej wersji przycisku, wygodniejszy jest HSL, bo wystarczy zmienić jedną liczbę. Lightness nie odpowiada jednak jasności widzianej przez oko i dwie barwy o tej samej wartości L potrafią mieć zupełnie inny kontrast wobec bieli.
Gdzie używa się poszczególnych formatów kolorów
W projektowaniu stron internetowych zapis szesnastkowy jest domyślny od czasów, gdy barwę podawało się wprost w atrybutach HTML, i do dziś dominuje w arkuszach stylów, bo sześć znaków łatwo przenieść między aplikacją graficzną a edytorem kodu. Biblioteki kodów kolorów i systemy projektowe operują właśnie formatami HEX.
Funkcje rgb() i hsl() podają składowe jako liczby, więc nadają się do wyliczeń w zmiennych CSS, w motywie ciemnym albo w animacji. W webdesignie HSL wygrywa wszędzie tam, gdzie z jednej barwy firmowej powstaje cały zestaw odcieni, bo zmienia się wtedy jedną wartość zamiast trzech. CMYK w CSS w ogóle nie występuje, a w grafice komputerowej wchodzi do gry dopiero przy przygotowaniu pliku do druku. Wszystkie zapisy ekranowe opisują ten sam kolor cyfrowy w przestrzeni sRGB.
Konwersja RGB do CMYK i jej granice
CMYK opisuje mieszanie czterech farb, czyli cyan (turkusowej), magenta (purpurowej), yellow (żółtej) i czarnej oznaczanej literą K. Konwersja RGB do CMYK wymaga profilu kolorystycznego, czyli opisu tego, jak konkretna maszyna drukarska na konkretnym papierze odwzorowuje barwy. Bez profilu zostaje wzór ogólny, który podaje wartości orientacyjne. Między HSL i CMYK też nie ma prostego przelicznika, bo pierwszy model opisuje światło, a drugi farbę na papierze.
Drugie ograniczenie to gamut. Zbiór barw możliwych do wydrukowania jest mniejszy niż zbiór barw wyświetlanych na ekranie, więc intensywne, świecące odcienie zieleni i błękitu w druku nie istnieją i zostaną zastąpione najbliższą dostępną barwą. Jeżeli projekt trafi na papier, poproś drukarnię o profil ICC i przelicz pliki w programie graficznym z jego użyciem, a wartości z tego narzędzia potraktuj jako punkt wyjścia do rozmowy, a nie jako wynik ostateczny.
Kontrast i dostępność
Kalkulator kontrastu w prawej kolumnie porównuje jasność względną dwóch kolorów. Skala biegnie od 1:1 przy dwóch identycznych barwach do 21:1 przy czerni na bieli. Wytyczne WCAG 2.2 wymagają na poziomie AA kontrastu co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla tekstu dużego, czyli od 24 pikseli albo 19 pikseli w wersji pogrubionej. Poziom AAA podnosi te progi do 7:1 i 4,5:1.
Jasność względna nie jest zwykłą średnią składowych. Oko najsilniej reaguje na zieleń, słabiej na czerwień i najsłabiej na błękit, więc wzór waży składowe współczynnikami 0,2126, 0,7152 i 0,0722, a każdą z nich poddaje wcześniej korekcie gamma, ponieważ wartości zapisane w pliku nie są wprost proporcjonalne do ilości emitowanego światła. Czysty żółty ma wobec bieli kontrast zaledwie 1,07:1, choć subiektywnie wydaje się od niej wyraźnie różny.
Jak powstają palety harmonijne
Generator kolorów w sekcji palet opiera się na położeniu barw na kole odcieni, a zasada budowania palet kolorystycznych jest za każdym razem ta sama, zmienia się tylko kąt. Kolory dopełniające leżą naprzeciw siebie, w odległości 180°, i dają najsilniejszy możliwy kontrast, dobry na akcenty, męczący na dużych powierzchniach. Triada to trzy barwy co 120°, układ żywy i zrównoważony. Barwy analogiczne leżą blisko siebie, zwykle co 30°, i tworzą spokojne zestawienia. Paleta monochromatyczna zachowuje odcień, a zmienia wyłącznie jasność i nasycenie.
Matematyczna harmonia nie zastępuje jednak oceny wzrokiem. Koło barw HSL jest równomierne pod względem liczby stopni, ale nie pod względem tego, jak barwy odbiera oko, bo obszar zieleni jest percepcyjnie szerszy niż obszar błękitu. Wygenerowaną paletę sprawdź na docelowym tle i skontroluj kontrast każdej pary, która ma zestawić tekst z tłem.