Sul Web la stessa colore può essere scritta in modi diversi. Un blu può apparire come #2563eb, rgb(37 99 235) o hsl(221 83% 53%). Il risultato visivo può essere identico, ma le notazioni rappresentano la colore in modi differenti.
HEX, RGB e HSL non sono tre livelli di qualità: sono modi diversi di esprimere o manipolare una colore.
Differenza in una frase
- RGB descrive la colore tramite componenti rosso, verde e blu;
- HEX codifica normalmente le stesse componenti RGB in forma esadecimale compatta;
- HSL descrive hue, saturazione e lightness.
Il convertitore di colori permette di passare da una notazione all’altra.
RGB
Gli schermi producono colori combinando luce rossa, verde e blu. È un sistema additivo: valori bassi portano verso il nero, valori alti verso il bianco.
Nella rappresentazione comune a 8 bit per canale, ogni componente va da 0 a 255:
rgb(255 0 0) /* rosso */
rgb(0 0 0) /* nero */
rgb(255 255 255) /* bianco */
Con tre canali da 256 valori si ottengono 16.777.216 combinazioni possibili.
Perché da 0 a 255?
8 bit permettono 2⁸ = 256 valori. Poiché si parte da zero, l’intervallo è 0–255.
Questa struttura spiega anche la notazione HEX.
HEX
L’esadecimale usa 16 simboli, da 0 a F. Una coppia va da 00 a FF, cioè da 0 a 255.
Una colore è spesso scritta come:
#RRGGBB
#FF0000 equivale quindi a rgb(255 0 0). #2563EB equivale a rgb(37 99 235).
HEX non è un altro spazio colore: è soprattutto un modo compatto di scrivere valori RGB.
Notazione abbreviata
Quando ogni coppia contiene due caratteri identici, alcune colorazioni possono essere abbreviate:
#ffffff → #fff
#336699 → #369
L’abbreviazione rappresenta esattamente la stessa colore.
Alpha e trasparenza
CSS permette di associare un valore alpha. In RGB moderno:
rgb(37 99 235 / 50%)
indica lo stesso colore con opacità al 50%. HEX può anche usare una componente alpha in notazioni a otto cifre.
L’alpha non cambia le coordinate cromatiche sottostanti; cambia quanto il colore viene composto con lo sfondo.
