Por que não colar o SVG direto no React?
Colar SVG bruto em um arquivo .jsx costuma gerar uma enxurrada de avisos como "Invalid DOM property stroke-width" ou "Invalid DOM property class", ou até um erro de compilação se o arquivo tiver um atributo style ou uma declaração XML. Renomear cada atributo à mão é lento e propenso a erros em conjuntos grandes de ícones.
Este conversor faz a renomeação por você e envolve a marcação em um componente que aceita props. Como {...props} é repassado ao <svg> raiz, você pode passar className, aria-label, onClick ou uma largura personalizada a partir do componente pai, sem editar o ícone de novo.
Configurações recomendadas para ícones React
Para um componente de ícone reutilizável, recomendamos:
- Ativar currentColor para que o ícone herde a cor do texto do pai e funcione no modo escuro.
- Ativar a prop size para controlar largura e altura com um único valor, como size={20}.
- Manter o viewBox e remover width e height fixos para que o ícone escale com CSS.
- Usar forwardRef só quando o pai precisar do elemento <svg>, por exemplo para tooltips ou animações.
Componentes inline ou arquivos de imagem?
Componentes SVG inline podem ser estilizados com CSS, animados e mudar de cor no hover, e nunca geram uma requisição de rede extra. Para ilustrações grandes que não mudam, um simples <img src="/file.svg"> pode sair mais barato, porque o navegador consegue armazená-lo em cache separadamente. Use componentes para ícones e gráficos de interface e tags de imagem para artes pesadas.