O que este conversor de SVG faz
Arquivos SVG exportados do Figma, Illustrator, Sketch ou Inkscape são XML válido, mas não são JSX válido. O React espera props em camelCase, como strokeWidth em vez de stroke-width, className em vez de class e um objeto de estilo em vez de uma string CSS. Os editores ainda adicionam declarações XML, comentários, blocos de metadados e atributos com namespace que incham o bundle e geram avisos.
O SvgJsx analisa o SVG com um pequeno parser XML, reescreve cada atributo no formato que o seu framework espera e gera um componente bem formatado. Você pode escolher tipos TypeScript, uma prop size, preenchimentos com currentColor, forwardRef, memo e o estilo de exportação, e depois copiar o código ou baixar o arquivo.
Como converter SVG em um componente React
O processo leva poucos segundos:
- Cole o código SVG na caixa de entrada ou solte nela um ou mais arquivos .svg.
- Escolha o formato de saída: React, React Native, Vue, Solid ou um trecho JSX simples.
- Defina o nome do componente e opções como TypeScript, currentColor e a prop size.
- Confira a pré-visualização ao vivo e a comparação de tamanho, depois copie o código ou baixe o arquivo. Vários arquivos são reunidos em um ZIP.
Conversões feitas automaticamente
Atributos com hífen viram camelCase (stroke-linecap → strokeLinecap), atributos com namespace são achatados (xlink:href → xlinkHref) e strings de estilo inline viram objetos JavaScript. Atributos data-* e aria-* são mantidos como estão, porque o React os aceita assim. Elementos script e manipuladores de evento inline são removidos, para que um arquivo colado nunca consiga infiltrar código no seu app.
Uma otimização leve compacta os espaços em branco e pode arredondar coordenadas para um número fixo de casas decimais. Na maioria dos conjuntos de ícones, isso corta de 20 a 40% da marcação sem depender do pesado SVGO.