Releases: snootched/lcards
2026.04.19.0
Another smaller release that adds a few requested features, squashed some bugs, and improves upon overall reliability of some internals.
Templated Colour Configs
- Adds template support to all state-based colour resolution keys. You can now use jinja2/js templates to evaluate and provide colours to fields like
color.activecolor.defaultetc. - Entities used within the templates are automatically tracked for changes and re-evaluate automatically.
- For manual addition to the tracked entities a new config key
triggers_updateis now provided. Simply provide a list of entities to add that will trigger re-evaluation. This is similar to the same config key in custom-button-card. - Thanks for reporting! (https://github.com/snootched/lcards/discussions/343)
Card Interactive Mode Selection
- Ability to disable the interactive graphical elements of the card.
- Disables
on_hoveranimations and cursor changes (and also the ability to set a custom cursor) - Useful for using cards as part of non-interactive elements like panels, backgrounds etc.
- Thanks for requesting! (https://github.com/snootched/lcards/discussions/343 #344)
Card Sizing updates
- Card auto-sizing updates to better handle various scenarios
- When using custom-layout-card, LCARdS will now calculate sizing and flow better (see docs for more details.)
Documentation
Huge documentation update:
- better navigation and simpler flow to get up and running
- content reogranized, pages updated/overhauled
Other Updates
- (Slider) - update slider presets to standarize on theme tokens
- (DeviceIdentityManager) - add graceful degradation for UUID generation when crypto functions are unavailable (non-SSL sessions)
Full Changelog: 2026.04.13.1...2026.04.19.0
๐ LCARdS 2026.04.13.1
A bit of a smaller release that fixes issues a couple frontend issues, and with a bit more focus on the backend/internals to help support future features/requests.
New Features
Elbow Card - Expanded Zone Definitions
Zone auto-calculation for elbow cards has been expanded with new configurations for L-corner (left and right) and open/contained presets. All standard zone names (vertical_bar, horizontal_bar, body, full, and layout-specific aliases like left_bar, right_bar) are now consistently defined across all elbow geometry variants. (#340)
Preview Features System
A new Preview Features toggle has been added to the LCARdS integration configuration (Settings โ Devices & Services โ LCARdS โ Configure).
New features are already included in the release โ opting-in with this setting will surface their configuration across the UI so you can control them. Without it, the features operate behind the scenes with established defaults - you simply won't see the settings. To see which features are currently behind the gate - check the Preview Features section of the About tab in the LCARdS Config Panel.
Why a gate instead of a dev build?
Preview features are functional and tested, but their config schema or UI may shift before they are promoted to stable. The gate lets you opt in knowing that small breaking changes could arrive in a subsequent release.
Updates & Fixes
- Fix (Animations):
while-condition lifecycle handling corrected โ conditions now properly start/stop looping animations when the entity state changes without requiring a page reload.check_on_loadnow defaults totrue, so a looping animation with awhilecondition activates immediately on card load if the condition is already met (#341) - Update (Config Panel): The Storage tab is now only shown to HA admin users. Non-admin users no longer see the backend storage explorer.
Preview Features
Per-Device & Per-User Settings
A new fully scoped-settings system for the backend is included in this release. This enables persistent storage with APIs for per-user/per-device settings. The first feature to utilize this new system is the Sound system.
Per-Device & Per-User Sound
Sound settings can be configured independently per browser session and per HA user. A wall-mounted kiosk can run at lower volume than a desktop; a specific user can disable sounds entirely without affecting anyone else. All of this is configurable centrally from the Config Panel โ no need to make changes from the target device.
Users & Devices Management
Each browser/device receives a stable unique identity that persists across page reloads. Devices can be given friendly display names ("Kitchen Tablet", "Bedroom Tablet") for easy to use referencing.
A new Users & Devices tab appears in the LCARdS Config Panel that provides a central view of all registered devices and users with stored scoped settings, and provides the ability to manage their overrides without needing to be on the target device.
Targeted HA Services
All lcards.* HA services (alert modes, clear alert, reload page, log level) can now be targeted at specific devices or users rather than broadcasting to all sessions. Four targeting fields are supported:
target_device_idsโ target by device/browser UUIDtarget_user_idsโ target by HA user IDtarget_device_namesโ target by friendly device name (case-insensitive, resolved server-side)target_user_namesโ target by HA user display name (case-insensitive, resolved server-side)
Omitting all fields broadcasts to everyone โ fully backward-compatible with existing automations.
Targeted Alert Modes
Alert modes (red/yellow/blue alert etc.) can now be triggered on individual devices or users without changing the global alert state. A red alert on the kitchen tablet doesn't affect any other screen, and clearing it stays local.
Full Changelog: 2026.04.11.2...2026.04.13.1
2026.04.13.0-dev3
feat(previews): update version and enhance preview features in the UI
LCARdS 2026.04.11.2
New Features
Image Support
Image support has been added to both card Textures and Backgrounds (#336)
You can configure images as layers, just like you do animations. Just like any layer, they can be stacked with the others, allowing for some interesting and creative visuals. Select builtin images from the asset library, or provide your own (served from a local Home Assistant or any URL)
Asset Library - Images - raster image type has been added to the Asset Library system, and some freely distributable images are included as a bultin content pack.
Text Zones - Icon Area Support
Text zones will now auto-calculate and respect icon areas (#335)
Now you can place text fields in the icon area (icon), in the body/content area (body), or anywhere on the full card (full):
Animations: on_entity_change trigger condition system
The on_entity_change animation trigger now supports three condition modes, turning it from a simple "fire on every change" event into a proper lifecycle-aware animation gate:
from_state / to_state - are single-use fire-and-forget guards. The animation only plays when the entity transitions from a specific state, to a specific state, or both. Great for one-shot effects like a flash when a light turns on.
while - ongoing lifecycle condition. Combined with loop: true, the animation starts automatically when the condition becomes true and stops itself when it clears. Perfect for looping alerts or indicators that should run exactly as long as a condition holds (e.g. blink while a switch is on, when there is a weather alert, etc.)
check_on_load: evaluates the condition against the entity's current state on card load, so a looping animation starts immediately if the condition is already met rather than waiting for the next state change.
attribute - any condition can target an attribute instead of the main state, including the virtual helper attribute brightness_pct which allows for checking light brightness based on percent.
vs. the Rules Engine: use on_entity_change conditions for animation-only, single-entity logic that lives entirely within one card's config. Use Rules for anything that needs to apply style patches (colors, borders) across multiple overlays or evaluate multi-entity compound conditions. For a simple "blink this button while active", the trigger conditions are less config than a full rule.
Updates & Fixes
- Update: Card
overflow: visibleis honoured preventing clipped animations if the card is scaled outside its bounds. - Update: Sound System: remove browser localStorage fallback and only use the back-end storage via WebSocket to the integration.
- Update: enabled virtual attriubute
brightness_pctto be used available to all cards via the state resolution system. This allows to easily reference light brightness as a percentage[0..100]without the need of mapping the range[0..255] - Fix: Elbow card using
framepreset now properly clips the texture layer to the shape (preventing overlap with content/background area) - Fix: RulesEngine - various fixes including streamlined entity management by removing cached entity list and utilizing live dependency index. Additional console debug commands added.
- Fix: drag&drop in animations editor lists.
- Fix: Animations: fixed regression for
ease/easingparameter confusion. Fixed animation parameters for top-level config keys that were buried in theparamsobject (and non-functional, likeease)
Note: due to the nature of the bugs in the animation system and the required fixes - your animation configs may need to be updated. The editor will automatically fix the configs if you edit the animation and make a change to them (the edit fires the code that will write the fixed configurations.)
Full Changelog: 2026.04.1.1...2026.04.11.2
LCARdS 2026.04.6.1
Small fix release to fix card sizing issues when using height key in config (due to changes introduced in 2026.04.5.1)
- fix: height resolution ordering (#333)
- Fix double-registation in window.customCards
New Features
This is a smaller release with a few new features and fixes.
Updates & Fixes
Alert System: updated design to allow non-admin user functionality (#331)
Icons: introduced state-based icon selection in addition to colours (#330)
Elbow Card: fixed elbow card arc autosizing bugs (#327) (#319)
Symbiont: fixed issue where certain cards configured as symbionts were not always visible (HA lazy-loaded cards) (#323)
Button Card: fixed corner-radius clamping issue.
Card Sizing:
- added
min_heightmin_widthparameters for custom sizing scenarios - fixed autosizing methodology for placement in dimensionless containers/fractional sizing (custom layout card, etc.)
release 2026.04.5.1 by @snootched in #332
Full Changelog: 2026.04.3.1...2026.04.5.1
LCARdS 2026.04.5.1
New Features
This is a smaller release with a few new features and fixes.
Updates & Fixes
Alert System: updated design to allow non-admin user functionality (#331)
Icons: introduced state-based icon selection in addition to colours (#330)
Elbow Card: fixed elbow card arc autosizing bugs (#327) (#319)
Symbiont: fixed issue where certain cards configured as symbionts were not always visible (HA lazy-loaded cards) (#323)
Button Card: fixed corner-radius clamping issue.
Card Sizing:
- added
min_heightmin_widthparameters for custom sizing scenarios - fixed autosizing methodology for placement in dimensionless containers/fractional sizing (custom layout card, etc.)
release 2026.04.5.1 by @snootched in #332
Full Changelog: 2026.04.3.1...2026.04.5.1
LCARdS 2026.04.3.1
New Features
Text Fields & Zones
LCARdS now ships a full text + zone layout system across Button, Slider, and Elbow cards.
Auto-zones โ every card type automatically calculates named zones from its geometry (e.g. horizontal_bar / vertical_bar on an elbow, track on a slider, body on a button). No configuration required โ they're always there.
Text field routing โ any text field can target a zone by name with zone: <name>. Positioning, padding, and font sizing all operate within the zone bounds.
Proportional sizing โ font_size_percent: 100 makes cap-height glyphs fill the full zone height; pair with stretch: true to also fill the zone width. Both scale automatically as the card is resized.
Custom zones โ define additional zones under config.zones using pixels, percent, or a mix per axis. Custom zone names replace auto-calculated ones of the same name.
Debug overlay โ add debug_zones: true to any card to render a colour-coded zone overlay for layout design.
State-based Slider Colours
Raised from issue #315 - the slider card has been updated with full state-based colour support across the components.
You can now:
- assign any colour to any state (just like buttons, gauge ticks, etc.)
match-lightcolour for gradient start/end (activestate)- optionally apply light brightness multiplier on each
- independent colour selection for gradient start/end (
inactivestate) - filled/unfilled opacity still works (and is a multiplier if apply light brightness is also enabled)
- state-based colours permit calculated colours as well (
alpha() lighten() darken() saturate() desaturate() mix())
Updates & Fixes
- enhancement: colour/hue matching for coloured bulbs in white mode #314
- many small fixes and enhancements
Full Changelog: 2026.03.29.1...2026.04.3.1
2026.03.29.1
LCARdS 2026.03.29.1
Installation via HACS (recommended)
- Open HACS โ Integrations โ โฎ โ Custom repositories
- Add
https://github.com/snootched/lcardsโ category Integration - Install LCARdS and restart Home Assistant
- Add the integration via Settings โ Integrations โ Add integration โ LCARdS
Manual installation
- Download
lcards.zip - Extract into
config/custom_components/lcards/ - Restart Home Assistant
- Add the integration via Settings โ Integrations
What's Changed
- feat: HACS integration Phase 2 โ storage, services, push channel + CI overhaul by @snootched in #296
- fix: hassfest manifest compliance + CI hassfest validation job by @snootched in #297
- fix: update version to 2026.03.27.1 by @snootched in #298
- rel: 2026.3.28.1 Add new icons and update button preset configurations by @snootched in #299
- ci: workflow_dispatch-only release; branch-aware prerelease detection by @snootched in #301
- feat: slider state-based colours; text background sizing options by @snootched in #303
- fix: add progress bar color configuration for gauge presets by @snootched in #305
- Enhance slider functionality with dynamic ranges, colors, and updates by @snootched in #310
Full Changelog: 2026.03.28.2...2026.03.29.1
2026.03.28.2
LCARdS 2026.03.28.2
Installation via HACS (recommended)
- Open HACS โ Integrations โ โฎ โ Custom repositories
- Add
https://github.com/snootched/lcardsโ category Integration - Install LCARdS and restart Home Assistant
- Add the integration via Settings โ Integrations โ Add integration โ LCARdS
Manual installation
- Download
lcards.zip - Extract into
config/custom_components/lcards/ - Restart Home Assistant
- Add the integration via Settings โ Integrations
Full Changelog: https://github.com/snootched/lcards/commits/2026.03.28.2
2026.03.27.1
LCARdS 2026.03.27.1
Installation via HACS (recommended)
- Open HACS โ Integrations โ โฎ โ Custom repositories
- Add
https://github.com/snootched/lcardsโ category Integration - Install LCARdS and restart Home Assistant
- Add the integration via Settings โ Integrations โ Add integration โ LCARdS
Manual installation
- Download
lcards.zip - Extract into
config/custom_components/lcards/ - Restart Home Assistant
- Add the integration via Settings โ Integrations
What's Changed
- fix: hassfest manifest compliance + CI hassfest validation job by @snootched in #297
- fix: update version to 2026.03.27.1 by @snootched in #298
Full Changelog: 2026.03.27...2026.03.27.1