Skip to content

Themes

To complement the HA-LCARS system theme - LCARdS adds a token-based theme system for its cards. Instead of hardcoding colours and other default settings, we can reference named tokens that the active theme resolves at runtime. Currently the lcards-default theme is loaded at startup, but in the future new theme packs can be added to easily change the look of all the cards.


Built-in Themes

ThemeDescription
lcards-defaultStandard LCARS look

Themes are provided by content packs. See the Config Panel Pack Explorer to view all the tokens that theme provides.


Using Theme Tokens

Reference a token in card configs, such as a colour or size field using {theme:token.path}:

yaml
style:
  border:
    color: "{theme:colors.ui.primary}"
  card:
    color:
      background: "{theme:colors.ui.primary}"

Token Namespaces

Tokens are organized into namespaces. Browse all available tokens in the Config Panel Theme Browser tab.

Example: colors.ui.*

Semantic colours that map to UI roles. In the default theme, prefer HA-LCARS theme colours but provide LCARdS fallbacks:

Tokenlcards-default value
colors.ui.primaryvar(--lcars-ui-primary, var(--lcards-gray-medium))
colors.ui.secondaryvar(--lcars-ui-secondary, var(--lcards-gray-medium-light))
colors.ui.tertiaryvar(--lcars-ui-tertiary, var(--lcards-orange-medium-dark))
colors.ui.quaternaryvar(--lcars-ui-quaternary, var(--lcards-gray-dark))

LCARdS CSS Color Palette

LCARdS injects a complete set of --lcards-<color>-<shade> CSS variables at startup. These colours can be used anywhere and do not need to be in your HA-LCARS theme file.

Note: Colors shown are the green_alert (normal) mode baseline values. When an alert mode is active (e.g. red_alert, blue_alert), all variables are HSL-transformed automatically — you never need to change your references.


🟠 Orange

SwatchCSS VariableHexNotes
--lcards-orange-darkest#d91604
--lcards-orange-dark#ef1d10
--lcards-orange-medium-dark#e7442a
--lcards-orange#ff6753Base orange
--lcards-orange-medium#ff6753Alias for --lcards-orange
--lcards-orange-medium-light#ff8470
--lcards-orange-light#ff977b
--lcards-orange-lightest#ffb399

⚫ Gray

SwatchCSS VariableHexNotes
--lcards-gray-darkest#1e2229
--lcards-gray-dark#2f3749
--lcards-gray-medium-dark#52596e
--lcards-gray#6d748cBase gray
--lcards-gray-medium#6d748cAlias for --lcards-gray
--lcards-gray-medium-light#9ea5ba
--lcards-gray-light#d2d5df
--lcards-gray-lightest#f3f4f7
--lcards-moonlight#dfe1e8Near-white; used for text/labels

🔵 Blue

SwatchCSS VariableHexNotes
--lcards-blue-darkest#002241
--lcards-blue-dark#1c3c55
--lcards-blue-medium-dark#2a7193
--lcards-blue#37a6d1Base blue
--lcards-blue-medium#37a6d1Alias for --lcards-blue
--lcards-blue-medium-light#67caf0
--lcards-blue-light#93e1ff
--lcards-blue-lightest#00eeeeCyan-teal

🟢 Green

SwatchCSS VariableHexNotes
--lcards-green-darkest#0c2a15
--lcards-green-dark#083717
--lcards-green-medium-dark#095320
--lcards-green#266239Base green
--lcards-green-medium#266239Alias for --lcards-green
--lcards-green-medium-light#458359
--lcards-green-light#80bb93
--lcards-green-lightest#b8e0c1

🟡 Yellow

SwatchCSS VariableHexNotes
--lcards-yellow-darkest#70602c
--lcards-yellow-dark#ac943b
--lcards-yellow-medium-dark#d2bf50
--lcards-yellow#f9ef97Base yellow
--lcards-yellow-medium#f9ef97Alias for --lcards-yellow
--lcards-yellow-medium-light#fffac9
--lcards-yellow-light#e7e6de
--lcards-yellow-lightest#f5f5dcWarm white / cream

Shade Scale

Each color family (except gray/moonlight) follows the same 8-step scale:

ShadeDescription
-darkestDeepest / near-black tone
-darkDark variant
-medium-darkBetween dark and mid
(base / -medium)Core reference color — both --lcards-<color> and --lcards-<color>-medium resolve to the same value
-medium-lightBetween mid and light
-lightLight variant
-lightestPalest / near-white tone

Gray also includes --lcards-moonlight — a near-white warm gray used for text, labels, and chart axes.


Usage

css
/* Direct reference */
color: var(--lcards-blue-light);

/* Prefer HA-LCARS theme variable, fall back to lcards palette */
color: var(--lcars-orange, var(--lcards-orange-medium));

/* With hex fallback */
color: var(--lcards-orange-medium, #ff6753);