IgrisModz.MauiIcons.Core
1.1.0
dotnet add package IgrisModz.MauiIcons.Core --version 1.1.0
NuGet\Install-Package IgrisModz.MauiIcons.Core -Version 1.1.0
<PackageReference Include="IgrisModz.MauiIcons.Core" Version="1.1.0" />
<PackageVersion Include="IgrisModz.MauiIcons.Core" Version="1.1.0" />
<PackageReference Include="IgrisModz.MauiIcons.Core" />
paket add IgrisModz.MauiIcons.Core --version 1.1.0
#r "nuget: IgrisModz.MauiIcons.Core, 1.1.0"
#:package IgrisModz.MauiIcons.Core@1.1.0
#addin nuget:?package=IgrisModz.MauiIcons.Core&version=1.1.0
#tool nuget:?package=IgrisModz.MauiIcons.Core&version=1.1.0
IgrisModz.MauiIcons.Core ⚙️
MauiIcons.Core is the foundational engine behind the IgrisModz.MauiIcons suite for .NET 10 MAUI.
⚠️ Note: This package does NOT contain any icons by itself. It provides the underlying architecture, animation engines, base controls, markup extensions, and variable font handlers required to build custom icon libraries.
🎯 Why use MauiIcons.Core?
If you have a custom corporate font, an SVG-converted .ttf file, or a premium icon pack, you can use MauiIcons.Core to quickly wrap it into a fully functional .NET MAUI library.
By building on top of Core, your custom icons will automatically inherit:
- Native XAML Markup Extensions support.
- Built-in Animations (
Spin,Shake,Pulse, etc.). - Data Binding & MVVM compatibility.
- Platform-specific icon rendering.
- Variable Font axes support (Weight, Fill, etc.).
🚀 Getting Started
1. Installation
Install the Core package in your new .NET MAUI Class Library project:
dotnet add package IgrisModz.MauiIcons.Core
2. Basic Setup (For End-Users)
If you are consuming a library built on Core, or initializing Core directly, add this to your MauiProgram.cs (usually handled automatically by the specific icon pack extensions):
using MauiIcons.Core;
builder.UseMauiIconsCore();
🛠 How to create your own Icon Library
Here is a quick guide on how to use the Core to build your own icon controls.
Example 1: Creating a Standard Static Icon Library
Step 1: Define your Enum mapped to the font glyphs.
public enum MyCustomIcons
{
Home = 0xe001,
User = 0xe002,
Settings = 0xe003
}
Step 2: Create the Icon Control by inheriting from the Core base class.
using MauiIcons.Core;
public class MyCustomIcon : BaseIcon<MyCustomIcons>
{
}
Step 3: Create the Markup Extension for standard MAUI controls (Label, Button).
using MauiIcons.Core;
public class MyCustomIconExtension : BaseIconExtension<MyCustomIcons>
{
}
Example 2: Creating a Variable Font Icon Library
Variable Fonts allow dynamic changes to properties like Weight, Fill, or Grade without loading multiple font files.
Step 1: Define your Enum (same as above).
public enum MyVariableIcons
{
Search = 0xf100,
Favorite = 0xf101
}
Step 2: Inherit from the Variable Base Control. This base class exposes additional bindable properties specific to Variable Fonts.
using MauiIcons.Core;
public class MyVariableIcon : VariableIconBase<MyVariableIcons>
{
}
Note: Variable font axes like Fill and Grade are heavily platform-dependent and may not be fully supported on Windows (WinUI).
Step 3: Registration Extension
Finally, provide a handy extension method for your users to register your custom font in their MauiProgram.cs.
using MauiIcons.Core.Helpers;
public static class MauiAppBuilderExtensions
{
private const string FontFileName = "YourFontFileName.ttf";
private const string FontFamilyName = "YourFontFamilyName";
public static MauiAppBuilder UseMyCustomIcons(this MauiAppBuilder builder)
{
// Initializes Core engines
builder.UseMauiIconsCore();
// Register your font file (ensure it's an EmbeddedResource)
builder.ConfigureFonts(fonts =>
{
FontRegistrationHelper.RegisterEmbeddedFont(
fonts,
typeof(BuilderExtensions).Assembly,
FontFileName,
FontFamilyName);
});
return builder;
}
}
📄 License
This Core package is open-source and licensed under the MIT License. Feel free to use it to build commercial or open-source icon packs for the MAUI community!
Maintained by IgrisModz. Part of the MauiIcons Suite.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. net10.0-ios26.0 is compatible. net10.0-maccatalyst26.0 is compatible. net10.0-windows10.0.19041 is compatible. |
-
net10.0-android36.0
- Microsoft.Maui.Controls (>= 10.0.20)
-
net10.0-ios26.0
- Microsoft.Maui.Controls (>= 10.0.20)
-
net10.0-maccatalyst26.0
- Microsoft.Maui.Controls (>= 10.0.20)
-
net10.0-windows10.0.19041
- Microsoft.Maui.Controls (>= 10.0.20)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on IgrisModz.MauiIcons.Core:
| Package | Downloads |
|---|---|
|
IgrisModz.MauiIcons.Material.Round
Maui Icons - Material Round is a Library to Resolves Icons or Font Icon Management on .Net Maui by Providing Controls with Complete Material Icon Collection Built into Library. |
|
|
IgrisModz.MauiIcons.FontAwesome.Regular
Maui Icons - FontAwesome is a FontAwesome 7 Based Icon Library to Resolves Icons or Font Icon Management on .Net Maui by Providing Controls with Complete FontAwesome 7 Icon Collection Built into Library. |
|
|
IgrisModz.MauiIcons.Material.Regular
Maui Icons - Material Regular is a Library to Resolves Icons or Font Icon Management on .Net Maui by Providing Controls with Complete Material Icon Collection Built into Library. |
|
|
IgrisModz.MauiIcons.Material.TwoTone
Maui Icons - Material TwoTone is a Library to Resolves Icons or Font Icon Management on .Net Maui by Providing Controls with Complete Material Icon Collection Built into Library. |
|
|
IgrisModz.MauiIcons.FontAwesome.Brands
Maui Icons - FontAwesome Brands is a FontAwesome 7 Based Icon Library to Resolves Icons or Font Icon Management on .Net Maui by Providing Controls with Complete FontAwesome 7 Icon Collection Built into Library. |
GitHub repositories
This package is not used by any popular GitHub repositories.
v1.1.0
• Add Material Symbols icons to the MauiIcons library.
• Add Variable icons to the Material Symbols collection. (Just Weight work on Windows, Maybe in later update or waiting Microsoft to add variablefont support on WinUI)
• Fix Yammer icon in FontAwesome Brands collection.
• Change the name of FontFamily to remove "Icons" suffix, now it's "FontAwesomeBrands" instead of "FontAwesomeBrandsIcons", same for other FontFamily in the library.
• Improving the performance of loading icons by using direct value instead of using DescriptionAttribute to get the unicode value of the icon, this will significantly reduce the loading time of icons in the library.
• Improving Material Icons enums to contains official codepoints from Google, this will ensure that the icons are displayed correctly and consistently across different platforms and devices.
• AnimationType enum moved from MauiIcons.Core.Controls to MauiIcons.Core
v1.0.0
• Initial Release
• Contains 2 collections of icons: FontAwesome (Brands, Regular, Solid), and Material Icons (Outlined, Regular, Round, Sharp, TwoTone).
• Contains controls and extensions to easily use icons in your .NET MAUI applications, such as FontAwesomeBrandsIcon, MaterialRegularIcon,... controls, and extension methods for setting icons on buttons, labels,....