⚪ Bubble Card - A minimalist card collection for Home Assistant with a nice pop-up touch

This is my pop-up and I wanted to ask why the flipdown timer is frozen and not updating.
I assume it’s because of the vertical-stack wrapper (I’ve had this problem before, I solved it with stack-in-card) but now I need the vertical-stack for the pop-up.
I wanted to ask if anyone has a solution for this.

type: vertical-stack
cards:
  - type: custom:bubble-card
    card_type: pop-up
    hash: "#timer_ac_bedroom"
    name: טיימר של המזגן בחדר שינה
    icon: mdi:timer
    button_type: name
    background_update: true
    close_on_click: false
  - type: custom:mod-card
    card_mod:
      style: |
        ha-card {
          background: rgba(0,0,0,0.4) !important;
          backdrop-filter: blur(10px);
          border-radius: 22px;
          box-shadow: 0 4px 20px rgba(0,0,0,0.4);
          padding: 12px 10px;
        }
    card:
      type: custom:stack-in-card
      cards:
        - type: custom:stack-in-card
          cards:
            - type: custom:flipdown-timer-card
              entity: timer.ac_timer_bedroom
              name: זמן נותר
              show_hour: true
              show_title: true
              show_header: true
              theme: hass
              styles:
                rotor:
                  width: 50px
                  height: 70px
                button:
                  width: 0px
                  location: bottom
              show_error: false
              card_mod:
                style: |
                  :host {
                    direction: ltr !important;
                  }
            - type: custom:bubble-card
              card_type: button
              name: הפעל מחדש
              icon: mdi:restart
              entity: timer.ac_timer_bedroom
              tap_action:
                action: call-service
                service: timer.start
                data:
                  entity_id: timer.ac_timer_bedroom
              card_mod:
                style: |
                  ha-card {
                    margin-left: 25px;
                    margin-right: 25px;
                    margin-bottom: 8px;
                  }    

I also have a pop-up card with a sub-button a timer. Its only show the begin time and does not count back. Is this possible?
<
sub_button:
- entity: timer.spiegel_badkamer
show_attribute: true
name: uit over
show_name: true
show_state: true
show_last_changed: false
show_last_updated: false
attribute: remaining
state_display: >
{% set r = state_attr(‘timer.spiegel_badkamer’, ‘remaining’) %} {% if
r %}
{{ r }}
{% else %}

