Skip to content

LCARdS 2026.04.25.1

Choose a tag to compare

@github-actions github-actions released this 25 Apr 22:43
7e5ef72

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_update config key forces template re-evaluation on specified entity IDs even if not directly referenced β€” similar to custom-button-card's same key
  • Thanks for reporting! (https://github.com/snootched/lcards/discussions/343)

Card Interactive Mode

  • Set interactive: false to suppress hover animations, cursor changes, and pressed feedback β€” useful for decorative or display-only cards
  • New style.cursor key 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-card with card_margin β€” a width: 100% on :host was 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-card is available to fix the upstream card_margin bug

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 UUID
  • target_user_ids β€” target by HA user ID
  • target_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 shaped preset; 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 and theme: 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