![]() |
VOOZH | about |
dotnet add package RizzyUI --version 0.9.2-alpha
NuGet\Install-Package RizzyUI -Version 0.9.2-alpha
<PackageReference Include="RizzyUI" Version="0.9.2-alpha" />
<PackageVersion Include="RizzyUI" Version="0.9.2-alpha" />Directory.Packages.props
<PackageReference Include="RizzyUI" />Project file
paket add RizzyUI --version 0.9.2-alpha
#r "nuget: RizzyUI, 0.9.2-alpha"
#:package RizzyUI@0.9.2-alpha
#addin nuget:?package=RizzyUI&version=0.9.2-alpha&prereleaseInstall as a Cake Addin
#tool nuget:?package=RizzyUI&version=0.9.2-alpha&prereleaseInstall as a Cake Tool
<img src="https://jalexsocial.github.io/Rizzy/media/rizzy-logo.png?cache=bust3" width="600"/>
<div align="center">
</div>
Composable SSR UI for ASP.NET Core - no WASM runtime, no SignalR circuit, no SPA rewrite.
If you like MVC or Razor Pages because they’re explicit, stateless, and easy to debug, RizzyUI keeps that model and modernizes the view layer:
RizzyUI runs in the normal ASP.NET Core request/response lifecycle. You can View Source, set breakpoints, and reason about what happened.
For detailed documentation and examples, please visit the Rizzy Documentation Site. You can find a demo of all components along with documentation of RizzyUI at the RizzyUI Component Documentation site.
RizzyUI is a good fit if you want component reuse without switching to a SPA.
RizzyUI is not a new platform. It’s a set of components + conventions built on common web primitives.
You install:
dotnet add package RizzyUI
npm install @jalexsocial/rizzyui
npm install -D tailwindcss @tailwindcss/cli
In Program.cs:
using RizzyUI;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRizzyUI(config =>
{
config.DefaultTheme = RzTheme.ArcticTheme;
});
var app = builder.Build();
app.UseRizzy();
app.Run();
In App.razor (or your main layout):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="app.css" />
<RzHeadOutlet />
<RzThemeProvider />
</head>
<body>
<Routes />
</body>
</html>
RizzyUI isn’t asking you to replatform. It’s a better way to compose views.
Partials tend to leak styling and force manual ID management for JS.
<div class="card @ViewData["Classes"]" id="card-@Model.Id">
<h3>@Model.Name</h3>
<button onclick="toggleDetails(@Model.Id)">Toggle</button>
<div id="details-@Model.Id" style="display:none;">...</div>
</div>
You get encapsulated markup, typed parameters, and scoped behavior via Alpine.
// UserCard.razor
<RzCard class="w-[350px]">
<CardHeader>
<CardTitle>@User.Name</CardTitle>
</CardHeader>
<CardContent>
<div x-data="{ open: false }">
<RzButton x-on:click="open = !open" Variant="ThemeVariant.Outline">
Toggle Details
</RzButton>
<div x-show="open" x-collapse>
<p>@User.Email</p>
</div>
</div>
</CardContent>
</RzCard>
@code {
[Parameter] public UserData User { get; set; } = default!;
}
Inline Alpine strings (x-on:click="...") are great until they aren’t. For more complex behavior, RizzyUI supports a code-behind approach:
1) Component (Counter.razor)
@attribute [RzAlpineCodeBehind]
<RzAlpineComponent For="this" Name="counter" AsChild>
<div class="flex gap-4">
<span x-text="count"></span>
<button x-on:click="increment">Increment</button>
</div>
</RzAlpineComponent>
2) Logic (Counter.razor.js)
export default () => ({
count: 0,
increment() {
this.count++;
}
});
RizzyUI is intentionally “boring tech,” but there are still costs:
RizzyUI is licensed under the .
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.2-alpha | 46 | 6/9/2026 |
| 0.9.1-alpha | 46 | 6/9/2026 |
| 0.9.0-alpha | 94 | 2/7/2026 |
| 0.8.6-alpha | 229 | 5/26/2025 |
| 0.8.5-alpha | 169 | 5/23/2025 |
| 0.8.0-alpha | 211 | 5/6/2025 |
| 0.7.0-alpha | 261 | 4/20/2025 |
| 0.6.2-alpha | 537 | 3/25/2025 |
| 0.6.1-alpha | 238 | 3/10/2025 |
| 0.6.0-alpha | 306 | 3/6/2025 |
| 0.5.0-alpha | 181 | 3/2/2025 |