Cover Card
Shutters, blinds, curtains, awnings, garage doors and gates, drawn as little animated scenes.
Cards for the covers of any integration: each one is drawn as a scene that follows its position, and the picture itself is the slider. One cover, a list, or every cover of an area, with favorite positions and a confirmation for doors and gates.
Highlights
- A drawn scene per kind of cover: shutter, venetian blind, shade, curtains, awning, garage door, gate, door, roof window, damper
- The picture is the position slider, dragged the way the cover moves
- Tilt slider for slats that tilt, only when the cover supports it
- Favorite positions in one tap, Open all / Stop / Close all for a group
- Every cover of an area in one card
- Confirmation before moving a garage door, a gate or a door
- Mini card with a detail button showing the full card
Cards
type: custom:cover-cardInstall
- 1Open the repository in the Marketplace with the Add to Marketplace button above, or add
github.com/juju35/ha-cover-cardas a custom repository (category Dashboard). - 2Download it from the Marketplace.
- 3Reload the browser and add the card from the dashboard editor.
Gallery 19
Documentation
From the README Features
Features
- Two cards: a full Cover Card (
custom:cover-card) and a compact Cover Mini Card (custom:cover-mini-card) - One cover, a list of covers, or every cover of an area (
area), mixed freely - A drawn scene per device class: roller shutter, venetian blind, roller shade, curtains, awning, garage door, sliding gate, door, roof window and damper (a cover without a device class is a roller shutter;
device_classdraws another one) - The picture is the position slider: drag it (mouse, touch or pen) the way the cover moves (up for what rises, down for an awning that unrolls, sideways for curtains and a sliding gate, whose rail lies under the picture and leaves vertical swipes to the page) or use the arrow keys, Page Up / Down, Home and End; the position is sent once you let go, and the picture holds it until the cover reports its new state
- While a cover moves, its scene animates its own way (rolling slats, swaying folds, blinking warning lamp, flowing air…) and a mark on the rail shows where it is going
- Tilt slider and buttons for slats that tilt (venetian blinds, some shutters and awnings), shown only when the cover supports it
- Open / Stop / Close buttons for the features each cover supports; Open is disabled once fully open, Close once fully closed (unless the cover only assumes its state, as a radio motor that reports nothing back), and the button of the way the cover moves gets the accent color
- Favorite positions: one-tap buttons for a position, a tilt or both (
favorites), per cover or for the whole group; the favorite reached is lit - Several covers: Open all / Stop / Close all buttons for the covers that support them, and one foldable row per cover (folded rows unfold to the full detail, a click elsewhere folds them back)
- Confirmation before opening, closing or moving a garage door, a gate or a door, by its buttons, the group buttons, a favorite or its slider, in a popup at the top of the card;
confirm: trueasks for every cover,confirm: falsenever - Header with an icon of the kind of cover in a tinted badge, colored with the state (blue while moving, green open, orange for an open garage door, gate, door or window, grey closed, red unavailable), a summary ("3 covers · average 53%") and a status chip on the title line
- Unavailable covers are greyed, their buttons and sliders disabled; a missing entity is reported in its row
- Detail button on the mini card (top right): it switches the mini card to the full card's content and back; a click anywhere outside the card brings the compact view back
- Click a position, a thumbnail or the status chip to open the Home Assistant more-info dialog
- Sections view: the full card takes 12 columns by default and at least 6, the mini card 6; narrow widths keep the icons of the buttons
- Keyboard and screen readers: sliders with their orientation, range and value, buttons with names, foldable rows that tell whether they are unfolded
- Visual editor in the dashboard UI for both cards (no YAML needed)
- Light and dark mode,
prefers-reduced-motionhonoured, English, French, German, Spanish, Serbian (Cyrillic and Latin), Italian, Dutch, European Portuguese, Polish, Romanian, Danish, Swedish, Bulgarian, Russian, Ukrainian, Hungarian, Slovak, Czech, Slovenian, Latvian and Greek - Single file, no external dependency
Supported integrations
Supported integrations
Every integration that provides cover entities: the cards use only the cover services (open_cover, close_cover, stop_cover, set_cover_position, the tilt services) and the standard attributes (current_position, current_tilt_position, supported_features, device_class). For example:
| Integration | Typical covers |
|---|---|
| Roller shutters, awnings, blinds, garage doors, gates | |
| Roller shutters and blinds on Shelly 2PM / Plus 2PM (position and tilt) | |
| Shutter and blind modules, curtain motors, garage door openers | |
| Shutters, roof windows, blinds and shades | |
| Curtain robots, blinds, gate and garage openers | |
| Template, Group | Any cover you build, cover groups |
The picture follows the cover's device_class; set one in Settings → Entities → (the cover) → Show as, or draw another picture with the device_class option of the card.
Prerequisites
Prerequisites
Home Assistant 2024.8 or later.
Configuration
Configuration
Card types#
| Card | Type |
|---|---|
| Cover Card | custom:cover-card |
| Cover Mini Card | custom:cover-mini-card |
Visual editor#
Edit a dashboard, click Add card and search for Cover Card or Cover Mini Card. The full card starts with your first cover, the mini card with the area that has the most covers. Pick covers and/or an area, an optional title, the picture, favorite positions (pick or type them), the parts to show, when to ask for confirmation and the language. The preview updates live, and options left at their default are kept out of the generated YAML. Per-cover options (name, device_class, favorites of one cover) are set in YAML; the editor keeps them.
Minimal#
type: custom:cover-card
entity: cover.living_room_bay_window
type: custom:cover-mini-card
area: living_room
Full options#
type: custom:cover-card
title: Ground floor
area: living_room
entities:
- cover.kitchen_shade
- entity: cover.office_blind
name: Office
favorites:
- name: Reading
position: 15
tilt: 45
- name: Privacy
position: 0
tilt: 10
- entity: cover.garage_door
device_class: garage
favorites:
- 0
- 50
- 100
show_controls: true
show_group_controls: true
show_tilt: true
show_favorites: true
expanded: false
confirm: true
language: fr
type: custom:cover-mini-card
title: Every shutter
entities:
- cover.living_room_bay_window
- cover.living_room_patio_door
- cover.bedroom_curtains
favorites: [25, 75]
zoom: true
Options reference#
| Option | Card | Default | Description |
|---|---|---|---|
entity |
both | — | One cover |
entities |
both | — | Covers: entity ids, or objects with entity and the per-cover options below |
area |
both | — | An area (its id or its name): every cover of the area is added, after entity and entities (hidden entities left out) |
title |
both | Cover name, area name or "Covers" | Card title |
show_title |
both | true |
Show the title in the header |
show_subtitle |
both | true |
Show the subtitle (kind of cover and area, or the number of covers and their average position) |
device_class |
both | Device class of each cover | Picture to draw for every cover: shutter, blind, shade, curtain, awning, garage, gate, door, window or damper |
favorites |
both | — | Favorite positions: numbers (a position in %) or objects with name, position and/or tilt. With one cover they are its favorites; with several, they move every cover that can take them |
show_controls |
both | true |
Open / Stop / Close buttons (and the tilt buttons) |
show_group_controls |
full | true |
Open all / Stop / Close all buttons above the rows of several covers |
show_tilt |
both | true |
Tilt slider and buttons, for the covers that support tilt |
show_favorites |
both | true |
Favorite position buttons |
expanded |
both | false |
Unfold every row of a card of several covers (otherwise click a row to unfold it; a click elsewhere folds it back) |
confirm |
both | Garage doors, gates and doors | Ask in a popup before opening, closing or moving a cover (buttons, group buttons, favorites and slider; Stop never asks). Unset, it asks when a garage door, a gate or a door is among the covers moved; true asks for every cover, false never |
zoom |
mini | true |
Detail button at the top right of the mini card: it shows the full card's content (with the same options) and switches back to the compact view; a click outside the card also brings the compact view back. false removes the button |
language |
both | Auto | Force language: fr, en, de, es, sr, sr-Latn, it, nl, pt, pl, ro, da, sv, bg, ru, uk, hu, sk, cs, sl, lv or el (auto-detects from Home Assistant) |
Per-cover options, in an object of entities:
| Option | Description |
|---|---|
entity |
The cover (required) |
name |
Name shown instead of the friendly name |
device_class |
Picture of this cover (same values as above) |
favorites |
Favorite positions of this cover (same form as above), shown in its detail |
How it works
How it works
- Position: 0 % is closed and 100 % open, as in Home Assistant. The slider follows the moving edge of the picture: the top is open for what rises (shutter, blind, shade, garage door, and by convention door, roof window and damper), the bottom for an awning, the right for curtains and a sliding gate. A cover without
current_positionis drawn fully open or closed by its state, and half-way while it moves. - Features: buttons, sliders and favorites follow
supported_features(open, close, set position, stop, and the four tilt features). A cover withoutsupported_features(an old template cover) gets open, close and stop, plus position and tilt when it reports them. - Colors: moving is blue, open is green (orange for a garage door, gate, door or window), closed is grey and unavailable red; the header and the summary take the state of the group.
- Redraws: the card is redrawn only when one of its covers changes, never while a slider is held.
Changelog
CHANGELOG.md 1.0.0Nov 13, 2026Latest
Features
- Cover Card (
custom:cover-card) and Cover Mini Card (custom:cover-mini-card) for thecoverdomain, whatever the integration: one cover, a list of covers or every cover of an area. - A drawn scene per device class (roller shutter, venetian blind, roller shade, curtains, awning, garage door, sliding gate, door, roof window, damper) that follows the position and the tilt, and is itself the position slider (pointer and keyboard), dragged the way the cover opens: up, down for an awning, sideways for curtains and a sliding gate.
- An animation per kind of cover while it opens or closes (rolling slats, swaying folds and valance, blinking warning lamps, flowing air), with the target position marked on the rail;
prefers-reduced-motionhonoured. - Tilt slider and buttons, Open / Stop / Close buttons, favorite positions (position, tilt or both), group buttons and foldable rows, all following each cover's
supported_features. - Confirmation before opening, closing or moving a garage door, a gate or a door (
confirm: truefor every cover,falsenever), unavailable covers greyed with disabled controls, mini card detail button, visual editors, Sections view sizes. - 22 languages; English in the bundle, every other language loaded on demand.