htmxRazor
Server-rendered UI components for ASP.NET Core with first-class htmx integration.
Tag Helper Components
90+ server-rendered components across 11 categories. Buttons, forms, date/time pickers, data tables, kanban boards, navigation, overlays, feedback, and more.
htmx Integration
Every component supports hx-get, hx-post, hx-target, hx-swap, and all htmx attributes natively.
Design Tokens
Light and dark themes via CSS custom properties. Toggle with a single attribute or JavaScript call.
What's New in v2.1 — Advanced Inputs
A date/time picker family, a radial category picker, and Playwright E2E back in CI.
Radial Select
A rectangular trigger opens a circular pie of color- and icon-labeled category wedges. Picking a wedge repopulates a dropdown via an htmx cascade and auto-selects the first option. Fully keyboard-accessible as a menu.
Date Picker
Text input + popup calendar with server-rendered month navigation. Commits a hidden ISO yyyy-MM-dd value for model binding, with min/max bounds, configurable week start, and APG grid keyboard accessibility.
Time Picker
Text input + popup list of selectable times stepping by a configurable minute interval. Commits a hidden ISO HH:mm value with 12- or 24-hour display, and listbox keyboard navigation with type-ahead.
Date & Time Picker
A single DateTime control pairing the calendar with a time list. Commits a hidden ISO yyyy-MM-ddTHH:mm value once both date and time are set. Reuses the Date Picker calendar and Time Picker list.
Playwright E2E in CI
The end-to-end suite is re-enabled and stabilized — Chromium runs per-PR and a full browser matrix runs nightly, gating changes on real browser regression tests.
What's Next — the 2.X Roadmap
Three planned minor releases, each tracked as a GitHub milestone.
Playground & DX
Component Playground coverage for every form and action component, plus JetBrains plugin parity with the VS Code snippets.
Data & Visualization
SVG bar/line/area charts, expandable and tree table rows, and an optional virtualized table body.
A11y & i18n
WCAG 2.2 contrast audit, RTL support, localizable strings, and clearing the infrastructure-cleanup backlog.
Quick Start
1. Install the package
dotnet add package htmxRazor
2. Configure in Program.cs
builder.Services.AddhtmxRazor();
var app = builder.Build();
app.UsehtmxRazor();
app.MapRazorPages();
3. Register Tag Helpers
@addTagHelper *, htmxRazor
4. Use a component
<rhx-button rhx-variant="brand" hx-get="/api/data" hx-target="#result">
Load Data
</rhx-button>