Thank you for your interest in contributing to Blazor Blueprint UI! 🎉 We welcome all contributions — whether it's bug fixes, new features, documentation improvements, or tooling enhancements.
- Getting Started
- Branching Strategy
- Submitting a Pull Request
- Commit Messages
- Pull Request Checklist
- Code Style
- Reporting Bugs
- Suggesting Features
-
Fork this repository to your own GitHub account
-
Clone your fork locally:
git clone https://github.com/<your-username>/ui.git cd ui
-
Set the upstream remote so you can pull in future changes:
git remote add upstream https://github.com/blazorblueprintui/ui.git
-
Download the Tailwind CSS standalone CLI:
Blazor Blueprint uses the Tailwind CSS standalone CLI — no Node.js or npm required. The binary is not included in the repository and must be downloaded before your first build.
Run the appropriate script from the
tools/directory:Linux / macOS:
cd tools ./install.shWindows (PowerShell):
cd tools .\install.ps1
The MSBuild target (
tools/tailwind.targets) is imported byBlazorBlueprint.Componentsand runs automatically on every build — no manual Tailwind invocation needed. -
Install dependencies and verify the project builds:
dotnet build
⚠️ Important: Please do not targetmainwith your pull requests.mainreflects the latest released version of the NuGet package only.
| Branch | Purpose |
|---|---|
main |
Released, stable code — mirrors the published NuGet package |
develop |
Active development — all features and fixes accumulate here |
feature/* |
Individual feature branches, branched off develop |
fix/* |
Bug fix branches, branched off develop |
- Always branch off
develop:git fetch upstream git checkout -b feature/my-new-feature upstream/develop
- Always target
developas the base branch when opening a pull request mainis only updated by maintainers when cutting a new release
- Ensure your branch is based off the latest
develop:git fetch upstream git rebase upstream/develop
- Push your branch to your fork:
git push origin feature/my-new-feature
- Open a pull request from your fork's branch targeting
blazorblueprintui/ui:develop - Fill in the pull request template completely
- Wait for a review — we aim to respond within a few days
We follow the Conventional Commits specification:
<type>(scope): short description
[optional body]
Types:
feat— a new featurefix— a bug fixdocs— documentation changes onlyrefactor— code change that neither fixes a bug nor adds a featurestyle— formatting, missing semicolons, etc.test— adding or updating testschore— build process or tooling changes
Examples:
feat(Combobox): add SearchQuery parameter for async filtering
fix(InputOTP): implement paste support via JS interop
docs: add CONTRIBUTING.md
Before submitting, please ensure:
- Your branch is based off
develop(notmain) - Your PR targets the
developbranch - The project builds without errors:
dotnet build - You have tested your changes on Blazor Server and/or WebAssembly
- Accessibility and keyboard navigation are unaffected (or improved)
- Dark mode still works correctly
- You have updated documentation/demo pages if adding a new feature
- Your commit messages follow the Conventional Commits format
- Follow the existing code patterns and conventions in the codebase
- Use meaningful variable and parameter names
- Add XML doc comments (
/// <summary>) to public parameters and methods - Keep components focused — one responsibility per component
Please open an issue and include:
- A clear description of the bug
- Steps to reproduce
- Expected vs actual behaviour
- Blazor hosting model (Server / WebAssembly / Hybrid)
- Browser and OS
- A minimal reproduction if possible (link to a StackBlitz, GitHub repo, etc.)
We love feature suggestions! Open an issue with:
- A description of the problem you're trying to solve
- Your proposed solution or API design
- Any relevant examples from other component libraries
Every contribution, no matter how small, helps make Blazor Blueprint UI better for everyone.