Skip to content

Blazor Component Library based on Material Design principles with an emphasis on ease of use and extensibility

License

Notifications You must be signed in to change notification settings

MudBlazor/MudBlazor

Repository files navigation

MudBlazor

Material Design components for Blazor

GitHub Workflow Status Codecov Quality Gate Status GitHub GitHub Repo stars GitHub last commit Contributors Discussions Discord Twitter NuGet version NuGet downloads

MudBlazor is an ambitious Material Design component library for Blazor. Accelerate your web application development and build intuitive user interfaces, leveraging the full power of C# to adapt and extend this open-source framework.

🌐 DocumentationInteractive Playground

💎 Why Choose MudBlazor?

🎨 Beautiful Material Design components.
💻 Fully written in C# with minimal JavaScript.
📖 Rich documentation with extensive examples.
📦 No third-party dependencies for maximum flexibility.
✅ Extensive test coverage for stability.

📊 Repo Stats

Repobeats analytics image

🚀 Getting Started

We have ready-to-go templates at the Templates repository, or follow the quick install guide below:

Installation

Install Package:

dotnet add package MudBlazor

Add to _Imports.razor:

@using MudBlazor

Add to MainLayout.razor or App.razor:

<MudThemeProvider/>
<MudPopoverProvider/>
<MudDialogProvider/>
<MudSnackbarProvider/>

Add to your HTML head section (index.html/_Layout.cshtml/_Host.cshtml/App.razor):

<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />

Add to the default Blazor script at the end of the body:

<script src="_content/MudBlazor/MudBlazor.min.js"></script>

Add to the relevant sections of Program.cs:

using MudBlazor.Services;
builder.Services.AddMudServices();

Example Usage

<MudText Typo="Typo.h6">
    MudBlazor is @Text
</MudText>

<MudButton Variant="Variant.Filled" 
           Color="Color.Primary" 
           OnClick="ButtonOnClick">
    @ButtonText
</MudButton>

@code {
    string Text { get; set; } = "????";
    string ButtonText { get; set; } = "Click Me";
    int ClickCount { get; set; }

    void ButtonOnClick()
    {
        ClickCount += 1;
        Text = $"Awesome x {ClickCount}";
        ButtonText = "Click Me Again";
    }
}

For more details, see the complete installation guide on our website.

🤝 Contributing

Contributions from the community are what makes MudBlazor successful.

If you're comfortable with C#, Blazor, JavaScript, or CSS, we'd love your help!
Whether it's fixing bugs, adding features, or improving documentation, every contribution counts.

We aim to review and merge non-breaking pull requests quickly.
For larger features or changes, feel free to chat with us on Discord to get feedback before diving in.

📚 Check out our contribution guidelines to get started and learn more about how the project works.
✅ If a PR fixes something you reported, locally test a preview version to ensure your app works as expected.

⚙️ Version Support

MudBlazor .NET Support
5.x.x .NET 5 Ended (Jan 2022)
6.x.x .NET 6, .NET 7, .NET 8 Ended (Jan 2025)
7.x.x .NET 7, .NET 8 Limited Support
8.x.x .NET 8, .NET 9 ✔️ Full Support

Tip

Upgrading? Check our Migration Guide for help with breaking changes.

Warning

  1. Static rendering is not supported - Learn more.
  2. Older browsers may not be supported. Use a modern, up-to-date browser - Blazor supported platforms.