Gradientes SVG - Lineal


Gradientes SVG

Un degradado es una transición suave de un color a otro. Además, se pueden aplicar varias transiciones de color a un mismo elemento.

Hay dos tipos principales de degradados en SVG:

  • Lineal
  • Radial

SVG Gradiente lineal - <linearGradient>

El elemento <linearGradient> se utiliza para definir un degradado lineal.

El elemento <linearGradient> debe estar anidado dentro de una etiqueta <defs>. La etiqueta <defs> es la abreviatura de definiciones y contiene definiciones de elementos especiales (como degradados).

Los degradados lineales se pueden definir como degradados horizontales, verticales o angulares:

  • Los gradientes horizontales se crean cuando y1 e y2 son iguales y x1 y x2 difieren
  • Los gradientes verticales se crean cuando x1 y x2 son iguales y y1 e y2 difieren
  • Los gradientes angulares se crean cuando x1 y x2 difieren y y1 e y2 difieren

Ejemplo 1

Defina una elipse con un degradado lineal horizontal de amarillo a rojo:

Sorry, your browser does not support inline SVG.

Aquí está el código SVG:

Ejemplo

<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>

Explicación del código:

  • El atributo id de la etiqueta <linearGradient> define un nombre único para el degradado
  • Los atributos x1, x2, y1, y2 de la etiqueta <linearGradient> definen la posición inicial y final del degradado
  • La gama de colores de un degradado puede estar compuesta por dos o más colores. Cada color se especifica con una etiqueta <stop>. El atributo de compensación se usa para definir dónde comienza y termina el color degradado
  • El atributo de relleno vincula el elemento de elipse al degradado.


Ejemplo 2

Defina una elipse con un degradado lineal vertical de amarillo a rojo:

Sorry, your browser does not support inline SVG.

Aquí está el código SVG:

Ejemplo

<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>

Ejemplo 3

Defina una elipse con un degradado lineal horizontal de amarillo a rojo y agregue un texto dentro de la elipse:

SVG Sorry, your browser does not support inline SVG.

Aquí está el código SVG:

Ejemplo

<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>

Explicación del código:

  • El elemento <text> se usa para agregar un texto