v1.1.0
Most of this release comes from reading the
community thread
end to end — 561 posts, 2019 to 2026 — and building the things people kept asking for.
Asking Home Assistant for a value
The oldest request in that thread, asked in one form or another since 2019, is a template
whose name defaults to the entity's own name instead of every card passing one. A
placeholder can now ask:
card:
type: tile
entity: '[[entity]]'
name: '[[entity|friendly_name]]'friendly_name, area, device and attr:<name>, chaining with the transforms and
running in the order written — [[entity|friendly_name|slug]].
The entity's state is deliberately not among them. A card's configuration is built once,
so resolving state would rebuild the whole card every time anything changed. What is here
comes from the registry, which changes about as often as the dashboard does.
A variable the template can do without
[[name?]] is a placeholder the card can manage without: when nothing gives it a value, the
option it stands for comes out of the card rather than being left on screen as brackets. A
tile with no name falls back to the entity's own.
for_each does the same with whole copies, skipping an item that leaves a required
variable empty — so one template serves a room with four lights and a room with one, without
a dummy entity id standing in for the lights that are not there.
Repeating over what Home Assistant knows
for_each_from asks Home Assistant for the list instead of having it written out, so a card
of "every light in the kitchen" grows by itself:
for_each_from:
domain: light
area: KitchenRepeat over entities or areas, narrowed by domain, area, floor or label. Every copy is also
given [[index]] and [[count]], and min_column_width drops a column rather than going
narrower, so one card reads sensibly on a phone and on a monitor.
Seeing what a card actually builds
The template is in one place, the values are in another, and the dashboard renders a third
thing. A card's editor now has a Result panel showing the card it builds with every
variable put in — read-only, one copy where the card repeats over a list. A variable nothing
gave a value to is still written as [[name]] in there, which is the point of looking.
The card also says so in the browser console now, naming the template and the variable,
rather than leaving you to work out where the brackets came from.
Values every template falls back on
decluttering_defaults at the dashboard root sets values every template falls back on, so a
colour shared by a library of them is written once instead of repeated in each. Reached last
of all, so nothing existing changes. In YAML mode a yaml anchor already did this; in storage
mode there are no anchors, which is the whole reason for it.
A borrowed template gets both dashboards' values, the borrowing one first.
When a card comes out spread across the row
A card that sizes itself — a custom:button-card given a width — is narrower than the share
of a row this card is handed, so a stack of them comes out evenly spread instead of packed
together. Measured on three 50px buttons: 58px apart on their own, 132px apart through this
card. fit: contents gives up the wrapper's box and restores the 58px.
It is not the default and cannot be: a card with no box has nothing for style to paint on.
The editor says so if you set both.
Also
- Transforms chain, and
kebabjoins the set:[[room|slug|upper]]. [[!name]]writes the brackets out literally, for a template holding markdown or Jinja.- Renaming a template offers to rename every use of it on the dashboard at the same time.
- A transform handed a mapping or a list now says why it left the placeholder alone
instead of leaving you to guess.
Fixed
- A card hidden by its
visibilityconditions still took up its place in a row. Every
rule in the host styles has the same specificity, so the one hiding the card was being
overridden by the one giving it a display. It looked right in a masonry view, where a
zero-height block leaves no visible gap, and wrong in ahorizontal-stack, where the
hidden card took a full share of the row and squeezed the cards either side of it. v1.0.0
claimed this was fixed; in a horizontal row it was not. - A shared template changed on the lending dashboard is picked up without a browser
refresh.
Requirements
Home Assistant 2024.7 or newer. Badge templates need 2024.8.
Documentation
Everything above is in the
wiki, and every heading new in
this release is marked (v1.1.0+) so you can tell at a glance whether the version you are
running has it.
1.1.0 (2026-08-20)
Features
- chain transforms, escape placeholders, and number repeated copies (#45) (05be5c2)
- let a card get out of the way of the layout (#54) (22bafaf)
- let a dashboard set values every template falls back on (#56) (5b7e60a)
- let a placeholder ask Home Assistant what something is called (#52) (2d4184f)
- let a template do without a variable nobody sets (#55) (9970083)
- rename a template across the dashboard, and find the one a card uses (#46) (807b77b)
- repeat a template over what Home Assistant knows about (#48) (54f9629)
- say so when a card renders a variable nobody set (#51) (0d3fe32)
- show what a card actually builds (#53) (4a7666b)
Bug Fixes
- generate real release notes, and stop the release run failing after publishing (#38) (caf4ac9)
- let a hidden card give up its place in the row (#50) (bd622d6)
- pick up a changed shared template, and fit repeated copies to the card (#47) (ada1a3f)
- say why a transform left a placeholder in the card (#49) (0e0bf79)