ShellUI.Components
0.3.0-rc.1
dotnet add package ShellUI.Components --version 0.3.0-rc.1
NuGet\Install-Package ShellUI.Components -Version 0.3.0-rc.1
<PackageReference Include="ShellUI.Components" Version="0.3.0-rc.1" />
<PackageVersion Include="ShellUI.Components" Version="0.3.0-rc.1" />
<PackageReference Include="ShellUI.Components" />
paket add ShellUI.Components --version 0.3.0-rc.1
#r "nuget: ShellUI.Components, 0.3.0-rc.1"
#:package ShellUI.Components@0.3.0-rc.1
#addin nuget:?package=ShellUI.Components&version=0.3.0-rc.1&prerelease
#tool nuget:?package=ShellUI.Components&version=0.3.0-rc.1&prerelease
ShellUI Components
Beautiful, accessible Blazor components inspired by shadcn/ui. A CLI-first component library with Tailwind CSS styling.
Features
- 🎨 68 Production-ready installable components - Button, Input, Card, Dialog, Sonner, Table, Charts, and more (sub-components and variants ship as auto-installed dependencies)
- 🎯 CLI-first approach - Install components individually with
dotnet shellui add - 🎨 Tailwind CSS styling - Utility-first CSS with dark mode support
- ♿ Accessible by default - Built with accessibility in mind
- 📱 Responsive design - Mobile-first approach
- 🔧 Fully customizable - Copy components to your project for full control
⚠️ Read this first
This package ships the component DLLs, JS interop, and helpers (Shell.Cn). It does not produce styled components on its own. Tailwind v4 builds CSS by scanning .razor source files at compile time — the component source lives inside this DLL, so Tailwind never sees the utility classes used inside ShellUI components.
The supported way to get styled components is the ShellUI.CLI global tool:
dotnet tool install -g ShellUI.CLI
shellui init # sets up Tailwind, theme CSS, patches App.razor
shellui add button card dialog # copies component source so Tailwind can scan it
shellui add copies the .razor files into your project, where Tailwind picks up the classes. From then on, components render styled.
A future release (v0.4.x) will support installing this NuGet package by itself — by shipping a pre-compiled stylesheet — without needing the CLI for setup. Until then, install the CLI.
When is this NuGet package useful on its own?
- You're building a library that re-exports ShellUI components or extends them with custom variants
- You want to reference
Shell.Cn(the class-name combiner) from your own helpers - You want the JS interop registration (
shellui.js) provided as a_content/ShellUI.Components/static asset
Otherwise: start with the CLI.
CLI quick start
dotnet tool install -g ShellUI.CLI
shellui init # one-time
shellui add button # any time you want more components
shellui list # see what's available
shellui init automatically:
- Downloads Tailwind CSS CLI (standalone, no Node.js required) or uses your existing npm install
- Writes the full default theme to
wwwroot/input.css(:root/.dark/@theme inlineblocks) - Patches
Components/App.razor(orwwwroot/index.htmlfor WASM) with@rendermode, a theme-bootstrap<script>to avoid FOUC, and a<script src="shellui.js">tag for the JS interop - Sets up MSBuild integration so Tailwind rebuilds on every
dotnet build
shellui add <name> automatically:
- Resolves and installs all sub-component dependencies
- Runs
dotnet add packagefor any required NuGet packages (e.g.Blazor-ApexChartsfor charts,System.Linq.Dynamic.CoreforDataTable) - Auto-links any CSS assets (e.g.
wwwroot/css/charts.css) into yourApp.razor - Suggests close matches if you mistype a component name
Using components
After shellui init + shellui add, components are in your project source:
@using YourProject.Components.UI
<Button Variant="ButtonVariant.Default">Click me</Button>
<Card>
<CardHeader>
<CardTitle>Hello World</CardTitle>
</CardHeader>
<CardContent>
<p>This is a card component.</p>
</CardContent>
</Card>
Available Components
Form Components
- Button - Various variants and sizes
- Input - Text input with validation
- Textarea - Multi-line text input
- Select - Dropdown selection
- Checkbox - Checkbox input
- Switch - Toggle switch
- RadioGroup - Radio button groups
- Slider - Range slider
- Combobox - Searchable dropdown
- DatePicker - Date selection
- TimePicker - Time selection
- DateRangePicker - Date range selection
- InputOTP - One-time password input
- Form - Form wrapper with validation
Layout Components
- Card - Content container
- Dialog - Modal dialog
- Sheet - Side panel
- Drawer - Mobile drawer
- Popover - Floating content
- Tooltip - Hover tooltip
- Separator - Visual divider
- ScrollArea - Custom scrollable area
- Resizable - Resizable panels
- Collapsible - Collapsible content
Navigation Components
- Navbar - Top navigation bar
- Sidebar - Side navigation
- NavigationMenu - Navigation menu
- Menubar - Menu bar
- Breadcrumb - Breadcrumb navigation
- Pagination - Page navigation
- Tabs - Tab navigation
Data Display
- Table - Data table
- Badge - Status badges
- Avatar - User avatars
- Alert - Alert messages
- Toast - Toast notifications
- Skeleton - Loading placeholders
- Progress - Progress indicators
Interactive Components
- Dropdown - Dropdown menu
- Accordion - Collapsible sections
- Toggle - Toggle button
- ThemeToggle - Dark/light mode toggle
Bootstrap Compatibility
ShellUI components work alongside Bootstrap. You can:
- Keep both - ShellUI and Bootstrap can coexist
- Remove Bootstrap - Delete Bootstrap references if you prefer Tailwind-only
- Gradual migration - Use ShellUI for new components, keep Bootstrap for existing ones
Customization
🎨 Theme Customization
Easily customize themes with tweakcn:
- Design your perfect theme on tweakcn
- Copy the generated CSS variables
- Paste into
wwwroot/input.css - All ShellUI components update automatically!
Custom Fonts: Add Google Fonts links and update --font-* variables in your CSS.
Component Customization
Components are copied to your project, giving you full control:
# Components are installed to Components/UI/
Components/
UI/
Button.razor # Edit directly!
Input.razor # Customize as needed
Card.razor # Full ownership
# ... other components
Modify any component to match your design system perfectly!
Documentation
Contributing
We welcome contributions! Please see our Contributing Guide.
License
MIT License - see LICENSE for details.
Support
- 📖 Documentation
- 🐛 Issues
- 💬 Discussions
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Blazor-ApexCharts (>= 6.0.2)
- Microsoft.AspNetCore.Components.Web (>= 9.0.6)
- System.Linq.Dynamic.Core (>= 1.7.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0-rc.1 | 45 | 6/18/2026 |
| 0.3.0-alpha.3 | 49 | 6/3/2026 |
| 0.3.0-alpha.2 | 81 | 2/21/2026 |
| 0.3.0-alpha.1 | 64 | 2/17/2026 |
| 0.2.1 | 114 | 2/22/2026 |
| 0.2.0 | 116 | 2/8/2026 |
| 0.1.1 | 118 | 1/17/2026 |
| 0.1.0 | 114 | 1/16/2026 |
| 0.0.3 | 377 | 11/30/2025 |