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>
-
widthyheight: 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!