Saltar al contenido
SvgJsx
Idioma: Español

Convertidor de SVG a JSX y componentes de React

Pega código SVG o suelta archivos .svg y obtén un componente limpio, listo para tu repositorio, para React, TypeScript, React Native, Vue o Solid. Todo se ejecuta localmente en tu navegador.

Ajustes rápidos:
Suelta archivos .svg aquí oLos archivos se leen localmente con FileReader y nunca se suben.
Opciones
Exportación:
const HeartIcon = (props) => (
  <svg width="24" height="24" viewBox="0 0 24 24" className="icon icon-heart" {...props}>
    <g id="Layer_1" fill="none" stroke="#e11d48" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M19.0001 14.0002c1.4900-1.4600 3.0000-3.2100 3.0000-5.5000A5.5000 5.5000 0 0 0 16.5000 3c-1.7600 0-3.0000.5000-4.5000 2-1.5000-1.5000-2.7400-2-4.5000-2A5.5000 5.5000 0 0 0 2 8.5000c0 2.3000 1.5000 4.0500 3 5.5000l7 7Z" style={{ fillOpacity: "0.15", fill: "#e11d48" }} />
    </g>
  </svg>
);

export default HeartIcon;

Vista previa

Vista previa del SVG convertido
SVG original
706B
SVG optimizado
538B(-24 %)
Componente
566B

Qué hace este convertidor de SVG

Los SVG exportados desde Figma, Illustrator, Sketch o Inkscape son XML válido, pero no JSX válido. React espera props en camelCase como strokeWidth en lugar de stroke-width, className en lugar de class y un objeto de estilos en vez de una cadena CSS. Además, los editores añaden declaraciones XML, comentarios, bloques de metadatos y atributos con espacios de nombres que inflan el bundle y provocan advertencias.

SvgJsx analiza el SVG con un pequeño parser XML, reescribe cada atributo en la forma que espera tu framework y genera un componente bien formateado. Puedes elegir tipos de TypeScript, una prop size, rellenos con currentColor, forwardRef, memo y el estilo de exportación, y después copiar el código o descargar el archivo.

Cómo convertir un SVG en un componente de React

El proceso lleva unos segundos:

  • Pega el código SVG en el cuadro de entrada o suelta uno o varios archivos .svg sobre él.
  • Elige el formato de salida: React, React Native, Vue, Solid o un fragmento JSX simple.
  • Define el nombre del componente y opciones como TypeScript, currentColor y la prop size.
  • Revisa la vista previa y la comparación de tamaño, y copia el código o descarga el archivo. Si conviertes varios archivos, se agrupan en un ZIP.

Conversiones automáticas

Los atributos con guiones pasan a camelCase (stroke-linecap → strokeLinecap), los atributos con espacio de nombres se aplanan (xlink:href → xlinkHref) y las cadenas de estilo en línea se convierten en objetos de JavaScript. Los atributos data-* y aria-* se conservan tal cual porque React los acepta así. Los elementos script y los manejadores de eventos en línea se eliminan para que un archivo pegado nunca pueda colar código en tu aplicación.

Una optimización ligera compacta los espacios en blanco y puede redondear las coordenadas a un número fijo de decimales. En la mayoría de los sets de iconos reduce entre un 20 y un 40 % del marcado sin depender del pesado SVGO.

Preguntas frecuentes

¿Este convertidor de SVG a JSX es gratuito?

Sí. SvgJsx es totalmente gratuito, no requiere cuenta y no tiene límites de uso. Es un sitio estático, así que no hay costes de servidor que repercutirte.

¿Se suben mis archivos SVG a algún sitio?

No. Los archivos se leen con la API FileReader del navegador y se convierten con JavaScript en tu dispositivo. No se envía nada a ningún servidor, por lo que puedes usarlo con logotipos e iconos confidenciales.

¿Qué diferencia hay entre SVG y JSX?

SVG es un lenguaje de marcado XML, mientras que JSX es una extensión de sintaxis de JavaScript. JSX necesita nombres de atributos en camelCase, className en lugar de class, objetos de estilo en lugar de cadenas y llaves para los caracteres especiales; por eso el SVG sin procesar suele fallar al compilar.

¿Funciona con exportaciones de Figma e Illustrator?

Sí. Los metadatos propios del editor, los comentarios, los atributos sodipodi e inkscape y la declaración XML se eliminan por defecto, y los degradados, máscaras y trazados de recorte siguen funcionando porque se conservan los ids referenciados.

¿Puedo convertir muchos iconos SVG a la vez?

Sí. Suelta varios archivos .svg y cada uno se convertirá en un componente con el nombre del archivo. Descárgalos todos en un ZIP que incluye además un archivo index que reexporta cada icono.