PureBlazor.Components
1.0.0
Prefix Reserved
See the version list below for details.
dotnet add package PureBlazor.Components --version 1.0.0
NuGet\Install-Package PureBlazor.Components -Version 1.0.0
<PackageReference Include="PureBlazor.Components" Version="1.0.0" />
<PackageVersion Include="PureBlazor.Components" Version="1.0.0" />
<PackageReference Include="PureBlazor.Components" />
paket add PureBlazor.Components --version 1.0.0
#r "nuget: PureBlazor.Components, 1.0.0"
#:package PureBlazor.Components@1.0.0
#addin nuget:?package=PureBlazor.Components&version=1.0.0
#tool nuget:?package=PureBlazor.Components&version=1.0.0
PureBlazor Components
This component library is pre-release software.
These components are native Blazor UI components that are free to use for any Blazor project.
Available components
- Button
- Sheet
- Input
- Skip to content
Getting started
Installation
Install the PureBlazor.Components
NuGet package to your Client project.
dotnet add package PureBlazor.Components
Add to your GlobalUsings.cs
file in the Client project:
global using static PureBlazor.Components.Variants;
global using static PureBlazor.Components.Sizes;
global using PureBlazor.Components;
Setup Tailwind in your Blazor project folder by adding a styles.css
and package.json
file that looks something like this:
{
"scripts": {
"build": "npx @tailwindcss/cli -i styles.css -o ./wwwroot/app.css",
"watch": "npx @tailwindcss/cli -i styles.css -o ./wwwroot/app.css --watch"
},
"dependencies": {
"@tailwindcss/cli": "^4.1.11",
"tailwindcss": "^4.1.11"
}
}
Example usage
<Button Variant="Secondary" Size="Sm" @onclick="EnterEditMode">Edit Observer</Button>
<Button Variant="Primary" Size="Sm" @onclick="CheckHealthNowAsync">Check now</Button>
Theming
This library depends on Tailwind. Use CSS variables to easily customize the theme of the components.
If you are familiar with ShadCN, you will find the theming approach similar, as it is heavily inspired by it, if not outright copied.
- Set up Tailwind in your Blazor project.
- Add the below CSS variables to your tailwind input CSS file (e.g.,
site.css
orapp.css
). - Adjust the CSS variables to match your design requirements.
@import "tailwindcss";
@custom-variant dark (&:where(.dark, .dark *));
:root {
--background: hsl(0 0% 100%);
--foreground: hsl(240 10% 3.9%);
--card: hsl(0 0% 100%);
--card-foreground: hsl(240 10% 3.9%);
--popover: hsl(0 0% 100%);
--popover-foreground: hsl(240 10% 3.9%);
--primary: hsl(240 5.9% 10%);
--primary-foreground: hsl(0 0% 98%);
--secondary: hsl(240 4.8% 95.9%);
--secondary-foreground: hsl(240 5.9% 10%);
--muted: hsl(240 4.8% 95.9%);
--muted-foreground: hsl(240 3.8% 46.1%);
--accent: hsl(240 4.8% 95.9%);
--accent-foreground: hsl(240 5.9% 10%);
--destructive: hsl(2.6 86.9% 41.8%);
--destructive-foreground: hsl(0 0% 98%);
--border: hsl(240 5.9% 90%);
--input: hsl(240 5.9% 90%);
--ring: hsl(240 10% 3.9%);
--chart-1: hsl(12 76% 61%);
--chart-2: hsl(173 58% 39%);
--chart-3: hsl(197 37% 24%);
--chart-4: hsl(43 74% 66%);
--chart-5: hsl(27 87% 67%);
--radius: 0.6rem;
--sidebar-background: hsl(0 0% 98%);
--sidebar-foreground: hsl(240 5.3% 26.1%);
--sidebar-primary: hsl(240 5.9% 10%);
--sidebar-primary-foreground: hsl(0 0% 98%);
--sidebar-accent: hsl(240 4.8% 95.9%);
--sidebar-accent-foreground: hsl(240 5.9% 10%);
--sidebar-border: hsl(220 13% 91%);
--sidebar-ring: hsl(217.2 91.2% 59.8%);
}
.dark {
--background: hsl(240 10% 3.9%);
--foreground: hsl(0 0% 98%);
--card: hsl(240 10% 3.9%);
--card-foreground: hsl(0 0% 98%);
--popover: hsl(240 10% 3.9%);
--popover-foreground: hsl(0 0% 98%);
--primary: hsl(0 0% 98%);
--primary-foreground: hsl(240 5.9% 10%);
--secondary: hsl(240 3.7% 15.9%);
--secondary-foreground: hsl(0 0% 98%);
--muted: hsl(240 3.7% 15.9%);
--muted-foreground: hsl(240 5% 64.9%);
--accent: hsl(240 3.7% 15.9%);
--accent-foreground: hsl(0 0% 98%);
--destructive: hsl(0 62.8% 30.6%);
--destructive-foreground: hsl(0 0% 98%);
--border: hsl(240 3.7% 15.9%);
--input: hsl(240 3.7% 15.9%);
--ring: hsl(240 4.9% 83.9%);
--chart-1: hsl(220 70% 50%);
--chart-2: hsl(160 60% 45%);
--chart-3: hsl(30 80% 55%);
--chart-4: hsl(280 65% 60%);
--chart-5: hsl(340 75% 55%);
--sidebar-background: hsl(240 5.9% 10%);
--sidebar-foreground: hsl(240 4.8% 95.9%);
--sidebar-primary: hsl(224.3 76.3% 48%);
--sidebar-primary-foreground: hsl(0 0% 100%);
--sidebar-accent: hsl(240 3.7% 15.9%);
--sidebar-accent-foreground: hsl(240 4.8% 95.9%);
--sidebar-border: hsl(240 3.7% 15.9%);
--sidebar-ring: hsl(217.2 91.2% 59.8%);
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--color-sidebar-ring: var(--sidebar-ring);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar: var(--sidebar-background);
--animate-accordion-down: accordion-down 0.2s ease-out;
--animate-accordion-up: accordion-up 0.2s ease-out;
}
FAQ
Why not use another xx
library?
- This library is built to be lightweight and follow a style convention similar to ShadCN.
- For more complex components, we recommend using other libraries like Blazorise or MudBlazor.
Is this library free to use?
- Yes! This library is free to use for any Blazor project.
Can I use this library with Blazor WebAssembly / Blazor Server / InteractiveAuto / MAUI?
- Yes! This library supports all Blazor hosting models.
Can you add a specific component or feature?
- We are always open to suggestions, but we cannot guarantee that we will implement them.
How do I report a bug?
- Please, open an issue on the GitHub repository.
- Please, include as much information as possible, including what library version and browser you are using, and any steps to reproduce the issue.
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 is compatible. 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. |
-
net10.0
- Microsoft.AspNetCore.Components.Web (>= 10.0.0-preview.5.25277.114)
- TailwindMerge.NET (>= 1.0.0)
-
net9.0
- Microsoft.AspNetCore.Components.Web (>= 9.0.7)
- TailwindMerge.NET (>= 1.0.0)
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 |
---|---|---|
1.0.1-dev1 | 82 | 7/31/2025 |
1.0.0 | 84 | 7/31/2025 |
0.60.0 | 120 | 7/9/2025 |
0.50.0 | 143 | 7/9/2025 |
0.41.0 | 133 | 12/18/2024 |
0.40.0-rc2 | 68 | 11/2/2024 |
0.32.8 | 137 | 9/20/2024 |
0.32.0 | 148 | 9/18/2024 |
0.31.0 | 234 | 5/30/2024 |
0.30.0 | 144 | 5/25/2024 |
0.27.0 | 152 | 5/6/2024 |
0.26.0 | 145 | 5/5/2024 |
0.25.0 | 194 | 5/5/2024 |
0.24.0 | 142 | 5/5/2024 |
0.23.0 | 157 | 5/4/2024 |
0.22.0 | 131 | 5/3/2024 |
0.19.0 | 145 | 4/29/2024 |
0.18.0 | 223 | 4/26/2024 |
0.17.0 | 134 | 4/26/2024 |
0.16.0 | 143 | 4/26/2024 |
0.15.0 | 144 | 4/26/2024 |
0.14.0 | 141 | 4/26/2024 |
0.13.0 | 151 | 4/26/2024 |
0.12.0 | 143 | 4/26/2024 |
0.11.0 | 143 | 4/26/2024 |
0.10.0-preview1 | 136 | 4/9/2024 |
0.9.2 | 134 | 4/4/2024 |
0.9.1 | 131 | 4/4/2024 |
0.9.0 | 130 | 4/4/2024 |
0.8.0 | 137 | 4/4/2024 |
0.7.0 | 148 | 4/4/2024 |
0.6.0 | 137 | 4/3/2024 |
0.5.0 | 163 | 4/2/2024 |
0.4.0 | 129 | 4/2/2024 |
0.3.0 | 155 | 4/2/2024 |
0.2.0 | 149 | 4/1/2024 |
0.2.0-preview | 116 | 4/26/2024 |
0.1.0 | 140 | 3/21/2024 |
0.1.0-alpha.1 | 120 | 2/2/2024 |
0.0.9 | 143 | 3/21/2024 |
Simplified v1