LCARdS 2026.04.25.1
This release brings in some user requests/suggestions (keep them coming!), card improvements, a new core subsystem, a pile of fixes, and a major documentation update.
New Features
(core system) Screen Effect Manager
New subsystem bringing full-screen composited visual effects to LCARdS.
- Provides a stackable 3-layer system (filter, colour, effect)
- Create some interesting effects when used with Alert Overlay or browser_mod
- Full HA service support (
lcards.trigger_effect/lcards.clear_effect) or the browser console (window.lcards.screenEffect.*)
Alert Overlay Enhancements
The alert overlay now supports configurable auto-dismiss behaviour.
- Adds a configurable auto-dismiss mode to automatically clear the overlay after a timeout
- Refactored to use Screen Effect Manager
- New browser_mod integration documentation page covers how to integrate LCARdS alerts with browser_mod popups and browser-targeted automations
New Colour Features
computed colour function: base()
- Resolves a colour against the pre-alert (baseline) palette, making it immune to alert-mode hue shifts β useful for UI elements that shouldn't change colour during an alert.
Templated Colour Configs
- Jinja2/JS template support added to all state-based colour resolution keys (
color.active,color.default, etc.). - Referenced entities are automatically tracked for state changes; also a new
triggers_updateconfig key forces template re-evaluation on specified entity IDs even if not directly referenced β similar tocustom-button-card's same key - Thanks for reporting! (https://github.com/snootched/lcards/discussions/343)
Card Interactive Mode
- Set
interactive: falseto suppress hover animations, cursor changes, and pressed feedback β useful for decorative or display-only cards - New
style.cursorkey overrides cursor style independently when interactive mode is on - Thanks for requesting! (https://github.com/snootched/lcards/discussions/343 Β· #344)
Card Sizing Updates
- Fixed overflow when using
custom-layout-cardwithcard_marginβ awidth: 100%on:hostwas causing bleed outside margin boundaries - Initial size measurement now uses a double animation-frame delay to let ancestor layout styles settle first
- Editor hints added for layout-card height configuration; details at Sizing inside
custom:layout-card - A custom-patched version of
custom-layout-cardis available to fix the upstreamcard_marginbug
Promoted from Preview
Per-Device & Per-User Settings
A fully scoped-settings system for the backend is included. 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.
Updates & Fixes
- (Documentation) Major overhaul β improved navigation and a simpler getting-started flow
- (Slider) Fixed text zones for the
shapedpreset; all slider presets updated to use theme tokens for colour - (AlertMode) Fixed startup timing to properly capture CSS variables and apply in-progress alert modes on load; added retry logic for transient init states
- (ThemeManager) Token override events are now debounced β prevents all dashboard cards re-processing simultaneously
- (DataSource) Removed deprecated
subscribeOverlay()and overlay subscription infrastructure - (StylePresetManager) Removed dead CSS utility class generation code
- (DeviceIdentityManager) Multi-tier UUID generation fallback for non-SSL sessions where Web Crypto API is unavailable
- (CSS/Tokens) Extensive cleanup of font and colour variable references across components
- (CI/Build) CSS variable validation is now gated in the build pipeline β
--lcars-*tokens validated against the live HA-LCARS theme;--lcards-*vars andtheme:paths validated from call sites to declarations - (MSD Studio) Many fixes and layout/zoom enhancements
Full Changelog: 2026.04.13.1...2026.04.25.1