La Etiqueta SVG

Permite integrar gráficos vectoriales escalables directamente en un documento web. SVG (Scalable Vector Graphics) es un estándar basado en XML para crear imágenes y formas que mantienen su calidad en cualquier tamaño o resolución.
La etiqueta <svg>
en HTML permite integrar gráficos vectoriales escalables directamente en un documento web. SVG (Scalable Vector Graphics) es un estándar basado en XML para crear imágenes y formas que mantienen su calidad en cualquier tamaño o resolución. Es ideal para iconos, gráficos, animaciones y visualizaciones complejas. Aquí te explicamos cómo usarla correctamente.
Sintaxis básica
La estructura básica de <svg>
incluye atributos para definir el tamaño y el área visible:
<svg width="ancho" height="alto" viewBox="x y ancho alto"> <!-- Elementos SVG aquí --> </svg>
-
width
yheight
: Tamaño del lienzo SVG en píxeles o unidades relativas. -
viewBox
: Define el sistema de coordenadas interno (x, y, ancho, alto).
Ejemplo mínimo:
<svg width="200" height="200" viewBox="0 0 100 100"> <circle cx="50" cy="50" r="40" fill="blue" /> </svg>
Elementos comunes de SVG
a) Formas básicas
Círculo (<circle>
)
<circle cx="50" cy="50" r="40" fill="red" stroke="black" stroke-width="2" />
-
cx
,cy
: Coordenadas del centro. -
r
: Radio.
Rectángulo (<rect>
)
<rect x="10" y="10" width="80" height="60" fill="green" />
Línea (<line>
)
<line x1="10" y1="10" x2="90" y2="90" stroke="black" stroke-width="3" />
Texto (<text>
)
<text x="20" y="50" font-family="Arial" font-size="20" fill="purple">Hola SVG</text>
Polígono (<polygon>
)
<polygon points="50,5 90,90 10,90" fill="orange" />
Ejemplos prácticos
a) Icono de corazón
<svg width="100" height="100" viewBox="0 0 24 24"> <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" fill="red"/> </svg>
b) Gráfico de barras
<svg width="300" height="200"> <rect x="20" y="50" width="50" height="150" fill="#3498db" /> <rect x="100" y="100" width="50" height="100" fill="#2ecc71" /> <rect x="180" y="150" width="50" height="50" fill="#e74c3c" /> </svg>
Animaciones y efectos
a) Animación con CSS
<svg width="100" height="100"> <circle cx="50" cy="50" r="40" fill="blue"> <animate attributeName="r" from="10" to="40" dur="1s" repeatCount="indefinite" /> </circle> </svg>
Nota: Algunas animaciones pueden requerir SMIL o JavaScript.
b) Hover con CSS
<style> .svg-hover:hover { fill: #e74c3c; transform: scale(1.1); } </style> <svg width="100" height="100"> <rect class="svg-hover" x="10" y="10" width="80" height="80" fill="#3498db" /> </svg>
Integración con HTML
a) SVG inline vs. externo
Inline: Incrustar SVG directamente en HTML (mejor para interactividad).
Externo: Vincular un archivo .svg
usando <img>
:
<img src="icono.svg" alt="Icono" width="100" height="100">
b) Accesibilidad
Usa atributos ARIA para describir el contenido:
<svg role="img" aria-labelledby="title"> <title id="title">Gráfico de ventas 2023</title> <!-- Elementos del gráfico --> </svg>
Herramientas y buenas prácticas
-
Editores gráficos: Usa Inkscape, Figma o Adobe Illustrator para crear SVG.
-
Optimización: Reduce el tamaño del código con herramientas como SVGO.
-
Mantén el código limpio: Elimina metadatos innecesarios y agrupa elementos con
<g>
.
Ejemplo de grupo (<g>
)
<svg width="200" height="200"> <g transform="translate(100,100)"> <circle cx="0" cy="0" r="40" fill="yellow" /> <text x="-20" y="5" fill="black">Sol</text> </g> </svg>
Ejemplo completo
<!DOCTYPE html> <html lang="es"> <head> <style> .svg-container { background: #f0f0f0; padding: 20px; } .estrella { fill: #f1c40f; transition: transform 0.3s; } .estrella:hover { transform: rotate(45deg); } </style> </head> <body> <div class="svg-container"> <svg width="150" height="150" viewBox="0 0 24 24"> <path class="estrella" d="M12 0l3.09 6.26L22 7.27l-5 4.87 1.18 6.88L12 16l-6.18 3.02L7 12.14 2 7.27l6.91-1.01L12 0z"/> </svg> </div> </body> </html>
Conclusión
La etiqueta <svg>
es una herramienta poderosa para:
-
Crear gráficos escalables y nítidos en cualquier dispositivo.
-
Desarrollar animaciones e interactividades avanzadas.
-
Integrar iconos y elementos visuales sin perder calidad.
Recuerda:
-
Usa editores gráficos para diseños complejos.
-
Optimiza el código SVG para mejorar el rendimiento.
-
Prioriza la accesibilidad con roles y etiquetas ARIA.
¡Domina <svg>
para llevar tus diseños web al siguiente nivel!