BlazorNova BlazorNova
BlazorNova BlazorNova
☰
☰ Menu
Getting Started
Installation
Project Setup
Source Generator
Core Concepts
Surface System
Color Palette
Fluent CSS API
Style Overrides
CSS Precedence
BlazorNova Classes
Layout
Flexbox & Grid
Spacing
Sizing
Typography
Backgrounds
Borders
Effects
Filters
Transitions & Transforms
Interactivity
Components
Forms
BnEditForm
FormState
Monitors
MenuBar
Horizontal
Vertical
Tabs
BnTab
Icons
Icon Gallery
Buttons
BnButton
Layout
BnStackPanel
BnDrawer
Grid
BnGrid
BnPagedGrid
Navigation
BnNavigator
Carousel
BnCarousel
Charts
BnChart
PDF Viewer
BnPdfViewer
Meet
BnVideoCall

Installation

BlazorNova is distributed as three NuGet packages. Install what your project needs, then reference BlazorNovaGenerator as a source generator so the build-time CSS generator can run.

NuGet Packages

  • BlazorNovaGenerator — the fluent CSS builder, source generator, theming primitives, and surface palette system. Required by everything.
  • BlazorNovaUI — the open-source Razor component library (inputs, surfaces, menus, modals, grids). Depends on BlazorNovaGenerator.
  • BlazorNovaComponents — paid add-on components (advanced data grid, paged grid, and more). Depends on both packages above.
xml
<ItemGroup>
  <!-- Core: required, referenced as a source generator -->
  <PackageReference Include="BlazorNovaGenerator" Version="x.x.x"
                    OutputItemType="Analyzer"
                    ReferenceOutputAssembly="true" />

  <!-- UI components: open-source -->
  <PackageReference Include="BlazorNovaUI" Version="x.x.x" />

  <!-- Paid components (optional) -->
  <PackageReference Include="BlazorNovaComponents" Version="x.x.x" />
</ItemGroup>

The Analyzer Reference

BlazorNovaGenerator must be referenced with OutputItemType="Analyzer" and ReferenceOutputAssembly="true". This tells the .NET build system to load the package as a Roslyn source generator, which is what scans your code and generates the CSS file at build time.

RCL / library projects do not need to generate CSS. The generator runs only in the final consuming application and automatically detects usages from all referenced component libraries. See Source Generator for details.

xml
<!-- App project: runs the generator, produces generated.css -->
<PackageReference Include="BlazorNovaGenerator" Version="x.x.x"
                  OutputItemType="Analyzer"
                  ReferenceOutputAssembly="true" />

<!-- RCL / library project: same reference, no CSS output needed -->
<PackageReference Include="BlazorNovaGenerator" Version="x.x.x"
                  OutputItemType="Analyzer"
                  ReferenceOutputAssembly="true" />
<!-- The consuming app's generator picks up this library's usages automatically. -->

dotnet CLI

bash
dotnet add package BlazorNovaGenerator
dotnet add package BlazorNovaUI
dotnet add package BlazorNovaComponents  # optional