ShadBlazor.FreeIcon 1.0.0

dotnet add package ShadBlazor.FreeIcon --version 1.0.0
                    
NuGet\Install-Package ShadBlazor.FreeIcon -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ShadBlazor.FreeIcon" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ShadBlazor.FreeIcon" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ShadBlazor.FreeIcon" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ShadBlazor.FreeIcon --version 1.0.0
                    
#r "nuget: ShadBlazor.FreeIcon, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ShadBlazor.FreeIcon@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ShadBlazor.FreeIcon&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ShadBlazor.FreeIcon&version=1.0.0
                    
Install as a Cake Tool

ShadBlazor.FreeIcon

CI NuGet License: MIT Artwork: CC BY 4.0

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(...) and href collisions.
  • Deterministic, pinned generation from @iconify-json/lets-icons 1.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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.