Cómo incluir imagenes SVG en tu proyecto
Hoy en coopademia: Formas de incorporar imágenes en SVG a un proyecto web
Pero primero ¿Qué es un SVG?
SVG es el acrónimo de ‘Scalable Vector Graphics’, en la práctica es utilizado como un etiquetado especial para dibujar vectores, describiendo coordenadas dentro de un lienzo que nos permite generar ilustraciones escalables sin pérdida de resolución.
Sus ventajas
Son muy livianas y lo mejor de todo es que los atributos de sus etiquetas son accesibles y manipulables mediante CSS o JS.
¿Cómo incorporar un SVG en tu proyecto web?
Existen diferentes formas que nos van a dar mayor o menor grado de manipulación, por eso la decisión va a estar basada en nuestro propósito las cuales veremos a continuación…
SVG Como imagen en un HTML
Podemos incorporarla como cualquier imagen referenciando un <svg>
con una etiqueta <img>
a través su atributo source. En este caso la ilustración no será accesible ni manipulable más allá de lo que podemos hacer con una etiqueta <img>
<img alt="Un" height="48" src="enlace-a-la-imagen.svg" width="48" />
SVG como imagen decorativa con CSS
También podemos llamar al <svg>
mediante la función url() de CSS a través de la propiedad background-image, de esta forma tampoco son manipulables los atributos propios del SVG.
.svg {
width: 40rem;
height: 22.5rem;
background-image: url(enlace-a-la-imagen.svg);
background-size: cover;
}
SVG como un sprite de imágenes
Se recomienda cuando tenemos varias imágenes y no queremos perjudicar la performance de la aplicación al realizar un alto número de peticiones al servidor para recuperar estos recursos.
Sprite.svg
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id=”avestruz” viewBox="0 0 512 512">
<circle cx=”10” cy=”10” r=”30” />
<path d=”...” />
</symbol>
</defs>
</svg>
Index.html
<svg width=”48” height=”48”>
<use xlink:href=”enlace-al-recurso/sprite.svg#avestruz”
/>
</svg>
# SVG en línea
Si queremos manipular el SVG por CSS o JS esta es la que más control nos da, ya que todas las etiquetas y atributos propios que conforman la etiqueta SVG quedan accesibles.
Index.html
<svg width="300" height="300" viewbox="0 0 300 300">
<circle cx="150" cy="150" r="100"></circle>
</svg>
Styles.css
circle {
transition: fill 250ms;
}
svg:hovercircle {
fill: #f06;
}
¿Sabías estos beneficios?
¡Hasta la próxima!
Links
- https://www.boream.com/insights/como-animar-un-svg-con-css