Conversor de SVG para JSX
Converta SVG em JSX do React: os atributos viram camelCase, o style inline vira objeto e a saída pode ser JSX inline, memo ou forwardRef.
Conversor de SVG para JSX — Cole a marcação SVG ou solte um arquivo .svg e obtenha instantaneamente JSX pronto para o React: atributos como stroke-width viram camelCase, class vira className, uma string style inline é reescrita como objeto style do JSX e elementos vazios são autofechados. Opcionalmente, rode primeiro uma limpeza estilo SVGO e depois emita JSX inline ou um componente de função, memo ou forwardRef que espalha SVGProps. Tudo é uma transformação de string pura que roda inteiramente no seu navegador; sua marcação nunca sai da página nem toca em um servidor.
O que é Conversor de SVG para JSX?
O Conversor de SVG para JSX é uma ferramenta gratuita no navegador que transforma marcação SVG simples em JSX do React válido, que você pode colar diretamente em um componente. O React espera atributos do DOM em camelCase (strokeWidth, clipPath, fillRule), usa className em vez de class e precisa do atributo style como um objeto de propriedades em camelCase, e não como string — esta ferramenta corrige tudo isso automaticamente. Desenvolvedores front-end e designers a utilizam ao exportar ícones do Figma, Illustrator ou de um conjunto de ícones. Ative a limpeza opcional para remover comentários, metadados de editor e declarações XML, e escolha se a saída é JSX inline ou um componente de função, memo() ou forwardRef tipado com React.SVGProps.
Como usar Conversor de SVG para JSX
- Cole sua marcação SVG na caixa de entrada ou solte um arquivo .svg na zona de arraste.
- Leia o JSX convertido na caixa de saída — os atributos ficam em camelCase, class vira className, um style inline vira objeto style e as tags vazias se autofecham.
- Abra as Configurações e escolha uma Saída de componente: JSX inline, um componente de função, um componente memo() ou um componente forwardRef.
- Defina o campo Nome do componente para controlar o nome usado no invólucro (por exemplo, MyIcon).
- Ative Props de TypeScript para tipar o componente com React.SVGProps, ou ative Limpar SVG para remover antes comentários e metadados do editor.
- Clique em Copiar para copiar o JSX e depois cole-o no seu projeto React ou Next.js.
Exemplos
Estilos inline e atributos convertidos
Entrada
<svg viewBox="0 0 24 24"><path stroke-width="2" style="fill:none;stroke-linecap:round" d="M4 12h16"/></svg>
Saída
<svg viewBox="0 0 24 24"><path strokeWidth="2" style={{ fill: "none", strokeLinecap: "round" }} d="M4 12h16" /></svg>Componente forwardRef com props tipadas
Entrada
<svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/></svg>
Saída
export const MyIcon = React.forwardRef<SVGSVGElement, React.SVGProps<SVGSVGElement>>(function MyIcon(props, ref) {
return (
<svg viewBox="0 0 24 24" ref={ref} {...props}><circle cx="12" cy="12" r="10" /></svg>
);
});Perguntas frequentes
- O que o conversor altera no meu SVG?
- Ele renomeia atributos com hífen e com namespace para a forma camelCase do React (stroke-width para strokeWidth, xlink:href para xlinkHref), converte class em className, reescreve uma string style inline como objeto style do JSX com chaves em camelCase e autofecha elementos vazios como path e rect para que sejam JSX válido.
- Como funcionam as opções de saída de componente?
- Escolha JSX inline para colocar a marcação em qualquer lugar, ou envolva-a como componente de função, memo() ou forwardRef usando o Nome do componente que você inserir. Um componente forwardRef recebe uma ref anexada ao svg raiz. Ative Props de TypeScript para tipar qualquer invólucro com React.SVGProps e espalhar {...props}.
- Ele converte estilos inline?
- Sim. Um atributo style="fill:red;stroke-width:2" é reescrito como um objeto style do JSX como style={{ fill: "red", strokeWidth: "2" }}, com os nomes de propriedade em camelCase e os valores como strings. Propriedades CSS personalizadas (--var) são preservadas como chaves de string.
- O que a limpeza estilo SVGO faz?
- Quando Limpar SVG está ativo, a ferramenta remove declarações XML, DOCTYPE, comentários, <metadata>, namespaces de editor como inkscape: e sodipodi:, e o atributo version do svg, e depois condensa os espaços em branco — tudo antes de a conversão para JSX ser executada.
- Meu SVG é enviado para algum lugar?
- Não. Soltar um arquivo ou colar marcação executa uma transformação de string pura inteiramente no seu navegador, então seu SVG nunca é enviado a um servidor e a ferramenta funciona offline.
Ferramentas relacionadas
Código em imagem
Transforme um trecho de código em uma imagem com realce de sintaxe no seu navegador, com mais de 20 linguagens, temas e fundos personalizados, números de linha e exportação em PNG ou SVG.
Verificador de contraste de cor
Verifique o contraste WCAG 2.1 e a pontuação APCA Lc entre uma cor de texto e de fundo, veja os selos AA, AAA e 3:1 e aplique a cor aprovada mais próxima.
Misturador de cores
Misture duas cores HEX na proporção que escolher, no espaço RGB ou Lab, e obtenha a cor intermediária como amostra e valor HEX copiável.
Gerador de tons de cor
Transforme uma cor HEX base em uma escala OKLCH, HSL ou RGB com passos ajustáveis, dicas de contraste WCAG por passo e exportação para CSS, Tailwind e JSON.