I gradienti CSS consentono di visualizzare transizioni fluide tra due o più colori specificati.
I CSS definiscono tre tipi di gradienti:
Per creare una sfumatura lineare è necessario definire almeno due interruzioni di colore. Le interruzioni di colore sono i colori tra i quali desideri eseguire transizioni uniformi. Si può anche impostare un punto iniziale e una direzione (o un angolo) insieme all'effetto sfumatura.
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
L'esempio seguente mostra un gradiente lineare che inizia dall'alto. Inizia dal rosso, passando al giallo:
#grad {
background-image: linear-gradient(red, yellow);
}
L'esempio seguente mostra un gradiente lineare che inizia da sinistra. Inizia dal rosso, passando al giallo:
#grad {
background-image: linear-gradient(to right, red , yellow);
}
È possibile creare una sfumatura in diagonale specificando sia la posizione iniziale orizzontale che quella verticale.
L'esempio seguente mostra un gradiente lineare che inizia in alto a sinistra (e va in basso a destra). Inizia dal rosso, passando al giallo:
#grad {
background-image: linear-gradient(to bottom right, red, yellow);
}
Se desideri un maggiore controllo sulla direzione del gradiente, puoi definire un angolo, invece delle direzioni predefinite (in basso, in alto, a destra, a sinistra, in basso a destra, ecc.). Un valore di 0deg equivale a "to top". Un valore di 90 gradi equivale a "to right". Un valore di 180 gradi equivale a "to bottom".
background-image: linear-gradient(angle, color-stop1, color-stop2);
L'esempio seguente mostra come utilizzare gli angoli sui gradienti lineari:
#grad {
background-image: linear-gradient(180deg, red, yellow);
}
L'esempio seguente mostra una sfumatura lineare (dall'alto verso il basso) con più interruzioni di colore:
#grad {
background-image: linear-gradient(red, yellow, green);
}
L'esempio seguente mostra come creare un gradiente lineare (da sinistra a destra) con il colore dell'arcobaleno e del testo:
#grad {
background-image: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet);
}
I gradienti CSS supportano anche la trasparenza, che può essere utilizzata per creare effetti di dissolvenza.
Per aggiungere trasparenza, utilizziamo la funzione rgba() per definire le interruzioni di colore. L'ultimo parametro nella funzione rgba() può essere un valore da 0 a 1 e definisce la trasparenza del colore: 0 indica la trasparenza completa, 1 indica il colore completo (nessuna trasparenza).
L'esempio seguente mostra un gradiente lineare che inizia da sinistra. Inizia completamente trasparente, passando al rosso a colori:
#grad {
background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
}
La funzione Repeating-Linear-Gradient() viene utilizzata per ripetere i gradienti lineari:
#grad {
background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
}
Un gradiente radiale è definito dal suo centro.
Per creare un gradiente radiale è necessario definire anche almeno due interruzioni di colore.
background-image: radial-gradient(shape size at position, start-color, ..., last-color);
Per impostazione predefinita, la forma è un'ellisse, la dimensione è l'angolo più lontano e la posizione è al centro.
L'esempio seguente mostra una sfumatura radiale con interruzioni di colore equidistanti:
#grad {
background-image: radial-gradient(red, yellow, green);
}
L'esempio seguente mostra una sfumatura radiale con interruzioni di colore distanziate in modo diverso:
#grad {
background-image: radial-gradient(red 5%, yellow 15%, green 60%);
}
Il parametro forma definisce la forma. Può assumere il valore cerchio o ellisse. Il valore predefinito è l'ellisse.
L'esempio seguente mostra un gradiente radiale con la forma di un cerchio:
#grad {
background-image: radial-gradient(circle, red, yellow, green);
}
Il parametro size definisce la dimensione del gradiente. Può assumere quattro valori:
Un gradiente radiale con parole chiave di dimensioni diverse:
#grad1 {
background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);
}
#grad2 {
background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black);
}
La funzione Repeating-radial-gradient() viene utilizzata per ripetere i gradienti radiali:
#grad {
background-image: repeating-radial-gradient(red, yellow 10%, green 15%);
}
Una sfumatura conica è una sfumatura con transizioni di colore ruotate attorno a un punto centrale.
Per creare un gradiente conico è necessario definire almeno due colori.
background-image: conic-gradient([from angle] [at position,] color [degree], color [degree], ...);
Per impostazione predefinita, l'angolo è 0 gradi e la posizione è il centro.
Se non viene specificato alcun grado, i colori verranno distribuiti equamente attorno al punto centrale.
L'esempio seguente mostra un gradiente conico con tre colori:
#grad {
background-image: conic-gradient(red, yellow, green);
}
L'esempio seguente mostra un gradiente conico con cinque colori:
#grad {
background-image: conic-gradient(red, yellow, green, blue, black);
}
L'esempio seguente mostra un gradiente conico con tre colori e un grado per ciascun colore:
#grad {
background-image: conic-gradient(red 45deg, yellow 90deg, green 210deg);
}
Basta aggiungere border-radius: 50%
per far sembrare il gradiente conico come una torta:
#grad {
background-image: conic-gradient(red, yellow, green, blue, black);
border-radius: 50%;
}
Ecco un altro grafico a torta con gradi definiti per tutti i colori:
#grad {
background-image: conic-gradient(red 0deg, red 90deg, yellow 90deg, yellow 180deg, green 180deg, green 270deg, blue 270deg);
border-radius: 50%;
}
[from angle] specifica un angolo di cui viene ruotato l'intero gradiente conico.
L'esempio seguente mostra un gradiente conico con un angolo di 90 gradi:
#grad {
background-image: conic-gradient(from 90deg, red, yellow, green);
}
[at position] specifica il centro del gradiente conico.
L'esempio seguente mostra un gradiente conico con una posizione centrale del 60% 45%:
#grad {
background-image: conic-gradient(at 60% 45%, red, yellow, green);
}
La funzione repeating-conic-gradient()
viene utilizzata per ripetere i gradienti conici:
#grad {
background-image: repeating-conic-gradient(red 10%, yellow 20%);
border-radius: 50%;
}
Ecco un gradiente conico ripetuto con inizi e interruzioni di colore definiti:
#grad {
background-image: repeating-conic-gradient(red 0deg 10deg, yellow 10deg 20deg, blue 20deg 30deg);
border-radius: 50%;
}
Funzione | Descrizione |
---|---|
conic-gradient() | Crea un gradiente conico. Definire almeno due colori (intorno a un punto centrale) |
linear-gradient() | Crea un gradiente lineare. Definire almeno due colori (dall'alto verso il basso) |
radial-gradient() | Crea un gradiente radiale. Definire almeno due colori (dal centro ai bordi) |
repeating-conic-gradient() | Ripete un gradiente conico |
repeating-linear-gradient() | Ripete un gradiente lineare |
repeating-radial-gradient() | Ripete un gradiente radiale |