Blazor / .NET
Antumo.Blazor is one NuGet package that bundles the full stylesheet, fonts, all ~1,500 Lucide icons as typed components, and Razor wrappers for the sidebar, page header, and select. No npm required.
Install
# 1. Add the Azure Artifacts NuGet feed (one-time)
dotnet nuget add source https://pkgs.dev.azure.com/m2tcorp/_packaging/antumo/nuget/v3/index.json \
--name antumo
# 2. Install
dotnet add package Antumo.BlazorWire it up
<!-- App.razor <head> -->
<link href="_content/Antumo.Blazor/css/antumo.min.css" rel="stylesheet" /><!-- App.razor, BEFORE blazor.web.js -->
<script src="_content/Antumo.Blazor/js/antumo.min.js"></script>
<script src="_framework/blazor.web.js"></script>That single CSS file includes all tokens, all component styles, Bootstrap 5 compatible class names, fonts (CircularXX + Circular LL), and dark mode.
Do NOT
- Do not add Google Fonts — fonts are bundled.
- Do not add
bootstrap.css— Antumo already ships BS5-compatible classes. - Do not copy logos to
wwwroot/— reference_content/Antumo.Blazor/logos/.
Supported frameworks
| Framework | Supported |
|---|---|
| .NET 8 | Yes |
| .NET 9 | Yes |
| .NET 10 | Yes |
Works with Blazor Server, WebAssembly, and Hybrid.
AntumoIcon
The only required Blazor component — everything else is CSS-only Bootstrap 5 markup.
@using Antumo.Blazor.Icons
<AntumoIcon Icon="LucideIcons.House" />
<AntumoIcon Icon="LucideIcons.ChevronDown" Size="IconSize.Sm" />
<AntumoIcon Icon="LucideIcons.Settings" StrokeWidth="IconStrokeWidth.Bold" />Icons use stroke="currentColor", so they inherit their parent's text color. Browse all icons at lucide.dev/icons.
| Size | Pixels | Use |
|---|---|---|
IconSize.Xs | 12 | Badges, inline |
IconSize.Sm | 16 | Compact UI |
IconSize.Md | 20 | Buttons, inputs |
IconSize.Base | 24 | Default |
IconSize.Lg | 28 | Section headers |
IconSize.Xl | 40 | Empty states |
Razor components
The package also ships declarative wrappers so you write ~25 lines instead of ~130 lines of raw markup:
<AntumoNavSidebar>+AntumoNavItem/AntumoNavDropdown/AntumoNavGroup/AntumoNavProfile— full sidebar with automatic active state viaNavigationManager.<AntumoPageHeader>— breadcrumbs, separators, and modifier classes auto-generated.<AntumoSelect>— ARIA combobox with keyboard nav andEditContextvalidation.<AntumoModal>— overlay, sizes,Escape/backdrop dismissal, destructive variant.IAntumoConfirm+<AntumoConfirmHost>— awaitable confirmation prompts.<AntumoSteps>— progress indicator for multi-step flows (not navigation).
@using Antumo.Blazor.Components
<AntumoPageHeader Title="Devices"
Description="Manage all registered devices"
Breadcrumbs="@(new BreadcrumbItem[] { new(\"Home\", \"/\"), new(\"Devices\") })">
<Actions>
<button class="btn btn-secondary btn-md">Export</button>
<button class="btn btn-primary btn-md">Add Device</button>
</Actions>
</AntumoPageHeader>Confirmations are a service, so the decision stays inside the click handler. Register with AddAntumoBlazor() and render <AntumoConfirmHost /> once in your layout:
@using Antumo.Blazor.Confirm
@inject IAntumoConfirm Confirm
@code {
private async Task Delete()
{
if (!await Confirm.AskDestructiveAsync("Usunąć drukarkę?", "Tej operacji nie można cofnąć.", "Usuń"))
{
return;
}
// ... perform the deletion
}
}Everything else is Bootstrap 5
Buttons, tables, forms, modals, cards, badges — all standard BS5 class names, styled by the DS:
<button class="btn btn-primary btn-md">
<AntumoIcon Icon="LucideIcons.Plus" Size="IconSize.Md" /> Add Device
</button>
<span class="badge badge-md badge-green badge-dot">Online</span>Theme from C#
@inject IJSRuntime JS
await JS.InvokeVoidAsync("Antumo.Theme.toggle");
await JS.InvokeVoidAsync("Antumo.Theme.set", "dark");
await JS.InvokeVoidAsync("Antumo.Theme.useSystemPreference");Live example
A full MDM dashboard built entirely with DS classes runs at design-system-blazor.dev.antumo.com — sidebar, tables, modals, forms, and dark mode.
Full Blazor reference
The complete Blazor guide (all component parameters, migration guide, class-mapping table, and an LLM migration prompt) lives in blazor/README.md in the repository — it ships on the NuGet package page too.