Views

A view is a tab inside a dashboard. For example, the screenshot below shows a separate view for lights on the Overview dashboard.

Screenshot of a light view tab on the Overview dashboard A lights view tab on the Overview dashboard

Views control the layout.

The three basic view layouts: Panel, sidebar, and masonry The three basic view layouts: panel, sidebar, and masonry

There are four different view types:

  • Sections (default): Arranges cards in a grid system and lets you group them in sections.
  • Masonry: Arranges cards in columns based on their card size.
  • Panel: Displays one card in full width. For example a map or an image.
  • Sidebar: Arranges cards in 2 columns, a wide one and a smaller one on the right.

Adding a view to a dashboard

  1. To add a view to your dashboard, in the top right corner, select the pencil icon.

  2. Select the + button in the top menu bar.

    Views toolbar

  3. Define the view settings:

    • If you want a view title, enter the Title.
    • If you want to see an icon, select the view icon.
      • If an icon is defined, only the icon is shown. The text only shows as a tooltip.
      • We use Material icons.
    • If you want to link to another view, define the URL.
    • If you want to use a previously defined theme, select the theme.
    • Select the view type.
    • If this view is meant to be used as a subview only, enable the Subview toggle.
    • If you are using Sections view, choose the number of columns you want to use, and, if you want to let the system fill gaps between cards, enable Dense section placement..

    The create new view configuration dialog

  4. To use a background image, on the Background tab, select an image.

    • Upload picture lets you pick an image from the system used to show your Home Assistant UI.
    • Local path lets you pick an image stored on Home Assistant. For example: /homeassistant/images/lights_view_background_image.jpg.
    • web URL let you pick an image from the web. For example https://www.home-assistant.io/images/frontpage/assist_wake_word.png.
  5. On the Badges tab, select the entities you want to be represented by a badge.

    • Sidebar and panel views do not support badges.
  6. By default, the new section is visible to all users. On the Visibility tab, you can disable the view for users.

Migrating a view into a sections view

If you have already defined a view but you would now like to have it in a section view type, you can migrate that content. For example, you can migrate from a masonry to a sections view. Currently, you cannot migrate a sections view type into another view type.

Migrating does not affect the current view. It will stay as is, and a new, additional view is created.

To migrate a view into a sections view type, follow these steps:

  1. Open the view you want to migrate, and go into edit mode.

  2. In the configuration dialog, select the new view type.

  3. If the new view type offers additional settings, define those settings.

    • For more information on those settings, refer to the documentation of that view type.
  4. In the top-right corner, select Convert.

    • Result: A new, additional view is created.
    • Your current view will stay untouched.
    • A new tab opens, and all your cards are imported to the new view.
  5. In the Imported cards section, pick each of the cards, and drag them into the sections.

    • To edit and customize the view, follow the steps in the sections view documentation.

    Move cards from imported cards section onto your dashboard

  6. To save your changes, select Done.

    • Result: Your new dashboard is shown.
    • If you have cards that were not yet integrated, you can still add them later. They are still available in the Edit mode, in the Imported cards section.

URL of a view

You can link to one view from a card in another view when using cards that support navigation (navigation_path). The string supplied here will be appended to the string /lovelace/ to create the path to the view. Do not use special characters in paths. Do not begin a path with a number. This will cause the parser to read your path as a view index.

Example

View configuration:

- title: Living room
  # the final path is /lovelace/living_room
  path: living_room

Picture card configuration:

- type: picture
  image: /local/living_room.png
  tap_action:
    action: navigate
    navigation_path: /lovelace/living_room

View icon

If you define a view icon, the icon instead of the title will be displayed, the title will then be used as a tool-tip.

Example

- title: Garden
  icon: mdi:flower

Visible

You can specify the visibility of views as a whole or per-user. (Note: This is only for the display of the tabs. The URL path is still accessible)

Example

views:
  - title: Ian
    visible:
      - user: 581fca7fdc014b8b894519cc531f9a04
    cards:
      ...
  - title: Chelsea
    visible:
      - user: 6e690cc4e40242d2ab14cf38f1882ee6
    cards:
      ...
  - title: Admin
    visible: db34e025e5c84b70968f6530823b117f
    cards:
      ...

Options for visible objects

If you define visible as objects instead of a boolean to specify conditions for displaying the view tab:

Configuration Variables

user string Required

User ID that can see the view tab (unique hex value found on the Users configuration page).

Changing the view type in YAML

You can change the layout of a view in YAML by using a different view type. The default is section.

Example

- title: Map
  type: panel
  cards:
    - type: map
      entities:
        - device_tracker.demo_paulus
        - zone.home

Theme

Set a separate theme for the view and its cards.

Example

- title: Home
  theme: happy

Background

You can style the background of your views with a theme. You can use the CSS variable lovelace-background. For wallpapers you probably want to use the example below, more options can be found here.

Example

# Example configuration.yaml entry
frontend:
  themes:
    example:
      lovelace-background: center / cover no-repeat url("/local/background.png") fixed

Subview

A “View” can be marked as “Subview”. Subviews won’t show up in the navigation bar on top of the sidebar. Subviews can, for instance, be used to show detailed information; you could link to this subview from a page with a clean look with only basic information (by using cards that support the navigate action). Think of a view with a few thermostats and a subview with status information on the heating/cooling device.

When on the subview, the navigation bar only shows the name of the subview and a back button (no icon is shown). By default, clicking on back button will navigate to the previous view but a custom back path (back_path) can be set.

You can access subviews from other parts of your dashboard by using cards that support the navigate action.

Example

Simple subview:

- title: Map
  subview: true

Subview with custom back path:

- title: Map
  subview: true
  back_path: /lovelace/home

Configuration Variables

views list Required

A list of view configurations.

type string (Optional, default: masonry)

The type of the view.

title string Required

The title or name.

badges list (Optional)

List of entities IDs or badge objects to display as badges. Note that badges do not show when view is in panel mode.

cards list (Optional)

Cards to display in this view.

path string (Optional, default: view index)

Paths are used in the URL.

icon string (Optional)

Icon-name from Material Design Icons. You can use any icon from Material Design Icons. Prefix the icon name with mdi:, ie mdi:home. Only for “View”, not for “Subview”.

background string (Optional)

Style the background using CSS.

theme string (Optional)

Themes view and cards.

visible boolean | list (Optional, default: true)

Hide/show the view tab from all users or a list of individual visible objects.

subview boolean (Optional, default: false)

Mark the view as “Subview”.

back_path string (Optional)

Only for “Subview”. Path to navigate when clicking on back button.

Example

View configuration:

- title: Living room
  badges:
    - device_tracker.demo_paulus
    - entity: light.ceiling_lights
      name: Ceiling Lights
      icon: mdi:bulb
    - entity: switch.decorative_lights
      image: /local/lights.png

Subview configuration:

- title: "Energieprijzen"
  path: "energieprijzen"
  subview: true
  back_path: "/ui-data/climate"

  cards:
    - type: entities
      entities:
        - sensor.today_avg_price