VOOZH about

URL: https://www.nuget.org/packages/soenneker.bradix.suite/

⇱ NuGet Gallery | Soenneker.Bradix.Suite 4.0.161




👁 Image
Soenneker.Bradix.Suite 4.0.161

Prefix Reserved
dotnet add package Soenneker.Bradix.Suite --version 4.0.161
 
 
NuGet\Install-Package Soenneker.Bradix.Suite -Version 4.0.161
 
 
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Soenneker.Bradix.Suite" Version="4.0.161" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.Bradix.Suite" Version="4.0.161" />
 
Directory.Packages.props
<PackageReference Include="Soenneker.Bradix.Suite" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Soenneker.Bradix.Suite --version 4.0.161
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Soenneker.Bradix.Suite, 4.0.161"
 
 
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Soenneker.Bradix.Suite@4.0.161
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Soenneker.Bradix.Suite&version=4.0.161
 
Install as a Cake Addin
#tool nuget:?package=Soenneker.Bradix.Suite&version=4.0.161
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image
👁 alternate text is missing from this package README image

👁 alternate text is missing from this package README image
Soenneker.Bradix.Suite

Radix-inspired UI primitives for Blazor.

Soenneker.Bradix.Suite is the behavioral foundation for building serious Blazor UI. It gives product teams a Radix-style primitive layer: dialogs, menus, popovers, selects, tabs, tooltips, scroll areas, form primitives, focus management, layered interactions, and the browser behavior that usually becomes scattered application code.

Bradix is intentionally unstyled. It handles structure, state, accessibility-minded interaction patterns, and JavaScript interop while leaving the visual system to your app, design system, or a higher-level component library.

Use Bradix when you want:

  • primitives instead of opinionated components
  • accessible interaction patterns without rewriting browser edge cases
  • full control over styling, tokens, markup, and design-system wrappers
  • reusable behavior that can support many product components
  • one Blazor package instead of a mix of hand-rolled overlay, focus, and menu logic

Bradix is not a theme and not a high-level application component kit. It is the layer you build on when consistency, accessibility, and long-term maintainability matter.

Why Bradix

Most UI libraries start with finished components. Bradix starts one layer lower, where the hard behavior lives.

  • Composable parts: build with root, trigger, content, item, viewport, overlay, portal, and indicator pieces instead of monolithic controls.
  • Design-system freedom: apply your own CSS, Tailwind utilities, tokens, or component wrappers without fighting built-in styles.
  • Hard behavior included: focus scopes, dismissable layers, portals, positioning, roving focus, keyboard interaction, scroll locking, and form participation are handled by the suite.
  • Blazor-native setup: install one NuGet package, register services, and use the primitives directly in Razor.
  • Broad primitive coverage: overlays, disclosure, navigation, menus, forms, input controls, and infrastructure primitives live together in one suite.

What Ships Today

Bradix ships as a single package with the primitives commonly needed to build polished application UI.

Core utilities

AccessibleIcon, AspectRatio, Avatar, Label, Portal, Presence, Separator, Slot, VisuallyHidden

Disclosure and overlays

Accordion, AlertDialog, Collapsible, Dialog, HoverCard, Popover, Toast, Tooltip

Forms and input

Checkbox, Form, OneTimePasswordField, Progress, RadioGroup, Select, Slider, Switch, Toggle, ToggleGroup

Navigation and menus

ContextMenu, DropdownMenu, Menubar, Menu, NavigationMenu, ScrollArea, Tabs, Toolbar

Infrastructure primitives

Collection, DismissableLayer, FocusGuards, FocusScope, Popper, RemoveScroll

See the primitives in context:

Open the demo site

Installation

dotnet add package Soenneker.Bradix.Suite

Register Bradix in your Blazor app:

using Soenneker.Bradix;

builder.Services.AddBradixSuiteAsScoped();

Import the namespace once:

@using Soenneker.Bradix

That is the only required setup on the .NET side.

You do not need to install a separate npm package or manually wire script tags. The suite ships its own browser module as part of the package.

Quick Start

Bradix uses a composition model. Instead of a monolithic DialogComponent, you compose a dialog out of focused primitives with clear responsibilities.

@page "/example"

<BradixDialog Open="@_open" OpenChanged="HandleOpenChanged">
 <BradixDialogTrigger Class="btn btn-primary">
 Edit profile
 </BradixDialogTrigger>

 <BradixDialogPortal>
 <BradixDialogOverlay Class="dialog-overlay" />

 <BradixDialogContent Class="dialog-content">
 <BradixDialogTitle>Edit profile</BradixDialogTitle>
 <BradixDialogDescription>
 Make changes to your profile and save when you are done.
 </BradixDialogDescription>

 <label for="name">Name</label>
 <input id="name" @bind="_name" />

 <button type="button" @onclick="Close">
 Save
 </button>
 </BradixDialogContent>
 </BradixDialogPortal>
</BradixDialog>

@code {
 private bool _open;
 private string _name = "Pedro Duarte";

 private Task HandleOpenChanged(bool open)
 {
 _open = open;
 return Task.CompletedTask;
 }

 private Task Close()
 {
 _open = false;
 return Task.CompletedTask;
 }
}

That example shows the design philosophy:

  • state can be controlled from your component
  • primitives stay narrowly focused
  • markup stays explicit
  • styling stays entirely in your hands

Quality Bar

Bradix is backed by more than static samples:

  • a dedicated demo application for every shipped primitive
  • bUnit component tests that exercise the primitives at the Razor/component boundary
  • Playwright end-to-end coverage against a running demo app
  • test coverage that touches essentially every shipped component and primitive
  • CI packaging and verification workflows

Is Bradix A Port Of Radix UI?

No. Bradix is Radix-inspired, not an official Radix port and not a perfect drop-in parity promise with the React packages.

The goal is to bring the same philosophy to Blazor:

  • small composable primitives
  • strong behavioral foundations
  • accessibility-minded interaction patterns
  • design-system freedom
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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Soenneker.Bradix.Suite:

Package Downloads
Soenneker.Quark.Suite

Shadcn-powered Blazor UI, refined and modular.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.161 0 6/19/2026
4.0.160 0 6/19/2026
4.0.159 5 6/18/2026
4.0.158 54 6/18/2026
4.0.157 345 6/17/2026
4.0.156 38 6/17/2026
4.0.155 42 6/17/2026
4.0.154 67 6/17/2026
4.0.153 1,962 6/11/2026
4.0.152 197 6/11/2026
4.0.149 181 6/10/2026
4.0.148 284 6/10/2026
4.0.147 90 6/10/2026
4.0.145 194 6/10/2026
4.0.144 92 6/9/2026
4.0.143 1,595 6/7/2026
4.0.141 99 6/7/2026
4.0.140 102 6/7/2026
4.0.139 99 6/6/2026
4.0.138 95 6/6/2026
Loading failed