Mushroom Cards - Build a beautiful dashboard easily 🍄 (Part 2)

Something like this? Depending on the sensor data, we made need to make some slight adjustments.

type: custom:stack-in-card
cards:
  - type: custom:layout-card
    layout_type: grid
    layout:
      width: 100%
      grid-template-columns: 45% 60%
      grid-template-rows: auto
    cards:
      - type: custom:mushroom-template-card
        primary: Consumo Casa
        secondary: '{{ states(''sensor.consumi_mensili'') | int }} kWh'
        icon: mdi:lightning-bolt
        entity: sensor.prezzo_attuale_energia_al_dettaglio
        icon_color: blue
        tap_action:
          action: more-info
        fill_container: true
        card_mod:
          style: |
            :host {
              --mush-icon-size: 86px;
              height: 50px;
              margin-left: -35px !important;
                  }
            ha-card {
              box-shadow: none;
              width: 232px;
              border: none;
            }
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: '{{ states(''sensor.prezzo_attuale_energia_al_dettaglio'') }}€'
            icon: mdi:currency-eur
            entity: sensor.prezzo_attuale_energia_al_dettaglio
            tap_action:
              action: more-info
            hold_action:
              action: none
            double_tap_action:
              action: none
            card_mod:
              style: |
                ha-card {
                  margin-top: 5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              }      
          - type: template
            content: '{{ states(''sensor.costo_energia_elettrica_mese'') | round(2)}}'
            icon: mdi:currency-eur
            entity: sensor.costo_energia_elettrica_mese
            tap_action:
              action: more-info
            hold_action:
              action: none
            double_tap_action:
              action: none
            card_mod:
              style: |
                ha-card {
                  margin-top: 5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                         }                          
          - type: template
            content: Button
            icon: mdi:button-cursor
            entity: script.xxxx
            tap_action:
              action: toggle
            card_mod:
              style: |
                ha-card {
                  margin-top: 5px;                    
                  --chip-height: 40px;                     
                  --chip-border: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                               }                          
1 Like

Tell me, can anyone help me?

With the fan percentage? If so this will work…

type: custom:mushroom-template-card
entity: fan.ventilation_pwm_fan1
secondary: |
  {{state_attr(config.entity, 'percentage')}}%
tap_action:
  action: toggle
icon: mdi:fan
layout: vertical
icon_color: |
  {{ 'blue' if is_state(config.entity, 'on') else 'grey' }}
