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.

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
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
patternUnitsypatternTransformpara 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.
Gradientes lineales
Estructura básica
<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
<!-- 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
<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
<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)
<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
<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 DealTransparencia en gradientes
Efectos de desvanecimiento
<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
<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.
Bases de patrones
Patrón simple
<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
<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
<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
<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
<pattern id="scaled"
width="20" height="20"
patternTransform="scale(0.5)"
patternUnits="userSpaceOnUse">
<!-- contenido del patrón a 2x, mostrado a 1x -->
</pattern>
Free SVG Tools for Crafters
Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG
Check Your SVG FreeTécnicas avanzadas
Gradiente en un patrón
<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
<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
<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
<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
- Limita los stops de gradiente
- Evita patrones complejos en animaciones
- Usa will-change con moderación
- Considera colores de respaldo
- 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 DealVectoSolve 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:
- Revisa los gradientes extraídos
- Ajusta los stops si es necesario
- Optimiza para tu caso de uso
- 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ón | Elemento SVG | Caso 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
- MDN Web Docs: SVG Gradients — Referencia completa para los elementos linearGradient, radialGradient y pattern
- W3C SVG 2: Paint Servers — Especificación oficial para gradientes, patrones y mesh gradients SVG
- CSS-Tricks: SVG Gradients — Tutoriales visuales sobre creación y animación de gradientes y patrones SVG
- Smashing Magazine: Advanced SVG — Artículos técnicos sobre transformaciones de patrones y composición de gradientes