Gradienti SVG - Lineare
Gradienti SVG
Una sfumatura è una transizione graduale da un colore all'altro. Inoltre, allo stesso elemento possono essere applicate più transizioni di colore.
Esistono due tipi principali di gradienti in SVG:
- Lineare
- Radiale
Gradiente lineare SVG - <gradiente lineare>
L'elemento <linearGradient> viene utilizzato per definire un gradiente lineare.
L'elemento <linearGradient> deve essere annidato all'interno di un tag <defs>. Il tag <defs> è l'abbreviazione di definizioni e contiene la definizione di elementi speciali (come i gradienti).
I gradienti lineari possono essere definiti come gradienti orizzontali, verticali o angolari:
- I gradienti orizzontali vengono creati quando y1 e y2 sono uguali e x1 e x2 differiscono
- I gradienti verticali vengono creati quando x1 e x2 sono uguali e y1 e y2 differiscono
- I gradienti angolari vengono creati quando x1 e x2 differiscono e y1 e y2 differiscono
Esempio 1
Definisci un'ellisse con un gradiente lineare orizzontale dal giallo al rosso:
Ecco il codice SVG:
Esempio
<svg height="150" width="400">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55"
fill="url(#grad1)" />
</svg>
Spiegazione del codice:
- L'attributo id del tag <linearGradient> definisce un nome univoco per il gradiente
- Gli attributi x1, x2, y1,y2 del tag <linearGradient> definiscono la posizione iniziale e finale del gradiente
- La gamma di colori per una sfumatura può essere composta da due o più colori. Ogni colore è specificato con un tag <stop>. L'attributo offset viene utilizzato per definire dove inizia e finisce il colore del gradiente
- L'attributo riempimento collega l'elemento dell'ellisse al gradiente
Esempio 2
Definisci un'ellisse con un gradiente lineare verticale dal giallo al rosso:
Ecco il codice SVG:
Esempio
<svg height="150" width="400">
<defs>
<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad2)" />
</svg>
Esempio 3
Definisci un'ellisse con un gradiente lineare orizzontale dal giallo al rosso e aggiungi un testo all'interno dell'ellisse:
Ecco il codice SVG:
Esempio
<svg height="150" width="400">
<defs>
<linearGradient id="grad3" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55"
fill="url(#grad3)" />
<text fill="#ffffff" font-size="45" font-family="Verdana" x="150" y="86">
SVG</text>
</svg>
Spiegazione del codice:
- L'elemento <text> viene utilizzato per aggiungere un testo