v1.0.0
1.0.0 (2026-08-18)
The first release of Decluttering Card Plus, a maintained continuation of
custom-cards/decluttering-card, which has
not had a release since April 2023.
It combines three generations of work — RomRider's original card, j9brown's visual
editors, and simbaja's
modernisation — and adds to them.
Installing it over the original card
Your existing configuration keeps working. As well as its own custom:decluttering-card-plus
and custom:decluttering-template-plus types, this card registers the original
custom:decluttering-card and custom:decluttering-template types when the original is not
installed, and the decluttering_templates key is unchanged. Install this, remove the old
card, change nothing else.
Home Assistant loads resources in the order they were added, so if you keep both installed the
original usually wins and your existing cards go on using it. Remove it to get the fixes below.
New
- Badges. A template can hold a
badge:, used from a view'sbadges:list. - Templates shared between dashboards.
decluttering_templates_from:lets one dashboard
borrow another's templates, so a template library can live in one place. - Sharing a template with other people. The template editor has a Share tab that
exports a template as YAML — naming the custom cards and other templates it depends on — and
imports one somebody sent you. visibilityconditions inside templates, including variables inside the conditions
themselves. A hidden card collapses instead of leaving a gap.- Nested variables. A variable's value can contain other variables, resolved in any order.
- Described variables. A template can declare its variables — a label, a description, a
Home Assistant selector, a default — and every card using it then gets a real form field
per variable instead of a box of YAML: an entity picker for an entity, an icon picker for
an icon. - Turn a card into a template. The template editor proposes the conversion for you:
every entity, name, title, heading and icon becomes a variable defaulting to the value it
replaced, so the template renders exactly what the card did. - Repeating with
for_each. One card renders its template once per item in a list —
four rooms that differ only by entity stop being four pasted copies — withcolumnsto
lay the copies out side by side. - Transforms.
[[room|slug]]beside[[room]]lets one variable serve both a name and
the entity id built from it. Four transforms:slug,upper,lower,title. - A Where used tab. Every view that uses the template and how many times, plus any other
template that calls it — worth a look before changing something a dashboard leans on. - Variables in the shape you write them.
variables:anddefault:accept a mapping as
well as a list of pairs, and the editors warn about a variable with no value, or one that
is set but never used, without ever blocking a save.
Fixed
Long-standing issues from the original tracker, all verified against a real dashboard:
- Values containing a newline, a double quote, a backslash or a tab no longer break the card
withJSON.parseerrors — that is every multi-line value and every Jinja template written as
a YAML block scalar (#47,
#60). - An object used inside a longer string is substituted as JSON instead of being left as
[[name]](#83). - Templated cards are sized correctly in the sections layout instead of always taking the
default size (#59,
#80,
#87). fill_containerfills the container (#72),
and an iframe in a panel view fills the panel
(#24).- A card that hides itself no longer leaves an empty space behind it
(#58). - Generated cards no longer share a duplicate
declutter-childid
(#55). - Defaults can reference other variables
(#62,
#84).
Requirements
Home Assistant 2024.7 or newer. Badge templates need 2024.8, which is when badges became
configurable.
Documentation
The wiki has a page per feature,
a quick start, and a
migration guide.
With thanks to RomRider,
j9brown and
simbaja, whose work this is built on. All
MIT licensed.