Thanks for your interest in improving Flare! This guide covers everything you need to get a change merged.
- .NET 10 SDK
- A recent IDE (Visual Studio 2022/2026, Rider, or VS Code with the C#/Razor extensions)
The repository builds from a single solution:
dotnet restore Flare.slnx
dotnet build Flare.slnx -c Release
dotnet test Flare.slnx -c ReleaseRun the component gallery locally to see your change:
dotnet run --project samples/Flare.Gallery- Fork the repo and create a short-lived branch off
main(e.g.feat/slider-ticks,fix/select-scroll). - Make your change with tests.
- Make sure
dotnet buildanddotnet testpass, and that CI is green on your PR. - Open a pull request against
main. PRs are squash-merged, so the PR title becomes the commit - please use Conventional Commits style (feat(select): ...,fix(datagrid): ...,docs: ...).
main is always releasable; releases are cut by tagging vX.Y.Z (see below).
Flare components follow a strict, unified style so the library stays consistent. Before adding or changing a component, read docs/en/component-conventions.md. In short:
- CSS lives in the global bundle
src/Flare.Components/wwwroot/css/*.css(not scoped), driven by semantic design tokens; minimal JavaScript. - Public API (types,
[Parameter]s, methods, enums) must carry meaningful XML documentation - it drives the generated API docs and is enforced as a build error. - ASCII only in code, comments and XML docs (no smart quotes, arrows, em-dashes or emoji).
- Gallery first: every component has a demo page in
samples/Flare.Gallery; extend it when you change a component so the behavior can be reviewed visually. - Localization: user-facing strings in the Gallery are localized (EN + RU resources) - never hardcode them.
Versioning is driven by MinVer from git tags:
- Stable: tag
vX.Y.Zonmain-> the release workflow packs and pushes all packages to NuGet. - Pre-release: tag
vX.Y.Z-preview.N(or-rc.N) -> published as a NuGet prerelease. - Gallery image: tag
gallery-vX.Y.Z-> builds and pushes the Docker image (versioned independently of the packages).
Use the issue templates. For security issues, see SECURITY.md - please do not open a public issue.
By contributing, you agree that your contributions are licensed under the MIT License.