What the Vue output looks like
Vue templates accept SVG attributes as they are, so the converter keeps kebab-case names such as stroke-width and class. It removes editor noise, the XML declaration and optionally xmlns, then places the markup inside a <template> block.
When the size option is enabled, a <script setup> block declares a size prop with a default value and binds it to :width and :height. With TypeScript the prop is declared with defineProps<{ size?: number | string }>() and withDefaults.
Attribute fallthrough
Because the <svg> is the single root element, Vue automatically forwards attributes that are not declared as props. That means class, style, aria-label and event listeners such as @click land on the <svg> without any extra code. The props spread option is therefore not needed for Vue.
Using the component
Typical usage in a Vue 3 or Nuxt project:
- Save the output as IconName.vue in your components folder.
- Import it: import IconName from "./IconName.vue".
- Render <IconName :size="20" class="text-emerald-600" /> in any template.
- With currentColor enabled the icon follows the CSS color property.