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.

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.Skia for raw SVG (heavy) or hand-authored Path XAML.
  • MAUI — no native SVG in XAML at all. Consumers ship .svg files as MauiImage (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 Path shapes, 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 CSS color on an ancestor. No Color prop.
  • Accessibility built-in — set Title and get a proper role="img" + <title> element for screen readers.

A minute of code

Ready?