ShellIcons
Lucide-derived SVG icons for Blazor. Zero JS. Zero required CSS. Every icon is a typed component — tree-shakeable, IntelliSense-friendly, byte-identical to Lucide.
<Zap Size="32" />
Why another icon library
The .NET icon story is fractured:
- Blazor — everyone hand-embeds SVG blocks. A couple of community Lucide ports on NuGet drift from upstream and none use a source generator.
- Avalonia — usually
Svg.Skiafor raw SVG (heavy) or hand-authoredPathXAML. - MAUI — no native SVG in XAML at all. Consumers ship
.svgfiles asMauiImage(rasterized, loses color inheritance).
ShellIcons is the answer to all three from one Lucide-derived catalog:
- Blazor today. Full 1,555-icon catalog, auto-generated by a Roslyn source generator from a pinned Lucide tag.
- MAUI in preview. Same catalog as native
Pathshapes, converted at build time — no SVG parsing on the device. See MAUI. - Avalonia next. It will share the MAUI conversion.
What you get
- 1,555 icons — the entire Lucide 0.475.0 catalog. Bumping is one
git pull+ rebuild. - Typed components —
<div data-shelldocs-slot="component" data-shelldocs-id="s5ab5086f0b12"></div>,<div data-shelldocs-slot="component" data-shelldocs-id="s5c154b8dc02b"></div>,<div data-shelldocs-slot="component" data-shelldocs-id="sca72814103b5"></div>. Safe next to any UI kit, and unused icons are trimmed. - Icons as values —
@Icon.ChevronRight()for component parameters and lists. - Dynamic dispatcher —
<div data-shelldocs-slot="component" data-shelldocs-id="sc238ea9ebf0c"></div>for markdown, CMS-driven content, dynamic lookup. - Custom icons pack — drop your own SVGs into
catalog/custom/icons/, they compile in alongside Lucide. currentColor-native — coloring inherits from any CSScoloron an ancestor. NoColorprop.- Accessibility built-in — set
Titleand get a properrole="img"+<title>element for screen readers.
A minute of code
<PreviewRow FontSize="24px">
<PreviewCell Color="crimson"><TriangleAlert /></PreviewCell>
<PreviewCell Color="seagreen"><CircleCheck /></PreviewCell>
<PreviewCell Color="royalblue"><Search /></PreviewCell>
<PreviewCell Color="rebeccapurple"><Zap /></PreviewCell>
</PreviewRow>
Ready?
- Installation — one
dotnet add package - Quick start — first icon in a Blazor page
- Browse the catalog — all 1,555 icons, searchable