The Lovelace interface for Home Assistant has three types of objects, those are:
Cards
Examples include entities, glance, vertical-stack, gauge, media-player.
Entity rows
The individual rows in an entities card. Examples include section, call-service, conditional, cast, but also sensor-entity, toggle-entity, climate-entity and several more that a normal user never have to bother with.
Elements
The elements used in a picture-elements card. Examples include state-badge, state-label, image.
When you select a type: for something, what is loaded will depend on where.
E.g. specifying type: conditional in a lovelace view or a stack card will load a conditional card, but specifying type: conditional in an entities card will load a conditional entity row.
Sometimes you may want to use things in other places, though. That's where hui-element comes in.
For installation, updating and debugging instructions see this guide.
Let's say you want to use the section entity row in place of a card.
Normally, a section row configuration may look like:
type: section
label: Important thingsTo make it work as a card, change it to:
type: custom:hui-element
row_type: section
label: Important thingsI.e., change type: to row_type: and add type: custom:hui-element.
hui-element will then load the correct row and place it wherever you want it.
Similarly, to put a glance card inside an entities card:
type: entities
entities:
- light.bed_light
- type: custom:hui-element
card_type: glance
entities:
- light.kitchen_lights
- light.ceiling_lightsNote: In some cases, the internal types may need to be used. I.e. to add a media player row as a card, you'd need to specify
row_type: media-player-entity.
Note2: It may also work to set
row_type: defaultand hui-element will figure out the correct row type by itself.
The correct types to use can be found in the frontend source code for cards, entity-rows and elements.
If you are using card-mod, hui-element will be "transparent".
I.e. styling hui-element itself should be as if styling the element inside it.
Ex:
- type: entities
entities:
- type: section
label: Default internal styling
card_mod:
style: |
.divider {
background-color: red;
}
- type: custom:hui-element
row_type: section
label: Hui-element internal styling
card_mod:
style: |
.divider {
background-color: green;
}
- type: entities
entities:
- type: section
label: Default styled from card
- type: custom:hui-element
row_type: section
label: Hui-element styled from card
card_mod:
style:
hui-section-row $: |
.divider { background-color: blue; }
hui-element $: |
.divider { background-color: orange;}Does this replace the custom:hui- trick?
Yes. That's where the name is from.
The custom:hui- trick was always a dirty hack that worked by accident rather than design, and since 0.107 it works intermittently at best.


