The CSS Podcast - 006: Color Part One
Il colore è una parte importante di qualsiasi sito web e in CSS sono disponibili molte opzioni per tipi di colori, funzioni e trattamenti.
Come decidi quale tipo di colore utilizzare? Come si rendono i colori semitrasparenti? In questa lezione scoprirai quali opzioni hai a disposizione per prendere le decisioni giuste per il tuo progetto e il tuo team.
CSS ha diversi tipi di dati, come stringhe e numeri. Il colore è uno di questi tipi e utilizza altri tipi, come i numeri, per le proprie definizioni.
Colori numerici
È molto probabile che la tua prima esperienza con i colori in CSS sia tramite i colori numerici. Possiamo lavorare con valori di colore numerici in alcune forme diverse.
Colori esadecimali
h1 {
color: #b71540;
}
La notazione esadecimale (spesso abbreviata in esadecimale) è una sintassi abbreviata per RGB, che assegna un valore numerico a rosso, verde e blu, ovvero i tre colori primari.
Gli intervalli esadecimali sono 0-9 e A-F. Se utilizzati in una sequenza di sei cifre, vengono tradotti negli intervalli numerici RGB da 0 a 255 che corrispondono rispettivamente ai canali di colore rosso, verde e blu.
Puoi anche definire un valore alfa con qualsiasi colore numerico.
Un valore alpha è una percentuale di trasparenza.
Nel codice esadecimale, aggiungi altre due cifre alla sequenza di sei cifre,
ottenendo una sequenza di otto cifre.
Ad esempio, per impostare il nero in codice esadecimale, scrivi #000000
.
Per aggiungere una trasparenza del 50%, imposta il valore su #00000080
.
Poiché la scala esadecimale è 0-9 e A-F, i valori di trasparenza probabilmente non sono quelli che ti aspetti.
Di seguito sono riportati alcuni valori chiave comuni aggiunti al codice esadecimale nero, #000000
:
- Il valore alfa 0%, che è completamente trasparente, è 00:
#00000000
- Un alpha del 50% è 80:
#00000080
- Il valore alpha del 75% per BF è
#000000BF
Per convertire un numero esadecimale di due cifre in un numero decimale, prendi la prima cifra e moltiplicala per 16 (poiché il numero esadecimale è in base 16), quindi aggiungi la seconda cifra. Utilizzando BF come esempio per un'alfa del 75%:
- B è uguale a 11, che moltiplicato per 16 è uguale a 176
- F è uguale a 15
- 176 + 15 = 191
- Il valore alpha è 191, ovvero il 75% di 255
RGB (rosso, verde, blu)
h1 {
color: rgb(183, 21, 64);
}
I colori RGB sono definiti con la funzione di colore rgb()
, utilizzando numeri o percentuali come parametri.
I numeri devono rientrare nell'intervallo 0-255 e le percentuali devono essere comprese tra 0% e 100%.
RGB funziona sulla scala 0-255, quindi 255 è equivalente al 100% e 0 allo 0%.
Per impostare il nero in RGB, definiscilo come rgb(0 0 0)
,
ovvero zero rosso, zero verde e zero blu.
Il nero può essere definito anche come rgb(0%, 0%, 0%)
.
Il bianco è l'esatto opposto: rgb(255, 255, 255)
o rgb(100%, 100%, 100%)
.
Un'alpha viene impostata in rgb()
in uno dei due modi.
Aggiungi un /
dopo i parametri rosso, verde e blu oppure utilizza la funzione rgba()
.
Il valore alpha può essere definito con una percentuale o un numero decimale compreso tra 0 e 1.
Ad esempio, per impostare un nero alpha al 50% nei browser moderni, scrivi: rgb(0 0 0 / 50%)
o rgb(0 0 0 / 0.5)
.
Per un supporto più ampio, utilizzando la funzione rgba()
,
scrivi: rgba(0, 0, 0, 50%)
o rgba(0, 0, 0, 0.5)
.
HSL (tonalità, saturazione e luminosità)
h1 {
color: hsl(344, 79%, 40%);
}
HSL sta per tonalità, saturazione e luminosità. La tonalità descrive il valore sulla ruota dei colori, da 0 a 360 gradi, a partire dal rosso (0 e 360). Una tonalità di 180 o 50% rientra nell'intervallo di blu. È l'origine del colore che vediamo.
La saturazione indica la vivacità della tonalità selezionata.
Un colore completamente desaturato (con una saturazione di 0%
) viene visualizzato in scala di grigi.
Infine, la luminosità è il parametro che descrive la scala dal bianco al nero della luce aggiunta.
Un valore di luminosità pari a 100%
darà sempre il bianco.
Utilizzando la funzione di colore hsl()
,
puoi definire un nero reale scrivendo hsl(0 0% 0%)
o anche hsl(0deg 0% 0%)
.
Questo perché il parametro di tonalità definisce il grado sulla ruota dei colori,
che, se utilizzi il tipo di numero, è 0-360.
Puoi anche utilizzare il tipo di angolo, ovvero (0deg
) o (0turn)
.
Sia la saturazione che la luminosità sono definite con percentuali.
L'alpha è definito in hsl()
,
come rgb()
, aggiungendo un /
dopo i parametri tonalità, saturazione e luminosità o utilizzando la funzione
hsla()
.
Il valore alpha può essere definito con una percentuale o un numero decimale compreso tra 0 e 1.
Ad esempio, per impostare un nero con un'alfa del 50%, utilizza: hsl(0 0% 0% / 50%)
o hsl(0 0% 0% / 0.5)
.
Utilizzando la funzione hsla()
, scrivi: hsla(0, 0%, 0%, 50%)
o hsla(0, 0%, 0%, 0.5)
.
Parole chiave per i colori
In CSS sono disponibili 148 colori con nome. Si tratta di nomi in inglese semplice, come viola, pomodoro e achillea. Alcuni dei nomi più popolari, secondo l'Almanacco del web, sono nero, bianco, rosso, blu e grigio. I nostri preferiti includono goldenrod, aliceblue e hotpink.
Oltre ai colori standard, sono disponibili anche parole chiave speciali:
transparent
è un colore completamente trasparente. È anche il valore iniziale dibackground-color
currentColor
è il valore dinamico calcolato in base al contesto della proprietàcolor
. Se il colore del testo èred
e impostiborder-color
sucurrentColor
, anche il testo sarà rosso. Se per l'elemento in cui definiscicurrentColor
non è definito un valore percolor
,currentColor
verrà calcolato tramite la ricorsione.
Dove utilizzare il colore nelle regole CSS
Se una proprietà CSS accetta il tipo di dato <color>
come valore, accetta uno dei metodi precedenti per esprimere il colore.
Per applicare stili al testo, utilizza le proprietà color
, text-shadow
e text-decoration-color
, che accettano tutte il colore come valore o come parte del valore.
Per gli sfondi, puoi impostare un colore come valore per background
o background-color
.
I colori possono essere utilizzati anche nei gradienti, ad esempio linear-gradient
.
I gradienti sono un tipo di immagine che può essere definito tramite programmazione in CSS.
I gradienti accettano due o più colori in qualsiasi combinazione di formato di colore, ad esempio esadecimale, RGB o hsl.
Infine, border-color
e outline-color
impostano il colore dei bordi e degli contorni delle caselle.
La proprietà box-shadow
accetta anche il colore come uno dei valori.
Verificare di aver compreso
Metti alla prova le tue conoscenze sui colori
Quali dei seguenti sono colori validi?
rbga(400 0 1)
#0f08
#OOFZ2
rgb(255, 0, 0)
hsl(180deg 50% 50%)
hotpink
Individua il colore hsl non valido.
hsl(5, 0%, 90%)
hsl(.5turn 40% 60%)
hsl(0, 0, 0)
hsl(2rad 50% 50%)
hsl(0 0% 0% / 20%)