Skip to content
Technical

Gradientes y patrones SVG avanzados: Creación de efectos complejos

Domina los gradientes y patrones SVG para efectos visuales sofisticados. Aprende técnicas de gradientes lineales, radiales y patrones para diseños profesionales.

Robin Monteiro26 de enero de 202610 de octubre de 202612 min
Use this article with an AI assistant:
.md
Gradientes y patrones SVG avanzados: Creación de efectos complejos
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • SVG soporta gradientes lineales, gradientes radiales y patrones de mosaico repetitivos — todos definidos en XML
  • Los gradientes multi-stop con transparencia permiten efectos suaves de desvanecimiento, foco y brillo
  • Los patrones usan patternUnits y patternTransform para control total sobre el mosaico y la rotación
  • Los gradientes pueden anidarse dentro de patrones y animarse con SMIL o CSS para visuales dinámicos
  • Optimiza limitando los stops de gradiente y evitando patrones complejos en contextos animados

Más allá de los colores planos

Los gradientes y patrones SVG añaden profundidad e interés visual a los gráficos vectoriales. Esta guía explora técnicas avanzadas para crear efectos profesionales.

Técnicas de patrones vectoriales y gradientes en gráficos SVG
Los gradientes y patrones transforman formas SVG planas en visuales ricos y texturizados

Gradientes lineales

Estructura básica

xml
<defs>
  <linearGradient id="gradient1" x1="0%" y1="0%" x2="100%" y2="0%">
    <stop offset="0%" stop-color="#ff0000"/>
    <stop offset="100%" stop-color="#0000ff"/>
  </linearGradient>
</defs>

<rect fill="url(#gradient1)" width="200" height="100"/>

Control de dirección

xml
<!-- Horizontal -->
<linearGradient x1="0%" y1="0%" x2="100%" y2="0%">

<!-- Vertical -->
<linearGradient x1="0%" y1="0%" x2="0%" y2="100%">

<!-- Diagonal -->
<linearGradient x1="0%" y1="0%" x2="100%" y2="100%">

<!-- Ángulo personalizado (45 grados) -->
<linearGradient gradientTransform="rotate(45)">

Gradientes multi-stop

xml
<linearGradient id="rainbow">
  <stop offset="0%" stop-color="#ff0000"/>
  <stop offset="17%" stop-color="#ff8000"/>
  <stop offset="33%" stop-color="#ffff00"/>
  <stop offset="50%" stop-color="#00ff00"/>
  <stop offset="67%" stop-color="#0000ff"/>
  <stop offset="83%" stop-color="#4b0082"/>
  <stop offset="100%" stop-color="#8f00ff"/>
</linearGradient>

Pro Tip: Usa gradientTransform="rotate(45)" en lugar de calcular manualmente x1/y1/x2/y2 para gradientes angulares. Es más legible y más fácil de ajustar después.


Gradientes radiales

Radial básico

xml
<radialGradient id="radial1" cx="50%" cy="50%" r="50%">
  <stop offset="0%" stop-color="#ffffff"/>
  <stop offset="100%" stop-color="#000000"/>
</radialGradient>

Centro desplazado (efecto foco)

xml
<radialGradient id="spotlight"
                cx="30%" cy="30%"
                fx="25%" fy="25%"
                r="50%">
  <stop offset="0%" stop-color="#ffffff"/>
  <stop offset="100%" stop-color="#333333"/>
</radialGradient>

Gradientes elípticos

xml
<radialGradient id="ellipse"
                cx="50%" cy="50%"
                rx="50%" ry="25%">
  <stop offset="0%" stop-color="#ff0000"/>
  <stop offset="100%" stop-color="#000000"/>
</radialGradient>

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Transparencia en gradientes

Efectos de desvanecimiento

xml
<linearGradient id="fade-out">
  <stop offset="0%" stop-color="#000000" stop-opacity="1"/>
  <stop offset="100%" stop-color="#000000" stop-opacity="0"/>
</linearGradient>

Centro transparente

xml
<radialGradient id="glow">
  <stop offset="0%" stop-color="#00ff00" stop-opacity="0.8"/>
  <stop offset="50%" stop-color="#00ff00" stop-opacity="0.3"/>
  <stop offset="100%" stop-color="#00ff00" stop-opacity="0"/>
</radialGradient>
"

Los gradientes y patrones son el puente entre el diseño plano y el fotorrealismo en gráficos vectoriales — la sutileza de un stop-opacity bien colocado puede hacer o deshacer una composición.

— Lea Verou, autora CSS/SVG

Bases de patrones

Patrón simple

xml
<defs>
  <pattern id="dots" width="20" height="20" patternUnits="userSpaceOnUse">
    <circle cx="10" cy="10" r="3" fill="#333"/>
  </pattern>
</defs>

<rect fill="url(#dots)" width="200" height="200"/>

Patrón de rayas

xml
<pattern id="stripes" width="10" height="10" patternUnits="userSpaceOnUse">
  <rect width="5" height="10" fill="#ff0000"/>
  <rect x="5" width="5" height="10" fill="#ffffff"/>
</pattern>

Patrón complejo

