À quoi ressemble le résultat Vue
Les templates Vue acceptent les attributs SVG tels quels : le convertisseur conserve donc les noms en kebab-case comme stroke-width et class. Il retire le superflu ajouté par l’éditeur, la déclaration XML et, en option, xmlns, puis place le balisage dans un bloc <template>.
Si l’option size est activée, un bloc <script setup> déclare une prop size avec une valeur par défaut et la lie à :width et :height. En TypeScript, la prop est déclarée avec defineProps<{ size?: number | string }>() et withDefaults.
Transmission automatique des attributs
Comme le <svg> est l’unique élément racine, Vue lui transmet automatiquement les attributs qui ne sont pas déclarés comme props. class, style, aria-label et les écouteurs comme @click arrivent donc sur le <svg> sans code supplémentaire. L’option de transmission des props est par conséquent inutile pour Vue.
Utiliser le composant
Utilisation typique dans un projet Vue 3 ou Nuxt :
- Enregistrez le résultat sous IconName.vue dans votre dossier de composants.
- Importez-le : import IconName from "./IconName.vue".
- Affichez <IconName :size="20" class="text-emerald-600" /> dans n’importe quel template.
- Avec currentColor activé, l’icône suit la propriété CSS color.