So sieht die Vue-Ausgabe aus
Vue-Templates akzeptieren SVG-Attribute unverändert, deshalb behält der Konverter kebab-case-Namen wie stroke-width und class. Er entfernt Editor-Ballast, die XML-Deklaration und optional xmlns und setzt das Markup in einen <template>-Block.
Ist die size-Option aktiv, deklariert ein <script setup>-Block eine size-Prop mit Standardwert und bindet sie an :width und :height. Mit TypeScript wird die Prop über defineProps<{ size?: number | string }>() und withDefaults deklariert.
Attribut-Fallthrough
Da das <svg> das einzige Wurzelelement ist, reicht Vue Attribute, die nicht als Props deklariert sind, automatisch weiter. class, style, aria-label und Event-Listener wie @click landen also ohne zusätzlichen Code auf dem <svg>. Die Option zum Weiterreichen der Props ist für Vue daher nicht nötig.
Die Komponente verwenden
Typische Verwendung in einem Vue-3- oder Nuxt-Projekt:
- Speichere die Ausgabe als IconName.vue in deinem components-Ordner.
- Importiere sie: import IconName from "./IconName.vue".
- Rendere <IconName :size="20" class="text-emerald-600" /> in einem beliebigen Template.
- Mit aktiviertem currentColor folgt das Icon der CSS-Eigenschaft color.