Gradiente lineal
El gradiente lineal se puede utilizar como relleno para formas geométricas, líneas y texto dentro del <canvas>.
| JavaScript | Descripción | Defecto | |
|---|---|---|---|
| createLinearGradient() | context.createLinearGradient(x0,y0,x1,y1); | Crea un gradiente lineal para utilizar en el <canvas>x0,y0 son las coordenadas del punto donde empieza el gradiente. x1,y1 son las coordenadas del punto donde acaba el gradiente. | |
| addColorStop() | gradient.addColorStop(stop,color); | Especifica los colores y la posición donde para el gradiente. | |
| fillStyle | context.fillStyle = color | gradiente | patrón; | Determina o devuelve el color, gradiente o patrón del relleno. | negro | 
| fill() | context.fill(); | Rellena una forma geométrica. | black | 
Vea la chuleta con las propiedades y metodos() de canvas.
Los gradientes lineales son definidos por una línea imaginaria que nos da la dirección del gradiente.
El método createLinearGradient(x0,y0,x1,y1) toma cuatro argumentos.
 
Los primeros dos argumentos (x0,y0) representan  las coordenadas del origen de nuestra línea, mientras que los siguientes dos 
argumentos (x1,y1)  representan  las coordenadas del punto donde esta línea acaba.
El método addColorStop(stop,color) toma dos argumentos.
El primer argumento, stop, puede tomar valores desde 0.0 hasta 1.0, y representa una posición a lo largo del vector gradiente definido anteriormente con método createLinearGradient().
Podemos utilizar el método addColorStop() tantas veces como creamos necesario.
El segundo argumento representa el color, que puede tomar cualquier valor aceptado en el CSS 
( nombres de colores, valores 
hex, rgb, rgba, 
hsl, hsla).
Veamos un ejemplo. A continuación queremos dibujar un rectángulo que cubrirá todo el lienzo, desde la esquina izquierda arriba ( x = 0, y = 0 ) hasta la esquina derecha abajo ( x = canvas.width, y = canvas.height ).
Utilizando el método createLinearGradient() creamos el vector gradiente, estableciendo el punto de partida del vector ( x0 = 0, y0 = 0 ), y el punto donde este acaba ( x1 = canvas.width, y1 = 0 ). 
Este es un gradiente lineal horizontal, ya que el vector es paralelo al eje x.
Utilizamos el método  addColorStop() seis veces para crear algo parecido a un arco iris.
Al final utilizamos este gradiente como estilo de relleno (ctx.fillStyle = grd;) para nuestro rectángulo.
	var canvas = document.getElementById("lienzo");
		if (canvas && canvas.getContext) {
		var ctx = canvas.getContext("2d");
			if (ctx) {
					ctx.rect(0, 0, canvas.width, canvas.height);
					// crea un gradiente lineal horizontal
					var grd = ctx.createLinearGradient(0, 0, canvas.width, 0);
					grd.addColorStop(0,"black");
					grd.addColorStop("0.2","magenta");
					grd.addColorStop("0.4","blue");
					grd.addColorStop("0.6","green");
					grd.addColorStop("0.8","yellow");
					grd.addColorStop(1,"red");
					ctx.fillStyle = grd;
					ctx.fill();
				}
		}