Icon
Renders a vector icon powered by the Iconify library.
Plume uses the Iconify ecosystem, giving you access to over 200,000 icons from sets like Fluent, Lucide, Material Design, and more.
Finding Icons
You can search for icons on the official Iconify API Explorer. Plume is pre-configured to work with the CSS-based Iconify implementation, which is extremely lightweight and requires no client-side JavaScript for rendering.
Naming Convention
Icons in Plume follow a specific CSS class format:
icon-[{set}--{name}]
set: The icon set prefix (e.g.,fluent,lucide,mdi)name: The specific icon name within that set
Examples
Icon Varieties
<div class="flex flex-wrap gap-8 items-center">
<div class="flex flex-col items-center gap-2">
<x-plume::icon i="icon-[fluent--home-24-regular]" class="size-6" />
<span class="text-xs text-foreground/50 dark:text-background-400">Fluent
Home</span>
</div>
<div class="flex flex-col items-center gap-2">
<x-plume::icon i="icon-[lucide--settings]" class="size-6 text-primary" />
<span class="text-xs text-foreground/50 dark:text-background-400">Lucide
Settings</span>
</div>
<div class="flex flex-col items-center gap-2">
<x-plume::icon i="icon-[mdi--account]" class="size-8" />
<span class="text-xs text-foreground/50 dark:text-background-400">MDI
Account</span>
</div>
<div class="flex flex-col items-center gap-2">
<x-plume::icon i="icon-[fluent--arrow-sync-24-regular]" class="size-6 animate-spin" />
<span class="text-xs text-foreground/50 dark:text-background-400">Animated</span>
</div>
</div>
| Prop | Type | Default | Description |
|---|---|---|---|
| i | string | null | The full icon name (e.g., 'icon-[fluent--save-24-regular]'). |
Usage
<x-plume::icon i="icon-[fluent--home-24-regular]" />
<x-plume::icon i="icon-[lucide--settings]" class="size-6 text-primary"
/>
Styling
Since icons are rendered as CSS background images with mask properties, you can easily style them using standard Tailwind utility classes for size and color.
<!-- Sizing -->
<x-plume::icon i="icon-[fluent--star-24-filled]" class="size-4" />
<x-plume::icon i="icon-[fluent--star-24-filled]" class="size-12" />
<!-- Coloring -->
<x-plume::icon i="icon-[fluent--heart-24-filled]" class="text-rose-500" />
<x-plume::icon i="icon-[fluent--info-24-filled]" class="text-primary"
/>