Pourquoi ne pas coller le SVG directement dans React ?
Coller un SVG brut dans un fichier .jsx produit généralement une avalanche d’avertissements comme « Invalid DOM property stroke-width » ou « Invalid DOM property class », voire une erreur de compilation si le fichier contient un attribut style ou une déclaration XML. Renommer chaque attribut à la main est lent et source d’erreurs pour de grands jeux d’icônes.
Ce convertisseur effectue le renommage pour vous et enveloppe le balisage dans un composant qui accepte des props. Comme {...props} est appliqué sur le <svg> racine, vous pouvez passer className, aria-label, onClick ou une largeur personnalisée depuis le parent sans retoucher l’icône.
Réglages recommandés pour les icônes React
Pour un composant d’icône réutilisable, nous conseillons de :
- Activer currentColor pour que l’icône hérite de la couleur du texte du parent et fonctionne en mode sombre.
- Activer la prop size pour contrôler largeur et hauteur avec une seule valeur, par exemple size={20}.
- Conserver le viewBox et supprimer width et height fixes pour que l’icône s’adapte au CSS.
- N’utiliser forwardRef que si un parent a besoin de l’élément <svg>, par exemple pour des infobulles ou des animations.
Composants en ligne ou fichiers image ?
Les composants SVG en ligne peuvent être stylés en CSS, animés et changer de couleur au survol, sans jamais déclencher de requête réseau supplémentaire. Pour de grandes illustrations qui ne changent pas, un simple <img src="/file.svg"> peut être plus économique, car le navigateur le met en cache séparément. Utilisez des composants pour les icônes et éléments d’interface, et des balises image pour les illustrations lourdes.