Material.Icons.Avalonia 2.1.0

dotnet add package Material.Icons.Avalonia --version 2.1.0
NuGet\Install-Package Material.Icons.Avalonia -Version 2.1.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="Material.Icons.Avalonia" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Material.Icons.Avalonia --version 2.1.0
#r "nuget: Material.Icons.Avalonia, 2.1.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.
// Install Material.Icons.Avalonia as a Cake Addin
#addin nuget:?package=Material.Icons.Avalonia&version=2.1.0

// Install Material.Icons.Avalonia as a Cake Tool
#tool nuget:?package=Material.Icons.Avalonia&version=2.1.0

Material.Icons

Parsed icons set from materialdesignicons.com and display control implementations for different GUI frameworks.

  • All icons are always up-to-date because automatically updated every 6 hours.
  • Small package size because icons are graphically encoded via SVG Path.
  • Icon types are strongly typed enum, so your IDE will suggest available variants:
    895428ad-6010-4ffd-bd88-61aecd50f5e1

Structure

This project consists of 3 parts:

  • alternate text is missing from this package README image contains info about the icons

  • alternate text is missing from this package README image contains controls for AvaloniaUI

  • alternate text is missing from this package README image contains controls for WPF

  • FAQ - frequently asked questions

Avalonia

Getting started
  1. Install Material.Icons.Avalonia nuget package:
    dotnet add package Material.Icons.Avalonia
    
    avalonia-nuget avalonia-nuget
  2. Include styles in App.xaml (for 2.0.0 version and higher):
    <Application xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia" 
                 ...>
      <Application.Styles>
        ...
        <materialIcons:MaterialIconStyles />
      </Application.Styles>
    </Application>
    
    For 1.*.*:
    <Application ...>
      <Application.Styles>
        ...
        <StyleInclude Source="avares://Material.Icons.Avalonia/App.xaml" />
      </Application.Styles>
    </Application>
    

Avalonia FuncUI (F#)

Getting started
  1. Install Material.Icons.Avalonia nuget package:
    dotnet add package Material.Icons.Avalonia
    
    avalonia-nuget avalonia-nuget
  2. Import styles in Application (or if you use XAML check instructions for plain Avalonia)
    type App() =
        inherit Application()
    
        override this.Initialize() =
            ..
            this.Styles.Add(MaterialIconStyles(null))
            ..
    
  3. Create bindings for MaterialIcon
    namespace Avalonia.FuncUI.DSL
    
    [<AutoOpen>]
    module MaterialIcon =
        open Material.Icons
        open Material.Icons.Avalonia
        open Avalonia.FuncUI.Types
        open Avalonia.FuncUI.Builder
    
        let create (attrs: IAttr<MaterialIcon> list): IView<MaterialIcon> =
            ViewBuilder.Create<MaterialIcon>(attrs)
    
        type MaterialIcon with
    
            static member kind<'t when 't :> MaterialIcon>(value: MaterialIconKind) : IAttr<'t> =
                AttrBuilder<'t>.CreateProperty<MaterialIconKind>(MaterialIcon.KindProperty, value, ValueNone)
    
  4. Use
    Button.create [
         Button.content (
             MaterialIcon.create [
                 MaterialIcon.kind MaterialIconKind.Export
            ]
        )
    ]
    

WPF

Getting started

Install Material.Icons.WPF nuget package:

dotnet add package Material.Icons.WPF

wpf-nuget wpf-nuget

Using

Add Material.Icons.WPF namespace to the root element of your file (your IDE can suggest it or do it automatically):

xmlns:materialIcons="clr-namespace:Material.Icons.WPF;assembly=Material.Icons.WPF"

Use MaterialIcon control:

<materialIcons:MaterialIcon Kind="Abacus" />

The Foreground property controls the color of the icon.
Also, there is MaterialIconExt which allows you to use is as the markup extension:

<Button Content="{materialIcons:MaterialIconExt Kind=Abacus}" />

Meta

Getting started

Install Material.Icons nuget package:

dotnet add package Material.Icons

icons-nuget icons-nuget

Using

Icon types stored in Material.Icons.MaterialIconKind enum.
We can resolve an icon path by using Material.Icons.MaterialIconDataProvider.GetData().

Adding your own icons

Currently, there is no way to add your own icons, as icons are enum and cannot be modified.
But you can override some existing icons to use your own data:

public class CustomIconProvider : MaterialIconDataProvider
{
    public override string ProvideData(MaterialIconKind kind)
    {
        return kind switch
        {
            MaterialIconKind.TrophyVariant => "some SVG code",
            _ => base.ProvideData(kind)
        };
    }
}

// When your application starts (e.g. in the Main method) replace MaterialIconDataProvider with your own
public static int Main(string[] args)
{
    MaterialIconDataProvider.Instance = new CustomIconProvider(); // Settings custom provider

    // Application startup code
    // return BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}

FAQ

How to change icon color?
  • Change Foreground property.
How to update icons?
  • You can manually set Material.Icons package version in your project file.
What about versioning policy?
  • We use semver.
    Any package with identical major and minor versions is compatible.
    For example, 1.0.0 and 1.0.1 are compatible, but 1.0.0 and 1.1.0 might not be.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (12)

Showing the top 5 NuGet packages that depend on Material.Icons.Avalonia:

Package Downloads
ArtemisRGB.UI.Shared

Package Description

Common.Activity

Package Description

Founntain.Nein

Package Description

AvaloniaGenerics

Generic UI wrappers and helpers for AvaloniaUI

Asv.Avalonia.Map

Map library for Avalonia UI

GitHub repositories (7)

Showing the top 5 popular GitHub repositories that depend on Material.Icons.Avalonia:

Repository Stars
kikipoulet/SukiUI
UI Theme for AvaloniaUI
Artemis-RGB/Artemis
Provides advanced unified lighting across many different brands RGB peripherals
AvaloniaCommunity/Material.Avalonia
Material design in AvaloniaUI
DeltaJordan/BotW-Save-Manager
BOTW Save Manager for Switch and Wii U
bcssov/IronyModManager
Mod Manager for Paradox Games. Official Discord: https://discord.gg/t9JmY8KFrV
Version Downloads Last updated
2.1.0 12,736 12/9/2023
2.0.1 22,460 6/1/2023
2.0.0 1,092 5/4/2023
2.0.0-preview3 2,513 3/23/2023
2.0.0-preview2 2,366 2/5/2023
2.0.0-preview1 532 1/23/2023
1.2.2 2,153 1/12/2023
1.2.1 428 1/10/2023
1.2.0 6,671 8/22/2022
1.1.10 40,150 7/12/2022
1.0.2 41,427 2/25/2021
1.0.1 475 2/15/2021
1.0.0 1,776 1/21/2021

- Allows to override some icons data