Como o Solid difere do React
O JSX do Solid aplica os atributos diretamente no DOM, então atributos SVG como stroke-width e class ficam exatamente como aparecem no arquivo. Não é preciso renomeá-los para camelCase ou className como no React.
No Solid, as props são getters reativos, e desestruturá-las quebra a reatividade. Quando você ativa a prop size, o conversor usa splitProps para separar size das demais props e repassa o restante ao <svg>, mantendo todos os valores reativos.
Tipos TypeScript gerados
As props são tipadas como JSX.SvgSVGAttributes<SVGSVGElement>, importado de solid-js, que cobre todos os atributos SVG e manipuladores de evento. Com a opção size, o tipo é estendido com { size?: number | string }.
Usando o componente no SolidStart
Primeiros passos:
- Salve o resultado como IconName.tsx na sua pasta src/components.
- Importe e renderize <IconName size={18} class="icon" />.
- Use currentColor para herdar a cor do texto ao redor.
- Refs funcionam pela prop ref comum; no Solid não é preciso forwardRef.