xml
<pattern id="plaid" width="40" height="40" patternUnits="userSpaceOnUse">
  <!-- Base -->
  <rect width="40" height="40" fill="#e0e0e0"/>

  <!-- Rayas horizontales -->
  <rect width="40" height="10" fill="#c0c0c0"/>
  <rect y="20" width="40" height="10" fill="#c0c0c0"/>

  <!-- Rayas verticales -->
  <rect width="10" height="40" fill="#a0a0a0" opacity="0.5"/>
  <rect x="20" width="10" height="40" fill="#a0a0a0" opacity="0.5"/>
</pattern>

Transformaciones de patrones

Patrón rotado

xml
<pattern id="diagonal"
         width="10" height="10"
         patternTransform="rotate(45)"
         patternUnits="userSpaceOnUse">
  <line x1="0" y1="0" x2="0" y2="10" stroke="#000" stroke-width="2"/>
</pattern>

Patrón escalado

xml
<pattern id="scaled"
         width="20" height="20"
         patternTransform="scale(0.5)"
         patternUnits="userSpaceOnUse">
  <!-- contenido del patrón a 2x, mostrado a 1x -->
</pattern>
Efectos de filtro SVG y composiciones avanzadas de gradientes
Combinar filtros con gradientes y patrones para efectos visuales en capas

Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

Técnicas avanzadas

Gradiente en un patrón

xml
<defs>
  <linearGradient id="grad">
    <stop offset="0%" stop-color="#ff0000"/>
    <stop offset="100%" stop-color="#00ff00"/>
  </linearGradient>

  <pattern id="gradient-dots" width="20" height="20" patternUnits="userSpaceOnUse">
    <circle cx="10" cy="10" r="8" fill="url(#grad)"/>
  </pattern>
</defs>

Patrón con fondo de gradiente

xml
<defs>
  <radialGradient id="bg-grad">
    <stop offset="0%" stop-color="#ffffff"/>
    <stop offset="100%" stop-color="#cccccc"/>
  </radialGradient>

  <pattern id="textured" width="4" height="4" patternUnits="userSpaceOnUse">
    <rect width="4" height="4" fill="url(#bg-grad)"/>
    <circle cx="2" cy="2" r="1" fill="#000" opacity="0.1"/>
  </pattern>
</defs>

Efecto ruido/grano

xml
<filter id="noise">
  <feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="4"/>
  <feColorMatrix type="saturate" values="0"/>
</filter>

<rect filter="url(#noise)" opacity="0.1" width="100%" height="100%"/>

Animación CSS con gradientes

Gradiente animado

html
<svg>
  <defs>
    <linearGradient id="animated-grad" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" stop-color="#ff0000">
        <animate attributeName="stop-color"
                 values="#ff0000;#00ff00;#0000ff;#ff0000"
                 dur="4s" repeatCount="indefinite"/>
      </stop>
      <stop offset="100%" stop-color="#0000ff">
        <animate attributeName="stop-color"
                 values="#0000ff;#ff0000;#00ff00;#0000ff"
                 dur="4s" repeatCount="indefinite"/>
      </stop>
    </linearGradient>
  </defs>
</svg>

Los gradientes animados vía SMIL (<animate>) funcionan nativamente en todos los navegadores modernos sin JavaScript. Para animaciones de gradientes más complejas — como mover las posiciones de los stops en el tiempo — combina SMIL con transiciones CSS en el elemento padre.


Consideraciones de rendimiento

Consejos de optimización

  1. Limita los stops de gradiente
  2. Evita patrones complejos en animaciones
  3. Usa will-change con moderación
  4. Considera colores de respaldo
  5. Prueba en dispositivos móviles

Cuándo rasterizar

Considera la rasterización cuando:

  • Patrones extremadamente complejos
  • Efectos de filtro pesados
  • Aplicaciones críticas en rendimiento
  • Gráficos estáticos

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

VectoSolve y gradientes

Manejo de gradientes

VectoSolve maneja la conversión de gradientes:

  • Extracción de colores de gradiente
  • Preservación de stops de color
  • Salida SVG limpia

Trabajo post-conversión con gradientes

Después de vectorizar:

  1. Revisa los gradientes extraídos
  2. Ajusta los stops si es necesario
  3. Optimiza para tu caso de uso
  4. Añade patrones manualmente

Conclusión

Los gradientes y patrones SVG desbloquean efectos visuales sofisticados sin las limitaciones del ráster. Domina estas técnicas para crear profundidad, textura e interés visual en tus gráficos vectoriales. Comienza con vectores limpios de VectoSolve y luego mejóralos con gradientes y patrones según sea necesario.

Crear efectos vectoriales complejos


Tipo de gradiente/patrónElemento SVGCaso de uso común
Gradiente lineal<linearGradient>Fondos, botones, efectos de cielo
Gradiente radial<radialGradient>Focos, brillos, desvanecidos circulares
Patrón repetitivo<pattern>Texturas, telas, fondos en mosaico
Gradiente mesh<meshGradient> (SVG2)Mezcla de colores fotorrealista

Fuentes y lecturas adicionales

Tags:
SVG
gradientes
patrones
efectos visuales
animación SVG
diseño vectorial
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.