Questa piccola guida vuole mostrare come usare SVG per creare un TESTO colorato con una sfumatura lineare, quindi da un colore verso un altro colore in orizzontale o verticale.

Nota Bene : testato e funzionante su Chrome e Firefox , problemi di compatibilita' con altri browser.

Per poter semplificare il procedimendo ho creato un libreria jQuery con una funzione che modifica tutti i parametri essenziali di SVG.

Come prima cosa dobbiamo creare la struttura HTML
Questa potra' essere disposta dove si vuole nella propria pagina web.
Codice HTML:
<svg id="AreaSVG" height="" width="">
<defs>
<linearGradient y2="" x2="" y1="0%" x1="0%" id="SVG">
 <stop id="StartColor" stop-color="" offset="0"></stop>
 <stop id="StopColor" stop-color="" offset="1"></stop>
</linearGradient>
</defs>
 <g><text fill="url(#SVG)" stroke="#000000" stroke-width="0" x="0" y="" id="TESTO"></text></g>
</svg>
Quindi occorre caricare la libreria jQuery e chiamare la funzione
come potrete vedere gli argomenti della funzione definiscono :
- l'area del SVG
- il testo da scrivere
- i colori per la sfumatura
- il font e la dimensione del testo
Codice:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="svgtext.js"></script>
<script>
 $(document).ready(function(){
   
   /* funzione creata con jQuery */
   /* Argometi funzione: */
   /* CreaTestoColorato(W,H,testo,col1,col2,orienta,Font,dimfont) */
   /* W -> width area SVG , H -> height area SVG */
   /* testo -> il testo da scrivere */
   /* col1 -> sfumatura di colore partenza */
   /* col2 -> sfumatura di colore arrivo */
   /* orienta -> 1 sfumatura lineare orizzontale , 2 sfumatura lineare verticale */
   /* Font -> valore da 0 a 4 Web Safe Font (0=Arial,1=Comic,2=Impact,3=Tahoma,4=Verdana) */
   /* dimfont -> valore da 0 a 1000 , dimensione del font dove 100 = 12px */
 
   CreaTestoColorato(400,200,"Testo da colorare","#FF0000","#000000",2,0,150);  
   
 });
</script>
la libreria svgtext.js non fa altro che leggere gli argomenti funzione ed applicarli al SVG
Codice:
function CreaTestoColorato(W,H,testo,col1,col2,orienta,Font,dimfont){
 var SafeFont = new Array(5);
 SafeFont[0] = "Arial, Helvetica, sans-serif"; 
 SafeFont[1] = "'Comic Sans MS', cursive, sans-serif"; 
 SafeFont[2] = "Impact, Charcoal, sans-serif"; 
 SafeFont[3] = "Tahoma, Geneva, sans-serif"; 
 SafeFont[4] = "Verdana, Geneva, sans-serif"; 
 var dimensioneFont = dimfont+"%";
 var Yfont =  dimfont * 0.12;
        
 $("#AreaSVG").attr("width",W);
 $("#AreaSVG").attr("height",H);
 $("#TESTO").css({"font-family":SafeFont[Font],"font-size":dimensioneFont});
 $("#TESTO").html(testo);
 $("#TESTO").attr("y",Yfont);
 $("#StartColor").attr("stop-color", col1);
 $("#StopColor").attr("stop-color", col2);
 if(orienta==1){
  $("#SVG").attr("x2","100%");
  $("#SVG").attr("y2","0%");
 }else{
  $("#SVG").attr("x2","0%");
  $("#SVG").attr("y2","100%");
 }
}
Ecco il DEMO di questa guida

il codice e' completamente libero e puo' essere modificato a piacimento.

NLSweb


-------------------------------------------------------------------------------

p.s.:SVG senza script

si crea una area e si definisce la sua dimensione
Codice HTML:
<svg height="300" width=300""></svg>
si creano i TAG per le definizioni
Codice HTML:
<svg height="300" width="300">
<defs>

</defs>
</svg>
quindi si scrivono i comandi per definire la scala di colore
x1 e y1 sono la partenza , x2 e y2 sono l'arrivo
se si vuole ottenere una sfumatura orizzontale la X andra' da 0 a 100
se si vuole ottenere una sfumatura verticale la Y andra' da 0 a 100
Codice HTML:
<svg height="300" width="300">
<defs>
<linearGradient y2="0%" x2="100%" y1="0%" x1="0%" id="SVG">

</linearGradient>
</defs>
</svg>
quindi si assegnano i colori di partenza e di arrivo
Codice HTML:
<svg height="300" width="300">
<defs>
<linearGradient y2="0%" x2=100%"" y1="0%" x1="0%" id="SVG">
 <stop stop-color="#FFFFFF" offset="0"></stop>
 <stop stop-color="#000000" offset="1"></stop>
</linearGradient>
</defs>
</svg>
in ultimo si crea il TAG del testo e si assegna al comando FILL id SVG che definisce la sfumatura di colori
Codice HTML:
<svg height="300" width="300">
<defs>
<linearGradient y2="0%" x2="100%" y1="0%" x1="0%" id="SVG">
 <stop stop-color="#FFFFFF" offset="0"></stop>
 <stop stop-color="#000000" offset="1"></stop>
</linearGradient>
</defs>
 <g><text fill="url(#SVG)" stroke="#000000" stroke-width="0" x="0" y="12">TESTO</text></g>
</svg>