Icon
Icon component that resolves icons through a customizable resolver. Register your icon library using registerCustomIconResolver.
Import
typescript
import { Icon } from 'vuiii'Basic Usage
vue
// Basic usage
import { Icon } from 'vuiii'
<Icon name="check" />
<Icon name="user" size="large" />More Examples
vue
// Different sizes
<Icon name="star" size="small" />
<Icon name="star" size="normal" />
<Icon name="star" size="large" />vue
// Register custom icon resolver (typically in app setup)
import { registerCustomIconResolver } from 'vuiii'
import { defineAsyncComponent } from 'vue'
registerCustomIconResolver((name) => {
return defineAsyncComponent(() => import(`./icons/${name}.vue`))
})vue
// With Heroicons
import * as HeroIcons from '@heroicons/vue/24/outline'
registerCustomIconResolver((name) => {
const pascalName = name.split('-').map(s => s[0].toUpperCase() + s.slice(1)).join('') + 'Icon'
return HeroIcons[pascalName]
})
// Then use in templates
<Icon name="user" /> // resolves to UserIcon
<Icon name="check" /> // resolves to CheckIconStorybook
For interactive examples with all variants, see Icon in Storybook.