Skip to content

[Assist]: Native uix: / uix-* keys do not inject styles that work verbatim under legacy card_mod: / card-mod-* keys #504

Description

@brodkin

Environment

  • UIX v8.0.0 (HACS integration, config entry added; startup banner logs 💡 UIX 8.0.0 IS INSTALLED 💡)
  • Home Assistant Core 2026.8.1
  • card-mod fully removed (no extra_module_url entry, no lovelace resource; no window.card_mod_patch_state conflict)
  • Dashboards are YAML mode; observed on Fully Kiosk (Android WebView) wall panels and desktop Chrome

Summary

A large working config (~123 card_mod: card blocks across two dashboards, plus three themes using card-mod-theme: / card-mod-card-yaml: / card-mod-root-yaml:) renders perfectly through UIX's legacy-key compatibility path.

Mechanically renaming the keys to the native dialect — card_mod:uix: on cards, card-mod-theme:uix-theme:, card-mod-<thing>(-yaml):uix-<thing>(-yaml): in themes, with no other changes (identical inner style: content) — results in no styles being injected at all on a cold page load. <uix-node> elements still attach inside each styled card's shadow root, but their styles property stays empty indefinitely (well beyond the normal async-resolution window), and cards render at natural size.

Reverting only the key names restores injection immediately.

Example block (works as card_mod:, does not inject as uix:)

- type: custom:mini-media-player
  entity: media_player.living_room
  artwork: full-cover
  uix:            # works when this key is spelled card_mod:
    style: |
      ha-card {
        height: 620px;
      }

Under uix: the card renders at its natural ~116px; under card_mod: it renders at the injected 620px.

Reproduction / verification method

A/B tested by deploying each dialect and cold-reloading the same Fully Kiosk wall panel (browser_mod.refresh), with frontend.reload_themes + hard refresh after each theme change:

  1. Legacy keys deployed → cold reload → all styles injected, layout correct.
  2. Same config, keys renamed to native dialect → cold reload → zero injection, all styled cards collapsed/unstyled.
  3. Legacy keys restored → cold reload → correct again.

Card keys and theme keys were renamed together, so I can't isolate which of the two native paths fails (possibly both). Affected cards include core cards (tile, markdown, horizontal-stack) and custom cards (mini-media-player, stack-in-card).

Expected

Per the FAQ ("drop-in replacement for Card-mod versions up to 4.2.1", users "encouraged to update to use uix: in your cards and uix-<thing>(-yaml) for your themes"), the native keys should inject identically to the legacy keys.

Happy to provide the full dashboard/theme YAML or debug output if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    in reviewIssue is in review to determine root causemore information requiredWaiting for more user information before further review.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions