Feature request to standardize icon utilisation in HA with an API like the project "Iconify"

In HomeAssitant we use icons in several places. Icons allows to integrate a pleasant user interface and are also useful to differentiate visually components in Dashboards and Entities/Devices views.

MDI integration proposed by default in HomeAssistant is a great feature, but I think we miss the ability to easily personalize the interface with our own icons or ready to go icon packs.

For the moment, what I see is that we can implement our icon library like it is already done by GitHub repositories like BHA Icon Pack, Hass Hue Icon, Custom Brand icons that are integrated in HomeAssistant through a custom integration which has sometimes limitation in terms of global icon usage in HA.

After some research, I found an interesting open source project called “Iconify” (Icon Components | https://github.com/iconify) that allows to manage icons coming from several library as well as custom icons.

This API could be used online thru the existing API or also implemented for “offline” usage on our own machines to not rely on an internet API like it is state in the project page :

If you want to make sure icon data is always available and component is usable offline, do not rely on Iconify API. Even though Iconify API servers have redundancies built in to provide as stable experience as possible, internet is never 100% reliable.

SVG framework and all components have alternative bundles without API support. They rely on developer providing icon data. They are a bit harder to work with because you need to bundle icon data with package. These components get icon data from icon components and icon bundles.

Would it be possible in a future release to think about of an implementation of this API in HomeAssitant project?

In my point of view it could be useful to unify the mechanism of icon usage thru an internal core implementation, capable to use icons from several well known library while using as well our own custom icons.

Many thanks in advance for your feedbacks regarding this feature request.

Agreed. +1

It would be nice if this could work similar to how desktop environments handle this. e.g. user can set default or specific icon set. Icon sets should be able to provide fallback set namespaces.

Icons without prefix e.g. “mdi:” will use the user specified icon set.
If an icon isn’t available in the specified set the fallback sets will be tried.
If the icon isn’t available in the fallbacks either the mdi set will be tried.
If it isn’t available in the mdi set the default icon for the type of entity is used.