docs/en/Community-Articles/2026-06-09-mudblazor-in-abp-framework/post.md
With ABP 10.4.2, new Blazor projects can now use MudBlazor (Material Design) as an alternative to the long-standing default, Blazorise (Bootstrap 5). Framework, themes (LeptonX / LeptonX Lite / Basic), modules, solution templates, ABP Studio, and ABP Suite all support both libraries side by side. The 10.4.2 packages are live on nuget.org.
Blazorise has been ABP's default Blazor UI library for years and remains the default and is fully supported — existing Blazorise projects can keep moving at their own pace, and upgrading to 10.4 does not change anything for them.
We added MudBlazor because one Blazor UI choice cannot fit every team:
For new projects you can start with MudBlazor right away. Existing Blazorise projects do not need to be rewritten just to switch UI libraries.
Volo.Abp.MudBlazorUI provides the MudBlazor implementation of ABP's UI service abstractions, so code written against IUiMessageService / IUiNotificationService / IUiPageProgressService runs unchanged in a MudBlazor project. Key building blocks:
MudBlazorUiMessageService — Info / Success / Warn / Error / Confirm rendered through MudDialogMudBlazorUiNotificationService — toast notifications via MudSnackbarMudBlazorUiPageProgressService — top progress bar via MudProgressLinearAbpMudCrudPageBase<...> — the MudBlazor counterpart to Blazorise's AbpCrudPageBaseAbpMudExtensibleDataGrid<TItem> — a MudDataGrid wrapper integrated with Object Extension and time-zone conversionUiMessageAlert / UiNotificationAlert / PageAlert — page-level alert and notification containersTheming is split across three hosts — Blazor Server, WebAssembly, and MauiBlazor — each shipped with matching bundling contributors and modules that wire MudBlazor's JS and CSS into the ABP bundle system.
Each theme's layout adopts MudBlazor components such as MudAppBar, MudDrawer, MudNavLink, and MudMenu, while keeping the theme's original color palette, dim / light / system modes, and RTL support.
LeptonX rendered with MudBlazor
LeptonX Lite rendered with MudBlazor
Basic Theme rendered with MudBlazor
The LeptonX themes reuse the same lpx-* CSS classes across both UI libraries, so the overall information architecture, page layout, and theme experience stay consistent with the Blazorise version. Individual controls follow each UI library's own conventions.
The same LeptonX theme — MudBlazor on the left, Blazorise on the right
Open-source modules in abpframework/abp that ship with a MudBlazor implementation:
MudTreeView and tri-state MudCheckBoxMudTabs (including theme switching)Additional MudBlazor implementations available on the Pro side, for example:
MudDataGrid with a detail MudDialog
Identity user management built on AbpMudExtensibleDataGrid
Permission Management uses MudTreeView and tri-state MudCheckBox for parent/child permissions
Saas module: tenant list with a "New tenant" dialog that includes connection-string editing
If you already know Blazorise, here are the most common mappings:
| Blazorise | MudBlazor |
|---|---|
TextEdit @bind-Text | MudTextField @bind-Value |
Select / SelectItem | MudSelect / MudSelectItem |
DataGrid | MudDataGrid (wrapped by ABP as AbpMudExtensibleDataGrid) |
Modal Show()/Hide() | MudDialog ShowAsync()/CloseAsync() |
Validations | MudForm + built-in validation |
Row / Column ColumnSize.Is6 | MudGrid / MudItem xs="12" sm="6" |
Bootstrap Icons bi-* | Icons.Material.Filled.* |
A full mapping table with razor examples lives in the ABP Blazor UI documentation.
ABP's MudBlazor support covers the Blazor project types you can create and run directly:
-u blazor-server)-u blazor)-u blazor-webapp, including InteractiveAuto)ABP Suite detects the solution's UI library and generates the matching CRUD page automatically:
public partial class Books : AbpMudCrudPageBase<IBookAppService, BookDto, Guid, GetBookListInput, CreateUpdateBookDto>
{
private MudDialog _createDialog;
private MudForm _createFormRef;
}
The razor templates also split by UI library — Blazorise uses <DataGrid> + <Modal> + <Validations>, MudBlazor uses <MudDataGrid> + <MudDialog> + <MudForm>.
Both UI libraries are production-ready and neither is strictly better. Common factors:
Do not mix the two libraries within a single project — the choice is per solution, not per file.
Open ABP Studio → New Solution → pick a template → in the UI configuration step, select Blazor UI library = MudBlazor. Everything else works the same as a Blazorise project. After Build & Run you land on a MudBlazor-styled application.
New Solution wizard: pick MudBlazor for the Blazor UI library
Studio Build & Run brings up a MudBlazor + LeptonX dashboard in the embedded browser
# Blazorise (default; --blazor-ui-library can be omitted)
abp new MyApp -u blazor
# MudBlazor
abp new MyApp -u blazor --blazor-ui-library mudblazor
# Tiered + WebApp + LeptonX + MudBlazor
abp new MyApp -t app --tiered -u blazor-webapp --blazor-ui-library mudblazor --theme leptonx
# Microservice + MudBlazor + Blazor Server
abp new MyApp -t microservice -u blazor-server --blazor-ui-library mudblazor
# Reusable Module + MudBlazor
abp new My.Module -t module -u blazor --blazor-ui-library mudblazor
Run abp new --help for the full option list.
Suite-generated MudBlazor CRUD pages are covered in the ABP Suite section above.
abp new MyMudApp -u blazor-server --blazor-ui-library mudblazor --theme leptonx
Documentation:
I'm already using Blazorise — will upgrading to 10.4 / 10.4.2 break my project? No. Blazorise stays the default, and package paths, type names, and namespaces are fully compatible. Follow the standard ABP upgrade flow.
Can I use Blazorise and MudBlazor in the same project? We don't recommend it. The UI library is a project-level choice — themes, bundling, and module dependencies all switch with it. Mixing both within a single solution leads to bundle conflicts, duplicated layouts, and similar issues.
What about my custom razor pages? Your custom Razor pages are tied to the UI library they were built with, so switching libraries means rewriting those pages using the component mapping above. Template-generated pages and module-provided pages don't need to be touched.
MudBlazor is now a first-class Blazor UI library in ABP. With 10.4.2 released, every related package, theme, template, Studio integration, and Suite generator is in place — you can try it out with a single abp new command.
If you hit a bug, have a suggestion, or want a particular module's MudBlazor UX prioritized, let us know via GitHub Issues or abp.io support.