Crea componenti React tipizzati da SVG

Trasforma il markup SVG grezzo in icone TSX riutilizzabili mantenendo coerenza di colore, dimensione e accessibilità.

Incollare SVG direttamente nel codice crea spesso props incoerenti e valori hard-coded. Questa guida offre un workflow pulito per icone React + TypeScript.

1) Normalizza l'input SVG

  • Rimuovi gruppi, metadati e stili inline superflui prima della conversione.
  • Conserva il viewBox per mantenere prevedibile il ridimensionamento dei componenti.
  • Rinomina ID e maschere per evitare collisioni quando più icone vengono renderizzate nella stessa pagina.

2) Genera un componente type-safe

  • Usa props TypeScript che estendono le props SVG per il pieno supporto IntelliSense.
  • Imposta larghezza/altezza di default e consenti override dall'uso del componente padre.
  • Sostituisci i fill fissi con currentColor quando le icone devono ereditare il colore del testo.

3) Integra in un design system

  • Archivia le icone in una cartella prevedibile ed esportale da un unico file barrel.
  • Applica regole di lint o test per bloccare attributi SVG non validi in CI.
  • Documenta esempi d'uso per token di dimensione semantici e aria label.

FAQ SVG a React TypeScript

I componenti icona dovrebbero usare colore fisso o currentColor?
Per le icone dei design system di solito è meglio currentColor, perché il colore può essere controllato dal testo padre o dai token del tema.
Come tipizzo le props delle icone?
Usa React.SVGProps<SVGSVGElement> come base e aggiungi props personalizzate opzionali solo quando servono.
Posso mantenere flessibili le etichette di accessibilità?
Sì. Esponi le props title/aria-label e usa aria-hidden come default per le icone decorative.
Devo ottimizzare prima della conversione React?
Sì. Ottimizzare prima riduce il rumore ed evita di trascinare attributi inutili nei file TSX.