Its just a combination of different stack in cards.
Here’s the code.
type: custom:stack-in-card
cards:
- type: custom:layout-card
layout_type: masonry
layout: {}
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
entity: alarm_control_panel.yale_smart_alarm
content_info: none
icon: >-
{{ 'mdi:shield-off' if
is_state('alarm_control_panel.yale_smart_alarm', 'disarmed') else
'mdi:shield-check' }}
icon_color: >-
{{ 'red' if is_state('alarm_control_panel.yale_smart_alarm',
'disarmed') else 'green' }}
name: Alarm
- type: template
entity: lock.front_door
icon: >-
{{ 'mdi:lock' if is_state('lock.front_door', 'locked') else
'mdi:lock-open-variant' }}
icon_color: '{{ ''green'' if is_state(''lock.front_door'', ''locked'') else ''red'' }}'
content: null
hold_action:
action: call-service
service: lock.unlock
data:
code: 'XXXX'
target:
entity_id: lock.front_door
tap_action:
action: more-info
- type: spacer
- type: weather
entity: weather.winshields_way
show_conditions: true
show_temperature: true
- type: custom:mushroom-title-card
title: |-
{% set time = now().hour %}
{% if (time >= 18) %}
Good Evening, {{user}}!
{% elif (time >= 12) %}
Good Afternoon, {{user}}!
{% elif (time >= 5) %}
Good Morning, {{user}}!
{% else %}
Hello, {{user}}
{% endif %}
subtitle: ''
card_mod:
style: |
ha-card {
box-shadow: none;
background: none;
border-radius: 0px;
margin-left: auto;
margin-right: auto;
margin-bottom: -25px;
margin-top: -25px;
}
- type: horizontal-stack
cards:
- type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
primary: >-
{{ states('person.greg').replace('not_home',
'Away').title() }}
hold_action:
action: toggle
tap_action:
action: navigate
navigation_path: /home-v2/hallway
fill_container: true
layout: vertical
multiline_secondary: false
card_mod:
style:
mushroom-state-info$: |
.primary {
text-shadow: 1px 0px 2px black;
--card-primary-font-weight: 400;
--primary-text-color: white;
--card-primary-font-size: 12px;
#align-items: end;
margin-top: 70px;
inline-size: 75px;
margin-left: auto;
text-transform: capitalize;
text-align: left;
text-indent: 7px;
}
.secondary {
--card-secondary-font-size: 13px;
text-shadow: 0px 0px 5px black;
--secondary-text-color: white;
--card-secondary-font-weight: 350;
margin-top: -5px;
margin-left: -35px;
text-transform: capitalize;
}
.: |
:host {
{% if is_state('person.greg', 'home') %}
background: url('/local/images/persons/greg.JPG') center;
background-size: contain;
background-position-y: -30px;
#filter: grayscale(70%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{%- else -%}
background: url('/local/images/persons/greg.JPG') center;
background-size: contain;
background-position-y: -30px;
#background-blend-mode: overlay;
filter: grayscale(100%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{% endif %}
--mush-icon-size: 0px;
height: 200px;
margin-left: -15px !important;
margin-top: -70px !important;
}
mushroom-shape-icon {
--shape-color: rgba(var(--rgb-{{ 'orange' if is_state('light.hallway_lamp', 'on') else 'disabled' }}), 0.4) !important;
}
card_mod:
style: |
ha-card {
height: 75px;
width: 75px;
border-radius: 7.5px;
margin-left: auto;
margin-right: auto;
}
- type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
primary: >-
{{ states('person.sarah').replace('not_home',
'Away').title() }}
hold_action:
action: toggle
tap_action:
action: navigate
navigation_path: /home-v2/hallway
fill_container: true
layout: vertical
multiline_secondary: false
card_mod:
style:
mushroom-state-info$: |
.primary {
text-shadow: 1px 0px 2px black;
--card-primary-font-weight: 400;
--primary-text-color: white;
--card-primary-font-size: 12px;
#align-items: end;
margin-top: 70px;
inline-size: 75px;
margin-left: auto;
text-transform: capitalize;
text-align: left;
text-indent: 7px;
}
.secondary {
--card-secondary-font-size: 13px;
text-shadow: 0px 0px 5px black;
--secondary-text-color: white;
--card-secondary-font-weight: 350;
margin-top: -5px;
margin-left: -35px;
text-transform: capitalize;
}
.: |
:host {
{% if is_state('person.sarah', 'home') %}
background: url('/local/images/persons/sarah.JPG') center;
background-size: contain;
background-position-y: -30px;
#filter: grayscale(70%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{%- else -%}
background: url('/local/images/persons/sarah.JPG') center;
background-size: contain;
background-position-y: -30px;
#background-blend-mode: overlay;
filter: grayscale(100%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{% endif %}
--mush-icon-size: 0px;
height: 200px;
margin-left: -15px !important;
margin-top: -70px !important;
}
mushroom-shape-icon {
--shape-color: rgba(var(--rgb-{{ 'orange' if is_state('light.hallway_lamp', 'on') else 'disabled' }}), 0.4) !important;
}
card_mod:
style: |
ha-card {
height: 75px;
width: 75px;
border-radius: 7.5px;
margin-left: auto;
margin-right: auto;
}
- type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
primary: >-
{{ states('person.cameron').replace('not_home',
'Away').title() }}
hold_action:
action: toggle
tap_action:
action: navigate
navigation_path: /home-v2/hallway
fill_container: true
layout: vertical
multiline_secondary: false
card_mod:
style:
mushroom-state-info$: |
.primary {
text-shadow: 1px 0px 2px black;
--card-primary-font-weight: 400;
--primary-text-color: white;
--card-primary-font-size: 12px;
#align-items: end;
margin-top: 70px;
inline-size: 75px;
margin-left: auto;
text-transform: capitalize;
text-align: left;
text-indent: 7px;
}
.secondary {
--card-secondary-font-size: 13px;
text-shadow: 0px 0px 5px black;
--secondary-text-color: white;
--card-secondary-font-weight: 350;
margin-top: -5px;
margin-left: -35px;
text-transform: capitalize;
}
.: |
:host {
{% if is_state('person.cameron', 'home') %}
background: url('/local/images/persons/cameron.JPG') center;
background-size: contain;
background-position-y: -20px;
#filter: grayscale(70%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{%- else -%}
background: url('/local/images/persons/cameron.JPG') center;
background-size: contain;
background-position-y: -20px;
#background-blend-mode: overlay;
filter: grayscale(100%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{% endif %}
--mush-icon-size: 0px;
height: 200px;
margin-left: -15px !important;
margin-top: -70px !important;
}
mushroom-shape-icon {
--shape-color: rgba(var(--rgb-{{ 'orange' if is_state('light.hallway_lamp', 'on') else 'disabled' }}), 0.4) !important;
}
card_mod:
style: |
ha-card {
height: 75px;
width: 75px;
border-radius: 7.5px;
margin-left: auto;
margin-right: auto;
}
- type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
primary: >-
{{ states('person.rhys').replace('not_home',
'Away').title() }}
hold_action:
action: toggle
tap_action:
action: navigate
navigation_path: /home-v2/hallway
fill_container: true
layout: vertical
multiline_secondary: false
card_mod:
style:
mushroom-state-info$: |
.primary {
text-shadow: 1px 0px 2px black;
--card-primary-font-weight: 400;
--primary-text-color: white;
--card-primary-font-size: 12px;
#align-items: end;
margin-top: 70px;
inline-size: 75px;
margin-left: auto;
text-transform: capitalize;
text-align: left;
text-indent: 7px;
}
.secondary {
--card-secondary-font-size: 13px;
text-shadow: 0px 0px 5px black;
--secondary-text-color: white;
--card-secondary-font-weight: 350;
margin-top: -5px;
margin-left: -35px;
text-transform: capitalize;
}
.: |
:host {
{% if is_state('person.rhys', 'home') %}
background: url('/local/images/persons/rhys.JPG') center;
background-size: contain;
background-position-y: -20px;
#filter: grayscale(70%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{%- else -%}
background: url('/local/images/persons/rhys.JPG') center;
background-size: contain;
background-position-y: -20px;
#background-blend-mode: overlay;
filter: grayscale(100%);
#background-color: rgba(var(--rgb-card-background-color), 0.0);
{% endif %}
--mush-icon-size: 0px;
height: 200px;
margin-left: -15px !important;
margin-top: -70px !important;
}
mushroom-shape-icon {
--shape-color: rgba(var(--rgb-{{ 'orange' if is_state('light.hallway_lamp', 'on') else 'disabled' }}), 0.4) !important;
}
card_mod:
style: |
ha-card {
height: 75px;
width: 75px;
border-radius: 7.5px;
margin-left: auto;
margin-right: auto;
- type: custom:stack-in-card
cards:
- type: custom:layout-card
layout_type: horizontal
layout: {}
cards:
- type: custom:mushroom-chips-card
chips:
- type: menu
- type: back
- type: alarm-control-panel
entity: alarm_control_panel.yale_smart_alarm
content_info: none
name: Alarm
- type: template
entity: lock.front_door
icon: >-
{{ 'mdi:lock' if is_state('lock.front_door', 'locked')
else 'mdi:lock-open' }}
icon_color: >-
{{ 'green' if is_state('lock.front_door', 'locked') else
'red' }}
content: null
tap_action:
action: more-info
- type: conditional
conditions:
- entity: light.all_lights
state: 'on'
chip:
type: template
icon: mdi:lightbulb
content: >-
{{ expand(states.light.all_lights) | selectattr(
'state', 'eq', 'on') | list | count }}
tap_action:
action: more-info
entity: light.all_lights
icon_color: grey
- type: conditional
conditions:
- entity: media_player.livingroomtv
state: 'on'
chip:
type: template
icon_color: grey
icon: mdi:cast
content: |-
{{ expand(states.media_player.all_media_players)
| rejectattr( 'state', 'in', ['idle'])
| rejectattr( 'state', 'in', ['standby'])
| rejectattr( 'state', 'in', ['off'])
| rejectattr( 'state', 'in', ['paused'])
| list | count }}
tap_action:
action: more-info
entity: media_player.all_media_players
- type: conditional
conditions:
- entity: binary_sensor.garage
state: 'on'
chip:
type: template
icon_color: grey
icon: mdi:garage-open
tap_action:
action: more-info
entity: binary_sensor.garage
card_mod:
style: |
ha-card {
#padding: 0px;
box-shadow: none;
border-radius: none;
background-color: white;
margin-left: auto;
margins-right: auto;
border: none;
}
card_mod:
style: |
ha-card {
padding: 2px;
background: rgba(var(--rgb-primary-text-color), 0.00);
box-shadow: 1px;
border-radius: 15px;
background-color: white;
}