Icon

IcĂ´nes
A component to display any icon from Iconify or another component.

Usage

Use the name prop to display an icon:

<template>
  <PIcon name="i-lucide:lightbulb" class="size-5" />
</template>
It's highly recommended to install the icons collections you need, read more about this.

Examples

SVG

You can also pass a Vue component into the name prop:

<script setup lang="ts">
import { h } from 'vue';

function IconLightbulb() {
  return h(
    'svg',
    { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 24 24' },
    [
      h(
        'path',
        {
          'fill': 'none',
          'stroke': 'currentColor',
          'stroke-linecap': 'round',
          'stroke-linejoin': 'round',
          'stroke-width': 2,
          'd': 'M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4',
        },
      ),
    ],
  );
}
</script>

<template>
  <PIcon
    :name="IconLightbulb"
    class="size-5"
  />
</template>

You can define your icon components yourself, or use unplugin-icons to import them directly from SVG files:

<script setup lang="ts">
import IconLightbulb from '~icons/lucide/lightbulb'
</script>

<template>
  <PIcon :name="IconLightbulb" class="size-5" />
</template>

API

Props

Prop Default Type

Changelog

No recent changes