-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Write a card once, use it everywhere.
If your dashboard repeats the same block of YAML for every room, every light or every sensor, this card lets you write that block once as a template, then drop it in as many times as you like — passing in the bits that change as variables.

Every card above came from one nine-line template. Adding a fifth room is one more line.
| If you want to… | Read |
|---|---|
| Get it installed | Installation |
| Build your first template in five minutes | Quick Start |
| Understand the whole picture | Defining Templates → Using Templates → Variables |
| Make a template pleasant for other people to use | Describing Variables |
| Move over from the original card | Migrating from decluttering-card |
| Fix something that is not working | Troubleshooting |
| See what changed in a release | Releases |
Headings marked (v1.1.0+) arrived in that release. If a page describes something your copy does not do, check which version you have in HACS.
A template holds exactly one piece of dashboard content. Which kind you pick decides where you can use it.
| Type | Key | Goes in | Page |
|---|---|---|---|
| Card | card: |
Anywhere a card goes | Cards |
| Badge | badge: |
The badge row at the top of a view | Badges |
| Row | row: |
Inside an Entities card | Rows |
| Element | element: |
Inside a Picture Elements card | Elements |
| Feature | Page |
|---|---|
| Variables, default values, and defaults that reference other variables | Variables |
| Describe your variables so cards get entity pickers instead of YAML | Describing Variables |
| Render one template once per item in a list, or per thing Home Assistant knows about | Repeating a Template |
| Ask Home Assistant what an entity is called, and leave out what nothing sets (v1.1.0+) | Variables |
| Share one template library, and the values every template falls back on, across dashboards | Sharing Templates Between Dashboards |
| Send a template to someone else, and import theirs | Sharing a Template |
Show and hide templated cards with visibility conditions |
Visibility |
| Inject CSS, with variables substituted into it | Styling |
| Point-and-click editors, including what a card actually builds (v1.1.0+) | Visual Editors |
| Every option in one table | Configuration Reference |
| Worked, copy-paste examples | Recipes |
Without a template, four rooms means four copies of the same card, and four places to edit when you change your mind:
- type: tile
entity: light.living_room
name: Living Room
features:
- type: toggle
- type: tile
entity: light.kitchen
name: Kitchen
features:
- type: toggle
# …and two moreWith a template, the shape is written once:
decluttering_templates:
room_light:
card:
type: tile
entity: '[[light]]'
name: '[[room]]'
features:
- type: toggleand each use is two lines of what actually differs:
- type: custom:decluttering-card-plus
template: room_light
variables:
- light: light.living_room
- room: Living Room
- type: custom:decluttering-card-plus
template: room_light
variables:
- light: light.kitchen
- room: Kitchen
Change the template — add an icon, swap the card type, add a feature — and all four change together.
Decluttering Card Plus is a maintained continuation of
custom-cards/decluttering-card,
combining work by RomRider (the original card),
j9brown (visual editors, rows and elements) and
simbaja (lit 3 / TypeScript 5, the style option), plus
badges, cross-dashboard templates, visibility support and a pile of substitution fixes.
MIT licensed, as was everything it builds on.
Getting started
Core concepts
Content types
Features
- Repeating a Template
- Sharing Between Dashboards
- Sharing a Template
- Visibility
- Styling
- Visual Editors
- Translations
Reference