ShadBlazor.FreeIcon
1.0.0
dotnet add package ShadBlazor.FreeIcon --version 1.0.0
NuGet\Install-Package ShadBlazor.FreeIcon -Version 1.0.0
<PackageReference Include="ShadBlazor.FreeIcon" Version="1.0.0" />
<PackageVersion Include="ShadBlazor.FreeIcon" Version="1.0.0" />
<PackageReference Include="ShadBlazor.FreeIcon" />
paket add ShadBlazor.FreeIcon --version 1.0.0
#r "nuget: ShadBlazor.FreeIcon, 1.0.0"
#:package ShadBlazor.FreeIcon@1.0.0
#addin nuget:?package=ShadBlazor.FreeIcon&version=1.0.0
#tool nuget:?package=ShadBlazor.FreeIcon&version=1.0.0
ShadBlazor.FreeIcon
Strongly typed, accessible, JavaScript-free SVG icons for Blazor. The package embeds all 1,544 canonical Lets Icons and targets .NET 8, .NET 9 and .NET 10.
中文维护入口:从这里开始
Highlights
- 1,544 icons with generated
FreeIcons.*properties and dynamic name lookup. - Blazor WebAssembly, Blazor Server and Blazor Web App support.
currentColor, CSS/Tailwind classes and standard SVG attributes.- Accessible decorative and labelled rendering modes.
- Indexed category/variant filtering and stable paged catalog queries.
- Per-instance SVG ID rewriting to avoid
id,url(...)andhrefcollisions. - Deterministic, pinned generation from
@iconify-json/lets-icons1.2.2. - Responsive preview browser with search, filters, metadata and copy-ready samples.
Install
dotnet add package ShadBlazor.FreeIcon --version 1.0.0
Add the namespace to _Imports.razor:
@using ShadBlazor.FreeIcon
Render icons
Use the strongly typed API when the icon is known at compile time:
<FreeIcon Icon="@FreeIcons.Search" Size="24px" />
Use a canonical kebab-case name for data-driven UI:
<FreeIcon Name="search" Size="1.5rem" Color="currentColor" />
Styling and accessible labels use ordinary component parameters:
<FreeIcon Icon="@FreeIcons.Home"
Class="text-indigo-600 dark:text-indigo-300"
Decorative="false"
Title="Home" />
The component accepts Width, Height, Size, Class, Style, Color, Title,
AriaLabel, Decorative, PreserveAspectRatio and unmatched SVG attributes.
Unlabelled icons are decorative by default. A non-decorative icon falls back to its
catalog name when neither Title nor AriaLabel is provided.
Query the catalog
var icon = FreeIconRegistry.Get("search");
if (FreeIconRegistry.TryGet(userInput, out var selected))
{
// selected is an immutable FreeIconData instance
}
var page = FreeIconRegistry.Query(new FreeIconQuery
{
Text = "arrow",
Category = "Arrow",
Variant = FreeIconVariant.Light,
Skip = 0,
Take = 48
});
Console.WriteLine($"Showing {page.Items.Count} of {page.TotalCount}");
Compatibility helpers include Search, InCategory, InVariant, All, Names,
Categories and Variants. Name and category matching is case-insensitive.
Repository layout
src/ShadBlazor.FreeIcon/ NuGet Razor class library
preview/ShadBlazor.FreeIcon.Preview/ Blazor WebAssembly catalog browser
tools/ShadBlazor.FreeIcon.Verifier/ compiled architecture/catalog verifier
tools/icons/ deterministic source and code generation
tools/quality/ repository and package checks
tools/commands/ canonical Windows/Linux command entrypoints
eng/ short compatibility wrappers
configs/ Tailwind and editor/build configuration
docs/ user, maintainer and release manuals
.github/workflows/ CI, Pages preview and NuGet release workflows
The solution contains only the library, preview and compiled verifier projects.
Generated artifacts stay under bin/, obj/, artifacts/ and release/packages/
and are intentionally excluded from Git.
Develop locally
Requirements: .NET SDK 10.x, the .NET 8/9/10 targeting packs, Node.js 20+ and npm.
tools\commands\doctor.cmd
tools\commands\bootstrap.cmd
tools\commands\dev.cmd
The preview opens at http://localhost:5188. For individual checks:
npm run verify
dotnet build ShadBlazor.FreeIcon.sln -c Release
dotnet run --project tools\ShadBlazor.FreeIcon.Verifier -c Release
Build a release
scripts\release\release.cmd 1.0.0
This restores, synchronizes the pinned icon source, verifies the generated catalog,
builds all targets, creates .nupkg/.snupkg files and inspects package contents.
The complete maintainer and NuGet.org checklist is in
complete release manual.
Documentation
| Document | Purpose |
|---|---|
| User guide | component parameters and catalog APIs |
| Maintainer guide | generation, validation and maintenance |
| Preview guide | WASM preview and Tailwind workflow |
| CI/CD | GitHub Actions and Pages |
| Solution organization | directory ownership and boundaries |
| Release manual | architecture and NuGet publication |
| License and design provenance | third-party attribution and UI originality |
Licenses and attribution
The ShadBlazor.FreeIcon source code, build tooling and preview implementation are licensed under the MIT License.
The embedded Lets Icons artwork is © Leonid Tsvetkov and licensed under Creative Commons Attribution 4.0 International. See THIRD-PARTY-NOTICES.md and PACKAGE-LICENSE.txt. ShadBlazor.FreeIcon does not claim ownership of the original artwork or imply endorsement by its author.
The preview UI is an original Blazor/Tailwind implementation under this repository's identity. External interface references were used only to study general information architecture; no third-party logo, screenshot, source code or branded copy is shipped.
Contributing and security
See CONTRIBUTING.md before submitting changes. Report security issues using the process in SECURITY.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. 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)
-
net8.0
- Microsoft.AspNetCore.Components.Web (>= 8.0.0)
-
net9.0
- Microsoft.AspNetCore.Components.Web (>= 9.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.0 | 112 | 8/20/2026 |
First stable release: 1544 strongly typed Lets Icons, dynamic lookup, filtered and paged catalog queries, accessible SVG rendering, and per-instance SVG ID isolation.