MASA Blazor, a Material Design component set for Blazor Server, WebAssembly and MAUI
Blazor UI component library based on Material Design. Support Blazor Server, Blazor WebAssembly and MAUI Blazor.
At a glance
- What is it?
- MASA Blazor is a C# component library for Blazor that implements Material Design specifications, with preset components for layout, framing, loading and global exception handling, plus deep integrations for routing, breadcrumbs, navigation, advanced search and internationalisation. A companion project, MASA Blazor Pro, supplies the preset layouts and business scenario examples.
- Who is it for?
- Adopt MASA Blazor if your team builds Blazor applications and wants a Material Design component set that works the same across Blazor Server, Blazor WebAssembly and MAUI Blazor, and skip it if you are looking for a small library you can read in an afternoon, since this is an enterprise-scale component suite with its own release train and enterprise-level support.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 133 days ago.
- What is it written in?
- Mainly C#, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A component set, with the design language chosen for you
The library's proposition is that it is a set of standard basic component libraries based on Material Design specifications, with preset components for standard scenarios such as layout, frame standard, loading and global exception handling. That is a narrower and more useful claim than a general purpose UI toolkit, because it names the four things every Blazor application ends up writing badly. The stated intent is to start from practical scenarios, meet the needs of more users and scenarios, and reduce the time cost for developers, in order to shorten the development cycle. The design language argument is that each component is carefully designed with modularity, responsiveness and performance in mind, and the feature list describes the goal as a modern style with a good multi-end experience. The project also places itself in a commercial context, describing regular maintenance and upgrades by a professional full-time technical team with enterprise-level support, and a separate Pro project for preset layouts and business scenarios.
git clone --recursive https://github.com/masastack/Masa.Blazor.git
cd Masa.Blazor
git submodule foreach git checkout mainThe Vuetify comparison, and what the .NET integration layer adds
The feature list names the basic components of a 1:1 restoration of Vuetify, and then adds the part that matters for a .NET audience: deep integration functions including three linkages, of Url, breadcrumbs and navigation, plus advanced search and internationalisation. The three linkages are the interesting bit, because they are the places where a component library stops being a set of widgets and becomes an application framework. A URL linkage means the component state and the browser address bar agree. A breadcrumb linkage means the breadcrumb trail is derived from the navigation state rather than hand-assembled at each page. And a navigation linkage means the menu highlights the right entry. Getting those three consistent by hand across a large application is a well-known source of bugs, so having them in the library is the practical value proposition, more than the visual fidelity to Material Design.
- Rich components: Contains the basic components of Vuetify 1:1 restoration,
as well as many practical preset components and deep integration
functions of .Net, including three linkages of Url, breadcrumbs,
navigation, advanced search, i18n, etc.Three hosting models, one library
The repository description is the clearest statement of scope: it supports Blazor Server, Blazor WebAssembly and MAUI Blazor. That matters more than it might look, because the three hosting models have genuinely different constraints, and a component library that works in all three has had to avoid the features that only work in one. MAUI Blazor brings the same components into a native mobile shell, which is why the browser support tables matter so much for a reader. The distinction between Blazor Server and WebAssembly shows up in the browser table too. Internet Explorer is supported by Blazor Server with additional polyfills, but Blazor WebAssembly does not support IE because of WebAssembly restrictions, and Safari is listed as not supported on Windows, while several other desktop combinations are marked N/A. The mobile table shows Chrome, Firefox and Edge supported on both iOS and Android, with Safari listed as N/A on Android, which is a statement about the test matrix rather than about what the components can do.
| | Chrome | Firefox | Safari | Microsoft Edge |
| ------- | --------- | --------- | --------- | -------------- |
| iOS | Supported | Supported | Supported | Supported |
| Android | Supported | Supported | N/A | Supported |The docs server, and how to work on the library
The local development setup is documented in four commands, and it is worth following exactly because the repository uses submodules. You need the .NET 6 SDK and either Visual Studio Code or Visual Studio 2022, then clone recursively, since the plain clone would leave the submodule directories empty, and the next step runs git submodule foreach git checkout main to bring each submodule onto its main branch. After that you change into the docs server directory and run dotnet run, and the recommendation is to view the site at localhost:5000 with Chrome or Edge. The repository layout shows why there are several solutions in the root rather than one: Masa.Blazor.slnx for the library itself, plus separate solution files for the build, the docs, the playground, the template table and a try project, along with src/, test/, samples/, docs/ and a scirpts/ directory whose name is spelled that way in the tree. The samples directory includes a MAUI Windows sample and a samples solution.
cd docs/Masa.Docs.Server
dotnet runThe container image, and what it reveals about the build
The Dockerfile is a small file that answers a few questions. The base image is a.NET SDK 7.0 image with Node 17 and libfontconfig1, pulled from the Aliyun registry rather than from Microsoft, and the commented lines above it show a Microsoft SDK 7.0 image and two older 6.0 images with earlier Node versions. The environment sets the locale to zh_CN, sets ASPNETCORE_URLS to listen on all interfaces at port 5000, copies the source and runs a Release build of the docs server specifically, then starts the built DLL. So the container exists to run the documentation site, not the library. The two details a reader should take from it are the.NET version spread, since the image is on 7.0 while the documented local SDK is 6.0, and the base image provenance, since a project that publishes an image from a regional registry mirror rather than from the upstream source is making a distribution decision that readers outside that region may want to think about.
FROM registry.cn-hangzhou.aliyuncs.com/masa/dotnet_sdk:7.0_nodejs17_libfontconfig1
ENV ASPNETCORE_URLS=http://0.0.0.0:5000
RUN dotnet build docs/Masa.Docs.Server -c Release
ENTRYPOINT ["dotnet","./docs/Masa.Docs.Server/bin/Release/net7.0/Masa.Docs.Server.dll"]Release cadence and the licence question
The release history shows two parallel lines, which is a normal pattern for a library that ships a stable channel and a preview of the next version. The recent tags are 1.11.9 from 2026-01-21, 1.11.8 from 2026-01-19, and 1.12.0-alpha.2 from 2026-01-07, so the stable line is at 1.11 and the next major is in alpha. The last push to the repository was on 2026-06-12 and the repository is not archived. The licence is the one place where the marketing and the metadata disagree, and it is worth reading carefully. The README carries an MIT badge, and the NuGet badge points at the Masa.Blazor package on nuget.org, but the licence identifier in the repository metadata is a custom one that GitHub cannot classify, which points to a LICENSE file at the root alongside a NOTICE.txt. For a component library that you will copy markup and styles from, and that carries an enterprise support offering, the licence text is the document to read rather than the badge.
Where it fits, and what it will not do
MASA Blazor is a good fit for a team that has decided on Material Design as its design language and on Blazor as its stack, because the component set, the routing integrations and the preset layouts arrive together and are consistent with each other. It is a poor fit if you need a component library you can read in an afternoon, since the breadth here is the point, and the breadth is what makes an upgrade non-trivial. It is also a poor fit if you are looking for a neutral set of components, because the Vuetify restoration and the Material Design specification mean the visual result is decided for you, which is an advantage for consistency and a constraint for originality. The two other limits are worth naming. The library is tied to a commercial backing, so its long-term direction follows the MASA Stack product line rather than an open community charter, and the Pro project with the preset layouts and business scenarios is a separate artefact, so the parts of the product you are most likely to want for an admin-heavy application may be the parts that are not in the base library.
Editorial conclusion
Adopt MASA Blazor if your team builds Blazor applications and wants a Material Design component set that works the same across Blazor Server, Blazor WebAssembly and MAUI Blazor, and skip it if you are looking for a small library you can read in an afternoon, since this is an enterprise-scale component suite with its own release train and enterprise-level support. Verify three things before you commit: which hosting model you use, because the browser support table differs sharply between Blazor Server and WebAssembly, with IE 11 available only to the former and with Safari unsupported on Windows for the latter; whether the components you need are in the base library or in the separate Pro project; and that the version you take matches your.NET SDK, since the local development instructions still name the.NET 6 SDK while the container image is built on a.NET 7 base.
Frequently asked questions
What is MASA Blazor?
It is a set of standard basic component libraries based on Material Design specifications, providing preset components for standard scenarios such as layout, frame standard, loading and global exception handling, plus deep .NET integration functions covering Url, breadcrumbs and navigation linkages, advanced search and internationalisation.
Which Blazor hosting models does MASA Blazor support?
Blazor Server, Blazor WebAssembly and MAUI Blazor. That difference shows in browser support: Blazor WebAssembly does not support Internet Explorer because of WebAssembly restrictions, while Blazor Server supports IE 11 with additional polyfills.
How do I set up MASA Blazor for local development?
Install the .NET SDK 6.0 and Visual Studio Code or Visual Studio 2022, clone the repository with `--recursive`, run `git submodule foreach git checkout main`, then `cd docs/Masa.Docs.Server` and `dotnet run`, and visit http://localhost:5000/ with Chrome or Edge.
What is the difference between MASA Blazor and MASA Blazor Pro?
MASA Blazor is the basic component library, while MASA Blazor Pro is a separate project providing preset layouts for various business scenarios and a set of example web solutions.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/masastack-masa-blazor)Was this useful?