You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/docs/en/Themes/LeptonXLite/Blazor.md

5.6 KiB

LeptonX Lite Blazor UI

//[doc-params]
{
    "UI": ["Blazor", "BlazorServer"]
}

LeptonX Lite has implementation for the ABP Framework Blazor WebAssembly & Blazor Server. It's a simplified variation of the LeptonX Theme.

If you are looking for a professional, enterprise ready theme, you can check the LeptonX Theme, which is a part of ABP Commercial.

See the Theming document to learn about themes.

Installation

This theme is already installed when you create a new solution using the startup templates. If you are using any other template, you can install this theme by following the steps below:

{{if UI == "Blazor"}}

  • Complete the MVC Razor Pages Installation for the HttpApi.Host application first. If the solution is tiered/micro-service, complete the MVC steps for all MVC applications such as HttpApi.Host and if identity server is separated, install to the OpenIddict.

  • Add Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme package to your Blazor WebAssembly application with the following command:

    dotnet add package Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme --prerelease
    
  • Remove Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme reference from the project since it's not necessary after switching to LeptonX Lite.

  • Remove the old theme from the DependsOn attribute in your module class and add the AbpAspNetCoreComponentsWebAssemblyLeptonXLiteThemeModule type to the DependsOn attribute.

[DependsOn(
     // Remove BasicTheme module from DependsOn attribute
-    typeof(AbpAspNetCoreComponentsWebAssemblyBasicThemeModule),

    // Add LeptonX Lite module to DependsOn attribute
+    typeof(AbpAspNetCoreComponentsWebAssemblyLeptonXLiteThemeModule),
)]
  • Change startup App component with the LeptonX one.
// Make sure the 'App' comes from 'Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite' namespace.
builder.RootComponents.Add<App>("#ApplicationContainer");
  • Run the abp bundle command in your Blazor application folder.

{{end}}

{{if UI == "BlazorServer"}}

  • Complete the MVC Razor Pages Installation first. If the solution is tiered/micro-service, complete the MVC steps for all MVC applications such as HttpApi.Host and AuthServer.

  • Add Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme package to your Blazor server application with the following command:

    dotnet add package Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme --prerelease
    
  • Remove Volo.Abp.AspNetCore.Components.Server.BasicTheme reference from the project since it's not necessary after switching to LeptonX Lite.

  • Remove old theme from the DependsOn attribute in your module class and add the AbpAspNetCoreComponentsServerLeptonXLiteThemeModule type to the DependsOn attribute.

    [DependsOn(
        // Remove BasicTheme module from DependsOn attribute
    -    typeof(AbpAspNetCoreComponentsServerBasicThemeModule),
    
        // Add LeptonX Lite module to DependsOn attribute
    +    typeof(AbpAspNetCoreComponentsServerLeptonXLiteThemeModule)
    )]
    
  • Replace BlazorBasicThemeBundles with BlazorLeptonXLiteThemeBundles in AbpBundlingOptions:

    options.StyleBundles.Configure(
      // Remove following line
    - BlazorBasicThemeBundles.Styles.Global,
      // Add following line instead
    + BlazorLeptonXLiteThemeBundles.Styles.Global,
      bundle =>
      {
          bundle.AddFiles("/blazor-global-styles.css");
          //You can remove the following line if you don't use Blazor CSS isolation for components
          bundle.AddFiles("/MyProjectName.Blazor.styles.css");
      });
    
  • Update _Host.cshtml file. (located under Pages folder by default.)

    • Add following usings to Locate App and BlazorLeptonXLiteThemeBundles classes.

      @using Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite
      @using Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling
      
    • Then replace script & style bundles as following:

      // Remove following line
      - <abp-style-bundle name="@BlazorBasicThemeBundles.Styles.Global" />
      // Add following line instead
      + <abp-style-bundle name="@BlazorLeptonXLiteThemeBundles.Styles.Global" />
      
      // Remove following line
      - <abp-script-bundle name="@BlazorBasicThemeBundles.Scripts.Global" />
      // Add following line instead
      + <abp-script-bundle name="@BlazorLeptonXLiteThemeBundles.Scripts.Global" />
      

{{end}}


Customization

Toolbars

LeptonX Lite includes separeted toolbars for desktop & mobile. You can manage toolbars independently. Toolbar names can be accessible in the LeptonXLiteToolbars class.

  • LeptonXLiteToolbars.Main
  • LeptonXLiteToolbars.MainMobile
public async Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
{
    if (context.Toolbar.Name == LeptonXLiteToolbars.Main)
    {
        context.Toolbar.Items.Add(new ToolbarItem(typeof(MyDesktopComponent)));
    }

    if (context.Toolbar.Name == LeptonXLiteToolbars.MainMobile)
    {
        context.Toolbar.Items.Add(new ToolbarItem(typeof(MyMobileComponent)));
    }

    return Task.CompletedTask;
}

{{if UI == "BlazorServer"}}

You can visit the Toolbars Documentation for better understanding.

{{end}}