Menu

Colori CSS: nomi, hex, RGB, RGBA, HSL e trasparenza

Tutti i modi per scrivere un colore in CSS: colori con nome, codici hex, rgb() e rgba(), hsl(), trasparenza con il canale alfa, currentColor e i più recenti oklch() e color-mix(). Ognuno con un esempio dal vivo e un convertitore.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

Modi per scrivere un colore in CSS

Ogni proprietà che accetta un colore (color, background-color, border-color, le ombre, il fill degli SVG) accetta gli stessi formati. I primi quattro campioni sono lo stesso blu scritto in quattro modi, e il quinto è un colore con nome che ci si avvicina:

FormatoEsempioIdeale per
Con nometomato, rebeccapurpleTest rapidi e prototipi
Hex#2563eb, #25eCopiare dagli strumenti di design
rgb()rgb(37 99 235)Aggiungere trasparenza, lavorare da valori RGB
hsl()hsl(221 83% 53%)Creare sfumature più chiare e più scure di un colore
oklch()oklch(55% 0.2 262)Palette con luminosità percepita uniforme
Parole chiavetransparent, currentColorVedi le sezioni qui sotto

Colori hex

Un colore hex è # seguito da rosso, verde e blu, ognuno con due cifre esadecimali, da 00 a ff. Tre forme sono scorciatoie o estensioni:

  • #rgb: ogni cifra viene raddoppiata, quindi #25e equivale a #2255ee.
  • #rrggbbaa: l'ultima coppia è l'alfa, quindi #2563eb80 è opaco circa al 50%.
  • #rgba: la forma breve con alfa.

Gli hex non distinguono maiuscole e minuscole: #2563EB e #2563eb sono lo stesso colore.

rgb() e rgba()

rgb() accetta rosso, verde e blu da 0 a 255 (o da 0% a 100%). Un quarto valore facoltativo dopo una barra è l'alfa, da 0 (invisibile) a 1 o da 0% a 100%.

color: rgb(37 99 235);          /* modern space syntax */
color: rgb(37 99 235 / 50%);    /* half transparent */
color: rgba(37, 99, 235, 0.5);  /* older comma syntax, same result */

rgba() e rgb() ora sono la stessa funzione: entrambe accettano entrambe le sintassi e un alfa facoltativo. Il codice più vecchio usa rgba() quando serve la trasparenza, e continua a funzionare.

hsl(): il formato più facile da regolare

hsl() descrive un colore come lo pensano le persone: una tonalità sulla ruota dei colori, una saturazione e una luminosità. Mantieni la tonalità e cambia la luminosità per ottenere un'intera scala:

La prima riga mantiene tonalità 221 e saturazione 83% e cambia solo la luminosità. La seconda riga fa il giro della ruota dei colori con la stessa saturazione e luminosità.

Trasparenza: alfa o opacity

Un canale alfa rende trasparente un solo colore. opacity rende trasparente l'intero elemento, testo e figli compresi:

transparent è una parola chiave per il nero completamente trasparente, rgb(0 0 0 / 0). È lo sfondo predefinito della maggior parte degli elementi.

currentColor

currentColor è uguale al color dell'elemento stesso. Un pulsante in cui bordo, icona e testo lo usano tutti cambia tutto con una sola dichiarazione:

.button {
  color: #16a34a;
  border: 2px solid currentColor;
}
.button svg { fill: currentColor; }

I bordi usano già currentColor come valore predefinito, ed è per questo che border: 2px solid senza colore prende il colore del testo.

Prova un colore qualsiasi

Scrivi un colore in qualsiasi formato. Il browser lo interpreta e mostra ciò che ha calcolato; un colore non valido lascia il campione invariato.

Prova tomato, #0f0, #2563eb80, rgb(0 0 0 / 25%), oklch(70% 0.15 150) e color-mix(in srgb, #2563eb, white 50%).

Funzioni di colore più recenti

  • oklch(L C H): luminosità, croma e tonalità in uno spazio progettato perché a parità di luminosità i colori sembrino ugualmente chiari. Le palette costruite così hanno meno passaggi intermedi spenti rispetto a quelle in HSL.
  • color-mix(in srgb, A, B 30%): mescola due colori. Con white o black crea sfumature più chiare e più scure a partire da un unico colore del brand, e funziona con le variabili CSS: color-mix(in srgb, var(--brand), white 80%).

Entrambe funzionano nelle versioni attuali di Chrome, Firefox e Safari. Tieni i colori del brand nelle variabili CSS così i formati che scegli stanno in un unico punto.

Errori comuni

  • Manca il # in un colore hex. color: 2563eb non è valido e viene ignorato.
  • Usare opacity per rendere trasparente uno sfondo. Sbiadisce anche il testo. Usa un colore con alfa.
  • Mescolare i separatori nella sintassi moderna. rgb(37 99, 235) non è valido: usa solo spazi o solo virgole.
  • Dare per scontato che un colore con nome corrisponda al tuo design. royalblue non è #2563eb. Copia il codice esatto.
  • Giudicare il contrasto a occhio. Controlla i colori del testo rispetto allo sfondo con uno strumento per il contrasto; 4.5:1 è il minimo per il testo normale.

Domande frequenti

Quali formati di colore supporta il CSS?

Colori con nome (red), hex (#ff0000), rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch() e color(), più le parole chiave transparent e currentColor. Hex, rgb e hsl coprono quasi tutto il lavoro quotidiano.

Che differenza c'è tra rgb e rgba?

Ormai nessuna. rgba() è un vecchio alias: il CSS attuale permette a rgb() di accettare un valore alfa (rgb(37 99 235 / 50%)), e in tutti i browser attuali le due funzioni accettano gli stessi argomenti.

Come rendo trasparente un colore in CSS?

Aggiungi un canale alfa: rgb(0 0 0 / 50%), hsl(221 83% 53% / 0.5), oppure un hex a 8 cifre come #2563eb80. A differenza di opacity, così sbiadisce solo quel colore, non l'intero elemento.

Cos'è HSL in CSS?

Tonalità, saturazione, luminosità (hue, saturation, lightness). La tonalità è un angolo sulla ruota dei colori (0 rosso, 120 verde, 240 blu), la saturazione indica quanto è vivace il colore, e la luminosità va da 0% nero a 100% bianco. Rende facili le sfumature più chiare e più scure: cambi solo l'ultimo numero.

Cosa significa currentColor?

È il valore della proprietà color dell'elemento. Usarlo per un bordo o per il fill di un SVG li fa seguire automaticamente il colore del testo.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA