LucideIcons
The Lucide icon set, packaged as a Wisej.NET icon pack: 1,669 monochrome line icons drawn with a 2 px stroke on a 24 × 24 grid. Lucide is the community-maintained successor of Feather and keeps its look, with several times as many icons and a consistent naming scheme. The pack is new in Wisej.NET 4.1.
Installation
Add the Wisej-4-LucideIcons package to your Wisej.NET project, either with the NuGet Package Manager or from the command line:
dotnet add package Wisej-4-LucideIcons
The package targets .NET Framework 4.8 and .NET 8 or later. It contains one assembly, Wisej.Ext.LucideIcons.dll, and depends on the Wisej-4-Svg package, which NuGet installs with it (see The SVG renderer below). After a rebuild, the pack appears as a folder in the Visual Studio ImageSource editor. See Picking icons in Visual Studio.
Browse the icons
Every icon in the pack, drawn from the SVG files the assembly embeds. Type to filter by file name or constant name, and select an icon for its constant, its resource.wx URL and a ready-to-paste assignment, each with a copy button. The icons are shown in the page's text color, the way they follow the theme's icon color in an application; the color swatch in the preview tries a ?color= value.
Using the icons
Every icon is an embedded SVG served at resource.wx/Wisej.Ext.LucideIcons/<file-name>. In code, use the constants of the static Wisej.Ext.LucideIcons.Icons class, which already hold the full URL:
- C#
- VB.NET
// The constant holds "resource.wx/Wisej.Ext.LucideIcons/printer.svg".
this.button1.ImageSource = Wisej.Ext.LucideIcons.Icons.Printer;
// The same icon by URL, for example when the name comes from data.
this.button1.ImageSource = "resource.wx/Wisej.Ext.LucideIcons/printer.svg";
// A specific color instead of the theme's icon color.
this.button1.ImageSource = Wisej.Ext.LucideIcons.Icons.Printer + "?color=SteelBlue";
' The constant holds "resource.wx/Wisej.Ext.LucideIcons/printer.svg".
Me.button1.ImageSource = Wisej.Ext.LucideIcons.Icons.Printer
' The same icon by URL, for example when the name comes from data.
Me.button1.ImageSource = "resource.wx/Wisej.Ext.LucideIcons/printer.svg"
' A specific color instead of the theme's icon color.
Me.button1.ImageSource = Wisej.Ext.LucideIcons.Icons.Printer & "?color=SteelBlue"
The URL works in any property that takes an image source (ImageSource, Icon, BackgroundImageSource, …), and also in HTML and CSS.
Icon names
Each constant of the Icons class is the file name in PascalCase:
| File | Constant |
|---|---|
house.svg | Icons.House |
printer.svg | Icons.Printer |
settings.svg | Icons.Settings |
a-arrow-down.svg | Icons.AArrowDown |
The file names are Lucide's own, so an icon keeps the name it has on lucide.dev: the home icon is house.svg, not home.svg.
The SVG renderer
The Lucide icons are drawn with stroke="currentColor" rather than a fill, and the pack brings its own way of rendering them. Its Wisej-4-Svg dependency (Wisej.Ext.Svg.dll) adds a client-side renderer, built on Snap.svg, that loads each SVG icon in the browser, replaces currentColor with the ?color= value or the control's text color, and caches the result.
The renderer takes over the rendering of every SVG image in the application, not only this pack's icons. The other packs and your own SVG resources keep working, but they're drawn by the new renderer once this package is referenced.
Colors
The icons are monochrome, so they follow the theme's icon color and respond to ?color=. Use a named color, #rrggbb, rgb()/rgba(), or the name of a theme color (for example ?color=activeText). See SVG Colors.
License
Lucide is released under the ISC license. The Wisej.NET wrapper assembly is part of the Wisej.NET extensions.
See also
- Icon packs overview
- FeatherIcons, the set Lucide grew out of
- Images in the user guide
- Embedded Resources in the user guide