ThemeService

The ThemeService allows you to change the theme of your application at runtime. It provides a set of methods to change the theme, get the current theme, and listen to theme changes.

lightbulb
The ThemeService is registered by the AddRadzenComponents() method and requires RadzenTheme. Check the Get started instructions.

In this demo a dropdown allows switching between all available themes (Material, Standard, Fluent, Default, Humanistic, Software), with toggles for Right-to-left direction and WCAG compliant colors, and ThemeChanged event logging theme changes to console.

Console log

Persist the theme link

The Radzen.Blazor library provides a built-in service that persists the current theme in a cookie. This means that the theme will be remembered even after the user closes the browser or navigates to a different page. The theme will be restored when the user returns to the application.

1. Open Program.cs file(s) and register the CookieThemeService:


builder.Services.AddRadzenCookieThemeService(options =>
{
    options.Name = "MyApplicationTheme"; // The name of the cookie
    options.Duration = TimeSpan.FromDays(365); // The duration of the cookie
});
lightbulb
Register CookieThemeService in all Program.cs files of your application.

2. Open MainLayout.razor and inject the CookieThemeService:

@inject CookieThemeService CookieThemeService

3. Open the App.razor file of your application and add this code:

@code {
    [CascadingParameter]
    private HttpContext HttpContext { get; set; }

    [Inject]
    private ThemeService ThemeService { get; set; }
    
    [Inject]
    private IOptions<CookieThemeServiceOptions> Options { get; set; }

    protected override void OnInitialized()
    {
        base.OnInitialized();

        if (HttpContext != null)
        {
            var theme = HttpContext.Request.Cookies["MyApplicationTheme"];

            if (!string.IsNullOrEmpty(theme))
            {
                ThemeService.SetTheme(theme, false);
            }
            else
            {
                HttpContext.Response.Cookies.Append("MyApplicationTheme", "material" , new CookieOptions { Secure = Options.Value.IsSecure, Expires = DateTimeOffset.Now.Add(Options.Value.Duration) });    
            }
        }
    }
}

Changing themes at runtime in Radzen Blazor Studio link

Use Radzen ThemeService and a RadzenDropDown to change the app’s theme at runtime.
✨ 오늘의 명언 & 마음의 양식

“꿈을 꿀 수 있다면, 그것을 이룰 수 있다.”

— 월트 디즈니 (디즈니 창립자)
On this page

Demos Configuration

Premium Themes

  • Material 3
  • Material 3 Dark
  • Fluent
  • Fluent Dark

Free Themes

  • Material
  • Material Dark
  • Standard
  • Standard Dark
  • Default
  • Dark
  • Humanistic
  • Humanistic Dark
  • Software
  • Software Dark
An error has occurred. This app may no longer respond until reloaded. Reload 🗙