primary: Fan
fill_container: false
multiline_secondary: false
card_mod:
  style:
    mushroom-shape-icon$: |
      .shape {
       }
    .: |
      ha-state-icon {

          {% set pwr = states(config.entity) %} 
          {% set perc = state_attr(config.entity,'percentage')|int %}

          {% if (perc <= 17 and pwr == 'on') %} animation: rotation 2.5s linear infinite
          {% elif (perc <= 34 and pwr == 'on') %} animation: rotation 2s linear infinite
          {% elif (perc <= 51 and pwr == 'on') %} animation: rotation 1.5s linear infinite
          {% elif (perc <= 67 and pwr == 'on') %} animation: rotation 1s linear infinite
          {% elif (perc <= 84 and pwr == 'on') %} animation: rotation .75s linear infinite
          {% elif (perc <= 100 and pwr == 'on') %} animation: rotation .5s linear infinite
          {%- else  %} animation: rotation 0s linear infinite
                
          {% endif %};
           }
        ha-card {
          box-shadow: none;
          margin-left: -0px !important;
          margin-right: 0px !important;
          margin-bottom: 0px !important;
          #width: 75%;
        }
          @keyframes rotation {
          0% {transform: rotate(0deg);}
          100% {transform: rotate(-360deg);
          }
1 Like

Thank you this helped! But there is a small problem. When turned off, it continues to show the fan power as a percentage, although in fact the fan is turned off. Could you help with a question? So that when turned off, the inscription “off” is shown, and when turned on, “on and percentages” are shown. Thank you

fan4545

type: custom:mushroom-template-card
entity: fan.ventilation_pwm_fan1
secondary: |
  {{state_attr(config.entity, 'percentage')}}%
tap_action:
  action: toggle
icon: mdi:fan
layout: vertical
icon_color: |
  {{ '#00bcd4' if is_state(config.entity, 'on') else 'grey' }}
primary: Fan
fill_container: false
multiline_secondary: false
card_mod:
  style:
    mushroom-shape-icon$: |
      .shape {
       }
    .: |
      ha-state-icon {

          {% set pwr = states(config.entity) %} 
          {% set perc = state_attr(config.entity,'percentage')|int %}

          {% if (perc <= 17 and pwr == 'on') %} animation: rotation 2.5s linear infinite
          {% elif (perc <= 34 and pwr == 'on') %} animation: rotation 2s linear infinite
          {% elif (perc <= 51 and pwr == 'on') %} animation: rotation 1.5s linear infinite
          {% elif (perc <= 67 and pwr == 'on') %} animation: rotation 1s linear infinite
          {% elif (perc <= 84 and pwr == 'on') %} animation: rotation .75s linear infinite
          {% elif (perc <= 100 and pwr == 'on') %} animation: rotation .5s linear infinite
          {%- else  %} animation: rotation 0s linear infinite
                
          {% endif %};
           }
        ha-card {
          box-shadow: none;
          margin-left: -0px !important;
          margin-right: 0px !important;
          margin-bottom: 0px !important;
          #width: 75%;
        }
          @keyframes rotation {
          0% {transform: rotate(0deg);}
          100% {transform: rotate(360deg);
          }

After seeing fantastic examples here, I now have the question of how the space between Bron and Solar tarief 1 and between Solar tarief 1 and Solar tarief 2 can be reduced.
I think there is also too much code that I may not need, could you please take a look at that?

type: custom:stack-in-card
cards:
  - type: custom:layout-card
    layout_type: grid
    layout:
      width: 100%
      grid-template-columns: 45% 35%  20%
      grid-template-rows: auto
    cards:
      - type: custom:mushroom-template-card
        primary: Bron
        fill_container: true
        card_mod:
          style: |
            ha-card {
              box-shadow: none;
              width: 232px;
              border: none;
            }
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: Energie
            card_mod:
              style: |
                ha-card {
                  margin-top: -5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              }  
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: Kosten
            card_mod:
              style: |
                ha-card {
                  margin-top: -5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              }    
  - type: custom:layout-card
    layout_type: grid
    layout:
      width: 100%
      grid-template-columns: 45% 35%  20%
      grid-template-rows: auto
    cards:
      - type: custom:mushroom-template-card
        primary: Solar tarief 1
        tap_action:
          action: more-info
        fill_container: true
        card_mod:
          style: |
            ha-card {
              box-shadow: none;
              width: 235px;
              border: none;
            }
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: '{{ states(''sensor.solar_export_dag_tarief_1'') }} kWh'
            icon: null
            tap_action:
              action: more-info
            hold_action:
              action: none
            double_tap_action:
              action: none
            card_mod:
              style: |
                ha-card {
                  margin-top: -5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              }
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: € {{ states('sensor.solar_export_dag_tarief_1') | round (2) }}
            icon: null
            entity: sensor.solar_export_dag_tarief_1
            tap_action:
              action: more-info
            hold_action:
              action: none
            double_tap_action:
              action: none
            card_mod:
              style: |
                ha-card {
                  margin-top: -5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              } 
  - type: custom:layout-card
    layout_type: grid
    layout:
      width: 100%
      grid-template-columns: 45% 35%  20%
      grid-template-rows: auto
    cards:
      - type: custom:mushroom-template-card
        primary: Solar tarief 2
        tap_action:
          action: more-info
        fill_container: true
        card_mod:
          style: |
            ha-card {
              box-shadow: none;
              width: 232px;
              border: none;
            }
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: '{{ states(''sensor.solar_export_dag_tarief_2'') | round (1) }} kWh'
            icon: null
            tap_action:
              action: more-info
            hold_action:
              action: none
            double_tap_action:
              action: none
            card_mod:
              style: |
                ha-card {
                  margin-top: -5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              }
      - type: custom:mushroom-chips-card
        chips:
          - type: template
            content: ' €{{ states(''sensor.solar_export_dag_tarief_2'') | round (2) }}'
            icon: null
            tap_action:
              action: more-info
            hold_action:
              action: none
            double_tap_action:
              action: none
            card_mod:
              style: |
                ha-card {
                  margin-top: -5px;                    
                  --chip-height: 40px;                     
                  --chip-box-shadow: none;
                  --chip-background: none;
                  --chip-spacing: 0;
                   border: none;
                              } 

I found this post in part1 and I would like to transform it a litte bit.
I want to make it working for my shutters. left Icon for toggle and then th other buttons for fixed positions like sunprotection or something. How looks the code?! Cant get it working :frowning:

4f0ebc6ed136129149177143b1d81331ae91aa4c

This should address this issue.

image

type: custom:mushroom-template-card
entity: fan.ventilation_pwm_fan1
secondary: >
  {% if states(config.entity) == 'on' %}
   {{state_attr(config.entity, 'percentage')}}%
  {% else %}
    Off
  {% endif %}
tap_action:
  action: toggle
icon: mdi:fan
layout: vertical
icon_color: |
  {{ '#00bcd4' if is_state(config.entity, 'on') else 'grey' }}
primary: Fan
fill_container: false
multiline_secondary: false
card_mod:
  style:
    mushroom-shape-icon$: |
      .shape {
       }
    .: |
      ha-state-icon {

          {% set pwr = states(config.entity) %} 
          {% set perc = state_attr(config.entity,'percentage')|int %}

          {% if (perc <= 17 and pwr == 'on') %} animation: rotation 2.5s linear infinite
          {% elif (perc <= 34 and pwr == 'on') %} animation: rotation 2s linear infinite
          {% elif (perc <= 51 and pwr == 'on') %} animation: rotation 1.5s linear infinite
          {% elif (perc <= 67 and pwr == 'on') %} animation: rotation 1s linear infinite
          {% elif (perc <= 84 and pwr == 'on') %} animation: rotation .75s linear infinite
          {% elif (perc <= 100 and pwr == 'on') %} animation: rotation .5s linear infinite
          {%- else  %} animation: rotation 0s linear infinite
                
          {% endif %};
           }
        ha-card {
          box-shadow: none;
          margin-left: -0px !important;
          margin-right: 0px !important;
          margin-bottom: 0px !important;
          #width: 75%;
        }
          @keyframes rotation {
          0% {transform: rotate(0deg);}
          100% {transform: rotate(360deg);
          }
1 Like

You can use a negative margin with margin: -20px 0px 0px 0px in the layout card.

type: custom:layout-card
    layout_type: grid
    layout:
      width: 100%
      grid-template-columns: 45% 35% 20%
      margin: -20px 0px 0px 0px
      grid-template-rows: auto
    cards:
1 Like

Perfect!!! Thank you very much!!!

I might need to start again, but a while ago I found a really slick and compact room card which I copied the code from and forgot about until now.

None of the entities / icons are displaying at the bottom, is there something obvious I’m missing here? (I’m a coding newb)

type: custom:vertical-stack-in-card
style: |
  ha-card {
    margin-left: 6px;
    margin-right: -2px;
    border-radius: 14px 5px 5px 5px !important;
    margin-bottom: -4px !important;
    border-color: rgb(0,0,0,0.05);
    border-width: 2px;
  }
cards:
  - type: custom:mushroom-template-card
    entity: group.lights_all_livingroom
    icon: phu:rooms-living
    badge_icon: >
      {% if is_state(config.entity,'on') %} mdi:numeric-{{
      states('group.lights_all_livingroom') }} {% endif %}
    badge_color: transparent
    icon_color: '{{ ''orange'' if is_state(config.entity,''on'') }}'
    primary: Living Room
    tap_action:
      action: fire-dom-event
      browser_mod:
        service: browser_mod.sequence
        data:
          sequence:
            - service: input_select.select_option
              data:
                entity_id: input_select.xlivingdropdown
                option: none
            - service: browser_mod.navigate
              data:
                path: /lovelace/livingroom
    hold_action:
      action: call-service
      service: mqtt.publish
      service_data:
        topic: zigbee2mqtt/Living Room/set
        payload_template: |
          {% if is_state('light.living','on') %}
            {{ "off" }}
          {% else %}
            {{ "on" }}
          {% endif %}
    double_tap_action:
      action: toggle
    card_mod:
      style: |
        ha-card:active mushroom-shape-icon {
            display: flex;
            animation: clip 2.5s;
            background-color: var(--amber-color);
            transition: all 2s;
        }
        mushroom-shape-icon {
          border-radius: 50px;
        }
        mushroom-badge-icon {
          --main-color: rgba(var(--rgb-amber),0.5) !important;
          --icon-color: rgba(var(--rgb-red),0.5) !important;
          border-radius: 50px !important;
          margin-right: -5px;
          box-shadow: 0.5px 0.5px 0.5px 0.5px var(--grey-color);
        }
        @keyframes clip {
          0% { box-shadow: 0 0 1px 1px var(--yellow-color) inset; }
          50% { box-shadow: 0 0 5px 15px transparent inset; }
          51% { box-shadow: 0 0 1px 1px var(--amber-color); }
          100% { box-shadow: 0 0 5px 15px transparent; }
        } 
        :host { border-width: 0px !important;
        }
        mushroom-card {
          box-shadow: 1px 1px 1px rgb(0,0,0,0.0);
        }
        mushroom-state-info {
        align-self: end !important;
        text-shadow: 1px 1px 1px rgb(125,125,125,0.1);
        margin-top: -12px;
        }
        ha-card {
          --card-primary-font-size: 1.4em;
          --card-primary-font-weight: 400;
          {{ 'background: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(255,255,0,0.1) 100%);' if is_state(config.entity, 'on') }}
          --icon-size: 1.7em !important;
          --icon-symbol-size: 1.3em !important;
          --badge-icon-size: 1.4em;
          padding-bottom: 0 !important;
          align-text: end;
        }
  - type: entities
    entities:
      - type: custom:paper-buttons-row
        extra_styles: |
          @keyframes clip {
                50% { clip-path: polygon(0 0, 55% 0, 100% 100%, 0 100%); }
          }
          @keyframes flash {
              20% { opacity: 0.5 ;}
              100% { opacity: 1 ;}
          }
        buttons:
          - entity: sensor.living_room_temperature
            name: >
              {% if is_state('sensor.living_room_temperature','unavailable') %}
              {{ "00°c" }}{% else %}{{ states('sensor.living_room_temperature')
              | round }}°c{% endif %}
            icon: false
            styles:
              button:
                font-size: 13px
                font-weight: 600
                margin: 0em -0.5px 0em -0.4em
                align-text: left
                padding-left: 0px
              name:
                color: rgb(125,125,125,0.8)
            state_styles:
              unavailable:
                name:
                  color: rgb(0,0,0,0)
            tap_action: none
            hold_action: none
            double_tap_action: none
          - entity: media_player.samsung_q70
            name: false
            icon: mdi:television-classic-off
            styles:
              icon:
                color: rgb(125,125,125,0.3)
                '--mdc-icon-size': 20px
                margin: 0px -0.5px
                padding: 0px
            state_styles:
              'off':
                icon:
                  color: rgb(125,125,125,0.8)
              'on':
                icon:
                  color: orange
            state_icons:
              'on': mdi:television-classic
            tap_action:
              action: call-service
              service: browser_mod.sequence
              service_data:
                sequence:
                  - service: input_select.select_option
                    data:
                      entity_id: input_select.xlivingdropdown
                      option: media
                  - service: browser_mod.navigate
                    data:
                      path: /lovelace/livingroom
            hold_action: none
            double_tap_action: none
          - entity: media_player.pioneer
            name: false
            icon: mdi:audio-video-off
            styles:
              icon:
                color: rgb(125,125,125,0.3)
                '--mdc-icon-size': 20px
                margin: 0px -0.5px
                padding: 0px
            state_styles:
              'off':
                icon:
                  color: rgb(125,125,125,0.8)
              'on':
                icon:
                  color: orange
            state_icons:
              'on': mdi:audio-video
            tap_action:
              action: call-service
              service: browser_mod.sequence
              service_data:
                sequence:
                  - service: input_select.select_option
                    data:
                      entity_id: input_select.xlivingdropdown
                      option: media
                  - service: browser_mod.navigate
                    data:
                      path: /lovelace/livingroom
            hold_action: none
            double_tap_action: none
          - entity: binary_sensor.motion_sensor_home_security_motion_detection_4
            name: false
            icon: mdi:circle
            styles:
              icon:
                color: rgb(125,125,125,0.3)
                '--mdc-icon-size': 20px
                margin: 0px -0.5px
                padding: 0px
                animation: >-
                  {% if is_state('binary_sensor.delay_motion_living','on') and
                  is_state('binary_sensor.living_motion_group','on') %} clip 2s
                  linear infinite {% endif %}
            state_styles:
              'on':
                icon:
                  color: orange
              'off':
                icon:
                  color: rgb(125,125,125,0.8)
            state_icons:
              'off': mdi:motion-sensor-off
              'on': mdi:motion-sensor
            tap_action:
              action: call-service
              service: browser_mod.sequence
              service_data:
                sequence:
                  - service: input_select.select_option
                    data:
                      entity_id: input_select.xlivingdropdown
                      option: secure
                  - service: browser_mod.navigate
                    data:
                      path: /lovelace/livingroom
            hold_action: none
            double_tap_action: none
          - entity: binary_sensor.delay_door_living
            name: false
            icon: |
              {% if is_state('binary_sensor.living_door_door_open','on') %}
                mdi:door-open
              {% else %}
                mdi:door-closed
              {% endif %}
            styles:
              icon:
                color: rgb(125,125,125,0.3)
                '--mdc-icon-size': 20px
                margin: 0px -0.5px
                padding: 0px
                animation: >-
                  {% if is_state('binary_sensor.delay_door_living','on') and
                  is_state('binary_sensor.living_door_door_open','on') %} flash
                  2s linear infinite {% endif %}
            state_styles:
              'off':
                icon:
                  color: rgb(125,125,125,0.8)
              'on':
                icon:
                  color: orange
            tap_action:
              action: call-service
              service: browser_mod.sequence
              service_data:
                sequence:
                  - service: input_select.select_option
                    data:
                      entity_id: input_select.xlivingdropdown
                      option: secure
                  - service: browser_mod.navigate
                    data:
                      path: /lovelace/livingroom
            hold_action: none
            double_tap_action: none
          - entity: light.living_lights_smart
            name: false
            icon: mdi:lightbulb-question-outline
            styles:
              button:
                padding-right: 0em
                margin-right: 0em
              icon:
                color: rgb(125,125,125,0.3)
                '--mdc-icon-size': 20px
                padding: 0em
                margin: 0px -0.4em 0px -0.5px
            state_styles:
              'off':
                icon:
                  color: rgb(125,125,125,0.8)
              'on':
                icon:
                  color: orange
            state_icons:
              'on': mdi:lightbulb
              'off': mdi:lightbulb-outline
            tap_action:
              action: call-service
              service: browser_mod.sequence
              service_data:
                sequence:
                  - service: input_select.select_option
                    data:
                      entity_id: input_select.xlivingdropdown
                      option: lights
                  - service: browser_mod.navigate
                    data:
                      path: /lovelace/livingroom
            hold_action: none
            double_tap_action: none
        styles:
          justify-content: space-between
          margin-top: '-1.2em'
          margin-bottom: '-1.1em'
          padding-left: 0em
          padding-right: 0em
          margin-left: 0em
          margin-right: 0em
    style: 'ha-card {background: none; !important;}'

1 Like

I have wrote a post on Sticky Floating Navigation Menu - All Devices - Mushroom Chips Card if anyone is interested.

I thought this would be a good place to post a link to my complete code.

1 Like

To start let’ add card_mod: here

type: custom:vertical-stack-in-card
card_mod:
 style: |
   ha-card {

If one of the device is no longer available in you system or has been renamed none of the devices will appear.

I was able to get them to appear, but all main entities were required.

Hello,

Can someone please tell me, if this collapsable card can be made strictly in mushroom?

Expander card is super flakey, and no CARD-MOD seems to work with it. I have tried literally everything. The onlhy thing I need to do is change the little arrow from blue to white. For some reason it shows up white b default on browser, but it is blue on my iphone. The only card that’s ever done that

So I would love to make it all in mushroom

type: custom:expander-card
title: ''
cards:
  - square: false
    type: grid
    cards:
      - type: custom:button-card
        icon: mdi:power
        color: gray
        tap_action:
          action: navigate
          navigation_path: media
        double_tap_action:
          action: call-service
          service: script.tv
        hold_action:
          action: call-service
          service: script.switch
        theme: mushroom
        name: power
        styles:
          card:
            - color: gray
            - background-color: RGB(45,45,45)
          name:
            - font-size: 0.8em
            - white-space: normal
          icon:
            - width: 30px
            - height: 40px
          label:
            - font-size: 0.7em
            - white-space: normal
      - type: custom:button-card
        icon: mdi:fan-speed-1
        color: gray
        tap_action:
          action: navigate
          navigation_path: media
        double_tap_action:
          action: call-service
          service: script.tv
        hold_action:
          action: call-service
          service: script.switch
        theme: mushroom
        name: low
        styles:
          card:
            - color: gray
            - background-color: RGB(45,45,45)
          name:
            - font-size: 0.8em
            - white-space: normal
          icon:
            - width: 30px
            - height: 40px
          label:
            - font-size: 0.7em
            - white-space: normal
      - type: custom:button-card
        icon: mdi:fan-speed-2
        color: gray
        tap_action:
          action: navigate
          navigation_path: media
        double_tap_action:
          action: call-service
          service: script.tv
        hold_action:
          action: call-service
          service: script.switch
        theme: mushroom
        name: medium
        styles:
          card:
            - color: gray
            - background-color: RGB(45,45,45)
          name:
            - font-size: 0.8em
            - white-space: normal
          icon:
            - width: 30px
            - height: 40px
          label:
            - font-size: 0.7em
            - white-space: normal
      - type: custom:button-card
        icon: mdi:fan-speed-3
        color: gray
        tap_action:
          action: navigate
          navigation_path: media
        double_tap_action:
          action: call-service
          service: script.tv
        hold_action:
          action: call-service
          service: script.switch
        theme: mushroom
        name: high
        styles:
          card:
            - color: gray
            - background-color: RGB(45,45,45)
          name:
            - font-size: 0.8em
            - white-space: normal
          icon:
            - width: 30px
            - height: 40px
          label:
            - font-size: 0.7em
            - white-space: normal
    columns: 4
title-card:
  type: custom:mushroom-light-card
  entity: light.alaynabelle_lights
  name: Alayna’s Lighting
  icon: mdi:lamp
  use_light_color: true
  show_brightness_control: true
  show_color_temp_control: true
  show_color_control: true
  double_tap_action:
    action: more-info
  card_mod:
    style: |
      ha-card {
        border: 0px !important;
        --ha-card-box-shadow: none;
        
      }
gap: 0em
padding: em
child-padding: 1em
title-card-padding: ''
title-card-button-overlay: true
overlay-margin: 1.1em
card_mod:
  style: |
    ha-card {
      border: 0px !important;
      --ha-card-box-shadow: none;
      
    }

My take on a Fan Card.

There is a dark mode too :slight_smile:

FanCard

3 Likes

So for the last 20 days I have been working for a tablet version of Home Assistant. It’s still a wip but have almost finished %80 of it My main goal is to use tablets as an informative device rather then controlling the house. But of course dashboard will also contain extensive controls. My main goal was to create an interface useful to inform people with animations. Here are some examples from my project.









12 Likes

I learnd much with both tutorials, but now I am on my limit :slight_smile:
I’m sure, that I red, that it is possible to set the tap_action, but I can’t find it.
I try to seperate the card like:
tap_action:
Icon: toggle
card: more_info

It is a litte more Homekit like

Can you post your current card code?

sorry… here is the code:

  - type: custom:mushroom-template-card
    icon: mdi:lightbulb-on
    icon_color: |-
      {% if is_state(config.entity,'on') %}
        teal
      {% else %}
        grey
      {% endif %}
    primary: LED-Stripe
    layout: horizontal
    hold_action:
      action: more_info
    double_tap_action:
      action: none
    tap_action:
      action: toggle
    entity: light.kueche_lightstripe
    card_mod:
      style:
        mushroom-shape-icon: |
          ha-state-icon {
            animation: {{ 'illumination 2s infinite' if is_state(config.entity, 'on') else 'none' }}
             }
          @keyframes illumination {
           0%, 100% { clip-path: inset(0 0 0 0); }
           80% { clip-path: polygon(0% 99%, 20% 55%, 22% 37%, 39% 20%, 61% 21%, 77% 35%, 79% 57%, 99% 100%); }
          }

toggle and more_info is working, but only on the complete card

more-info is correct not more_info That is your issue

not really. I would like to seperate the tap_action between card & Icon.

If i tap the icon turn the light on/off (toogle), but if I tap on the card show me more information like brightness and color-controll.