Icon
Render Iconify icons in Astro and MDX content.
Use Icon for small visual cues in content: card icons, inline labels, and
status descriptions. Use the prefix:name format from Iconify, such as
lucide:sparkles or simple-icons:github.
Import
import { Icon } from '@prosefly/astro-components';Inline Icons
Reusable MDX components for Astro documentation.
<p><Icon name="lucide:sparkles" /> Reusable MDX components for Astro documentation.</p>Accessible Icons
Decorative icons are hidden from assistive technology by default. Add title
when the icon itself carries meaning.
Check the setup before continuing.
<p><Icon name="lucide:triangle-alert" title="Warning" /> Check the setup before continuing.</p>Icon Integration
Use @prosefly/astro-components/icon when a project wants Iconify preloading
without Lotus.
import { defineConfig } from 'astro/config';import proseflyIcon from '@prosefly/astro-components/icon';
export default defineConfig({ integrations: [ proseflyIcon({ preload: ['lucide:sparkles', 'simple-icons:github'], }), ],});The integration always includes icons used internally by the package components.
It also scans src/**/*.astro, src/**/*.md, and src/**/*.mdx for static
name and icon prop values by default. Add dynamic icon names to preload,
because the scanner only sees literal strings.
| Option | Type | Default |
|---|---|---|
preload | string[] | [] |
scan | boolean | true |
apiBase | string | https://api.iconify.design |
Set scan: false when a site should preload only the icons listed in
preload, or set apiBase to use an internal Iconify-compatible endpoint.
Props
| Prop | Type | Default |
|---|---|---|
name | string | required |
title | string | none |
size | number | string | none |
width | number | string | size ?? '1em' |
height | number | string | size ?? '1em' |
apiBase | string | https://api.iconify.design |
Last updated Jul 18, 2026