Installation

NeoUI is distributed as NuGet packages. One install gives you 100+ components, a complete icon library, and pre-built CSS — zero build tooling required.

Project Template — Fastest Way to Start

NEW

For new Blazor projects, the NeoUI template is the quickest path — one command scaffolds a complete app with sidebar layout, theme switcher, dark mode toggle, Spotlight command palette, and Tailwind CSS v4 pre-wired:

Terminal
$ dotnet new install NeoUI.Blazor.Templates && dotnet new neoui -n MyApp

Supports Server, WebAssembly, and Auto interactivity modes. See Template docs for all options and examples.

NeoUI.Blazor — Styled Components

The primary package. Includes everything you need to build a full application:

Terminal
$ dotnet add package NeoUI.Blazor --version 3.6.7
  • 80+ production-ready styled components matching the shadcn/ui design system
  • Pre-built CSS included — no Tailwind CSS setup required
  • NeoUI.Blazor.Primitives — headless accessibility layer (transitive)
  • NeoUI.Icons.Lucide, NeoUI.Icons.Heroicons, NeoUI.Icons.Feather (transitive)
  • Compatible with all Blazor hosting models: Server, WebAssembly, and Auto

NeoUI.Blazor.Primitives — Headless Layer

Install this package separately only if you want to use headless primitives without the styled components — for example, when building a fully custom design system from scratch. It is already included as a transitive dependency of NeoUI.Blazor.

Terminal
$ dotnet add package NeoUI.Blazor.Primitives --version 3.6.7

The primitives are fully headless and unstyled. They handle all behavior, accessibility (WCAG 2.1 AA), keyboard navigation, and ARIA attributes — you provide the styling. Available primitives include Accordion, Checkbox, Collapsible, Dialog, Dropdown Menu, Hover Card, Label, Popover, Radio Group, Select, Sheet, Switch, Table, Tabs, and Tooltip.

Icon Libraries

All three icon packages are included transitively with NeoUI.Blazor. Install them explicitly only if you're using the primitives package standalone.

NeoUI.Icons.Lucide
1,640 icons

Stroke-based, consistent icons. 24×24 viewBox, 2px stroke. ISC licensed. Ideal for modern, clean interfaces.

Terminal
$ dotnet add package NeoUI.Icons.Lucide --version 3.6.7
NeoUI.Icons.Heroicons
1,288 icons

By Tailwind Labs. Four variants: Outline (24×24), Solid (24×24), Mini (20×20), Micro (16×16). MIT licensed.

Terminal
$ dotnet add package NeoUI.Icons.Heroicons --version 3.6.7
NeoUI.Icons.Feather
286 icons

Minimalist stroke-based icons. 24×24 viewBox, 2px stroke. MIT licensed. Perfect for lightweight, simple projects.

Terminal
$ dotnet add package NeoUI.Icons.Feather --version 3.6.7

_Imports.razor

Add these two lines to your _Imports.razor. They cover every styled component and service for the vast majority of projects:

RZ_Imports.razor
@using NeoUI.Blazor
@using NeoUI.Blazor.Services

Optional: Lucide Icons

Highly recommended

RZ
@using NeoUI.Icons.Lucide      @* 1,640 icons — stroke-based *@

Lucide provides 1,640+ consistent stroke-based icons used throughout NeoUI itself. Heroicons and Feather are available as alternative icon packages.

Optional: Primitives (headless custom styling only)

RZ
@using NeoUI.Blazor.Primitives
@using NeoUI.Blazor.Primitives.Services

Only needed when you are building your own components directly on the headless Primitives layer rather than using the ready-made styled components from NeoUI.Blazor.

Using Icon Components

Each icon library exposes a single component you use throughout your app:

RZ
@* Lucide *@
<LucideIcon Name="circle-check" Size="20" Class="text-green-500" />

@* Heroicons (variant: outline | solid | mini | micro) *@
<HeroIcon Name="check-circle" Variant="HeroIconVariant.Solid" Size="20" />

@* Feather *@
<FeatherIcon Name="check-circle" Size="20" />

Icon names follow kebab-case. Browse all available icons at lucide.dev, heroicons.com, and feathericons.com.

Next Steps

Reconnecting...

Attempting to rejoin the server

Connection Lost

Retrying in seconds

Connection Failed

Failed to rejoin the server.
Please retry or reload the page.

Session Paused

The session has been paused by the server

Resume Failed

Failed to resume the session.
Please reload the page.