Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ============================================================
- # CARD TYPES USED IN THIS DASHBOARD:
- #
- # - custom:bubble-card
- # - custom:mini-graph-card
- # - custom:clock-weather-card
- # - custom:hourly-weather
- # - custom:purifier-card
- # - custom:navbar-card
- # LAYOUT TYPES USED:
- # - sections
- # - grid
- # - vertical-stack
- #
- # NOTE:
- # Some entity IDs, domains, IP addresses, and account identifiers
- # have been replaced with generic placeholders for public sharing.
- # ============================================================
- type: sections
- max_columns: 6
- title: Home Lab
- sections:
- - type: grid
- cards:
- - type: custom:bubble-card
- card_type: separator
- name: Home
- icon: mdi:home-roof
- sub_button: []
- card_layout: large-2-rows
- modules: []
- rows: "1"
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: vertical-stack
- cards:
- - type: custom:mini-graph-card
- name: Living Room
- icon: mdi:gamepad-square
- align_icon: left
- entities:
- - entity: sensor.rm_4_mini_2_temperature
- name: Temperature
- show_line: true
- show_points: true
- show_state: true
- font_size_header: 10
- show:
- labels: true
- labels_secondary: true
- name: true
- icon: true
- legend: false
- average: false
- extrema: true
- upper_bound: 30
- lower_bound: 22
- line_width: 2
- hours_to_show: 12
- points_per_hour: 20
- update_interval: 6
- refresh_interval: 6
- height: 240
- layout_options:
- grid_columns: 2
- grid_rows: auto
- color_thresholds:
- - value: 29
- color: "#FF0000"
- - value: 28
- color: "#0DDE34"
- - value: 25
- color: "#8AD0F8"
- - value: 23
- color: white
- card_mod:
- style: |
- ha-card {
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px 8px 0 0 ;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- ha-card::before {
- content: '';
- position: absolute;
- top: -50%;
- left: -50%;
- width: 200%;
- height: 200%;
- pointer-events: none;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 2.1em;
- }
- ha-icon {
- color: white;
- }
- - type: custom:mini-graph-card
- name: Indoor Conditions
- icon: mdi:weather-cloudy
- align_icon: left
- entities:
- - entity: sensor.rm_4_mini_2_humidity
- name: Humidity
- show_line: true
- show_points: true
- show_state: true
- font_size_header: 10
- show:
- labels: true
- labels_secondary: true
- name: false
- icon: false
- legend: false
- average: false
- extrema: false
- line_width: 2
- upper_bound: 90
- lower_bound: 40
- hours_to_show: 12
- points_per_hour: 20
- update_interval: 6
- refresh_interval: 6
- height: 200
- layout_options:
- grid_columns: 2
- grid_rows: auto
- color_thresholds:
- - value: 70
- color: "#FF0096"
- - value: 65
- color: "#C39BF5"
- - value: 55
- color: "#9E6FFF"
- - value: 45
- color: "#BF9FFF"
- card_mod:
- style: |
- ha-card {
- margin-top: -5%;
- #border-top: none;
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px;
- border-radius: 0 0 8px 8px;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- ha-card::before {
- content: '';
- position: absolute;
- top: -50%;
- left: -50%;
- width: 200%;
- height: 200%;
- pointer-events: none;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 2.1em;
- }
- grid_options:
- columns: 6
- rows: auto
- - type: vertical-stack
- cards:
- - type: custom:mini-graph-card
- name: Bedroom
- icon: mdi:bed-double
- align_icon: left
- entities:
- - entity: sensor.rm_4_mini_temperature
- name: Temperature
- show_line: true
- show_points: true
- show_state: true
- font_size_header: 10
- show:
- labels: true
- labels_secondary: true
- name: true
- icon: true
- legend: false
- average: false
- extrema: true
- line_width: 2
- upper_bound: 30
- lower_bound: 22
- hours_to_show: 12
- points_per_hour: 20
- update_interval: 6
- refresh_interval: 6
- height: 240
- layout_options:
- grid_columns: 2
- grid_rows: auto
- color_thresholds:
- - value: 29
- color: "#FF0000"
- - value: 28
- color: "#0DDE34"
- - value: 25
- color: "#8AD0F8"
- - value: 23
- color: white
- card_mod:
- style: |
- ha-card {
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px 8px 0 0 ;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- ha-card::before {
- content: '';
- position: absolute;
- top: -50%;
- left: -50%;
- width: 200%;
- height: 200%;
- pointer-events: none;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 2.1em;
- }
- ha-icon {
- color: white;
- }
- - type: custom:mini-graph-card
- name: Indoor Conditions
- icon: mdi:weather-cloudy
- align_icon: left
- entities:
- - entity: sensor.rm_4_mini_humidity
- name: Humidity
- show_line: true
- show_points: true
- show_state: true
- font_size_header: 10
- show:
- labels: true
- labels_secondary: true
- name: false
- icon: false
- legend: false
- average: false
- extrema: false
- line_width: 2
- upper_bound: 90
- lower_bound: 40
- hours_to_show: 12
- points_per_hour: 20
- update_interval: 6
- refresh_interval: 6
- height: 200
- layout_options:
- grid_columns: 2
- grid_rows: auto
- color_thresholds:
- - value: 70
- color: "#FF0096"
- - value: 65
- color: "#C39BF5"
- - value: 55
- color: "#9E6FFF"
- - value: 45
- color: "#BF9FFF"
- card_mod:
- style: |
- ha-card {
- margin-top: -5%;
- #border-top: none;
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px;
- border-radius: 0 0 8px 8px;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- ha-card::before {
- content: '';
- position: absolute;
- top: -50%;
- left: -50%;
- width: 200%;
- height: 200%;
- pointer-events: none;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 2.1em;
- }
- grid_options:
- columns: 6
- rows: auto
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: " "
- icon: ""
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: "0.5"
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.plex_media_server_arbiter_224
- show_last_changed: false
- show_attribute: false
- force_icon: true
- modules: []
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: custom:bubble-card
- card_type: button
- button_type: state
- entity: sensor.core_300s_series_filter_lifetime
- card_layout: large-2-rows
- name: Filter Lifetime
- icon: mdi:air-filter
- show_icon: true
- show_state: true
- show_name: false
- grid_options:
- columns: 3
- rows: 1
- styles: |-
- .bubble-button-card-container {
- border-radius: 8px !important;
- }
- scrolling_effect: false
- show_last_changed: false
- modules:
- - BBL_SBL
- card_mod:
- style: >-
- {% set val = states('sensor.core_300s_series_filter_lifetime') |
- float(0) %}
- {% if val < 100 %}
- {% set bg = '#2196f34A' %} {# blue, 48% opacity #}
- {% elif val < 80 %}
- {% set bg = '#5C793399' %} {# green, 80% opacity #}
- {% elif val < 25 %}
- {% set bg = '#ffeb3b99' %} {# yellow, 80% opacity #}
- {% else %}
- {% set bg = '#f4433699' %} {# red, 80% opacity #}
- {% endif %}
- {% set r = (bg[1:3] | int(base=16)) / 255 %}
- {% set g = (bg[3:5] | int(base=16)) / 255 %}
- {% set b = (bg[5:7] | int(base=16)) / 255 %}
- {% set luminance = 0.299 * r + 0.587 * g + 0.114 * b %}
- .bubble-button-card-container {
- background: linear-gradient(
- to right,
- {{ bg }} {{ val }}%,
- rgba(255, 255, 255, 0.05) {{ val }}%
- ) !important;
- color: {% if luminance > 0.5 %}
- rgb(0, 0, 0);
- {% else %}
- rgb(255, 255, 255);
- {% endif %};
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none !important;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- .bubble-icon-container {
- background: none !important;
- backdrop-filter: none !important;
- -webkit-backdrop-filter: none !important;
- border: none !important;
- box-shadow: none !important;
- }
- - graph: line
- type: sensor
- entity: sensor.core_300s_series_pm2_5
- name: Air Quality
- detail: 2
- layout_options:
- grid_columns: 1
- grid_rows: 1
- theme: Graphite-bubble-v2
- icon: mdi:air-filter
- hours_to_show: 3
- card_mod:
- style: |
- ha-card {
- color: white;
- background: rgba(255, 255, 255, 0.1) !important;
- margin: 0%;
- border-radius:8px;
- #border: solid rgba(39, 41, 43, 1) 2px;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- }
- ha-card .name {
- color: white !important; /* Sensor name */
- }
- ha-card .measurement {
- color: white !important; /* Sensor name */
- }
- - type: custom:bubble-card
- card_type: empty-column
- grid_options:
- columns: 3
- rows: 1
- - type: custom:bubble-card
- card_type: empty-column
- card_layout: large
- rows: "0.5"
- column_span: 1
- - type: grid
- cards:
- - type: custom:bubble-card
- card_type: separator
- name: Devices
- icon: hue:room-attic
- sub_button: []
- card_layout: large-2-rows
- modules: []
- rows: "1"
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: heading
- icon: mdi:youtube-gaming
- heading: Living Room
- heading_style: subtitle
- card_mod:
- style: |
- * {
- color: white;
- }
- - type: custom:bubble-card
- card_type: button
- sub_button:
- - entity: script.ac_temp_down
- tap_action:
- action: toggle
- name: "Off"
- show_name: false
- icon: mdi:power
- - entity: script.ac_cool_mode_25_med
- show_name: false
- show_attribute: false
- show_last_changed: false
- show_state: false
- tap_action:
- action: toggle
- name: Cool
- show_icon: true
- icon: mdi:snowflake
- state_background: false
- - entity: script.ac_dry_mode_24
- tap_action:
- action: toggle
- name: Dry
- show_state: false
- show_name: false
- icon: mdi:water-percent
- - entity: script.ac_led_off_2
- name: "LED "
- show_name: false
- tap_action:
- action: toggle
- icon: mdi:lightbulb-alert-outline
- name: Climate
- icon: mdi:air-filter
- scrolling_effect: false
- show_icon: false
- force_icon: false
- show_state: false
- show_attribute: false
- show_last_changed: false
- attribute: supported_features
- show_name: false
- tap_action:
- action: toggle
- card_layout: large
- button_type: name
- styles: >-
- .bubble-sub-button-container {
- justify-content: center;
- width: 100%;
- scale: 1;
- }
- .bubble-sub-button-2 {
- color: rgba(25, 199, 242,1);
- }
- .bubble-sub-button-3 {
- color: rgba(228, 148, 77,1);
- }
- .bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover,
- .bubble-sub-button-5:hover {
- background-color: rgba(39, 41, 43, 0.5) !important;
- }
- modules:
- - BBL_SBL
- grid_options:
- columns: 12
- rows: 1
- show_last_updated: false
- - type: custom:bubble-card
- card_type: button
- sub_button:
- - entity: script.air_purifier_toggle_2
- tap_action:
- action: toggle
- name: Toggle Off/On
- show_name: false
- icon: mdi:power
- - entity: script.air_purifier_mode_auto
- show_name: false
- show_attribute: false
- show_last_changed: false
- show_state: false
- tap_action:
- action: toggle
- name: Auto
- show_icon: true
- icon: ""
- state_background: false
- - entity: script.air_purifier_speed_cycle
- tap_action:
- action: toggle
- name: Speed Toggle
- show_state: false
- show_name: false
- icon: mdi:fan-minus
- - entity: script.air_purifier_timer_cycle
- name: Timer
- show_name: false
- tap_action:
- action: toggle
- - name: Reset
- show_name: false
- tap_action:
- action: toggle
- icon: ""
- entity: script.air_purifier_reset
- name: Air Purifier
- icon: mdi:air-purifier
- scrolling_effect: false
- show_icon: true
- force_icon: false
- show_state: false
- show_attribute: false
- show_last_changed: false
- attribute: supported_features
- show_name: false
- tap_action:
- action: none
- card_layout: large
- button_type: name
- styles: >-
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.5);
- }
- .bubble-icon-container {
- background: none !important;
- backdrop-filter: none !important;
- -webkit-backdrop-filter: none !important;
- border: none !important;
- box-shadow: none !important;
- }
- .bubble-sub-button-icon {
- --mdc-icon-size: 23px !important;
- } .bubble-sub-button-1, .bubble-sub-button-2, .bubble-sub-button-3,
- .bubble-sub-button-4, .bubble-sub-button-5 {
- #color: white;
- background: none !important;
- backdrop-filter: none;
- -webkit-backdrop-filter: none;
- border: none !important;
- box-shadow: none;
- }
- .bubble-sub-button-container {
- display: flex;
- justify-content: right;
- align-items: center;
- width: 8%;
- justify-content: flex;
- }
- .bubble-sub-button-1:hover {
- transition: 0.5s;
- background-color: rgba(227, 79, 79,1);;
- }
- .bubble-sub-button-2 {
- color: rgba(125, 99, 242,1);
- }
- .bubble-sub-button-3 {
- color: rgba(228, 148, 87,1);
- }
- .bubble-sub-button-4 {
- color: rgba(28, 148, 255,1);
- }
- .bubble-sub-button-5 {
- color: rgba(128,255, 177,0.5);
- }
- .bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover,
- .bubble-sub-button-5:hover {
- background-color: rgba(39, 41, 43, 0.5) !important;
- }
- entity: switch.device_plug
- modules:
- - BBL_SBL
- grid_options:
- columns: 12
- rows: auto
- show_last_updated: false
- icon_border_progress: []
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- modules:
- - default
- - get_state_attribute
- - sub_button_coloring
- - main_button_coloring
- - BBL_SBL
- - subbutton_animations
- entity: light.bedroom_lamps
- name: Living Room
- icon: mdi:floor-lamp-dual
- show_attribute: true
- get_state_attribute:
- - entity: sensor.aqara_temp_humidity_sensor_temperature
- - entity: sensor.aqara_temp_humidity_sensor_humidity
- sub_button:
- - entity: switch.device_plug
- icon: mdi:fan
- state_background: false
- tap_action:
- action: toggle
- show_state: false
- - entity: script.air_purifier_toggle
- tap_action:
- action: toggle
- icon: mdi:air-filter
- light_background: true
- state_background: false
- - icon: hue:plug-eu
- tap_action:
- action: more-info
- state_background: false
- entity: switch.device_hub
- - entity: button.wake_on_lan_58_11_22_b0_46_45
- icon: hue:room-computer
- sub_button_coloring:
- button_1:
- entity: light.master_toilet_bulb_zb
- on_color: "#A699C0"
- on_icon_color: "#4D4356"
- defaults:
- off_color: "#353535"
- off_icon_color: "#DBDBDB"
- button_2:
- entity: switch.bathroom_fan
- on_color: "#8B7781"
- on_icon_color: "#E5C4D3"
- button_3:
- entity: switch.master_toilet_fan
- on_color: "#415671"
- on_icon_color: "#97B4C2"
- main_button_coloring:
- entity: light.bathroom_dimmer
- on_color: "#DEAEA9"
- on_icon_color: "#DEAEA9"
- grid_options:
- columns: 12
- rows: 1
- card_layout: large-sub-buttons-grid
- subbutton_animations:
- subbutton1:
- animation: spin
- condition:
- - condition: state
- entity_id: switch.device_plug
- state:
- - "on"
- conditional_icon:
- advanced_settings:
- color_true: cyan
- color_false: black
- icon_true: mdi:floor-lamp-dual
- icon_false: mdi:floor-lamp-dual-outline
- scrolling_effect: false
- show_name: false
- - type: custom:bubble-card
- card_type: button
- button_type: name
- modules:
- - BBL_SBL
- scrolling_effect: false
- show_icon: false
- show_name: false
- sub_button:
- - entity: script.random_lamp_colors
- show_name: false
- show_state: false
- tap_action:
- action: toggle
- hide_when_parent_unavailable: false
- state_background: false
- name: Random
- icon: mdi:vanity-light
- show_background: false
- show_icon: true
- show_last_changed: false
- show_attribute: false
- - entity: scene.morning
- show_name: false
- show_state: false
- tap_action:
- action: toggle
- hide_when_parent_unavailable: false
- name: Morning
- icon: mdi:weather-sunset-up
- state_background: false
- show_background: false
- - entity: scene.late_night
- show_name: false
- show_state: false
- tap_action:
- action: toggle
- hide_when_parent_unavailable: false
- state_background: true
- name: Late Night
- icon: mdi:weather-night
- show_last_changed: false
- show_attribute: false
- - entity: scene.movie
- show_name: false
- show_state: false
- tap_action:
- action: toggle
- hide_when_parent_unavailable: false
- name: Movies
- icon: mdi:movie-open
- - entity: scene.relax
- show_name: false
- show_state: false
- tap_action:
- action: toggle
- hide_when_parent_unavailable: false
- name: Relax
- icon: mdi:sofa
- - entity: scene.work
- show_name: false
- show_state: false
- tap_action:
- action: toggle
- hide_when_parent_unavailable: false
- name: Work
- icon: mdi:briefcase
- card_layout: large
- name: Scenes
- styles: >-
- .bubble-button-card-container {
- background: none !important;
- backdrop-filter: none !important;
- border: none !important;
- box-shadow: none !important;
- }
- .bubble-sub-button-container {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 100%;
- justify-content: flex;
- }
- .bubble-sub-button {
- backdrop-filter: blur(20px) saturate(150%);
- -webkit-backdrop-filter: blur(20px) saturate(150%);
- #transform: scale(0.9);
- #background: transparent !important;
- } .bubble-sub-button-1 {
- color: pink !important;
- }
- .bubble-sub-button-1:hover {
- transition: 0.5s;
- background-color: rgba(227, 79, 79,1);
- }
- .bubble-sub-button-2 {
- color: rgba(228, 148, 77,1);
- }
- .bubble-sub-button-3 {
- color: rgba(25, 199, 242,1);
- }
- .bubble-sub-button-4 {
- color: lightyellow;
- }
- .bubble-sub-button-5 {
- color: maroon;
- }
- .bubble-sub-button-6 {
- color: grey;
- }
- .bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover,
- .bubble-sub-button-5:hover {
- background-color: rgba(39, 41, 43, 0.5) !important;
- }
- rows: "0.8"
- grid_options:
- columns: full
- rows: "0.8"
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: " "
- icon: ""
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: "0.5"
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.plex_media_server
- show_last_changed: false
- show_attribute: false
- force_icon: true
- modules: []
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: heading
- icon: mdi:bed
- heading: Bed Room
- heading_style: subtitle
- card_mod:
- style: |
- * {
- color: white;
- }
- - type: custom:bubble-card
- card_type: button
- sub_button:
- - entity: script.turn_off_ac
- tap_action:
- action: toggle
- name: "Off"
- show_name: false
- icon: mdi:power
- - entity: script.ac_cool_mode_26
- show_name: false
- show_attribute: false
- show_last_changed: false
- show_state: false
- tap_action:
- action: toggle
- name: Cool
- show_icon: true
- icon: mdi:snowflake
- state_background: false
- - entity: script.ac_temp_up
- tap_action:
- action: toggle
- name: Dry
- show_state: false
- show_name: false
- icon: mdi:water-percent
- - entity: script.ac_led_off
- name: "LED "
- show_name: false
- tap_action:
- action: toggle
- icon: mdi:lightbulb-alert-outline
- name: Climate
- icon: mdi:air-filter
- scrolling_effect: false
- show_icon: false
- force_icon: false
- show_state: false
- show_attribute: false
- show_last_changed: false
- attribute: supported_features
- show_name: false
- tap_action:
- action: toggle
- card_layout: large
- button_type: name
- styles: >-
- .bubble-sub-button-container {
- justify-content: center;
- width: 100%;
- scale: 1;
- }
- .bubble-sub-button-2 {
- color: rgba(25, 199, 242,1);
- }
- .bubble-sub-button-3 {
- color: rgba(228, 148, 77,1);
- }
- .bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover,
- .bubble-sub-button-5:hover {
- background-color: rgba(39, 41, 43, 0.5) !important;
- }
- modules:
- - BBL_SBL
- grid_options:
- columns: 12
- rows: 1
- show_last_updated: false
- - type: custom:purifier-card
- entity: fan.core_300s_series
- stats: null
- shortcuts:
- - name: 25%
- icon: mdi:circle-slice-2
- percentage: 25
- - name: 50%
- icon: mdi:circle-slice-4
- percentage: 50
- - name: 100%
- icon: mdi:circle-slice-8
- percentage: 100
- - name: Auto
- icon: mdi:brightness-auto
- preset_mode: auto
- - name: Silent
- icon: mdi:weather-night
- preset_mode: sleep
- show_name: false
- show_state: false
- show_toolbar: true
- compact_view: true
- grid_options:
- columns: 12
- rows: auto
- card_mod:
- style: |-
- ha-card {
- --pc-background: rgba(255, 255, 255, 0);
- --pc-divider-color: rgba(255, 255, 255, 0.1);
- --pc-toolbar-background: rgba(255, 255, 255, 0.0);
- --pc-toolbar-icon-color: white;
- --pc-divider-color:: rgba(255, 255, 255, 0.1);
- --pc-spacing: 0px;
- #padding: 0px !important;
- #margin-top: -5%;
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- #position: relative;
- #overflow: hidden;
- }
- .preview {
- display: none;
- }
- @keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
- }
- ha-icon {
- #color: white !important;
- {% if is_state('fan.core_300s_series', 'on') %}
- #animation: spin 1s linear infinite;
- --pc-toolbar-icon-color: cyan !important;
- {% else %}
- animation: none;
- {% endif %}
- }
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- modules:
- - default
- - BBL_SBL
- - subbutton_animations
- entity: light.bedroom_lamp_1
- name: Bed Room
- icon: mdi:floor-lamp-torchiere
- show_attribute: true
- sub_button:
- - entity: switch.device_plug_2
- icon: mdi:fan
- state_background: false
- tap_action:
- action: toggle
- show_state: false
- - entity: script.air_purifier_toggle
- tap_action:
- action: toggle
- icon: mdi:air-filter
- light_background: true
- state_background: false
- - icon: hue:plug-eu
- tap_action:
- action: more-info
- state_background: false
- entity: switch.device_hub
- sub_button_coloring:
- button_1:
- entity: light.master_toilet_bulb_zb
- on_color: "#A699C0"
- on_icon_color: "#4D4356"
- defaults:
- off_color: "#353535"
- off_icon_color: "#DBDBDB"
- button_2:
- entity: switch.bathroom_fan
- on_color: "#8B7781"
- on_icon_color: "#E5C4D3"
- button_3:
- entity: switch.master_toilet_fan
- on_color: "#415671"
- on_icon_color: "#97B4C2"
- main_button_coloring:
- entity: light.bathroom_dimmer
- on_color: "#DEAEA9"
- on_icon_color: "#DEAEA9"
- grid_options:
- columns: 12
- rows: 1
- card_layout: large-sub-buttons-grid
- subbutton_animations:
- subbutton1:
- animation: spin
- condition:
- - condition: state
- entity_id: switch.device_plug_2
- state:
- - "on"
- scrolling_effect: false
- show_name: false
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: " "
- icon: ""
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: "0.5"
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.plex_media_server
- show_last_changed: false
- show_attribute: false
- force_icon: true
- modules: []
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- modules:
- - default
- - BBL_SBL
- entity: light.hallway_lamp
- name: Hallway
- icon: mdi:floor-lamp
- show_attribute: true
- sub_button:
- - tap_action:
- action: toggle
- icon: mdi:air-filter
- light_background: true
- state_background: false
- entity: sensor.nas_today_s_consumption_cost
- - icon: mdi:printer-3d
- tap_action:
- action: more-info
- state_background: false
- entity: switch.printer_hub
- sub_button_coloring:
- button_1:
- entity: light.master_toilet_bulb_zb
- on_color: "#A699C0"
- on_icon_color: "#4D4356"
- defaults:
- off_color: "#353535"
- off_icon_color: "#DBDBDB"
- button_2:
- entity: switch.bathroom_fan
- on_color: "#8B7781"
- on_icon_color: "#E5C4D3"
- button_3:
- entity: switch.master_toilet_fan
- on_color: "#415671"
- on_icon_color: "#97B4C2"
- main_button_coloring:
- entity: light.bathroom_dimmer
- on_color: "#DEAEA9"
- on_icon_color: "#DEAEA9"
- grid_options:
- columns: 12
- rows: 1
- card_layout: large-sub-buttons-grid
- column_span: 1
- - type: grid
- cards:
- - type: custom:bubble-card
- card_type: button
- grid_options:
- columns: 12
- rows: 1
- event_action:
- tap_action:
- action: more-info
- double_tap_action:
- action: none
- hold_action:
- action: none
- button_type: state
- entity: input_boolean.toggle_sections
- button_action:
- tap_action:
- action: none
- scrolling_effect: false
- show_icon: false
- show_name: false
- show_state: false
- styles: |2-
- .bubble-button-card-container {
- background: transparent;
- backdrop-filter: none;
- border: none;
- box-shadow: none;
- #border-bottom: solid 1px rgba(255,255,255,0.2);
- #outline: 1px solid rgba(255,255,255,0.1) !important;
- }
- - type: custom:clock-weather-card
- entity: weather.forecast_home
- sun_entity: sun.sun
- temperature_sensor: sensor.outdoor_temp
- humidity_sensor: sensor.outdoor_humidity
- weather_icon_type: fill
- animated_icon: true
- forecast_rows: 4
- locale: en-SG
- time_pattern: h:mm a
- time_format: 12
- date_pattern: cccc, d MMMM yyyy
- hide_today_section: false
- hide_forecast_section: false
- show_humidity: true
- hide_clock: false
- hide_date: false
- hourly_forecast: false
- use_browser_time: false
- time_zone: null
- show_decimal: true
- apparent_sensor: sensor.real_feel_temperature
- aqi_sensor: sensor.air_quality_index
- card_mod:
- style: |
- ha-card {
- background: none;
- #background: rgba(255,255,255,0.1);
- border-radius: 8px;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- #box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- box-shadow: none;
- }
- grid_options:
- columns: 12
- rows: auto
- - type: custom:hourly-weather
- entity: weather.forecast_home
- offset: "0"
- icons: true
- show_wind: "false"
- show_date: "false"
- show_precipitation_amounts: false
- show_precipitation_probability: false
- num_segments: "12"
- name: " "
- grid_options:
- columns: 12
- rows: 2
- visibility:
- - condition: state
- entity: input_boolean.toggle_weather
- state: "off"
- label_spacing: "3"
- card_mod:
- style: |
- ha-card {
- background: none;
- #background: rgba(255,255,255,0.1);
- border-radius: 8px;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- #box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- box-shadow: none;
- }
- - type: custom:bubble-card
- card_type: empty-column
- grid_options:
- columns: 3
- rows: 1
- column_span: 1
- - type: grid
- cards:
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: Media
- icon: mdi:plex
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: 1
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.plex_media_server
- show_last_changed: false
- show_attribute: false
- force_icon: true
- modules: []
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Plex
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: http://192.168.1.100:32400/web/index.html#!/
- styles: >-
- .bubble-button-card-container {
- #background: rgba(255, 255, 255, 0.1);
- background-image: url("/local/icons/png/plex_2.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 50%;
- background-position: left;
- background-position-x: 50%;
- background-repeat: no-repeat;
- position: relative;
- overflow: hidden;
- z-index: 0;
- }
- .bubble-button-card-container::before { content: ''; position:
- absolute; top: 0; left: 0; width: 200%; height: 200%; background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%; opacity: 0; transition: opacity 0.3s ease;
- pointer-events: none; z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.4;
- background:
- radial-gradient(circle at center, rgba(215, 161, 3, 0.2) 0%, transparent 70%),
- linear-gradient(5deg, transparent, rgba(215, 161, 3, 0.2), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4
- {
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover
- {
- opacity: 1;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - entity: update.plex_media_server
- show_name: false
- show_state: false
- show_last_changed: false
- show_attribute: false
- attribute: media_series_title
- show_icon: false
- show_background: true
- icon: mdi:update
- - entity: sensor.nas_main
- show_state: false
- state_background: false
- show_icon: false
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:32400/web/index.html#!/
- show_state: false
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- rows: "1"
- grid_options:
- columns: 6
- rows: "1"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Jellyfin
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: http://192.168.1.100:32400/web/index.html#!/
- styles: >-
- .bubble-button-card-container {
- #background: rgba(255, 255, 255, 0.1);
- background-image: url("/local/icons/png/jellyfin_light.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 80%;
- background-position: center;
- background-position-x: 50%;
- background-repeat: no-repeat;
- position: relative;
- overflow: hidden;
- z-index: 0;
- }
- .bubble-button-card-container::before { content: ''; position:
- absolute; top: 0; left: 0; width: 200%; height: 200%; background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%; opacity: 0; transition: opacity 0.3s ease;
- pointer-events: none; z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.4;
- background:
- radial-gradient(circle at center, rgba(8, 158, 219, 0.5) 0%, transparent 70%),
- linear-gradient(45deg, transparent, rgba(143, 104, 200, 0.7), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4
- {
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover
- {
- opacity: 1;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - show_name: false
- show_state: false
- show_last_changed: false
- show_attribute: false
- attribute: media_series_title
- show_icon: false
- show_background: true
- icon: mdi:update
- entity: sensor.nas_main_active_clients
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me
- show_state: false
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- rows: "1"
- grid_options:
- columns: 6
- rows: "1"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- entity: binary_sensor.prowlarr_online
- name: Pasta
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: https://www.pastatool.com/#authentication
- styles: |-
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.8);
- background-image: url("https://www.pastatool.com/images/Logo_Title_Large.png");
- background-size: 85%;
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://www.pastatool.com/#authentication
- show_state: false
- grid_options:
- columns: 3
- rows: 1
- card_layout: large
- scrolling_effect: false
- modules:
- - BBL_SBL
- - type: custom:bubble-card
- card_type: button
- button_type: name
- entity: binary_sensor.overseer_online
- name: Overseer
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: https://example.local234.me
- styles: |
- .bubble-button-card-container {
- #background: rgba(255, 255, 255, 0.3);
- background-image: url("/local/icons/svg/overseer_long.svg");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 85%;
- background-position: center;
- background-repeat: no-repeat;
- #border: solid rgba(39, 41, 43, 1) 0px;
- position: relative;
- overflow: hidden;
- z-index: 0;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.4;
- background:
- radial-gradient(circle at center, rgba(196, 119, 255, 0.45) 0%, transparent 70%),
- linear-gradient(5deg, transparent, rgba(196, 119, 255, 0.45), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- .bubble-icon-container {
- background: transparent;
- padding: 0px;
- margin: 0px;
- border-radius: 0px;
- }
- .bubble-sub-button-1 {
- background-color: rgba(32, 29, 31, 0) !important;
- color: ${['200', '302', '303', '307'].includes(hass.states['sensor.overseer_http_status'].state) ? 'transparent' : 'rgba(255, 0, 0, 0.8)'} !important;
- padding: 0px;
- margin: 0px;
- }
- .bubble-sub-button-icon {
- --mdc-icon-size: 18px !important;
- border-radius: 100%;
- transform: scale(1);
- box-shadow: 0 0 0 rgba(0, 0, 0, 1);
- animation: pulse-animation 5s infinite;
- }
- @keyframes pulse-animation {
- 0% { transform: scale(0.85); box-shadow: 0 0 0 0 rgba(252, 3, 3, 0); }
- 70% { transform: scale(1); box-shadow: 0 0 0 0.6rem rgba(0, 0, 0, 0); }
- 100% { transform: scale(0.85); box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me
- show_state: false
- grid_options:
- columns: 3
- rows: 1
- card_layout: large
- modules:
- - BBL_SBL
- scrolling_effect: false
- - type: custom:bubble-card
- card_type: button
- button_type: name
- entity: binary_sensor.tautulli_online
- name: Tautulli
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: https://example.local234.me
- styles: |-
- .bubble-button-card-container {
- #background: rgba(255, 255, 255, 0.2);
- background-image: url("/local/icons/png/logo-tautulli-45.png");
- background-size: 80%;
- background-position: left;
- background-position-x: 50%;
- #border: solid rgba(39, 41, 43, 1) 0px;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.4;
- background:
- radial-gradient(circle at center, rgba(215, 161, 3, 0.2) 0%, transparent 70%),
- linear-gradient(5deg, transparent, rgba(215, 161, 3, 0.2), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me
- show_state: false
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- scrolling_effect: false
- sub_button: []
- grid_options:
- columns: 3
- rows: auto
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Jellystat
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: http://192.168.1.100:3791
- styles: >-
- .bubble-button-card-container {
- #background: rgba(255, 255, 255, 0.1);
- background-image: url("/local/icons/png/jellystat.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 40%;
- background-position: center;
- background-position-x: 50%;
- background-repeat: no-repeat;
- position: relative;
- overflow: hidden;
- z-index: 0;
- }
- .bubble-button-card-container::before { content: ''; position:
- absolute; top: 0; left: 0; width: 200%; height: 200%; background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%; opacity: 0; transition: opacity 0.3s ease;
- pointer-events: none; z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.4;
- background:
- radial-gradient(circle at center, rgba(8, 158, 219, 0.5) 0%, transparent 70%),
- linear-gradient(45deg, transparent, rgba(143, 104, 200, 0.7), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4
- {
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover
- {
- opacity: 1;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - show_name: false
- show_state: false
- show_last_changed: false
- show_attribute: false
- attribute: media_series_title
- show_icon: false
- show_background: true
- icon: mdi:update
- entity: sensor.nas_main_active_clients
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:3791
- show_state: false
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- rows: "1"
- grid_options:
- columns: 3
- rows: 1
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: " "
- icon: ""
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: "0.5"
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.plex_media_server
- show_last_changed: false
- show_attribute: false
- force_icon: true
- modules: []
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Simkl
- icon: " "
- show_name: false
- force_icon: false
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: url
- url_path: https://simkl.com/example/dashboard/
- styles: |+
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.5);
- background-image: url("https://eu.simkl.in/img_blog_2012/logo.png");
- background-size: 60%;
- }
- .bubble-button-card-container:hover {
- #opacity: 0.9;
- #background-color: rgba(231, 231, 232, 0.45) !important;
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://simkl.com/example/dashboard/
- show_state: false
- card_layout: large
- grid_options:
- columns: 6
- rows: 1
- modules:
- - BBL_SBL
- - BBL_SL
- scrolling_effect: false
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Yamtrack
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: more-info
- url_path: https://example.local234.me
- styles: |-
- .bubble-button-card-container {
- background: rgba(255, 255, 255, 0.2);
- background-image: url("/local/icons/png/yamtrack.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 135%;
- background-repeat: no-repeat;
- background-position: center;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.3;
- background:
- radial-gradient(circle at center, rgba(58, 50, 34, 0.45) 0%, transparent 70%),
- linear-gradient(15deg, transparent, rgba(138, 62, 229, 0.55), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me
- show_state: false
- card_layout: large
- grid_options:
- columns: 6
- rows: 1
- modules:
- - BBL_SBL
- scrolling_effect: false
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Kavita
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: url
- url_path: https://example.local234.me/home
- styles: |-
- .bubble-button-card-container {
- background: rgba(255, 255, 255, 0.1);
- background-image: url("/local/icons/png/kavita.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 135%;
- background-repeat: no-repeat;
- background-position: center;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.3;
- background:
- radial-gradient(circle at center, rgba(58, 50, 34, 0.745) 0%, transparent 70%),
- linear-gradient(15deg, transparent, rgba(80, 161, 91, 0.85), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me/home
- show_state: false
- card_layout: large
- modules:
- - BBL_SBL
- scrolling_effect: false
- rows: "1"
- grid_options:
- columns: 6
- rows: "1"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Synclounge
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- url_path: https://example.local234.me
- styles: |-
- .bubble-button-card-container {
- background: rgba(255, 255, 255, 0.2);
- background-image: url("/local/icons/png/synclounge.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 75%;
- background-position: center;
- background-repeat: no-repeat;
- #border: solid rgba(39, 41, 43, 1) 0px;
- position: relative;
- overflow: hidden;
- z-index: 0;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.3;
- background:
- radial-gradient(circle at center, rgba(58, 50, 34, 0.45) 0%, transparent 70%),
- linear-gradient(65deg, transparent, rgba(229, 161, 36, 0.55), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- .bubble-icon-container {
- background: transparent;
- padding: 0px;
- margin: 0px;
- border-radius: 0px;
- }
- .bubble-sub-button-1 {
- background-color: rgba(32, 29, 31, 0) !important;
- color: ${['200', '302', '303', '307'].includes(hass.states['sensor.overseer_http_status'].state) ? 'transparent' : 'rgba(255, 0, 0, 0.8)'} !important;
- padding: 0px;
- margin: 0px;
- }
- .bubble-sub-button-icon {
- --mdc-icon-size: 18px !important;
- border-radius: 100%;
- transform: scale(1);
- box-shadow: 0 0 0 rgba(0, 0, 0, 1);
- animation: pulse-animation 5s infinite;
- }
- @keyframes pulse-animation {
- 0% { transform: scale(0.85); box-shadow: 0 0 0 0 rgba(252, 3, 3, 0); }
- 70% { transform: scale(1); box-shadow: 0 0 0 0.6rem rgba(0, 0, 0, 0); }
- 100% { transform: scale(0.85); box-shadow: 0 0 0 0 rgba(0, 0, 0, 0); }
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me
- show_state: false
- grid_options:
- columns: 6
- rows: 1
- card_layout: large
- modules:
- - BBL_SBL
- scrolling_effect: false
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: Services
- icon: mdi:nas
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: 1
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.nas_main_dsm_update
- show_last_changed: false
- show_attribute: false
- force_icon: true
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: qBittorrent
- icon: phu:qbittorrent
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background-image: url("/local/icons/png/qbittorrent.png");
- background-size: 35%;
- transition: 0.3s;
- background-position-x: 15%;
- }
- .bubble-sub-button-1 {
- color: rgba(0, 255, 100, 0.7) !important;
- }
- .bubble-sub-button-2 {
- color: rgba(255, 0, 0, 0.7) !important;
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.4;
- background:
- radial-gradient(circle at center, rgba(53, 110, 191, 0.45) 0%, transparent 70%),
- linear-gradient(5deg, transparent, rgba(53, 110, 191, 0.45), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- sub_button:
- - entity: sensor.qbittorrent_download_speed
- icon: mdi:download
- show_name: false
- show_state: true
- state_background: false
- - entity: sensor.qbittorrent_upload_speed
- icon: mdi:upload
- show_name: false
- show_state: true
- show_last_changed: false
- state_background: false
- - entity: sensor.qbittorrent_status
- icon: mdi:list-status
- show_name: false
- show_state: true
- state_background: false
- - entity: sensor.qbittorrent_all_torrents
- icon: phu:qbittorrent
- show_last_changed: false
- show_state: true
- show_name: false
- show_attribute: false
- show_background: true
- state_background: false
- show_icon: false
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- show_icon: false
- rows: "2"
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:8090
- grid_options:
- columns: 6
- rows: 2
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Sonarr
- icon: mdi:pirate
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background-image: url("/local/icons/png/sonarr.png");
- background-size: 20%;
- transition: 0.3s;
- background-position-x: 15%;
- }
- .bubble-sub-button-1, .bubble-sub-button-2, .bubble-sub-button-3, .bubble-sub-button-4 {
- #color: rgba(0, 255, 100, 0.7) !important;
- #background-size: 65%;
- #background-position-x: center;
- #background-position-y: center;
- #background-repeat: no-repeat;
- }
- .bubble-sub-button-1 {
- #background-image: url("/local/icons/png/sonarr.png");
- }
- .bubble-sub-button-2 {
- #background-image: url("/local/icons/png/radarr.png");
- }
- .bubble-sub-button-3 {
- #background-image: url("/local/icons/png/lidarr.png");
- }
- .bubble-sub-button-4 {
- #background-image: url("/local/icons/png/prowlarr.png");
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - entity: sensor.sonarr_shows
- show_name: false
- show_state: true
- icon: fas:tv
- - show_state: true
- entity: sensor.sonarr_queue
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- show_icon: false
- rows: "1"
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:8989
- grid_options:
- columns: 6
- rows: 1
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Radarr
- icon: phu:radarr
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background-image: url("/local/icons/png/radarr.png");
- background-size: 20%;
- transition: 0.3s;
- background-position-x: 16%;
- }
- .bubble-sub-button-1, .bubble-sub-button-2, .bubble-sub-button-3, .bubble-sub-button-4 {
- #color: rgba(0, 255, 100, 0.7) !important;
- #background-size: 65%;
- #background-position-x: center;
- #background-position-y: center;
- #background-repeat: no-repeat;
- }
- .bubble-sub-button-1 {
- #background-image: url("/local/icons/png/sonarr.png");
- }
- .bubble-sub-button-2 {
- #background-image: url("/local/icons/png/radarr.png");
- }
- .bubble-sub-button-3 {
- #background-image: url("/local/icons/png/lidarr.png");
- }
- .bubble-sub-button-4 {
- #background-image: url("/local/icons/png/prowlarr.png");
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - entity: sensor.radarr_movies
- show_name: false
- show_state: true
- icon: mdi:movie-open
- - show_state: true
- entity: sensor.radarr_queue
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- show_icon: false
- rows: "1"
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:7878
- grid_options:
- columns: 6
- rows: 1
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Immich
- icon: " "
- show_name: false
- force_icon: true
- show_icon: false
- show_last_changed: false
- show_attribute: false
- attribute: friendly_name
- tap_action:
- action: url
- url_path: https://example.local234.me/home
- styles: |-
- .bubble-button-card-container {
- background: rgba(255, 255, 255, 0.1);
- background-image: url("/local/icons/png/immich.png");
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- background-size: 45%;
- background-repeat: no-repeat;
- background-position: center;
- }
- .bubble-button-card-container::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: 200%;
- height: 200%;
- background:
- radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, transparent 70%),
- linear-gradient(135deg, transparent, rgba(255,255,255,0.05), transparent);
- background-size: 200% 200%;
- opacity: 0;
- transition: opacity 0.3s ease;
- pointer-events: none;
- z-index: 1;
- }
- .bubble-button-card-container:hover::before {
- opacity: 0.3;
- background:
- radial-gradient(circle at center, rgba(58, 50, 34, 0.45) 0%, transparent 70%),
- linear-gradient(15deg, transparent, rgba(100, 0, 91, 0.55), transparent);
- animation: shimmerMove 2s ease 1 forwards;
- }
- @keyframes shimmerMove {
- 0% {
- background-position: 20% 20%;
- }
- 50% {
- background-position: 80% 80%;
- }
- 100% {
- background-position: 80% 80%;
- }
- }
- sub_button: []
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me/
- show_state: false
- card_layout: large
- modules:
- - BBL_SBL
- scrolling_effect: false
- rows: "1"
- grid_options:
- columns: 3
- rows: "1"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Prowlarr
- icon: phu:prowlarr
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background-image: url("/local/icons/png/prowlarr.png");
- background-size: 40%;
- transition: 0.3s;
- background-position-x: center;
- }
- sub_button: []
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- show_icon: false
- rows: "1"
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:9696
- grid_options:
- columns: 3
- rows: 1
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Music
- icon: mdi:account-music
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background-image: url("/local/icons/png/navidrome.png");
- background-size: 20%;
- transition: 0.3s;
- background-position-x: 16%;
- }
- .bubble-sub-button-1, .bubble-sub-button-2, .bubble-sub-button-3, .bubble-sub-button-4 {
- #color: rgba(0, 255, 100, 0.7) !important;
- #background-size: 65%;
- #background-position-x: center;
- #background-position-y: center;
- #background-repeat: no-repeat;
- }
- .bubble-sub-button-1 {
- #background-image: url("/local/icons/png/musichoarders.png");
- }
- .bubble-sub-button-2 {
- #background-image: url("/local/icons/png/radarr.png");
- }
- .bubble-sub-button-3 {
- #background-image: url("/local/icons/png/lidarr.png");
- }
- .bubble-sub-button-4 {
- #background-image: url("/local/icons/png/prowlarr.png");
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - show_name: true
- show_state: true
- icon: mdi:music-box-multiple
- name: "Album Art "
- tap_action:
- action: url
- url_path: https://covers.musichoarders.xyz
- show_icon: true
- show_background: true
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- show_icon: false
- rows: "1"
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:8338
- grid_options:
- columns: 6
- rows: 1
- - type: custom:bubble-card
- card_type: separator
- button_type: name
- name: Networking
- icon: mdi:router-network
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- rows: 1
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: ""
- sub_button:
- - name: NextDNS
- icon: " "
- show_name: true
- tap_action:
- action: url
- url_path: https://my.nextdns.io
- show_icon: true
- - name: Tailscale
- icon: " "
- show_name: true
- tap_action:
- action: url
- url_path: https://login.tailscale.com/admin/dns
- - name: Cloudflare
- icon: " "
- show_name: true
- tap_action:
- action: url
- url_path: https://dash.cloudflare.com
- card_layout: large
- styles: |2-
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.5);
- #border: solid rgba(39, 41, 43, 1) 2px;
- }
- .bubble-sub-button-1 {
- background-image: url("/local/icons/png/nextdns.png");
- background-size: cover;
- background-size: 25%;
- background-position-x: 6%;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- .bubble-sub-button-2 {
- background-image: url("/local/icons/png/tailscale.png");
- background-size: cover;
- background-size: 25%;
- background-position-x: 6%;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- .bubble-sub-button-3 {
- background-image: url("/local/icons/png/cloudflare_2.png");
- background-size: cover;
- background-size: 25%;
- background-position-x: 6%;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- show_icon: true
- show_name: true
- icon: mdi:shield-home
- tap_action:
- action: none
- modules:
- - BBL_SBL
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: ""
- sub_button:
- - name: Modem
- icon: " "
- show_name: true
- tap_action:
- action: url
- url_path: null
- show_icon: true
- - name: Mesh
- icon: " "
- show_name: false
- tap_action:
- action: url
- url_path: null
- show_state: false
- show_icon: true
- - name: ISP
- icon: " "
- show_name: true
- tap_action:
- action: url
- url_path: null
- - name: " "
- show_name: true
- icon: ""
- show_icon: false
- tap_action:
- action: url
- url_path: https://speed.cloudflare.com/
- - icon: mdi:vpn
- show_name: false
- entity: input_boolean.toggle_network_stats
- tap_action:
- action: toggle
- show_state: false
- state_background: false
- show_background: true
- card_layout: large
- styles: |2-
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.5);
- #border: solid rgba(39, 41, 43, 1) 2px;
- }
- .bubble-sub-button-1 {
- background-image: url("/local/icons/png/router.png");
- background-size: cover;
- background-size: 25%;
- background-position-x: 6%;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- .bubble-sub-button-2 {
- background-image: url("/local/icons/png/netbox.png");
- background-size: cover;
- background-size: 60%;
- background-position-x: center;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- .bubble-sub-button-3 {
- background-image: url("/local/icons/png/singtel.png");
- background-size: cover;
- background-size: 35%;
- background-position-x: 16%;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- .bubble-sub-button-4 {
- background-image: url("https://cdn-1.webcatalog.io/catalog/speedtest/speedtest-icon.png");
- background-size: cover;
- background-size: 85%;
- background-position-x: center;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- show_icon: true
- show_name: true
- icon: mdi:network-pos
- tap_action:
- action: url
- url_path: https://ipinfo.io/dashboard
- modules:
- - BBL_SBL
- visibility:
- - condition: state
- entity: input_boolean.toggle_sections
- state: "on"
- - type: grid
- cards:
- - type: custom:bubble-card
- card_type: separator
- button_type: name
- name: NAS
- icon: phu:synology-dsm
- show_name: true
- scrolling_effect: false
- sub_button: []
- card_layout: large-2-rows
- rows: "1"
- styles: |-
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Synology
- icon: null
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background: rgba(255,255,255, 0.1);
- background-image: url("/local/icons/png/synology_v2.png");
- background-repeat: no-repeat;
- background-size: 25%;
- transition: 0.3s;
- background-position-x: 10%;
- background-position-y: 50%;
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4,.bubble-sub-button-5, .bubble-sub-button-6 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- .bubble-sub-button-5 {
- color: rgba(0, 255, 100, 0.7) !important;
- }
- .bubble-sub-button-6 {
- color: rgba(255, 0, 0, 0.7) !important;
- }
- sub_button:
- - entity: sensor.nas_main_temperature
- show_state: true
- show_name: false
- name: Temp
- icon: mdi:thermometer
- state_background: false
- show_background: true
- - entity: sensor.nas_main_cpu_utilization_total
- show_state: true
- show_name: false
- icon: mdi:chip
- name: CPU Utilization
- state_background: false
- - entity: sensor.nas_main_memory_usage_real
- show_state: true
- show_name: false
- icon: mdi:memory
- name: Memory Usage Real
- state_background: false
- - entity: binary_sensor.nas_main_security_status
- show_state: true
- show_name: false
- icon: mdi:security
- name: Security Status
- state_background: false
- - entity: sensor.nas_main_download_throughput
- show_name: false
- state_background: false
- show_background: true
- show_state: true
- name: download
- icon: mdi:download
- - entity: sensor.nas_main_upload_throughput
- show_name: false
- state_background: false
- show_background: true
- show_state: true
- name: Upload
- icon: mdi:upload
- card_layout: large-2-rows
- modules:
- - BBL_SBL
- show_icon: false
- rows: "2"
- button_action:
- tap_action:
- action: url
- url_path: https://example.local234.me
- grid_options:
- columns: 12
- rows: 1
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Portainer
- icon: mdi:pirate
- show_name: false
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background-image: url("/local/icons/svg/portainer_1.svg");
- background-size: 30%;
- transition: 0.3s;
- background-position-x: 12%;
- }
- .bubble-sub-button-1, .bubble-sub-button-2, .bubble-sub-button-3, .bubble-sub-button-4 {
- color: rgba(0, 255, 100, 0.7) !important;
- background-size: 65%;
- background-position-x: center;
- background-position-y: center;
- background-repeat: no-repeat;
- }
- .bubble-sub-button-1 {
- background-image: url("https://cdn.jsdelivr.net/gh/selfhst/icons/png/grafana.png");
- }
- .bubble-sub-button-2 {
- background-image: url("/local/icons/png/scrutiny.png");
- }
- .bubble-sub-button-3 {
- background-image: url("/local/icons/png/uptimekuma.png");
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - tap_action:
- action: url
- url_path: http://192.168.1.100:3340
- name: " "
- icon: ""
- show_name: false
- show_icon: true
- - icon: phu:radarr
- show_name: true
- show_state: false
- state_background: false
- show_icon: false
- name: " "
- show_background: true
- show_attribute: false
- show_last_changed: false
- show_last_updated: false
- tap_action:
- action: url
- url_path: http://192.168.1.100:6090/web/
- - icon: mdi:bulkhead-light
- show_name: true
- show_state: false
- show_last_changed: false
- state_background: false
- name: " "
- show_icon: false
- tap_action:
- action: url
- url_path: http://192.168.1.100:3444
- card_layout: large-sub-buttons-grid
- modules:
- - BBL_SBL
- show_icon: false
- rows: "2"
- button_action:
- tap_action:
- action: url
- url_path: http://192.168.1.100:9000
- grid_options:
- columns: 12
- rows: 1
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Memory
- icon: mdi:memory
- show_name: true
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.1);
- transition: 0.3s;
- }
- .bubble-button-card-container:hover {
- opacity: 0.75;
- background-color: rgba(45, 170, 171, 0.75) !important;
- }
- .bubble-icon {
- --mdc-icon-size: 25px !important;
- color: white !important;
- }
- .bubble-sub-button-1 {
- padding: 2px;
- font-size: 12px;
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- .bubble-sub-button-2 {
- padding: 2px;
- font-size: 12px;
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- .bubble-sub-button-3 {
- padding: 2px;
- font-size: 12px;
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- .bubble-sub-button-4 {
- padding: 2px;
- font-size: 12px;
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- sub_button:
- - entity: sensor.nas_main_memory_usage_real
- show_state: true
- show_name: false
- name: Memory Usage
- icon: mdi:memory-arrow-down
- - entity: sensor.nas_main_memory_total_real
- show_state: true
- show_name: false
- icon: mdi:gauge-full
- name: Memory Total Real
- - entity: sensor.nas_main_memory_available_swap
- show_state: true
- show_name: false
- icon: mdi:crop-free
- name: Memory Avail Swap
- - entity: sensor.nas_main_memory_cached
- show_state: true
- show_name: false
- icon: mdi:fullscreen-exit
- name: Memory Cached
- card_layout: large-2-rows
- tap_action:
- action: none
- modules:
- - BBL_SBL
- rows: "1"
- - type: custom:bubble-card
- card_type: separator
- button_type: state
- name: " "
- icon: ""
- sub_button: []
- show_name: true
- show_icon: true
- scrolling_effect: true
- card_layout: large-2-rows
- rows: "0.5"
- tap_action:
- action: more-info
- button_action:
- tap_action:
- action: more-info
- entity: update.plex_media_server
- show_last_changed: false
- show_attribute: false
- force_icon: true
- modules: []
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - graph: line
- type: sensor
- entity: sensor.nas_main_volume_1_used_space
- name: V1 Used
- detail: 2
- theme: Graphite
- card_mod:
- style: |
- ha-card {
- color: white;
- background: rgba(255, 255, 255, 0.1) !important;
- margin: 0%;
- border-radius:8px;
- #border: solid rgba(39, 41, 43, 1) 2px;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- }
- ha-card .name {
- color: white !important; /* Sensor name */
- }
- ha-card .measurement {
- color: white !important; /* Sensor name */
- }
- grid_options:
- columns: 6
- rows: 2
- - graph: line
- type: sensor
- entity: sensor.system_monitor_disk_free
- name: V1 Avail.
- detail: 2
- layout_options:
- grid_columns: 1
- grid_rows: 1
- theme: Graphite
- card_mod:
- style: |
- ha-card {
- color: white;
- background: rgba(255, 255, 255, 0.1) !important;
- margin: 0%;
- border-radius:8px;
- #border: solid rgba(39, 41, 43, 1) 2px;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- }
- ha-card .name {
- color: white !important; /* Sensor name */
- }
- ha-card .measurement {
- color: white !important; /* Sensor name */
- }
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Volume 1
- icon: mdi:fridge-industrial
- show_name: true
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background: rgba(255, 255, 255, 0.2) !important;
- transition: 0.3s;
- border-radius: 0px;
- }
- .bubble-button-card-container:hover {
- opacity: 0.75;
- #background-color: rgba(45, 170, 171, 0.75) !important;
- }
- .bubble-icon {
- --mdc-icon-size: 25px !important;
- color: white !important;
- }
- .bubble-sub-button-1 {
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- .bubble-sub-button-2 {
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- sub_button:
- - entity: sensor.nas_main_volume_1_volume_used
- show_state: true
- show_name: false
- name: Volume 1 Used
- icon: mdi:database
- - entity: sensor.nas_main_volume_1_status
- show_state: true
- show_name: false
- icon: mdi:check-circle-outline
- name: Volume 1 Status
- card_layout: large
- tap_action:
- action: none
- modules:
- - BBL_SBL
- rows: "0.8"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Drive 1
- icon: mdi:harddisk
- show_name: true
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background: transparent;
- backdrop-filter: none;
- border: none;
- box-shadow: none;
- #border-bottom: solid 1px rgba(255,255,255,0.2);
- outline: 1px solid rgba(255,255,255,0.1) !important;
- }
- * {
- font-size: 98% !important;
- #border-radius: 0px !important;
- }
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.8) !important;
- transition: 0.3s;
- #height: 35px !important;
- }
- .bubble-icon {
- --mdc-icon-size: 25px !important;
- color: white !important;
- }
- .bubble-sub-button-icon {
- --mdc-icon-size: 15px !important;
- color: white !important;
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - entity: sensor.nas_main_drive_1_temperature
- show_state: true
- show_name: false
- name: Drive Temp
- - entity: binary_sensor.nas_main_drive_1_below_min_remaining_life
- show_state: true
- show_name: false
- icon: mdi:medication
- name: Drive Below Remain Life
- - entity: binary_sensor.nas_main_drive_1_exceeded_max_bad_sectors
- show_state: true
- show_name: false
- icon: mdi:cone
- name: Drive Exceeded Bad Sectors
- - entity: sensor.nas_main_drive_1_status_smart
- show_state: true
- show_name: false
- icon: mdi:harddisk-plus
- name: SMART Status
- card_layout: large
- modules:
- - BBL_SBL
- show_icon: false
- rows: "0.5"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: Drive 2
- icon: mdi:harddisk
- show_name: true
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background: transparent;
- backdrop-filter: none;
- border: none;
- box-shadow: none;
- #border-bottom: solid 1px rgba(255,255,255,0.2);
- outline: 1px solid rgba(255,255,255,0.1) !important;
- }
- * {
- font-size: 98% !important;
- #border-radius: 0px !important;
- }
- .bubble-button-card-container {
- #background: rgba(39, 41, 43, 0.8) !important;
- transition: 0.3s;
- #height: 35px !important;
- }
- .bubble-icon {
- --mdc-icon-size: 25px !important;
- color: white !important;
- }
- .bubble-sub-button-icon {
- --mdc-icon-size: 15px !important;
- color: white !important;
- }
- .bubble-sub-button-1,.bubble-sub-button-2,.bubble-sub-button-3,.bubble-sub-button-4 {
- padding: 2px;
- background-color: rgba(0, 0, 5, 0) !important;
- color: white;
- transition: 0.3s;
- }
- .bubble-sub-button-1:hover,.bubble-sub-button-2:hover,.bubble-sub-button-3:hover,.bubble-sub-button-4:hover {
- opacity: 0.75;
- color: white !important;
- background-color: rgba(102, 102, 102, 0.15) !important;
- }
- sub_button:
- - entity: sensor.nas_main_drive_2_temperature
- show_state: true
- show_name: false
- name: Drive Temp
- - entity: binary_sensor.nas_main_drive_2_below_min_remaining_life
- show_state: true
- show_name: false
- icon: mdi:medication
- name: Drive Below Remain Life
- - entity: binary_sensor.nas_main_drive_2_exceeded_max_bad_sectors
- show_state: true
- show_name: false
- icon: mdi:cone
- name: Drive Exceeded Bad Sectors
- - entity: sensor.nas_main_drive_2_status_smart
- show_state: true
- show_name: false
- icon: mdi:harddisk-plus
- name: SMART Status
- card_layout: large
- modules:
- - BBL_SBL
- show_icon: false
- rows: "0.5"
- - type: custom:bubble-card
- card_type: button
- button_type: name
- name: SSD
- icon: mdi:google-drive
- show_name: true
- scrolling_effect: false
- styles: |2-
- .bubble-button-card-container {
- background: rgba(255, 255, 255, 0.2) !important;
- transition: 0.3s;
- border-radius: 0px;
- }
- .bubble-button-card-container:hover {
- opacity: 0.75;
- #background-color: rgba(45, 170, 171, 0.75) !important;
- }
- .bubble-icon {
- --mdc-icon-size: 25px !important;
- color: white !important;
- }
- .bubble-sub-button-1 {
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- .bubble-sub-button-2 {
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- .bubble-sub-button-3 {
- background-color: rgba(0, 0, 5, 0.1) !important;
- color: white;
- }
- sub_button:
- - entity: sensor.nas_main_usb_disk_1_partition_1_partition_used
- show_state: true
- show_name: false
- name: Volume UBS1 Used
- icon: mdi:database
- - entity: sensor.nas_main_usb_disk_1_status
- show_state: true
- show_name: false
- icon: mdi:check-circle-outline
- name: Volume UBS1 Status
- card_layout: large
- tap_action:
- action: none
- modules:
- - BBL_SBL
- rows: "0.8"
- button_action: {}
- - type: custom:bubble-card
- card_type: separator
- name: Power Draw
- icon: mdi:lightning-bolt
- sub_button: []
- card_layout: large
- styles: |
- .bubble-line {
- background: white;
- opacity: 0.1;
- }
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- button_type: state
- entity: sensor.nas_current_consumption
- card_layout: large-2-rows
- name: NAS Power
- icon: mdi:flash
- show_icon: false
- show_state: true
- show_name: true
- grid_options:
- columns: 4
- rows: "0.7"
- styles: |-
- .bubble-button-card-container {
- border-radius: 8px 8px 0 0 !important;
- }
- card_mod:
- style: >-
- {% set val = states('sensor.nas_current_consumption') | float(0)
- %}
- {% set pct = (val / 50 * 100) | round(1) %}
- {% if val < 10 %}
- {% set bg = '#2196f399' %} {# blue, 80% opacity #}
- {% elif val < 40 %}
- {% set bg = '#5C793399' %} {# green, 80% opacity #}
- {% elif val < 45 %}
- {% set bg = '#ffeb3b99' %} {# yellow, 80% opacity #}
- {% else %}
- {% set bg = '#f4433699' %} {# red, 80% opacity #}
- {% endif %}
- {% set r = (bg[1:3] | int(base=16)) / 255 %}
- {% set g = (bg[3:5] | int(base=16)) / 255 %}
- {% set b = (bg[5:7] | int(base=16)) / 255 %}
- {% set luminance = 0.299 * r + 0.587 * g + 0.114 * b %}
- .bubble-button-card-container {
- background: linear-gradient(
- to right,
- {{ bg }} {{ pct }}%,
- rgba(255, 255, 255, 0.05) {{ pct }}%
- ) !important;
- color: {% if luminance > 0.5 %}
- rgb(0, 0, 0);
- {% else %}
- rgb(255, 255, 255);
- {% endif %};
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none !important;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- - type: custom:mini-graph-card
- entities:
- - entity: sensor.nas_current_consumption
- name: NAS (Now)
- icon: mdi:server
- align_icon: left
- align_state: left
- unit: W
- font_size: 66
- font_size_header: 10
- show:
- labels: false
- name: false
- icon: false
- legend: false
- average: false
- extrema: false
- action: more-info
- hours_to_show: 3
- line_width: 3
- points_per_hour: 70
- color_thresholds:
- - value: 45
- color: "#f44336"
- - value: 40
- color: "#ffeb3b"
- - value: 35
- color: "#5C7933"
- - value: 0
- color: "#2196f3"
- height: 200
- grid_options:
- rows: null
- columns: 4
- card_mod:
- style: |-
- .states.flex {
- display: none;
- position: absolute;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 1.4em;
- align-self: center;
- }
- .graph .graph__container .graph__labels.--primary.flex {
- color: rgba(78, 255, 0,0.6);
- }
- .graph .graph__legend div:nth-child(1) {
- color: rgba(78, 255, 0,0.6);
- }
- .graph .graph__legend div:nth-child(2) {
- color: #AB83FB;
- }
- .states.flex > .state .state__value.ellipsis::before {
- content: "NAS";
- color: rgba(78, 255, 0,0.6);
- }
- ha-card {
- padding: 0px !important;
- margin-top: -5%;
- background: rgba(39, 41, 43, 0.5) !important;
- #background: rgba(255, 255, 255, 0.1) !important;
- backdrop-filter: blur(20px) saturate(150%) !important;
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- }
- *{
- border-radius: 0 0 8px 8px !important;
- }
- grid_options:
- columns: 4
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- button_type: state
- entity: sensor.misc_hub_current_consumption
- card_layout: large-2-rows
- name: PC Hub
- icon: mdi:flash
- show_icon: false
- show_state: true
- show_name: true
- rows: "0.7"
- grid_options:
- columns: 4
- styles: |-
- .bubble-button-card-container {
- border-radius: 8px 8px 0 0 !important;
- }
- card_mod:
- style: >-
- {% set val = states('sensor.misc_hub_current_consumption') |
- float(0) %}
- {% set pct = (val / 650 * 100) | round(1) %}
- {% if val < 150 %}
- {% set bg = '#2196f399' %} {# blue, 80% opacity #}
- {% elif val < 450 %}
- {% set bg = '#5C793399' %} {# green, 80% opacity #}
- {% elif val < 550 %}
- {% set bg = '#ffeb3b99' %} {# yellow, 80% opacity #}
- {% else %}
- {% set bg = '#f4433699' %} {# red, 80% opacity #}
- {% endif %}
- {% set r = (bg[1:3] | int(base=16)) / 255 %}
- {% set g = (bg[3:5] | int(base=16)) / 255 %}
- {% set b = (bg[5:7] | int(base=16)) / 255 %}
- {% set luminance = 0.299 * r + 0.587 * g + 0.114 * b %}
- .bubble-button-card-container {
- background: linear-gradient(
- to right,
- {{ bg }} {{ pct }}%,
- rgba(255, 255, 255, 0.1) {{ pct }}%
- ) !important;
- color: {% if luminance > 0.5 %}
- rgb(0, 0, 0);
- {% else %}
- rgb(255, 255, 255);
- {% endif %};
- #border: solid rgba(39, 41, 43, 1) 2px;
- }
- .bubble-button-card-container{
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px !impotant;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- - type: custom:mini-graph-card
- entities:
- - entity: sensor.misc_hub_current_consumption
- name: NAS (Now)
- icon: mdi:server
- align_icon: left
- align_state: left
- unit: W
- font_size: 66
- font_size_header: 10
- show:
- labels: false
- name: false
- icon: false
- legend: false
- average: false
- extrema: false
- action: more-info
- hours_to_show: 3
- line_width: 3
- points_per_hour: 70
- color_thresholds:
- - value: 650
- color: "#f44336"
- - value: 450
- color: "#ffeb3b"
- - value: 250
- color: "#5C7933"
- - value: 0
- color: "#2196f3"
- height: 200
- grid_options:
- rows: null
- columns: 4
- card_mod:
- style: |
- .states.flex {
- display: none;
- position: absolute;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 1.4em;
- align-self: center;
- }
- .graph .graph__container .graph__labels.--primary.flex {
- color: rgba(78, 255, 0,0.6);
- }
- .graph .graph__legend div:nth-child(1) {
- color: rgba(78, 255, 0,0.6);
- }
- .graph .graph__legend div:nth-child(2) {
- color: #AB83FB;
- }
- .states.flex > .state .state__value.ellipsis::before {
- content: "NAS";
- color: rgba(78, 255, 0,0.6);
- }
- ha-card {
- padding: 0px !important;
- margin-top: -5%;
- background: rgba(39, 41, 43, 0.5) !important;
- backdrop-filter: blur(20px) saturate(150%) !important;
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- }
- *{
- border-radius: 0 0 8px 8px !important;
- }
- grid_options:
- columns: 4
- rows: auto
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- button_type: state
- entity: sensor.printer_hub_current_consumption
- card_layout: large-2-rows
- name: Printer Hub
- icon: mdi:flash
- show_icon: false
- show_state: true
- show_name: true
- rows: "0.7"
- grid_options:
- columns: 4
- styles: |-
- .bubble-button-card-container {
- border-radius: 8px 8px 0 0 !important;
- }
- card_mod:
- style: >-
- {% set val = states('sensor.printer_hub_current_consumption') |
- float(0)
- %}
- {% set pct = (val / 350 * 100) | round(1) %}
- {% if val < 90 %}
- {% set bg = '#2196f399' %} {# blue, 80% opacity #}
- {% elif val < 250 %}
- {% set bg = '#5C793399' %} {# green, 80% opacity #}
- {% elif val < 300 %}
- {% set bg = '#ffeb3b99' %} {# yellow, 80% opacity #}
- {% else %}
- {% set bg = '#f4433699' %} {# red, 80% opacity #}
- {% endif %}
- {% set r = (bg[1:3] | int(base=16)) / 255 %}
- {% set g = (bg[3:5] | int(base=16)) / 255 %}
- {% set b = (bg[5:7] | int(base=16)) / 255 %}
- {% set luminance = 0.299 * r + 0.587 * g + 0.114 * b %}
- .bubble-button-card-container {
- background: linear-gradient(
- to right,
- {{ bg }} {{ pct }}%,
- rgba(255, 255, 255, 0.1) {{ pct }}%
- ) !important;
- color: {% if luminance > 0.5 %}
- rgb(0, 0, 0);
- {% else %}
- rgb(255, 255, 255);
- {% endif %};
- #border: solid rgba(39, 41, 43, 1) 2px;
- }
- .bubble-button-card-container{
- background: rgba(255, 255, 255, 0.1);
- border-radius: 8px !impotant;
- #backdrop-filter: blur(20px) saturate(150%);
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- position: relative;
- overflow: hidden;
- }
- - type: custom:mini-graph-card
- entities:
- - entity: sensor.printer_hub_current_consumption
- name: NAS (Now)
- icon: mdi:server
- align_icon: left
- align_state: left
- unit: W
- font_size: 66
- font_size_header: 10
- show:
- labels: false
- name: false
- icon: false
- legend: false
- average: false
- extrema: false
- action: more-info
- hours_to_show: 1
- line_width: 3
- points_per_hour: 70
- color_thresholds:
- - value: 350
- color: "#f44336"
- - value: 250
- color: "#ffeb3b"
- - value: 150
- color: "#5C7933"
- - value: 0
- color: "#2196f3"
- height: 200
- grid_options:
- rows: null
- columns: 4
- card_mod:
- style: |-
- .states.flex {
- display: none;
- position: absolute;
- }
- .states.flex .state .state__value.ellipsis {
- font-size: 1.4em;
- align-self: center;
- }
- .graph .graph__container .graph__labels.--primary.flex {
- color: rgba(78, 255, 0,0.6);
- }
- .graph .graph__legend div:nth-child(1) {
- color: rgba(78, 255, 0,0.6);
- }
- .graph .graph__legend div:nth-child(2) {
- color: #AB83FB;
- }
- .states.flex > .state .state__value.ellipsis::before {
- content: "NAS";
- color: rgba(78, 255, 0,0.6);
- }
- ha-card {
- padding: 0px !important;
- margin-top: -5%;
- background: rgba(39, 41, 43, 0.5) !important;
- backdrop-filter: blur(20px) saturate(150%) !important;
- #-webkit-backdrop-filter: blur(20px) saturate(150%);
- border: none;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- }
- *{
- border-radius: 0 0 8px 8px !important;
- }
- grid_options:
- columns: 4
- rows: auto
- visibility:
- - condition: state
- entity: input_boolean.toggle_sections
- state: "on"
- - type: grid
- cards:
- - type: custom:navbar-card
- desktop:
- position: bottom
- show_labels: popup_only
- show_popup_label_backgrounds: true
- mobile:
- show_labels: false
- routes:
- - icon: mdi:menu
- tap_action:
- action: toggle-menu
- double_tap_action:
- action: call-service
- service: input_boolean.toggle
- target:
- entity_id: input_boolean.toggle_kiosk_mode
- - url: /lovelace/0
- icon: mdi:gitlab
- hold_action:
- action: call-service
- service: input_boolean.toggle
- service_data:
- entity_id: input_boolean.toggle_sections
- - url: /lovelace/3d-print
- icon: mdi:printer-3d
- - icon: mdi:home
- label: ""
- url: /lovelace/3
- - url: /profile/general
- icon: mdi:account-cog
- - icon: mdi:arrow-up-right
- tap_action:
- action: open-popup
- popup:
- - icon: mdi:cog
- url: /config/dashboard
- label: Settings
- - icon: mdi:devices
- url: /config/integrations/dashboard
- label: Integrations
- - icon: mdi:code-block-braces
- url: /config/automation/dashboard
- label: Automation
- - icon: mdi:hammer
- url: /developer-tools/yaml
- label: Dev Tools
- - icon: mdi:home-analytics
- url: /hacs/dashboard
- label: HACS
- - icon: mdi:console
- url: /dashboard-configuration/0
- label: Config
- - icon: mdi:power
- tap_action:
- action: call-service
- service: homeassistant.restart
- service_data: {}
- confirmation:
- text: Are you sure you want to restart Home Assistant?
- styles: |-
- .navbar-card {
- background: rgba(0,0,0,0.81);
- --navbar-primary-color: rgba(255,255,255,0.5);
- height: 75px;
- gap: 3px;
- }
- .navbar-card.desktop{
- border-radius: 20px;
- border: 0px solid grey;
- background: rgba(255, 255, 255, 0.1);
- backdrop-filter: blur(20px) saturate(150%);
- -webkit-backdrop-filter: blur(20px) saturate(150%);
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
- }
- .navbar.desktop.bottom {
- bottom: 50px;
- }
- .label {
- display: box !important;
- }
- .navbar-card.mobile {
- box-shadow: var(--navbar-box-shadow-desktop);
- bottom: 25px;
- left: 10%;
- border-radius: 25px;
- justify-content: center;
- background: rgba(255, 255, 255, 0.1);
- backdrop-filter: blur(20px) saturate(150%);
- -webkit-backdrop-filter: blur(20px) saturate(150%);
- width: 80% !important;
- }
- haptic:
- tap_action: true
- url: true
- icon: mdi:gitlab
- cards: []
- badges: []
- dense_section_placement: true
- background:
- opacity: 60
- alignment: center
- size: cover
- repeat: no-repeat
- attachment: fixed
- image:
- media_content_id: /local/backgrounds/art_lake.jpg
- subview: false
- header:
- layout: center
- badges_position: top
- badges_wrap: wrap
- top_margin: false
- theme: Graphite-bubble-v2
Add Comment
Please, Sign In to add comment