{% endif %}`
/>

You should check the indenting of your code.

Hey community,

I’ve some trouble with a border-radius of my bubble-card slider in a combined vertical-stack-card. I’ve drawn a white border to showcase my issue. The idea is to fill the slider while maintaining the border-radius to align the bottom border-radius, improving the visual consistency of the bubble-card slider within the vertical stack. The goal is to ensure the slider adheres to the surrounding border-radius, specifically at the bottom.

See screenshot.

Thanks in advance!

type: custom:vertical-stack-in-card
cards:
  - type: custom:bubble-card
    card_type: media-player
    entity: media_player.living_room_tv
    rows: "1.2"
    hide:
      play_pause_button: false
      volume_button: true
    sub_button:
      - entity: media_player.living_room_tv
        icon: mdi:play
        state_background: false
        tap_action:
          action: perform-action
          perform_action: media_player.media_play
          target:
            entity_id: media_player.living_room_tv
      - entity: media_player.living_room_tv
        icon: mdi:pause
        tap_action:
          action: perform-action
          perform_action: media_player.media_pause
          target:
            entity_id: media_player.living_room_tv
        state_background: false
    styles: |-
      ha-card { 
        --bubble-main-background-color: var(--card-background-color) !important;
      }
      .bubble-sub-button-icon {
        --mdc-icon-size: 22px !important;
        }
      .bubble-media-button-icon {
        --mdc-icon-size: 22px !important;
      }
    button_action:
      tap_action:
        action: more-info
    icon: mdi:television-off
  - type: custom:bubble-card
    card_type: button
    entity: media_player.denon_avr_s660h
    hide:
      power_button: true
      previous_button: true
      next_button: true
      mute_button: false
    show_state: false
    show_attribute: volume_level
    tap_to_slide: true
    sub_button:
      - entity: media_player.denon_avr_s660h
        select_attribute: sound_mode_list
        show_background: false
        show_arrow: true
        show_attribute: true
        attribute: sound_mode
        state_background: true
    show_icon: false
    scrolling_effect: false
    button_type: slider
    attribute: volume_level
    card_layout: large
    styles: |-
      .bubble-button-card-container {
        border-radius: 0px !important;
      }
      .bubble-button-card {
        border-radius: 0px !important;
      }
      .bubble-range-slider {
        border-radius: 0px !important;
      }
      .bubble-range-fill { 
        background: rgb(68, 115, 158) !important;
        border-radius: 0px !important;
        opacity: 1 !important;
        }
      .bubble-icon {
        --mdc-icon-size: 18px !important;
      }
      .bubble-sub-button {
        height: 48px !important;
        min-width: 48px !important;
        border-radius: 18px;
      }
      .bubble-sub-button-icon {
        --mdc-icon-size: 18px !important;
        }
    button_action:
      tap_action:
        action: more-info
    rows: "1.2"
card_mod:
  style: |
    ha-card {
      border: 1px solid #ccc;
      border-radius: 18px !important;
      overflow: visible !important;  /* Allow content to extend beyond */
      position: relative;
    }

Hi,

is there a way to change the space between two subbottons?

type: vertical-stack
cards:
  - type: custom:bubble-card
    card_type: pop-up
    hash: "#badezimmer"
    button_type: name
    name: Badezimmer
    icon: mdi:bathtub
    card_layout: normal
    styles: ".bubble-button-card-container {\n  background: none;\n  border: none;\n}\n.bubble-sub-button-icon {\n    --mdc-icon-size: 14px;\n}\n.bubble-sub-button {\n\tfont-size: 14px !important;\n    padding: 6px;\n}\n"
    bg_color: var(--secondary-background-color)
    bg_opacity: "50"
    auto_close: "20000"
    sub_button:
      - entity: sensor.bad_raumthermostat_temperature
        show_background: false
        show_state: true
      - entity: sensor.bad_raumthermostat_humidity
        show_background: false
        show_state: true

also i have for co2 the following styling but it is not working correctly:

.bubble-sub-button-1 {
  color: ${state > 1500 ? 'red' : state > 1000 ? 'orange' : 'green'} !important;
}

the current value is 1600ppm so it should be red:
image

Haven’t tried it but maybe with Card-Mod-Integration and the css-variable “Gap”.

Is there a way to change the sub button colors to a specific hex code? I tried a bunch of card-mod related things that didn’t work. Thanks!

Edit, found a module that allows me to customize the colors. Unfortunately it’s limited to only the first 6 sub buttons lol.

Try to use a Modules

Yeah sorry, just found that because I saw someone else mention it. Only problem now is that it appears to only be limited to 6 icons. I’m have around 9 sub buttons, all different hue scenes.

Edit, I’ll modify the module to see if I can add additional buttons. Thanks for the guidance.

Try to add more buttons in YAML Code


subbutton7:
subbutton8:
etc.

Hi,
I wanted to use a Cover bubble card to control a garage door. However, I need to disable the Open button when the door is open, and the Close button when the door is closed (because I only have one underlying action to open/close/stop the door - the equivalent of pushing a remote button).

I read above that this is not supported by the Cover bubble card (unlike the Mushroom Cover card, which automatically does it like the “More info” view of covers). So I am considering using a regular Text bubble card with sub-buttons, but I also cannot figure out how to disable sub-buttons based on the entity state (not even with styling since “disabled” is not settable via CSS)

Any solution?
Thanks.

I tried all your examples but not working for me two rows yes, and then 3 rows gets 1 row with 4 columns. Must be something in my CSS settings.

Hi

I have graet time with bubble card. I would like to have picture of personne entity in sub-button but I just can get it like that:

image

With this code:

${subButtonIcon[0].setAttribute("icon", '')}
.bubble-button-card-container { background-color: rgba(0,0,0,0) !important; }
.bubble-sub-button-1 {
   background-image: url(${hass.states['person.amandine'].attributes.entity_picture});
   background-size: cover;
}
${subButtonIcon[1].setAttribute("icon", '')}
.bubble-button-card-container { background-color: rgba(0,0,0,0) !important; }
.bubble-sub-button-2 {
   background-image: url(${hass.states['person.benjamin'].attributes.entity_picture});
   background-size: cover;
}

I would love to have the picture beside the state.

Thanks a lot :slight_smile:

Love the looks and all the possibilities. Awesome work!
Now, i think I found a small bug.
I want a bubblecard to show the remaining time of a timer.


However, it wil show the remaining time at the start, but won’t update / show live time. And yes, I’ve checked that’s its actually counting down.
I also tried it as a separate button, and (the way I want to use it) a subbutton for my thermostat.

Hopefully someone has a solution.

Small update, when I restart home assistant while the timer is running, it updates it once, but then stays at that time.

Was there any recent update, which affects Custom Styling? I’m using the example from the Github page GitHub - Clooos/Bubble-Card: Bubble Card is a minimalist card collection for Home Assistant with a nice pop-up touch. “Advanced example: Creating an horizontal row of sub-buttons (screenshot included)”

But since 1 or 2 days it’s displayed like this:

Nothing was changed on my YAML, i’m still using the styling from the example. Anybody else with this issue?

Bubble Card 3

v3.1.0-beta.1

Hi everyone!

I’m finally confident enough to release the first v3.1.0 beta, so here it is! And this new version is… well, once again… huge!

This update adds many new tools that make Bubble Card even more flexible and fun to use. You can now build cards that feel much more information rich, more personal, and easier to maintain.


One of the biggest changes is the new integration with Bubble Card Tools. This is a new custom integration for Home Assistant that takes care of the Bubble Card backend. Your modules are now stored in individual YAML files, which makes them easier to back up, share, and edit. This change was important to improve stability, reliability and make the whole system more future proof. The best part is that you only need to install it. All your existing modules will be migrated automatically. You can even do it later since this is not a breaking change, but it is highly recommended, especially if you want to install new modules.


Another big feature is the new “Sub-buttons only” card. It’s perfect if you want to create a simple card made entirely of quick actions or to display information. For example, you can create a menu with a sub-button for each of your rooms, and place it at the bottom of the screen as a fixed footer.


Sub-buttons also got a huge upgrade. You can now choose between three types: Default (button), Slider, and Select / Dropdown. For example, you can create a slider for brightness, another slider for temperature, and a dropdown to choose a scene, all in the same card. Sliders can always stay visible or appear only when tapped, which helps keep your layout clean.


The biggest update, and also my favorite one, brings powerful customization features that give you full control over your card layout. With sub button groups, you can organize related buttons into custom groups with flexible layouts. The new below placement options let you place sub buttons and buttons under the other elements, opening up entirely new design possibilities!


The new sub-button editor lets you copy and paste to duplicate sub-buttons or entire groups, saving time when creating similar setups. Individual size customization allows you to fine-tune the height and width of each sub-button, while icon placement options let you position icons exactly where you want them (top, bottom, left, or right). Together, these features work in harmony to give you the flexibility to create virtually any layout you can imagine!

The module editor has also been improved to be faster and easier to use. You can search your modules, sort them, and even set them as compatible with all card types so they stay future proof.

There is a lot more in this update, but these examples should give you a good idea of what is now possible. This release is another big step toward making Bubble Card a powerful and enjoyable tool for everyone.

Here’s the full changelog:




:light_bulb: New features and enhancements

  • Bubble Card Tools integration:
    Automatic migration from legacy module storage (entity-based) to file-based storage via Bubble Card Tools. Modules are now stored as YAML files for better management. Installing it is requested if you still want to install or create new modules, but this can be done later as this is not a breaking change.

  • New “Sub-buttons only” card:
    A dedicated card type for displaying only sub-buttons, perfect for creating custom button panels. Includes a footer mode option for fixed positioning at the bottom of the screen.

  • Sub-button types:
    You can now choose between three sub-button types: Default (button), Slider, or Select (dropdown). Each type offers specific functionality tailored to different use cases.

  • Slider sub-buttons:
    Sub-buttons can now be configured as sliders with various options including temperature control, color sliders (hue, saturation, white temperature), and brightness control. Sliders can be set to always show or appear on tap.

  • Sub-button groups:
    Create groups of sub-buttons with customizable layouts.

  • Sub-buttons/buttons below:
    Sub-buttons and specific buttons can now be displayed below with various new layout options.

  • Copy/paste sub-buttons and groups:
    Easily duplicate sub-buttons or entire groups using copy and paste functionality in the editor. Saves time when creating similar configurations.

  • Sub-button size customization:
    Customize the height and width of individual sub-buttons for better layout control.

  • Icon placement options:
    Control where icons appear within sub-buttons (top, bottom, left, right) for better visual organization.

  • Sub-button CSS classes by name:
    Sub-buttons can now be targeted with CSS classes based on their name (e.g., if your sub-button is named “My sub-button” the class to target will be .my-sub-button), making it easier to apply custom styles to specific sub-buttons.

  • Timer support:
    Timer entities are now fully supported with live countdown display. Finally!

  • Text scrolling for sub-buttons:
    Text scrolling effect is now available for sub-buttons, perfect when sub-button width is reduced.

  • Module editor improvements:

    • Search bar added to quickly find modules in “My Modules”
    • Better module ordering with multiple sort options (alphabetical, recent first, active first)
    • “All cards” option for module compatibility, allowing modules to work with future card types
  • Smooth media player cover transitions:
    Media player covers now fade smoothly between different cover images for a more polished experience.

  • Lock and error state colors:
    Lock entities now use red when unlocked and the main color when locked, providing clearer visual feedback. Same behavior applies to entities with “error” state. #1874

  • Calendar card event limit:
    You can now limit the number of events displayed in the calendar card using the “limit” parameter. This helps improve performance when calendars have many events. PR #1931 by @nomis52, thank you so much for this PR and all the others!




:check_mark: Bug fixes and improvements

  • All slider issues fixed:
    Fixed all known slider responsiveness and functionality issues. Sliders now work reliably across all supported entity types.

  • Mobile slider scrolling fix:
    On mobile devices, scrolling up or down by starting on a slider no longer blocks page scrolling, allowing natural page navigation.

  • Active sub-button background fix:
    Sub-buttons that are active (colored) on an active card no longer have their background color mixed with the card background, ensuring better visual separation.

  • Text scrolling loop fix:
    The text scrolling effect loop no longer restarts after each change (like when “last changed” updates), providing smoother scrolling behavior.

  • Pop-up header display:
    Fixed an issue where the pop-up header was not appearing in some cases.

  • Pop-up performance improvements (again):
    Pop-ups were slower on low-end devices in recent releases, they are now faster than ever (even with blured backdrop!).

  • Pop-up content loading:
    Fixed issues where pop-up contents (gauge card, map card, etc.) weren’t loading correctly in some cases.

  • Pop-up state management:
    Improved pop-up state tracking with active popups set to prevent conflicts and ensure proper cleanup.

  • Live style updates in pop-up editor:
    When editing a module in a pop-up card, styles are now updated in real-time as you make changes.

  • Module editor error clearing:
    Fixed an issue where errors weren’t clearing when creating or editing a module.

  • Sub-button editor restructure:
    The sub-button editor has been completely restructured with a new sectioned approach (Main/Bottom) and better organization. Old configurations are automatically migrated.

  • Calendar card “days” option:
    Added “days” option to calendar card editor (was missing in previous version).

  • Custom icon pack support:
    Custom icon packs like hass-hue-icons should now work correctly with Bubble Card.

  • Improved color management:
    Better overall color handling with more vivid colors, especially for sliders and RGB light sub-buttons. #692

  • Hold action improvements:
    Hold actions now include a slight dead zone to prevent accidental triggers from minor finger movement. #1781

  • Module registry refactoring:
    Improved module loading system with better caching and performance. Module styles are now preloaded more efficiently.

  • Performance optimizations:

    • CSS variable resolution caching for faster style processing
    • Optimized pop-up opening
    • Better memory management for timer intervals and scrolling effects
  • Various performance optimizations:
    Multiple optimizations for better performance and memory management throughout the card, especially noticeable on lower-end devices.




How to test this pre-release?

The easiest way is to click on the button below, or go to HACS, search for Bubble Card, and click on it. Then, click the three dots icon in the top-right corner and select “Redownload”. You’ll be able to choose the beta version under “Need a different version?”. You can then change back to your previous version if needed.

Open Bubble Card on Home Assistant Community Store (HACS).




:information_source: Bubble Card news


I’ve been wanting to start my own YouTube channel for a while, focusing on tutorials around Home Assistant and Bubble Card. There are three videos so far, an introduction explaining the project, a first tutorial on how to create your first pop-up and a video about the new features in Bubble Card 3. I really hope you will enjoy them. Don’t hesitate to subscribe to help give my channel more visibility. Thank you in advance!

YouTube

The next video should cover the new global variables, as well as custom styles, templates and modules, since I’ve noticed more and more questions on these topics.


Over the past year, I’ve been working almost everyday on Bubble Card to make it the best it can be, and I still don’t believe how much it have grown in popularity. Watching the community getting this big and seeing so many people using my work has been incredibly rewarding.

I have another announcement to you all, I decided to create a Patreon as a way to offer something more for those who want to support me. On my Patreon, I share advanced modules, custom styles, and templates. For example, I’ve added this module that lets you fully customize the labels, icons, and icon colors of dropdown items, while also defining actions or adding navigation to pop-ups or dashboard pages. It works with both the main select card and sub-buttons in supported cards, making it perfect for quick controls, a vacuum room selector, or even a light color picker.

If you like my project and want to support its development, subscribing to my Patreon is probably the best way to help me keep the project going.

Also, let me know if you have any suggestions or feedback on this. Trying to find a way to monetize my work was not something I ever imagined doing, but I really hope you see it as a way to keep improving the project, and not as a negative step.

Patreon Clooos

Thank you so much for being part of this amazing community, your support will always makes a huge difference! :heart:


I want to highlight that on the GitHub page, in the Discussions section, you can share and discover some amazing YAML examples from the community. Go check it out! Some of the creations are absolutely incredible!

Community creations


And if you are interested I’ve opened a Subreddit for Bubble Card where I post my progress on the project. Here it is:

Reddit Page

:clinking_beer_mugs:

5 Likes

Hello. I’m using the Calendar card type. How can I remove/delete the “All day” tags?

type: custom:bubble-card
card_type: calendar
Спойлер

Bubble Card 3

v3.1.0-beta.2

If you missed the previous beta releases, please check this changelog to discover all the new features and fixes.


Hi again!

First, thank you to everyone who reported issues and helped refine the v3.1.0-beta.1 update! Everything looks great so far, even with the few issues you found, and this gives me confidence that the final version will be ready sooner than I expected! :partying_face:

This beta is smaller but brings important fixes and a better experience, especially for sub-buttons and modules!

Here’s the changelog:




:check_mark: Bug fixes and improvements

  • Inline layout position fixes for bottom sub-buttons:
    The position system has been improved for inline layouts. Placing two column groups next to each other, aligned to the left or right, now works as expected.

  • Sub-buttons creation issue:
    Some users were unable to add sub-buttons at all in some situations. This should now work correctly. #1939

  • Expandable panels inside modules:
    When opening an expandable panel inside a module, the main expandable was instantly closing. This behavior is now fixed.

  • Deleted modules reappearing:
    Some modules that were deleted were still coming back in some cases. This is now fixed.

  • Missing “Module” section in Sub-buttons only card:
    The “Module” section was missing in the Sub-buttons only card. It is now added like in the other cards.

  • Sub-buttons text displayed on two lines:
    In some cases, the sub-button name or state was displayed on two lines when the text scrolling effect was disabled. This is now fixed.

  • Correct icon state for lock entities:
    Icons for lock entities now change correctly based on their state.

  • Memory leak fix in sub-buttons:
    A memory leak inside the sub-buttons system has been fixed for better performance.

  • Unnecessary text scrolling:
    The text scrolling effect was still running in cases where it should have been disabled. This is now fixed.




How to test this pre-release?

The easiest way is to click on the button below, or go to HACS, search for Bubble Card, and click on it. Then, click the three dots icon in the top-right corner and select “Redownload”. You’ll be able to choose the beta version under “Need a different version?”. You can then change back to your previous version if needed.

Open Bubble Card on Home Assistant Community Store (HACS).




I can’t wait for your feedback on this new release!

Enjoy! :clinking_beer_mugs:

3 Likes
card_mod:
  style: |
    .bubble-event-time {
      display: none !important;
    }

Bubble Card 3

v3.1.0-beta.4

If you missed the initial beta releases, please check this changelog to discover all the new features and fixes.


Hi everyone!

This update is (thankfully) smaller. Only a few minor bugs were reported, but one of them was very important. I finally fixed the issue that prevented some users from adding sub-buttons!

There is also a minor breaking change if you used the new CSS class based on a sub-button name. More details are in the list below.

I feel like we are getting very close to the final release. Your feedback will help me confirm that everything now works as expected, so please let me know if you find anything new! :crossed_fingers:

Here is the changelog:




:check_mark: Bug fixes and improvements

  • Simplified CSS class for sub-buttons:
    The CSS class based on a sub-button name has changed from .bubble-sub-button-name-my-button to .my-button for simplicity. This is a breaking change if you used the previous class name in your custom styles.

  • Sub-buttons creation finally fixed for all users:
    Adding sub-buttons now works correctly in every situation. This issue did not affect all users, but it is now fully fixed. #1939

  • Media player text when idle:
    The media player name and state are no longer replaced by the title and artist when the entity is idle (just like before v3.1.0). #1950

  • Card type field filter reset:
    In the editor, typing a card type manually could reset the filter. This is now fixed. #1951

  • Inline placement gap in Firefox:
    A small gap remained when using inline placement with bottom row groups in Firefox. This is now fixed. #1949

  • Bottom sub-buttons in normal layout:
    Adding bottom sub-buttons to a card with a normal layout will show a warning to explain that the card will be converted to the large layout, since bottom sub-buttons are not supported by the normal layout.




How to test this pre-release?

The easiest way is to click on the button below, or go to HACS, search for Bubble Card, and click on it. Then, click the three dots icon in the top-right corner and select “Redownload”. You’ll be able to choose the beta version under “Need a different version?”. You can then change back to your previous version if needed.

Open Bubble Card on Home Assistant Community Store (HACS).




Thank you again to everyone who shared their feedback!

Again… enjoy! :clinking_beer_mugs:

1 Like