SVG → Vue

SVG a componente de Vue

Envuelve cualquier SVG en un componente de archivo único .vue — o quédate solo con el bloque de plantilla para un componente que ya tengas.

SVG → Vue

☞ funciona por completo en tu navegador — no se sube nada

Suelta tu SVG aquí

o haz clic para buscar — solo SVG

sin renombrar nada

Por qué Vue da menos trabajo que React aquí

Las plantillas de Vue se analizan como HTML, así que un SVG puede entrar exactamente como fue escrito. stroke-width sigue siendo stroke-width, class sigue siendo class y un atributo style en línea sigue funcionando. La conversión consiste sobre todo en envolver el archivo, y por eso la salida se parece tanto a la entrada.

El resto lo hace la propagación de atributos. Con un único elemento raíz, todo lo que pongas en el componente acaba en la etiqueta svg, así que width, class o un manejador de clic funcionan sin declarar ni una sola prop.

tres pasos

Cómo convertir un SVG en un componente de Vue

01

Suelta el SVG

Elige un archivo .svg — se queda en tu dispositivo.

02

Copia el bloque que necesites

Un archivo .vue completo o solo la plantilla.

03

Llévalo a tu proyecto

Impórtalo como cualquier otro componente y dale tamaño desde fuera.

respuestas rápidas

Preguntas frecuentes sobre SVG a Vue

¿Por qué no hay declaración de props?

Porque no hace falta. Un componente de raíz única pasa cualquier atributo que le des directamente a la etiqueta svg, así que width, height, class y los escuchadores de eventos ya funcionan. Declara props solo cuando quieras calcular algo a partir de ellas.

¿Para qué sirve el bloque script setup?

Solo para darle nombre al componente, que aparece en las devtools de Vue y en los mensajes de advertencia. Sin él el componente se renderiza igual, así que borrarlo es totalmente seguro.

Mi SVG tenía un elemento style, ¿dónde ha ido?

Al bloque style con scoped del final del componente. Vue descarta las etiquetas style y script que encuentra dentro de una plantilla, así que un SVG exportado desde Illustrator o Figma — que casi siempre lleva una hoja de estilos incrustada — se renderizaría sin ningún color. Sacar el CSS lo mantiene en funcionamiento, y scoped evita que se filtre al resto de tu aplicación.

¿Cómo cambio el color del icono?

Sustituye el fill o el stroke fijo por currentColor y define el color en CSS en un elemento padre. El cambiador de color de SVG puede pasar todos los colores del archivo a currentColor antes de convertirlo.

¿Necesito Vue 3?

Para esta salida sí: script setup y defineOptions son funciones de Vue 3. En Vue 2 el bloque de plantilla sigue sirviendo: pégalo en el template de un componente normal con la API de opciones.

¿Se sube mi archivo?

No. La conversión es puro trabajo de cadenas de texto hecho en tu navegador.