Custom icon library

May 29, 2026 ยท View on GitHub

hacs_badge GH-release GH-downloads GH-last-commit GH-code-size

icon

Wat's new

Please check the new component at https://github.com/Mariusthvdb/custom_local_icons

this repo will be archived and no longer maintained

Read this first: preferred usage and component

This repo started out with the JS script. That script requires the maintainers to edit each and every icon into it, hard coded. It is not very user friendly, and PR's are made difficult too.

We have adapted the Font awesome custom component by Thomas Loven, which has a much better user experience. With the Custom component, using customized icons is a matter of saving them in the dedicated /config/www/custom_icons folder and you're set. The icon picker in Home Assistant can list the icons using the cli: prefix instead of the core mdi: prefix.

cli icon picker

So, our preferred method for using non mdi: icons is now via the custom_component you can find in this repo. New icons do not require PRs to the integration, just find or create your preferred .svg icons and use them as described above.

Because of that, PR's to the JS resource plugin here will no longer be merged.

(note the JS resource plugin used cil:)


Several custom made and legacy icons, and icons collected all over the internet in 1 set, UI selectable.

Upon each Material Design icons update to HA, icons tend to be deprecated, and every now and then I'd love to keep using some. Branded icons, or legacy models. In many Pr's to the main MDI library, icon designs get rejected, while still very useable. Some of these are added in this library. Several icons by the Frontend magician Matt8707 are listed, and I've also found use for the finer grained Shutter icons by g-kiss, but needed them in another format.

Structure of the file copied from the great and appreciated Hass Hue Icon repo by @arallsopp who should recieve all the credits and without whom the HA interface would not be the same ;-)

Thanks to all!

Installation

On Hacs, install as custom repository. For manual installation, add:

- url: /local/lovelace/resources/custom-icons/custom-icons.js?v=0.1.4
  type: module

to your resources file (adapt path to your own folder structure), or click

Open your Home Assistant instance and show your Lovelace resources.

Usage

  • In your entity editor, specify an icon as cil:icon-name, to indicate the icon to be from this Custom Icon Libary.
  • If you set state_color: true in your card, you'll see the icons get colorised based upon the current theme settings.

Example:

    - type: entities
      title: Custom icons
      state_color: true
      show_header_toggle: false
      entities:
        - entity: switch.tester
          name: Switch Light
          icon: cil:light-switch
        - entity: device_tracker.mijn_mobiel
          name: My Phone
          icon: cil:cellphone-iphone
        - entity: light.alarm
          name: Ceiling light
          icon: cil:ikea-death-star
        - type: section
          label: Set icon via Custom-ui/customize
        - light.bureau_left
        - light.bureau_right

Of course, you can also get crafty, using Custom-ui, and set your icons in a template:

homeassistant:
  customize:
    light.bureau_left:
      templates:
        icon: >
          return state === 'on' ? 'cil:desklamp-on' : 'mdi:desk-lamp';
custom-icons

Icons

Custom made and legacy

custom-icons includes legacy Mdi icons, and several special purpose icons made on request.

Icon finder

Andy created an Icon Library Cheat Sheet so you can quickly see and search which icons are available. Thanks!

Listed with icon author:

IconNameAuthor
cil:android-messagesandroid-messagesMdi
cil:apple-homepodapple-homepodarallsopp
cil:apple-homepod-miniapple-homepod-miniarallsopp
cil:cellphone-iphonecellphone-iphoneMdi
cil:cooker-hoodcooker-hoodarallsopp
cil:cooker-hood-curvecooker-hood-curvearallsopp
cil:cooker-hood-trapezoidcooker-hood-trapezoidarallsopp
cil:delete-alertdelete-alertidevo89
cil:delete-alert-outlinedelete-alert-outlineidevo89
cil:desklamp-ondesklamp-onMdi
cil:desktop-macdesktop-macMdi
cil:desktop-mac-dashboarddesktop-mac-dashboardMdi
cil:dishwasher-silverwaredishwasher-silverwareMrGrigri
cil:docker-watchtowerdocker-watchtowerMatt8707
cil:earth-alertearth-alertMrGrigri
cil:earth-vibrateearth-vibrateMrGrigri
cil:eq-calibrateeq-calibrateMatt8707
cil:google-homegoogle-homeMdi
cil:google-home-altgoogle-home-altMdi
cil:google-home-alt-offgoogle-home-alt-offMdi
cil:google-home-offgoogle-home-offMdi
cil:hdmi-sourcehdmi-sourceMatt8707
cil:home-brokenhome-brokenMrGrigri
cil:home-broken-outlinehome-broken-outlineMrGrigri
cil:home-climatehome-climatearallsopp
cil:home-climate-outlinehome-climate-outlinearallsopp
cil:home-export-no-roof-outlinehome-export-no-roof-outlinegoyney
cil:home-import-no-roof-outlinehome-import-no-roof-outlinegoyney
cil:home-pulsehome-pulseMrGrigri
cil:huehueMatt8707
cil:ikea-death-starikea-death-stararallsopp
cil:imac-alternativeimac-alternativeMatt8707
cil:imac-ssdimac-ssdMatt8707
cil:iphone-moderniphone-modernMatt8707
cil:laptop-chromebooklaptop-chromebookMdi
cil:laptop-maclaptop-macMdi
cil:laptop-windowslaptop-windowsMdi
cil:light-switchlight-switcharallsopp
cil:locklockMatt8707
cil:lutron-picolutron-picoarallsopp
cil:lutron-pico-b1lutron-pico-b1arallsopp
cil:lutron-pico-b2lutron-pico-b2arallsopp
cil:lutron-pico-b3lutron-pico-b3arallsopp
cil:lutron-pico-b4lutron-pico-b4arallsopp
cil:lutron-pico-b5lutron-pico-b5arallsopp
cil:pedestal-fanpedestal-fanMatt8707
cil:roborock-filterroborock-filterMatt8707
cil:roborock-mainbrushroborock-mainbrushMatt8707
cil:roborock-sensorroborock-sensorMatt8707
cil:roborock-sidebrushroborock-sidebrushMatt8707
cil:roborock-vacuumroborock-vacuumMatt8707
cil:roborock-vacuum-maproborock-vacuum-mapMatt8707
cil:shutter-0shutter-0g-kiss
cil:shutter-1shutter-1g-kiss
cil:shutter-2shutter-2g-kiss
cil:shutter-3shutter-3g-kiss
cil:shutter-4shutter-4g-kiss
cil:studio-monitorstudio-monitorMatt8707
cil:sun-anglesun-anglegoyney
cil:sun-angle-variantsun-angle-variantgoyney
cil:synology-nassynology-nasMatt8707
cil:table-cylinder-lamptable-cylinder-lampGunterAV
cil:tablet-androidtablet-androidMdi
cil:tablet-ipad-legacytablet-ipad-legacyMdi
cil:thermometer-emptythermometer-emptygoyney
cil:thermometer-fullthermometer-fullgoyney
cil:tvtvMatt8707
cil:uplighteruplighterGunterAV
cil:uplighter-2-wayuplighter-2-wayGunterAV

Icon authors

Mdi arallsopp MrGrigri idevo89 goyney g-kiss GunterAV Matt8707 tgrelka boehan

Want to join and add an icon?

Please feel free to add an icon request, and open a discussion for that, preferably with the .svg in attachment. Of course, you can also open a Pr.