# `` dispatcher > — look up any icon by kebab-case name at runtime. Source: https://shellicons.shellui.dev/docs/reference/shellicon-dispatcher For dynamic use cases, `` renders any icon in the catalog by name. ## Usage ```razor @using ShellIcons ``` Inherits every parameter from [`IconCore`](https://shellicons.shellui.dev/docs/reference/icon-core.md) — `Size`, `StrokeWidth`, `AbsoluteStroke`, `Class`, `Title`, plus additional-attribute splat. ## `Name` `string`, kebab-case, matches Lucide's file names — `"chevron-right"`, `"triangle-alert"`, `"a-arrow-down"`. Unknown names render an empty `` (no crash, no exception). If you'd rather guard: ```razor @if (ShellIcon.Names.Contains(candidate)) { } else { } ``` ## `ShellIcon.Names` Static `IReadOnlyCollection` — every icon name in the catalog, ordered. ```csharp var count = ShellIcon.Names.Count; // 1555 var exists = ShellIcon.Names.Contains("chevron-right"); // true foreach (var name in ShellIcon.Names) { … } ``` Useful for search UIs, config validation, catalog dumps. ## Trimming caveat **Referencing `ShellIcon` anywhere roots the full catalog** — all 1,555 icons ship in your assembly, regardless of which ones you actually render. If you care about trimmed size, use [typed icons](https://shellicons.shellui.dev/docs/guides/typed-vs-dispatcher.md) instead. Reach for the dispatcher only when the icon name genuinely can't be known at compile time. ## When the dispatcher is the right answer - **Markdown-authored content** — the author writes `` in a `.md` file. Names are only known at content-load time. - **CMS-driven UI** — an icon name comes back with each card/tag/badge from the database. - **Icon-picker UIs** — you're literally letting a user search and pick from the catalog. - **Config-driven feature flags** — a JSON config file specifies which icon appears next to each menu item. ## When the dispatcher is the wrong answer - **Fixed icons in your UI** — `` is always right for a "next" button. Use the typed component. - **A small dynamic set** — a switch over 3-5 known kinds. Use typed icons. - **Blazor WASM apps where startup size matters** — the dispatcher adds ~50-100KB of catalog data to your bundle.