Skip to content

โš™๏ธ Requirements โ€‹

To use the Material Home Component, a few additional dependencies and integrations are required to ensure full compatibility and styling. Below are the minimum requirements:

๐Ÿ›  Home Assistant Community Store (HACS) โ€“ Required โ€‹

IMPORTANT

๐Ÿ“ฅ Installing via HACS is strongly recommended for easy management and updates of custom components.

๐Ÿ”— How to install HACS
The Home Assistant Community Store (HACS) is a custom integration that provides a UI to manage custom elements in Home Assistant.www.hacs.xyz

IMPORTANT

To enable Material You styling (dynamic colors, adaptive palettes), youโ€™ll need a theme that supports Material You variables.

  • Includes light/dark mode support
  • Supports dynamic color palettes (Material You)
  • Defines required CSS variables for custom cards
๐Ÿ”— Material You Theme for Home Assistant
GitHub repository for the Material You theme for Home Assistant.github.com
๐Ÿ”— Material You Utils for Home Assistant
GitHub repository for the Material You utilities for Home Assistant.github.com

๐Ÿงท Material Symbol Icons โ€“ @beecho01 โ€“ Required โ€‹

IMPORTANT

This component uses the Material Design Icons set for consistency with Googleโ€™s UI.

Make sure icons are enabled in your instance (enabled by default in modern HA versions).

The icons come in six distinct styles, each with its own prefix:

  • Outlined: m3o
  • Outlined and filled: m3of
  • Rounded: m3r
  • Rounded and filled: m3rf
  • Sharp: m3s
  • Sharp and filled: m3sf
๐Ÿ”— Material Symbol for Home Assistant
GitHub repository for the Material Symbol for Home Assistant.github.com

We recommend the Figtree font for a look very close to Google Sans, the font used in official Google apps. If not available, the system will fall back to Roboto.

To install Figtree:

  1. Go to Dashboard โ†’ Edit dashboard โ†’ Menu (โ‹ฎ) โ†’ Manage Resources

  2. Click + Add Resource

  3. Use this URL:

    https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,
    300..900&display=swap
  4. Select Resource Type: Stylesheet

  5. Click Create

  6. Hard refresh your browser (CTRL + F5) or clear the app cache

๐Ÿงญ Required Custom Cards โ€‹

To achieve the full Google Home UI experience, install the following cards via HACS:

๐Ÿ“Œ Swipe Card โ€‹

๐Ÿ”— Swipe Card
GitHubgithub.com

NOTE

Enables horizontal swipeable views for dashboards, similar to the Google Home app tabbed interface.

  • Allows seamless swiping between different sections (e.g. Cameras, Lighting, Wi-Fi, Climate)
  • Highly configurable with parameters, spaceBetween, slidesPerView, etc.

๐Ÿ“Œ Button Card โ€‹

๐Ÿ”— Button Card
GitHubgithub.com

NOTE

The backbone of the UIโ€”used to build powerful, styled buttons with dynamic content.

  • Fully supports entity states, custom templates, and CSS-style controls
  • Each dashboard item (camera, light, climate...) uses this card with custom styling and icons

๐Ÿ“Œ Card Mod โ€‹

๐Ÿ”— Card Mod
GitHubgithub.com

CORE FUNCTION

The backbone of the UIโ€”used to bypass standard design limits by applying dynamic CSS styles based on entity states.

Key Features:

  • Full CSS Control: Customize borders, backgrounds, animations, and spacing for any card.
  • Dynamic Templating: Fully supports Jinja2 templates (e.g., changing colors or icons based on whether a device is on or off).
  • Universal Integration: Applied across all dashboard modules (Camera, Light, Climate) to ensure a cohesive and polished look.

๐Ÿ“Œ Auto Entities โ€‹

๐Ÿ”— Auto Entities
GitHubgithub.com

CORE FUNCTION

The UIโ€™s "search engine"โ€”automatically populates cards with entities that match specific criteria, removing the need to manually add every new device.

Key Features:

  • Smart Filtering: Automatically display devices based on state (e.g., "all lights that are on"), domain (e.g., "all binary sensors"), or specific attributes.
  • Dynamic Management: As soon as you add a new device to Home Assistant, it will appear in the correct card if it matches the filter, without you touching a line of YAML.
  • Sorting & Grouping: Organize results by name, state, last changed, or even randomly, with the ability to limit the total number of items shown.
  • Native Integration: Works by "wrapping" around any other card (like entities, glance, or grid), acting as the logic layer for what should be displayed.