AjroudSoftwares.MaterialDesignIcons.Maui 2.0.2

dotnet add package AjroudSoftwares.MaterialDesignIcons.Maui --version 2.0.2
                    
NuGet\Install-Package AjroudSoftwares.MaterialDesignIcons.Maui -Version 2.0.2
                    
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="AjroudSoftwares.MaterialDesignIcons.Maui" Version="2.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AjroudSoftwares.MaterialDesignIcons.Maui" Version="2.0.2" />
                    
Directory.Packages.props
<PackageReference Include="AjroudSoftwares.MaterialDesignIcons.Maui" />
                    
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 AjroudSoftwares.MaterialDesignIcons.Maui --version 2.0.2
                    
#r "nuget: AjroudSoftwares.MaterialDesignIcons.Maui, 2.0.2"
                    
#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 AjroudSoftwares.MaterialDesignIcons.Maui@2.0.2
                    
#: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=AjroudSoftwares.MaterialDesignIcons.Maui&version=2.0.2
                    
Install as a Cake Addin
#tool nuget:?package=AjroudSoftwares.MaterialDesignIcons.Maui&version=2.0.2
                    
Install as a Cake Tool

Material Design Icons for .NET MAUI

Use Material icon fonts in .NET MAUI with simple runtime lookup, multi-variant support, and a bundled metadata index generated from official codepoints sources.

Install

dotnet add package AjroudSoftwares.MaterialDesignIcons.Maui

What This Package Provides

  • Five icon variants: Pictogrammers, Regular, Outlined, Rounded, Sharp
  • Default icon source is Pictogrammers (MaterialDesignIconsDesktop.ttf)
  • Google variants are still available as secondary sources
  • Runtime lookup by icon name without hardcoding every glyph in C# source
  • Bundled metadata generated from official .codepoints files
  • C# helpers via MaterialIcons and MaterialIconsMap
  • Search and discovery support via Search, Find, FindAll, and Categories
  • XAML markup extensions for dynamic icon and font resolution on supported target frameworks

Register Fonts in MAUI

builder.ConfigureFonts(fonts =>
{
    fonts.AddFont("MaterialDesignIconsDesktop.ttf", "MaterialDesignIconsPictogrammers");
    fonts.AddFont("MaterialIcons-Regular.ttf", "MaterialIconsRegular");
    fonts.AddFont("MaterialIconsOutlined-Regular.ttf", "MaterialIconsOutlined");
    fonts.AddFont("MaterialIconsRound-Regular.ttf", "MaterialIconsRounded");
    fonts.AddFont("MaterialIconsSharp-Regular.ttf", "MaterialIconsSharp");
});

Usage in C#

Resolve an icon by name. The lookup is forgiving, so names like home, Home, arrow_back, and ArrowBack work.

MaterialIcons.GetRequired("home") now resolves from the default Pictogrammers variant.

using AjroudSoftwares.MaterialDesignIcons.Maui;

var regularHome = MaterialIcons.GetRequired("home");
var pictogrammersHome = MaterialIcons.GetRequired("home", MaterialIconVariant.Pictogrammers);
var outlinedHome = MaterialIcons.GetRequired("home", MaterialIconVariant.Outlined);

var roundedArrowBack = MaterialIconsMap.Resolve("arrow_back", MaterialIconVariant.Rounded);
var sharpSearch = MaterialIconsMap.Resolve("Sharp.Search");

var defaultFont = MaterialIcons.FontFamily();
var pictogrammersFont = MaterialIcons.FontFamily(MaterialIconVariant.Pictogrammers);
var roundedFont = MaterialIcons.FontFamily(MaterialIconVariant.Rounded);

AI Quick Reference

For AI agents, prefer this order:

  1. MaterialIcons.GetRequired("home") when you already know the exact icon name.
  2. MaterialIcons.Suggest("user profile") when you know the intent but not the exact icon name.
  3. MaterialIcons.FontFamily(MaterialIconVariant.Outlined) to get the matching MAUI font alias.
using AjroudSoftwares.MaterialDesignIcons.Maui;

var suggestions = MaterialIcons.Suggest("user profile", limit: 5);
var best = suggestions.FirstOrDefault();

var glyph = best?.Glyph ?? MaterialIcons.GetRequired("person");
var font = best?.FontFamily ?? MaterialIcons.FontFamily();

If you already know the variant, pass it into suggestions to reduce ambiguity:

var outlinedSuggestions = MaterialIcons.Suggest("back", limit: 5, variant: MaterialIconVariant.Outlined);

Runtime Lookup API

using AjroudSoftwares.MaterialDesignIcons.Maui;

var glyph = MaterialIcons.Get("settings");
var required = MaterialIcons.GetRequired("person", MaterialIconVariant.Outlined);
var icon = MaterialIcons.Find("arrow_back", MaterialIconVariant.Rounded);
var allHomes = MaterialIcons.FindAll("home");

if (MaterialIconsMap.TryResolve("favorite", MaterialIconVariant.Sharp, out var favoriteGlyph))
{
    // use favoriteGlyph
}

if (MaterialIconsMap.TryResolve("Outlined.Notifications", out var notificationsGlyph))
{
    // use notificationsGlyph
}

Using with FontImageSource

using AjroudSoftwares.MaterialDesignIcons.Maui;
using Microsoft.Maui.Controls;

var icon = MaterialIcons.Find("home", MaterialIconVariant.Outlined);

var imageSource = new FontImageSource
{
    Glyph = icon?.Glyph,
    FontFamily = icon?.FontFamily,
    Size = 24,
};

Usage in XAML

For all target frameworks, you can resolve the glyph in C# and bind it in XAML like normal text.

<Label Text="{Binding HomeGlyph}"
       FontFamily="MaterialIconsRegular"
       FontSize="28" />
using AjroudSoftwares.MaterialDesignIcons.Maui;

public string HomeGlyph => MaterialIcons.GetRequired("home");
public string RoundedArrowGlyph => MaterialIcons.GetRequired("arrow_back", MaterialIconVariant.Rounded);

XAML Markup Extensions

On net9.0+ and net10.0+, the package also includes markup extensions for simpler XAML usage:

xmlns:mdi="clr-namespace:AjroudSoftwares.MaterialDesignIcons.Maui"

<Label Text="{mdi:Icon Name=home, Variant=Outlined}"
       FontFamily="{mdi:IconFont Variant=Outlined}"
       FontSize="28" />

IconExtension resolves the glyph string.

IconFontExtension resolves the matching MAUI font alias.

Search and Discovery

using AjroudSoftwares.MaterialDesignIcons.Maui;

var arrows = MaterialIconsMap.Search("arrow");
var accounts = MaterialIconsMap.Categories["account"];
var homeMatches = MaterialIcons.FindAll("home");
var userSuggestions = MaterialIconsMap.Suggest("user profile", limit: 5);

Each search result is a MaterialIconInfo instance with:

  • Variant
  • Name
  • PascalName
  • Glyph
  • Key
  • FontFamily

Migration from Older Versions

Older versions exposed generated constants such as MaterialIcons.Regular.Home and XAML usage through x:Static.

That API has been replaced with metadata-backed runtime lookup:

  • Old: MaterialIcons.Regular.Home

  • New: MaterialIcons.GetRequired("home")

  • Old: MaterialIcons.Rounded.ArrowBack

  • New: MaterialIcons.GetRequired("arrow_back", MaterialIconVariant.Rounded)

  • Old: MaterialIconsMap.Resolve("Rounded.ArrowBack")

  • New: MaterialIconsMap.Resolve("Rounded.ArrowBack") or MaterialIconsMap.Resolve("arrow_back", MaterialIconVariant.Rounded)

This keeps the library smaller and simpler while using metadata-backed names as the source of truth.

Updating Icon Sources

Google variants can be refreshed automatically with the generator:

python tools/generate_icons.py

Pictogrammers is maintained manually in this repository:

  • Font file: Resources/Fonts/MaterialDesignIconsDesktop.ttf
  • Codepoints file: tools/codepoints/MaterialDesignIcons-Pictogrammers.codepoints

After replacing any codepoints/font files, regenerate metadata:

python tools/generate_icons.py --skip-download

Notes

  • Icon names come from bundled codepoints metadata, not from parsing names out of the font files themselves.
  • Default variant is Pictogrammers.
  • Google variants are included as secondary sources: Regular, Outlined, Rounded, and Sharp.
  • Markup extensions are currently compiled for net9.0+ and net10.0+.
  • If you prefer explicit control, you can always use MaterialIcons.GetRequired(...) in C# and bind the result into XAML.

License

MIT. See License.txt.

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.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

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
2.0.2 166 5/1/2026
2.0.1 123 4/30/2026
2.0.0 162 4/29/2026 2.0.0 is deprecated because it has critical bugs.
1.1.0 163 4/21/2026 1.1.0 is deprecated because it has critical bugs.
1.0.1 269 8/13/2025
1.0.0 224 8/13/2025

v2.0.2: Explicit versioning to resolve NuGet cache/assembly version mismatch. Ensures fonts, metadata, and targets are bundled consistently across all target frameworks.