Skip to content

Instantly share code, notes, and snippets.

@iMrLopez
Last active October 24, 2024 02:07
Show Gist options
  • Save iMrLopez/be11b15ef5c11d617fe859a32e2b08d1 to your computer and use it in GitHub Desktop.
Save iMrLopez/be11b15ef5c11d617fe859a32e2b08d1 to your computer and use it in GitHub Desktop.
Home assistant mushroom cards animations
<h1 id="mushroom-cards-animations">Mushroom Cards Animations (updated Oct 2024)</h1>
<img src="https://community-assets.home-assistant.io/original/4X/2/4/7/247cb76d8c3fe0e33d061109ddfd7fc7337ee132.gif" alt="Mushroom Chip Animated Scene">
<p> All these animations were shared by <a href="https://community.home-assistant.io/u/rhysb">rhysb</a> on the home assistant community, i thought of compiling them down on a single gist to give more visibility to this.</p>
<p> I highly encourage you to look and like the original post <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily-part-1/388590/3240">click here</a></p>
<h1 id="requirements">Requirements</h1>
<p>All these CSS animations require <a href="https://github.com/thomasloven/lovelace-card-mod">Thomas Lovén’s card_mod</a>. This can be installed via HACS.</p>
<div class="cooked">
<h2>
<a name="built-in-mushroom-animations-1"
class="anchor"
href="#built-in-mushroom-animations-1"></a>Built-in Mushroom Animations
</h2>
<p>There are two built-in animations for Mushroom cards that can be used without specifying any <code>@keyframes</code>. These are <code>spin</code>, which is used for the rotating fan, and <code>pulse</code>, which fades in and out.</p>
<h4>
<a name="built-in-spin-animation-changed-2"
class="anchor"
href="#built-in-spin-animation-changed-2"></a>Built-in Spin Animation (changed):
</h4>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="266"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/3/f/d3f53da8f48271dc66c0df4794aa6326d55694d3.gif"
alt="Mushroom Built-in Spin"
data-base62-sha1="uf4aGDAEQZ0hcVCLxsTfq8qQBhx"
width="266"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 266 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details open="">
<summary>
Spin Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Spin</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:fan</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">teal</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
animation: spin 1s linear infinite;
}
</span></code></pre>
</details>
<h4>
<a name="built-in-pulse-animation-changed-3"
class="anchor"
href="#built-in-pulse-animation-changed-3"></a>Built-in Pulse Animation (changed):
</h4>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="266"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/9/8/2/982a92229da3e076896f8018e99e3b8f3e0fe1a1.gif"
alt="Mushroom Built-in Pulse"
data-base62-sha1="lI7MyhWDiIhvdY7UIpS7nuwXmM1"
width="266"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 266 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Pulse Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:pulse</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Pulse</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
animation: pulse 2s ease-in-out infinite;
}
</span></code></pre>
</details>
<h2>
<a name="animated-mushroom-cards-4"
class="anchor"
href="#animated-mushroom-cards-4"></a>Animated Mushroom Cards
</h2>
<h4>
<a name="mushroom-media-player-card-unchanged-5"
class="anchor"
href="#mushroom-media-player-card-unchanged-5"></a>Mushroom Media Player Card (unchanged):
</h4>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="131"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/c/e/f/cefb0b16145afb6b47a6a82dfd7cc6ea777fb2b5.gif"
alt="Mushroom Media Player Card with Animated Icons"
data-base62-sha1="tx2dr35k0uoXoUjHpd40yzcSWj3"
width="517"
height="131"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 131;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Media Player Animated Icons
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-bash" data-highlighted="yes"><span class="hljs-built_in">type</span>: custom:mushroom-media-player-card
entity: media_player.currently_playing
icon: mdi:play
use_media_info: <span class="hljs-literal">true</span>
use_media_artwork: <span class="hljs-literal">false</span>
show_volume_level: <span class="hljs-literal">false</span>
media_controls:
- play_pause_stop
- previous
- next
volume_controls:
- volume_buttons
- volume_set
fill_container: <span class="hljs-literal">false</span>
card_mod:
style: |
mushroom-shape-icon {
display: flex;
{% <span class="hljs-built_in">set</span> media_type = state_attr(config.entity, <span class="hljs-string">'media_content_type'</span>) %}
{% <span class="hljs-keyword">if</span> media_type == <span class="hljs-string">'tvshow'</span> %}
--card-mod-icon: mdi:television-classic;
animation: flicker 1s linear infinite alternate;
{% <span class="hljs-keyword">elif</span> media_type == <span class="hljs-string">'movie'</span> %}
--card-mod-icon: mdi:movie-roll;
animation: spin 2s linear infinite reverse;
{% <span class="hljs-keyword">elif</span> media_type == <span class="hljs-string">'music'</span> %}
--card-mod-icon: mdi:music;
animation: beat 1.3s ease-out infinite both;
{% <span class="hljs-keyword">elif</span> media_type == <span class="hljs-string">'playlist'</span> %}
--card-mod-icon: mdi:music;
animation: beat 1.3s ease-out infinite both;
{% <span class="hljs-keyword">else</span> %}
--card-mod-icon: mdi:play;
{% endif %}
}
@keyframes flicker {
0%, 31.98%, 32.98%, 34.98%, 36.98%, 39.98%, 67.98%, 68.98%, 95.98%, 96.98%, 97.98%, 98.98%, 100% { --icon-color: rgba(var(--rgb-indigo), 1); }
32%, 33%, 35%, 36%, 37%, 40%, 68%, 69%, 96%, 97%, 98%, 99% { --icon-color: rgba(var(--rgb-indigo), 0.6); }
}
@keyframes beat {
0%, 60% { --icon-symbol-size: 21px; }
5%, 17%, 57% { --icon-symbol-size: 22px; }
10%, 20%, 51% { --icon-symbol-size: 23px; }
25%, 45% { --icon-symbol-size: 24px; }
30%, 39% { --icon-symbol-size: 25px; }
33% { --icon-symbol-size: 26px; }
}
ha-card {
{% <span class="hljs-keyword">if</span> not is_state(config.entity, <span class="hljs-string">'off'</span>) %}
background: rgba(var(--rgb-card-background-color), 0.6) url( <span class="hljs-string">'{{ state_attr(config.entity, "entity_picture") }}'</span> ) center no-repeat;
background-size: cover;
background-blend-mode: overlay;
{% endif %}
}
</code></pre>
</details>
<h4>
<a name="mushroom-climate-card-unchanged-6"
class="anchor"
href="#mushroom-climate-card-unchanged-6"></a>Mushroom Climate Card (unchanged):
</h4>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="139"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/7/f/47f98442436a24afa951769d19a2b0e13d920bed.gif"
alt="Mushroom Climate Card with Animated Icons"
data-base62-sha1="agIudicw6fba1b2pXWAWiXxlEIt"
width="517"
height="139"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 139;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<p>Climate Animated Icons</p>
<details>
<summary>
Climate Animated Icons
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-php" data-highlighted="yes">type: custom:mushroom-climate-card
entity: climate.office_air_conditioner
hvac_modes:
- heat_cool
- heat
- cool
- fan_only
- dry
show_temperature_control: <span class="hljs-literal">true</span>
collapsible_controls: <span class="hljs-literal">false</span>
name: Air Conditioner
card_mod:
style: |
mushroom-shape-icon {
{% <span class="hljs-keyword">if</span> <span class="hljs-title function_ invoke__">is_state</span>(config.entity, <span class="hljs-string">'heat_cool'</span>) %}
--card-mod-icon: mdi:autorenew;
animation: spin <span class="hljs-number">3</span>s ease-in-out infinite alternate;
{% elif <span class="hljs-title function_ invoke__">is_state</span>(config.entity, <span class="hljs-string">'heat'</span>) %}
--card-mod-icon: mdi:fire;
animation: heat <span class="hljs-number">2</span>s infinite;
{% elif <span class="hljs-title function_ invoke__">is_state</span>(config.entity, <span class="hljs-string">'cool'</span>) %}
--card-mod-icon: mdi:snowflake;
animation: cool <span class="hljs-number">6</span>s ease-in-out infinite;
{% elif <span class="hljs-title function_ invoke__">is_state</span>(config.entity, <span class="hljs-string">'dry'</span>) %}
--card-mod-icon: mdi:water-percent;
animation: dry <span class="hljs-number">1.5</span>s linear infinite;
{% elif <span class="hljs-title function_ invoke__">is_state</span>(config.entity, <span class="hljs-string">'fan_only'</span>) %}
--card-mod-icon: mdi:fan;
animation: spin <span class="hljs-number">1</span>s linear infinite;
{% <span class="hljs-keyword">else</span> %}
--card-mod-icon: mdi:air-conditioner;
{% <span class="hljs-keyword">endif</span> %}
display: flex;
}
@keyframes cool {
<span class="hljs-number">0</span>%, <span class="hljs-number">100</span>% { transform: <span class="hljs-title function_ invoke__">rotate</span>(<span class="hljs-number">25</span>deg); }
<span class="hljs-number">25</span>% { transform: <span class="hljs-title function_ invoke__">rotate</span>(-<span class="hljs-number">25</span>deg); }
<span class="hljs-number">50</span>% { transform: <span class="hljs-title function_ invoke__">rotate</span>(<span class="hljs-number">50</span>deg); }
<span class="hljs-number">75</span>% { transform: <span class="hljs-title function_ invoke__">rotate</span>(-<span class="hljs-number">50</span>deg); }
}
@keyframes heat {
<span class="hljs-number">0</span>%, <span class="hljs-number">100</span>% { --icon-color: <span class="hljs-title function_ invoke__">rgba</span>(<span class="hljs-keyword">var</span>(--rgb-red), <span class="hljs-number">1</span>); }
<span class="hljs-number">10</span>%, <span class="hljs-number">90</span>% { --icon-color: <span class="hljs-title function_ invoke__">rgba</span>(<span class="hljs-keyword">var</span>(--rgb-red), <span class="hljs-number">0.8</span>); }
<span class="hljs-number">20</span>%, <span class="hljs-number">80</span>% { --icon-color: <span class="hljs-title function_ invoke__">rgba</span>(<span class="hljs-keyword">var</span>(--rgb-red), <span class="hljs-number">0.6</span>); }
<span class="hljs-number">30</span>%, <span class="hljs-number">70</span>% { --icon-color: <span class="hljs-title function_ invoke__">rgba</span>(<span class="hljs-keyword">var</span>(--rgb-red), <span class="hljs-number">0.4</span>); }
<span class="hljs-number">40</span>%, <span class="hljs-number">60</span>% { --icon-color: <span class="hljs-title function_ invoke__">rgba</span>(<span class="hljs-keyword">var</span>(--rgb-red), <span class="hljs-number">0.2</span>); }
<span class="hljs-number">50</span>% { --icon-color: <span class="hljs-title function_ invoke__">rgba</span>(<span class="hljs-keyword">var</span>(--rgb-red), <span class="hljs-number">0</span>); }
}
@keyframes dry {
<span class="hljs-number">0</span>%, <span class="hljs-number">100</span>% { --icon-symbol-size: <span class="hljs-number">21</span>px; }
<span class="hljs-number">10</span>%, <span class="hljs-number">90</span>% { --icon-symbol-size: <span class="hljs-number">22</span>px; }
<span class="hljs-number">20</span>%, <span class="hljs-number">80</span>% { --icon-symbol-size: <span class="hljs-number">23</span>px; }
<span class="hljs-number">30</span>%, <span class="hljs-number">70</span>% { --icon-symbol-size: <span class="hljs-number">24</span>px; }
<span class="hljs-number">40</span>%, <span class="hljs-number">60</span>% { --icon-symbol-size: <span class="hljs-number">25</span>px; }
<span class="hljs-number">50</span>% { --icon-symbol-size: <span class="hljs-number">26</span>px; }
}
</code></pre>
</details>
<h2>
<a name="mushroom-card-icon-animations-7"
class="anchor"
href="#mushroom-card-icon-animations-7"></a>Mushroom Card Icon Animations
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="65"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/0/9/609281341829cf92afb3d0cf3be913f95e9ccef0.gif"
alt="Mushroom Boil"
data-base62-sha1="dMjILvNATdrsjGH3PrhIsWQeqJi"
width="263"
height="65"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 65;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Boil Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-template-card
primary: Boil
icon: mdi:kettle-steam
icon_color: red
card_mod:
style: |
ha-state-icon {
animation: boil 500ms infinite;
}
@keyframes boil {
0%, 100% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
10% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); clip-path: polygon(0 0, 66% 10%, 67% 30%, 88% 52%, 100% 100%, 0 100%); }
20% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
30% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
40% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
50% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
60% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
70% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
80% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
90% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/f/3/af37c70fc4773093a6b2c882a422e49875321b4c.gif"
alt="Mushroom Fire"
data-base62-sha1="p033JBIfLXVD3VJsfMne2u2iaZe"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Fire Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-template-card
primary: Fire
icon: mdi:fire
icon_color: red
card_mod:
style: |
ha-state-icon {
animation: fire 1.5s infinite;
transform-origin: 50% 85%;
}
@keyframes fire {
0% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
5% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
10% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
15% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
20% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
25% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
30% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
35% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
40% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
45% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
50% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
55% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
60% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
65% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
70% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
75% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
80% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
85% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
90% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
95% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-red)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
100% { transform: rotate(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">deg) scaleY(</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">9</span>, <span class="hljs-number">12</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">); color: rgb(var(--rgb-deep-orange)); opacity: </span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">7</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span>}}</span><span class="language-xml">; }
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/c/4/dc479d6793e2162f9d96335f8a680779e573ed5e.gif"
alt="Mushroom Shower"
data-base62-sha1="vqGtC1aLiaGuivSmOFLjStzxenc"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Shower Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:shower-head
icon_color: light-blue
primary: Shower
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: clip <span class="hljs-number">0.7s</span> ease-out infinite;
}
<span class="hljs-keyword">@keyframes</span> clip {
<span class="hljs-number">0%</span> {<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">45%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/5/d/55da54c7f686cf09d7b97f1e9938007ae6657af5.gif"
alt="Mushroom Sprinkler"
data-base62-sha1="cfum9KFcgOg7ntF3QiPE4ldDLtX"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Sprinkler Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:sprinkler
icon_color: cyan
primary: Sprinkler
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: sprinkle <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">29%</span> <span class="hljs-number">88%</span>;
}
<span class="hljs-keyword">@keyframes</span> sprinkle {
<span class="hljs-number">0%</span>, <span class="hljs-number">15%</span>, <span class="hljs-number">30%</span>, <span class="hljs-number">45%</span>, <span class="hljs-number">60%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">55%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">1%</span>, <span class="hljs-number">16%</span>, <span class="hljs-number">31%</span>, <span class="hljs-number">46%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">10deg</span>); }
<span class="hljs-number">6%</span>, <span class="hljs-number">21%</span>, <span class="hljs-number">36%</span>, <span class="hljs-number">51%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">2deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/e/f/6ef9912646d6d1aa28954bc7789e398189246ebb.gif"
alt="Mushroom Washing Machine"
data-base62-sha1="fPJdqslpnrOzsIe5UjFEibCrADh"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Washing Machine Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:washing-machine
icon_color: amber
primary: Washing Machine
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: shake <span class="hljs-number">400ms</span> ease-in-out infinite, drum <span class="hljs-number">2s</span> ease infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">110%</span>;
}
<span class="hljs-keyword">@keyframes</span> shake {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.4px</span>, -<span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.4px</span>, <span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">4deg</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.4px</span>, <span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.4px</span>, -<span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">4deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> drum {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">68%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">41%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">65%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/f/5/7f51aaf77ba9a82347f189c719b4ad50faef7e0e.gif"
alt="Mushroom Dishwasher"
data-base62-sha1="iajBTMfLKmEn9GpaX3eOwL26M9g"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Dishwasher Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:dishwasher
icon_color: blue
primary: Dishwasher
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: bounce <span class="hljs-number">1.5s</span> ease-in-out infinite, wash <span class="hljs-number">1s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>;
}
<span class="hljs-keyword">@keyframes</span> bounce {
<span class="hljs-number">0%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span>, <span class="hljs-number">100%</span> {<span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">1.2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">5deg</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">1.1px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> wash {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">78%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/a/d/3adf85bdedd27c0458000c731206e5f1ec23a64d.gif"
alt="Mushroom Dryer"
data-base62-sha1="8oOArONNVSG3IFKni86lwMQyO7z"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Dryer Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:tumble-dryer
icon_color: teal
primary: Dryer
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: shake <span class="hljs-number">400ms</span> ease-in-out infinite, drum <span class="hljs-number">1s</span> infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">65%</span>;
}
<span class="hljs-keyword">@keyframes</span> shake {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">4deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> drum {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">78%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/c/8/3/c83ffd45d459d68021647bd3221093ddd04b9bf8.gif"
alt="Mushroom Ding"
data-base62-sha1="szuAConcyShV4laGA0I0NviA12o"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Ding Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Ding
icon: mdi:bell-ring
icon_color: indigo
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: ring <span class="hljs-number">4s</span> linear infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">15%</span>;
}
<span class="hljs-keyword">@keyframes</span> ring {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">2%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">30deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">6%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">28deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">34deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">14%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">32deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">18%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">30deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">22%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">28deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">26%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">26deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">24deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">34%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">22deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">38%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">20deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">42%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">18deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">46%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">16deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">14deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">54%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">12deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">58%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">10deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">62%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">8deg</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">66%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">6deg</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
<span class="hljs-number">74%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">2deg</span>); }
<span class="hljs-number">78%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">1deg</span>); }
<span class="hljs-number">82%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">1deg</span>); }
<span class="hljs-number">86%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">5%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/6/4/564de8475f9dbfed0343f4613b64f15bd1d3aefc.gif"
alt="Mushroom Alarm"
data-base62-sha1="cjtYE3zQ2sxq5WRc4Q76acHWU9e"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Alarm Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:alarm
icon_color: red
primary: Alarm
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: alarm <span class="hljs-number">0.8s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> alarm {
<span class="hljs-number">0%</span>, <span class="hljs-number">80%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">27deg</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">21deg</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">9deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">1.2px</span>) }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="262"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/7/2/e72d711fba3217a43e512fdd62e85c6444a937d4.gif"
alt="Mushroom Rocket Man"
data-base62-sha1="wZ5EzNG5bhsMkVoTQMyxqZObTV2"
width="262"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 262 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Rocket Man Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:rocket-launch
icon_color: deep-orange
primary: Rocket Man
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: thrust <span class="hljs-number">100ms</span> infinite, motion <span class="hljs-number">3s</span> ease-in-out infinite;
}
<span class="hljs-keyword">@keyframes</span> thrust {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">47%</span>, <span class="hljs-number">22%</span> <span class="hljs-number">57%</span>, <span class="hljs-number">28%</span> <span class="hljs-number">63%</span>, <span class="hljs-number">0</span> <span class="hljs-number">91%</span>, <span class="hljs-number">11%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">37%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">45%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">47%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">66%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">92%</span>, <span class="hljs-number">28%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">9%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
}
<span class="hljs-keyword">@keyframes</span> motion {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3px</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">3px</span>) <span class="hljs-built_in">translateX</span>(<span class="hljs-number">2px</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/d/3/3d31fcbfb8df0ff02adc61584753f12a06a366a3.gif"
alt="Mushroom Fountain"
data-base62-sha1="8JmdPbSeAXmwfW1hcNTqV8JikQX"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Fountain Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Fountain
icon: mdi:fountain
icon_color: light-blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: fountain <span class="hljs-number">1.5s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> fountain {
<span class="hljs-number">0%</span>, <span class="hljs-number">100</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">47%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">47%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">37%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">21%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">44%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">20%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">0</span> <span class="hljs-number">36%</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">22%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">1%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">0</span>, <span class="hljs-number">31%</span> <span class="hljs-number">21%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">0</span> <span class="hljs-number">36%</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">28%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">23%</span> <span class="hljs-number">28%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">0</span> <span class="hljs-number">36%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/2/7/72721407d022e7334438248a7e6d34f198884205.gif"
alt="Mushroom Motion"
data-base62-sha1="gkqQh2oEkKuX8pvrqhK4X015bSt"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Motion Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:motion-sensor
icon_color: blue
primary: Motion
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: motion <span class="hljs-number">2s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> motion {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attr">--shape-color</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-blue), <span class="hljs-number">0.3</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attr">--shape-color</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-blue), <span class="hljs-number">0.2</span>); }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: clip <span class="hljs-number">2s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> clip {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">55%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/9/4/494ea70ef260da14132f4e2bd3420cd5253d3c40.gif"
alt="Mushroom Cog"
data-base62-sha1="asvmNrnB7tOdA8XHGJPNEa094hq"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Cog Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Cog</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:cog</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">grey</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
animation: spin 1.5s steps(5) infinite;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/9/5/4/954a4c2549cff5fb2fd2c347298edc2c73b4c63a.gif"
alt="Mushroom Signal"
data-base62-sha1="liGk7TXOzKCxxLSstPoW9CPO3JE"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Signal Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:wifi
icon_color: green
primary: Signal
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: ping <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> ping {
<span class="hljs-number">60%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-green), <span class="hljs-number">0.7</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">15px</span> transparent; }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: clip <span class="hljs-number">2s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite;
}
<span class="hljs-keyword">@keyframes</span> clip {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">0%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">85%</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">30%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">85%</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">55%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">85%</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">80%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">85%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/c/2/7/c27716587392841cf1aa1950a6bdd4811f9ba3dc.gif"
alt="Mushroom Alert"
data-base62-sha1="rKjLTSXMbJWFM8i0SXwl0ZmSk8c"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Alert Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:alarm-light
icon_color: red
primary: Alert
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: alert-shape <span class="hljs-number">0.8s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> alert-shape {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attr">--shape-color</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-orange), <span class="hljs-number">0.2</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attr">--shape-color</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.2</span>); }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: alert <span class="hljs-number">0.8s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> alert {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">18%</span>, <span class="hljs-number">65%</span> <span class="hljs-number">20%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/e/4/2e4e2805526f7cb0e910f74986967c79d86d4132.gif"
alt="Mushroom Console"
data-base62-sha1="6BDpAPHJcKSt9HeA74mNC4pSmae"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Console Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:console-line
icon_color: grey
primary: Console
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: console <span class="hljs-number">1s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> console {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">24%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/8/d/58dc5463c94e13bfa2298c7e1f0f0abb48dc1f85.gif"
alt="Mushroom Keypad"
data-base62-sha1="cG64qOEszJX2bwx7YqeYJ9OMdzn"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Keypad Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:dialpad
icon_color: blue
primary: Keypad
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: ping <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> ping {
<span class="hljs-number">55%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">1px</span> <span class="hljs-number">0px</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-blue), <span class="hljs-number">0.3</span>) inset; }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">15px</span> transparent inset; }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: pin <span class="hljs-number">4s</span> infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>;
}
<span class="hljs-keyword">@keyframes</span> pin {
<span class="hljs-number">0%</span>, <span class="hljs-number">15%</span>, <span class="hljs-number">25%</span>, <span class="hljs-number">35%</span>, <span class="hljs-number">45%</span>, <span class="hljs-number">55%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">1%</span> <span class="hljs-number">23%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">23%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">62%</span> <span class="hljs-number">0</span>, <span class="hljs-number">61%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">25%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">37%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">49%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">26%</span>, <span class="hljs-number">0</span> <span class="hljs-number">25%</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">51%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">37%</span> <span class="hljs-number">51%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/d/6/2d6cd1fa8c55c55393e2883fa47089a3df073678.gif"
alt="Mushroom Eye"
data-base62-sha1="6tQDd5gvUaUXZluO8aYMETBmwKk"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Eye Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:eye
icon_color: blue
primary: Eye
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: wink <span class="hljs-number">4s</span> ease-in-out infinite;
}
<span class="hljs-keyword">@keyframes</span> wink {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">19%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.05</span>, <span class="hljs-number">0.6</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">49%</span>, <span class="hljs-number">86%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">70%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">71%</span>, <span class="hljs-number">43%</span> <span class="hljs-number">71%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">21%</span> <span class="hljs-number">57%</span>, <span class="hljs-number">13%</span> <span class="hljs-number">49%</span>, <span class="hljs-number">0</span> <span class="hljs-number">49%</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">28%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">0.95</span>, <span class="hljs-number">1.05</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/9/0/49002210f9fef06f48f37e71e7f7f21ac9c99ace.gif"
alt="Mushroom Camera 1"
data-base62-sha1="apN8HSvF8m0ltprVMWDX8FxVgAK"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Camera #1 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:cctv
icon_color: deep-purple
primary: <span class="hljs-string">'Camera #1'</span>
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: flip <span class="hljs-number">8s</span> ease-in-out infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> flip {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/9/0/790b0fa0ebcb0eb80dc77c7a2d5b9caed6304d74.gif"
alt="Mushroom Camera 2"
data-base62-sha1="hgNtgNJW96kfd4L550gMGXMxgl6"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Camera #2 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: <span class="hljs-string">'Camera #2'</span>
icon: mdi:cctv
icon_color: deep-purple
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: scan <span class="hljs-number">5s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">90%</span> <span class="hljs-number">80%</span>
}
<span class="hljs-keyword">@keyframes</span> <span class="hljs-attribute">scan</span> {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">20deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/3/0/d30cd69a0df54b0e3f5ec88eef18d128378f0fac.gif"
alt="Mushroom Battery 1"
data-base62-sha1="u72fDlfy73kmC0JlUygR3XwdMuM"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Battery #1 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:battery
icon_color: green
primary: <span class="hljs-string">'Battery #1'</span>
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: charge <span class="hljs-number">3s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> charge {
<span class="hljs-number">0%</span>, <span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">84%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">84%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/d/b/7db0df10bcde17b07f8798f3e213fdee6f34fd6d.gif"
alt="Mushroom Battery 2"
data-base62-sha1="hVUCZAcpTnlJGWT5Rhyb0vipUHH"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Battery #2 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:battery-high
icon_color: green
primary: <span class="hljs-string">'Battery #2'</span>
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: charge <span class="hljs-number">3s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite;
}
<span class="hljs-keyword">@keyframes</span> charge {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">84%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">84%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/8/4/a/84affb194f31b6f5b85636ddea3ead4728df5bf2.gif"
alt="Mushroom Wrench"
data-base62-sha1="iVO3VucfQnTVxpj5SL72E4MYys2"
width="263"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Wrench Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Wrench
icon: mdi:wrench
icon_color: grey
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: tighten <span class="hljs-number">1.5s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">31%</span> <span class="hljs-number">31%</span>
}
<span class="hljs-keyword">@keyframes</span> tighten {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">20deg</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">15deg</span>); }
}
</code></pre>
</details>
<h2>
<a name="mushroom-title-animations-all-unchanged-1"
class="anchor"
href="#mushroom-title-animations-all-unchanged-1"></a>Mushroom Title Animations
</h2>
<p>These ones run once to transition in the Mushroom Title.</p>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="99"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/4/c/e4cab18eeed2d07ca217d2d2090dd43cdd804a4f.gif"
alt="Mushroom Title Typewriter"
data-base62-sha1="wDZ8crGYgLwQC9fADWg86scJ9IH"
width="517"
height="99"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 99;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Typewriter Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom.
subtitle: Typewriter
card_mod:
style:
mushroom-title-card$: |
h1 {
<span class="hljs-attribute">width</span>: <span class="hljs-number">9ch</span>;
<span class="hljs-attribute">animation</span>: typing <span class="hljs-number">5s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">9</span>), cursor <span class="hljs-number">0.25s</span> step-end <span class="hljs-number">30</span> alternate;
<span class="hljs-attribute">overflow</span>: hidden;
<span class="hljs-attribute">border-right</span>: <span class="hljs-number">2px</span> solid transparent;
<span class="hljs-attribute">font-family</span>: monospace;
}
<span class="hljs-keyword">@keyframes</span> typing {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">width</span>: <span class="hljs-number">0</span>; }
}
<span class="hljs-keyword">@keyframes</span> cursor {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">var</span>(--primary-text-color); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="99"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/5/3/d53635f722d61e341dfeca012f7a19a164ee9649.gif"
alt="Mushroom Title Scale-In"
data-base62-sha1="uq9Qx4BrWYZA8ZHHycfANq3WXoJ"
width="517"
height="99"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 99;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Scale-in Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom 🍄
subtitle: Scale-in
card_mod:
style:
mushroom-title-card$: |
* {
<span class="hljs-attribute">animation</span>: scale-in <span class="hljs-number">1s</span>;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">15%</span>;
}
<span class="hljs-keyword">@keyframes</span> scale-in {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="99"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/6/d/b6d7c0bea8c3973c104cfcc1c38b49df469ed99a.gif"
alt="Mushroom Title Fade-In"
data-base62-sha1="q5v9bhS5ErkQYzvnMxRL9wyXlKq"
width="517"
height="99"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 99;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Fade-in Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom 🍄
subtitle: Fade-in
card_mod:
style:
mushroom-title-card$: |
* {
<span class="hljs-attribute">animation</span>: fade <span class="hljs-number">1s</span> ease-in;
}
<span class="hljs-keyword">@keyframes</span> fade {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="99"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/0/9/009cbf14337dfd517f058dd7bd6864b2566a009e.gif"
alt="Mushroom Title Focus"
data-base62-sha1="5pPjmpzNh7J3flXDYYOfleyOwC"
width="517"
height="99"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 99;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Focus Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom 🍄
subtitle: Focus
card_mod:
style:
mushroom-title-card$: |
* {
<span class="hljs-attribute">animation</span>: focus <span class="hljs-number">1.5s</span>;
}
<span class="hljs-keyword">@keyframes</span> focus {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">filter</span>: <span class="hljs-built_in">blur</span>(<span class="hljs-number">10px</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="105"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/d/2/ed2cbb850b40d947605b7d6cc562f247d3f44465.gif"
alt="Mushroom Title Drop-In"
data-base62-sha1="xQ8ZXOUyiwL4HP0TZMNush70EPr"
width="517"
height="105"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 105;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Drop-in Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom 🍄
subtitle: Drop-in
card_mod:
style:
mushroom-title-card$: |
* {
<span class="hljs-attribute">animation</span>: drop-in <span class="hljs-number">1.1s</span> both;
}
<span class="hljs-keyword">@keyframes</span> drop-in {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">400px</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; <span class="hljs-attribute">filter</span>: <span class="hljs-built_in">blur</span>(<span class="hljs-number">40px</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">38%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; <span class="hljs-attribute">filter</span>: <span class="hljs-built_in">blur</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
<span class="hljs-number">55%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">16px</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; }
<span class="hljs-number">72%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; }
<span class="hljs-number">81%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">7px</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; }
<span class="hljs-number">90%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; }
<span class="hljs-number">95%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="105"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/c/5/d/c5dd82318205e747314e18496ea5881ec3572ff9.gif"
alt="Mushroom Title Slide-In"
data-base62-sha1="seoDMipGWRPoxmSW16lNgIJz74J"
width="517"
height="105"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 105;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Slide-in Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom 🍄
subtitle: Slide-in
card_mod:
style:
mushroom-title-card$: |
* {
<span class="hljs-attribute">animation</span>: slide-in <span class="hljs-number">1.1s</span> both;
}
<span class="hljs-keyword">@keyframes</span> slide-in {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">600px</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">2.5</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">0.2</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; <span class="hljs-attribute">filter</span>: <span class="hljs-built_in">blur</span>(<span class="hljs-number">40px</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">38%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">0</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">1</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; <span class="hljs-attribute">filter</span>: <span class="hljs-built_in">blur</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
<span class="hljs-number">55%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">68px</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">1.1</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.95</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; }
<span class="hljs-number">72%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">0</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">1</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; }
<span class="hljs-number">81%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">32px</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">1.05</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.98</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; }
<span class="hljs-number">90%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">0</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">1</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; }
<span class="hljs-number">95%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">8px</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-in; }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">0</span>); <span class="hljs-attribute">animation-timing-function</span>: ease-out; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="99"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/0/d/10d4a3e8787071c750a2558eeef19815a7d00113.gif"
alt="Mushroom Title Flicker"
data-base62-sha1="2oTdAAwpLBwuSeqVlfemjWPQvez"
width="517"
height="99"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 99;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Flicker Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mod-card
card:
type: custom:mushroom-title-card
title: Mushroom 🍄
subtitle: Flicker
card_mod:
style:
mushroom-title-card$: |
* {
<span class="hljs-attribute">animation</span>: flicker <span class="hljs-number">1.1s</span> both;
}
<span class="hljs-keyword">@keyframes</span> flicker {
<span class="hljs-number">0%</span>, <span class="hljs-number">10%</span>, <span class="hljs-number">10.2%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">20.6%</span>, <span class="hljs-number">30%</span>, <span class="hljs-number">30.6%</span>, <span class="hljs-number">45%</span>, <span class="hljs-number">55.1%</span>, <span class="hljs-number">57%</span>, <span class="hljs-number">60.1%</span>, <span class="hljs-number">65%</span>, <span class="hljs-number">75.1%</span>, <span class="hljs-number">77%</span>, <span class="hljs-number">85.1%</span>, <span class="hljs-number">86%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">10.1%</span>, <span class="hljs-number">20.1%</span>, <span class="hljs-number">30.1%</span>, <span class="hljs-number">30.5%</span>, <span class="hljs-number">45.1%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">55%</span>, <span class="hljs-number">57.1%</span>, <span class="hljs-number">60%</span>, <span class="hljs-number">65.1%</span>, <span class="hljs-number">75%</span>, <span class="hljs-number">77.1%</span>, <span class="hljs-number">85%</span>, <span class="hljs-number">86.1%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
}
</code></pre>
</details>
<h2>
<a name="mushroom-spinner-animations-2"
class="anchor"
href="#mushroom-spinner-animations-2"></a>Mushroom Spinner Animations
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/9/e/49e270bf6267e7dacdd90a3d768a534bd83abade.gif"
alt="Mushroom Comet Spinner"
data-base62-sha1="axC06yxkimsrTsWXrKVwdNmAMMu"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Comet Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Comet
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border-right</span>: <span class="hljs-number">4px</span> solid;
<span class="hljs-attribute">border-bottom</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">1s</span> linear infinite, comet <span class="hljs-number">10s</span> infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">38px</span>;
}
<span class="hljs-keyword">@keyframes</span> comet {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); }
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); }
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); }
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); }
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); }
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); }
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/7/9/a79e9ed99fb129a7a809d9ff42fa203bce317148.gif"
alt="Mushroom Crescent Spinner"
data-base62-sha1="nUPzZcfyRyCXEnLaWehwbi2ngtq"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Crescent Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Crescent
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">1px</span> solid <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-disabled), <span class="hljs-number">0.8</span>);
<span class="hljs-attribute">border-right</span>: <span class="hljs-number">3px</span> solid <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">1s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">40px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/5/6/356b66b8c4b4540679b979610bda4c64ad2eff8d.gif"
alt="Mushroom Munch Spinner"
data-base62-sha1="7CzpxYHZv6zHwsf0SP0nGcY6ux7"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Munch Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Munch
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));
<span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">34px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1.5s</span> linear infinite reverse;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));
<span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">34px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/2/c/72c03bc3eb89a053ab24496e32c236af88ff5615.gif"
alt="Mushroom Double Spinner"
data-base62-sha1="gn8hYr6EK6ohUIBJUsdPlVFrZ7n"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Double Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Double
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> double transparent;
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));
<span class="hljs-attribute">border-bottom-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">20px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite reverse;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> double transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange));
<span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange));
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/4/b/54b0c3c96ca878fa54930386531a72b9131b8af7.gif"
alt="Mushroom St. Nick Spinner"
data-base62-sha1="c5cP6KWktDQe0oMgaj1ITycQ05x"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
St. Nick Spinner (changed, this one does look weird on firefox for me for some reason. works fine on mobile.)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: St. Nick
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> dashed <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">5px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">0.5s</span> linear infinite reverse;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">8px</span> dotted <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red));
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/6/0/f60ec1d10b29b13793c62a1e367c9ec70e3b06d2.gif"
alt="Mushroom Gradient Spinner"
data-base62-sha1="z6J4D0f9woXuZrNIFGTnc1cehIS"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Gradient Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Gradient
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">background</span>: <span class="hljs-built_in">radial-gradient</span>(farthest-side, <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)) <span class="hljs-number">94%</span>, transparent) top/<span class="hljs-number">4px</span> <span class="hljs-number">4px</span> no-repeat, <span class="hljs-built_in">conic-gradient</span>(transparent <span class="hljs-number">30%</span>, <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)));
-webkit-<span class="hljs-attribute">mask</span>: <span class="hljs-built_in">radial-gradient</span>(farthest-side, transparent <span class="hljs-built_in">calc</span>(<span class="hljs-number">100%</span> - <span class="hljs-number">4px</span>), <span class="hljs-number">#000</span> <span class="hljs-number">0</span>);
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">1s</span> infinite linear;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/0/b/50b08a1481d3fe3ef03155ec538bfd72cd86442c.gif"
alt="Mushroom Dots Spinner"
data-base62-sha1="bvOqKHkwVWlSshgDE4F0spITpog"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Dots Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Dots
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> dotted transparent;
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">800ms</span> ease-in-out infinite, color <span class="hljs-number">10s</span> infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
<span class="hljs-keyword">@keyframes</span> <span class="hljs-attribute">color</span> {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); }
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); }
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); }
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); }
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); }
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); }
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); <span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/8/a/9/8a90dbf2968b0e2a3df7b1b0e005d5f94d24266f.gif"
alt="Mushroom Radial Spinner"
data-base62-sha1="jLOfw0HokW8A5vslF3q2jOPeB2v"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Radial Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Radial
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">3px</span> solid <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red));
<span class="hljs-attribute">border-right-color</span>: transparent;
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">24px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">36px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1.5s</span> linear infinite;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">3px</span> solid <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue));
<span class="hljs-attribute">border-right-color</span>: transparent;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/c/8/fc8db709406bae447a7bd083b88d3aa4061f0578.gif"
alt="Mushroom Dual Spinner"
data-base62-sha1="A2bWCx2IZ5pg2AEe6qnH2kZUmmY"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Dual Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Dual
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">1s</span> ease infinite;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange));
<span class="hljs-attribute">border-bottom-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange));
<span class="hljs-attr">--shape-color</span>: none <span class="hljs-meta">!important</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/a/f/daff425060276caf8d947bcd14f0788dc906153b.gif"
alt="Mushroom Morse Spinner"
data-base62-sha1="vfkYFshxKo2XDe3IdmIFi1Mh2EH"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Morse Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Morse
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> dashed transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple));
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">20px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite reverse;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> dashed transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink));
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink));
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/1/5/31546f9636905ab019ea44095700e1e06e2dc39d.gif"
alt="Mushroom Fade Spinner"
data-base62-sha1="72oixKDhUfx3mNOnqBkRZfK3JKt"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Fade Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Fade
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: fade <span class="hljs-number">25s</span> linear infinite reverse;
<span class="hljs-attr">--shape-color</span>: none;
}
<span class="hljs-keyword">@keyframes</span> fade {
<span class="hljs-number">6.24%</span>, <span class="hljs-number">12.49%</span>, <span class="hljs-number">18.74%</span>, <span class="hljs-number">24.99%</span>, <span class="hljs-number">31.24%</span>, <span class="hljs-number">37.49%</span>, <span class="hljs-number">43.74%</span>, <span class="hljs-number">49.99%</span>, <span class="hljs-number">56.24%</span>, <span class="hljs-number">62.49%</span>, <span class="hljs-number">68.74%</span>, <span class="hljs-number">74.99%</span>, <span class="hljs-number">81.24%</span>, <span class="hljs-number">87.49%</span>, <span class="hljs-number">93.74%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">20px</span> <span class="hljs-number">20px</span> transparent inset; }
<span class="hljs-number">0%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-orange), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-amber), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-yellow), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-lime), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple), <span class="hljs-number">0.7</span>) inset; }
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink), <span class="hljs-number">0.7</span>) inset; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/b/6/0b6d4d0c93b73d7e18961f8f99ab7dc39731d473.gif"
alt="Mushroom Dotty Spinner"
data-base62-sha1="1D5qySQx4hvcYc5TPV8Vl3fL06D"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Dotty Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attribute">border</span>: <span class="hljs-number">5px</span> dotted transparent;
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite, color <span class="hljs-number">60s</span> infinite;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">30px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">32px</span>;
}
<span class="hljs-keyword">@keyframes</span> <span class="hljs-attribute">color</span> {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); }
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); }
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); }
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); }
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); }
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); }
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite reverse, color <span class="hljs-number">60s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> <span class="hljs-attribute">color</span> {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); }
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); }
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); }
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); }
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); }
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); }
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">border-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/c/9/1/c91c60bf7291956cf8d8111ef937e1b30b224adb.gif"
alt="Mushroom Plain Spinner"
data-base62-sha1="sH6LNDcDHG4uAdD0qKjMAcLDMRd"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Plain Spinner (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Plain
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">5px</span> solid <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-disabled));
<span class="hljs-attribute">border-left-color</span>: transparent;
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">1s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">32px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/4/2/b4200accf7236a3fa3e4d5e2637d7679fdf3f7f2.gif"
alt="Mushroom Toggle Spinner"
data-base62-sha1="pHsASf5A0d9dHcmflI0QcGAPDkm"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Toggle Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Toggle
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-top-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan));
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">1s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">34px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite reverse;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan));
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan));
}}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/3/7/337e435f3fd57ac066384d43d81430f279ea3185.gif"
alt="Mushroom Spheres Spinner"
data-base62-sha1="7lwRQRHhVQQPAZ1zRnKkkzx5o6F"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Spheres Spinner (changed, this one looks very weird on firefox for me. but works fine on mobile.)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: none
primary: Spheres
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">border</span>: <span class="hljs-number">12px</span> dotted transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red));
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">18px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">18px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite reverse;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">12px</span> dotted transparent;
<span class="hljs-attribute">border-right-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue));
<span class="hljs-attribute">border-left-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue));
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/6/5/b651709838934de52191981d6998400fe6e50270.gif"
alt="Mushroom Triple Spinner"
data-base62-sha1="q0RnMHtHf9dfnT06AloS9kCX5cI"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Triple Spinner (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:loading
icon_color: red
primary: Triple
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none <span class="hljs-meta">!important</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-bottom-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green));
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-symbol-size</span>: <span class="hljs-number">42px</span>;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">34px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">4s</span> linear infinite;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">border</span>: <span class="hljs-number">4px</span> solid transparent;
<span class="hljs-attribute">border-bottom-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue));
}
</code></pre>
</details>
<h2>
<a name="mushroom-card-active-animations-all-unchanged-3"
class="anchor"
href="#mushroom-card-active-animations-all-unchanged-3"></a>Mushroom Card Active Animations (all unchanged)
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/0/0/e00a3d804ec42926a5ad28313834c34f286ca1b9.gif"
alt="Mushroom Activate Background"
data-base62-sha1="vXWTmEU58oKbuAWlUghwudag22R"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Background (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Background</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active {
background: rgba(var(--rgb-disabled), 0.1);
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/e/9/5e9be9640ae2125a88c2892342c346166ef1fe59.gif"
alt="Mushroom Activate Box-shadow"
data-base62-sha1="duWV86bY21z5s9UkF0oIQOWth2x"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Box-Shadow (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Box-Shadow</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active {
box-shadow: 0 0 20px rgba(var(--rgb-disabled), 0.8);
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/3/1/e313e0eac0bcae6f9a021ecf6d04473cf3031005.gif"
alt="Mushroom Activate Scale-Out"
data-base62-sha1="woOYtEQqwb6AdPUN6fK7MX9ksHr"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Scale-Out (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Scale-Out</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active {
transform: scale(1.02);
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/a/0/3a040597fce00c5c3d8a0bd1d549e22ef53da42e.gif"
alt="Mushroom Activate Scale-In"
data-base62-sha1="8hejdSamcoR8Y16XpcTzzkljpKK"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Scale-In (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Scale-In</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active {
transform: scale(0.975);
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/e/b/7eb8b057df6586083a1b6eb753256a423bf63545.gif"
alt="Mushroom Activate Push Down"
data-base62-sha1="i51R1KiMGtxJYat946kK2mKbf7f"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Push Down (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Push</span> <span class="hljs-string">Down</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active {
transform: translateY(1.5px);
transition: 0s;
box-shadow: 0 0.5px 2px 0 rgba(0, 0, 0, 0.16);
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/b/d/abd279d1cf8d4fc22a393d7091f5cc1ce40533be.gif"
alt="Mushroom Activate Push In"
data-base62-sha1="ow0AzxPoDzQYZ1T05VPqsp4F9bo"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Push In (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Push</span> <span class="hljs-string">In</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active {
transform: translateY(-1.5px);
transition: 0s;
box-shadow: 0 0.5px 2px 0 rgba(0, 0, 0, 0.16);
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/c/d/0cd0b4748e716ad02cbc75de5b28d7572d1507bc.gif"
alt="Mushroom Activate Ripple"
data-base62-sha1="1PmSqpB1LpFXxvCwtidpUTPZFOk"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Ripple (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Activate Mushroom
icon: mdi:mushroom
icon_color: red
secondary: Ripple
tap_action:
action: none
hold_action:
action: none
card_mod:
style: |
ha-card {
<span class="hljs-attribute">overflow</span>: hidden;
}
ha-card<span class="hljs-selector-pseudo">:after</span> {
<span class="hljs-attribute">display</span>: none;
<span class="hljs-attribute">content</span>: <span class="hljs-string">""</span>;
<span class="hljs-attribute">position</span>: absolute;
<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">background-color</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-disabled), <span class="hljs-number">0.1</span>);
<span class="hljs-attribute">width</span>: <span class="hljs-number">100px</span>;
<span class="hljs-attribute">height</span>: <span class="hljs-number">100px</span>;
<span class="hljs-attribute">margin-top</span>: -<span class="hljs-number">50px</span>;
<span class="hljs-attribute">margin-left</span>: -<span class="hljs-number">50px</span>;
<span class="hljs-attribute">top</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">left</span>: <span class="hljs-number">50%</span>;
<span class="hljs-attribute">animation</span>: ripple <span class="hljs-number">750ms</span>;
<span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>;
}
ha-card<span class="hljs-selector-pseudo">:active</span><span class="hljs-selector-pseudo">:after</span> {
<span class="hljs-attribute">display</span>: block;
}
<span class="hljs-keyword">@keyframes</span> ripple {
<span class="hljs-selector-tag">from</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">0</span>); }
<span class="hljs-selector-tag">to</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">10</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/5/e/25ed9038bb1c9073d1420f4d3d6cc572cc8c10e9.gif"
alt="Mushroom Activate 3D Perspective"
data-base62-sha1="5pwDTSMvklXpzRcpsPmD00LnwQp"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate 3D Perspective (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">3D</span> <span class="hljs-string">Perspective</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
:host {
perspective: 900px;
}
ha-card:active {
transform: rotateY(20deg);
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/2/1/621d904e1fb0a9284c9a863776487eb6eedc2eb0.gif"
alt="Mushroom Activate 3D Tilt"
data-base62-sha1="dZY8buzJIJrVFSAvkF3pBNwFcK4"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate 3D Tilt (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">3D</span> <span class="hljs-string">Tilt</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
:host {
perspective: 1000px;
}
ha-card:active {
transform: rotate3d(0.5, -0.9, 0, 10deg) rotate(1deg);
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="267"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/b/4/7b43b0b32d75bec51024a658460187dfac43ea38.gif"
alt="Mushroom Activate 3D Flap"
data-base62-sha1="hArKMnUnwopDuOP2XPRN8J7WPkk"
width="267"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 267 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate 3D Flap (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">3D</span> <span class="hljs-string">Flap</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
:host {
perspective: 900px;
}
ha-card:active {
transform: rotateX(25deg);
transform-origin: center bottom;
transition: 0s;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/c/9/bc99d523341f5fc2a7b9ec28a5a5975171d54816.gif"
alt="Mushroom Activate Trash"
data-base62-sha1="qUrlEkFlM8SMex597SznOoXJbzE"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Activate Icon Spin (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Activate</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">secondary:</span> <span class="hljs-string">Icon</span> <span class="hljs-string">Spin</span>
<span class="hljs-attr">tap_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">hold_action:</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">none</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-card:active mushroom-shape-icon {
display: flex;
#--icon-animation: spin 1s;
transform: rotate(360deg);
transition: 500ms;
}
</span></code></pre>
</details>
<h2>
<a name="applying-active-animations-to-your-theme-unchanged-4"
class="anchor"
href="#applying-active-animations-to-your-theme-unchanged-4"></a>Applying Active Animations to your Theme (unchanged)
</h2>
<p>Rather than applying the active animations to each card, you can apply the to all cards by adding the <code>card_mod</code> to your theme.</p>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">Mushroom Custom:
card-mod-theme: <span class="hljs-string">"Mushroom Custom"</span>
card-mod-card: |
ha-card:active {
<span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.02</span>);
<span class="hljs-attribute">transition</span>: <span class="hljs-number">0s</span>;
}
</code></pre>
<p>Reference documentation</p>
<p><a href="https://github.com/thomasloven/lovelace-card-mod/wiki/Card-mod-Themes"
rel="noopener nofollow ugc">Card mod Themes · thomasloven/lovelace-card-mod Wiki · GitHub <span class="badge badge-notification clicks"
title="24 clicks">24</span></a><br>
<a href="https://github.com/thomasloven/lovelace-card-mod/blob/b8c48b925643389fea5b1c0185ad7e0cbbd2bb76/README-themes.md"
rel="noopener nofollow ugc">lovelace-card-mod/README-themes.md at master · thomasloven/lovelace-card-mod · GitHub <span class="badge badge-notification clicks"
title="6 clicks">6</span></a>
</p>
<p>Updated Posts <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"><br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7717">Part 1</a>, Part 2, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7723">Part 3</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7725">Part 4</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7726">Part 5</a><br>
Original Posts by <a class="mention"
href="/u/rhysb">@rhysb</a> <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"> please only like his posts.<br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3240">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3256">Part 2</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3272">Part 3</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3348">Part 4</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/4043">Part 5</a>
</p>
<h2>
<a name="more-mushroom-card-icon-animations-1"
class="anchor"
href="#more-mushroom-card-icon-animations-1"></a>More Mushroom Card Icon Animations
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/d/1/6d11a5cbe3a42ecbeb37bfa40fe8259a179f7e66.gif"
alt="Mushroom Flash Animation"
data-base62-sha1="fyRQXsBI84VXYXW9jjiWHf1pTGS"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Flash Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: flash <span class="hljs-number">4s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> flash {
<span class="hljs-number">0%</span>, <span class="hljs-number">4%</span>, <span class="hljs-number">8%</span>, <span class="hljs-number">12%</span>, <span class="hljs-number">16%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">24%</span>, <span class="hljs-number">28%</span>, <span class="hljs-number">32%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0px</span>,<span class="hljs-number">0px</span>); }
<span class="hljs-number">2%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.3px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">6%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.3px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.2px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">14%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.2px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">18%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.2px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">22%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.5px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">26%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.5px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">34%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">1px</span>, <span class="hljs-number">5px</span>); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
<span class="hljs-number">38%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0px</span>, <span class="hljs-number">0px</span>); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-white)); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/7/b/f7bf1106d098a2209d87fb2a8e026e0a9e7ab629.gif"
alt="Mushroom Charge Animation"
data-base62-sha1="zlFibugdj8UgHsRLTkts83bX2vD"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Charge Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-template-card
icon: mdi:lightning-bolt
icon_color: amber
primary: Charge
card_mod:
style: |
ha-state-icon {
animation: charge 1s linear infinite;
}
@keyframes charge {
0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100% { transform: translate(0, 0); }
5% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
15% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
25% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
35% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
45% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
55% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
65% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
75% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
85% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
95% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-10</span>, <span class="hljs-number">10</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px); }
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/c/2/7c223e70f708aae6a68bce582ea9f90c5c1f7356.gif"
alt="Mushroom Double Rainbow Animation"
data-base62-sha1="hI8zyPtFLrCHjs04B9ewODFwLie"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Double Rainbow Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:looks
primary: Double Rainbow
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: rainbow <span class="hljs-number">40s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> rainbow {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> {<span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">25%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow), <span class="hljs-number">0.2</span>); }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">50%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue), <span class="hljs-number">0.2</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">81.25%</span> { -<span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple), <span class="hljs-number">0.2</span>);}
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink), <span class="hljs-number">0.2</span>);}
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: double <span class="hljs-number">3s</span> linear infinite alternate, rainbow <span class="hljs-number">40s</span> linear infinite
}
<span class="hljs-keyword">@keyframes</span> double {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">98%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">22%</span>, <span class="hljs-number">0</span> <span class="hljs-number">75%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">75%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">50.1%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">75%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">50%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">22%</span>, <span class="hljs-number">0</span> <span class="hljs-number">75%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">98%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> rainbow {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> {<span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red));}
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange));}
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange));}
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber));}
<span class="hljs-number">25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow));}
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime));}
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green));}
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green));}
<span class="hljs-number">50%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal));}
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan));}
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue));}
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue));}
<span class="hljs-number">75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo));}
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple));}
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple));}
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink));}
}
</code></pre>
</details>
<p><img src="https://community-assets.home-assistant.io/original/4X/5/3/1/53195e5a4fe8fb859af4be3642a999a852c5cdd0.png"
alt="Mushroom Random Animation"
data-base62-sha1="bR7YSBM3lQ89YmzNgJS42AA3iqk"
width="264"
height="69"
loading="lazy"
style="aspect-ratio: 264 / 69;"></p>
<details>
<summary>
Random Animation (unchanged, FYI if you dont know. this only updates when the page is refreshed. it is not an active animation.)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-template-card
icon: none
icon_color: red
primary: Random
card_mod:
style: |
:host {
--card-mod-icon: mdi:dice-</span><span class="hljs-template-variable">{{<span class="hljs-name">range</span>(<span class="hljs-name">1</span>, <span class="hljs-number">6</span>) | random}}</span><span class="language-xml">;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/e/a/eeaf902756a4ae4e25a5ff0780cc5d243052cb6d.gif"
alt="Mushroom Sparkle Animation"
data-base62-sha1="y3vMmZpsx9mFrVj9rWnJrnPHYKx"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Sparkle Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:shimmer
icon_color: amber
primary: Sparkle
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-disabled), <span class="hljs-number">0.2</span>);
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: stars <span class="hljs-number">4s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> stars {
<span class="hljs-number">0%</span>, <span class="hljs-number">3.1%</span>, <span class="hljs-number">14.1%</span>, <span class="hljs-number">40.1%</span>, <span class="hljs-number">55.1%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">3%</span>, <span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">48%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">48%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">0</span> <span class="hljs-number">63%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">99%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">14%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">49%</span> <span class="hljs-number">45%</span>, <span class="hljs-number">48%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">36%</span>); }
<span class="hljs-number">55%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">60%</span>, <span class="hljs-number">41%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">49%</span> <span class="hljs-number">46%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/0/6/506ef33042b8f47e32a6df06be828befedc7254e.gif"
alt="Mushroom Eeeew Animation"
data-base62-sha1="btxUdOffQ6tBCGchdKtful3eMii"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Eeeew Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:bacteria
icon_color: light-green
primary: Eeeew
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: wiggle <span class="hljs-number">0.5s</span> ease infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">80%</span> <span class="hljs-number">80%</span>;
}
mushroom-shape-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">display</span>: flex;
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">20s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> wiggle {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">1deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.04</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">2deg</span>); }
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/7/b/07b07fb2775d1a91c3372df731249db94750c0d0.gif"
alt="Mushroom Sunny Animation"
data-base62-sha1="161ukJprBAKEFUK1cYePQROjc9a"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Sunny Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Sunny
icon: mdi:weather-sunny
icon_color: amber
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: sunny <span class="hljs-number">8s</span> ease-in-out infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> sunny {
<span class="hljs-number">70%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">360deg</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
<span class="hljs-number">90%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.15</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/a/4/1a4175814efdcd3d7b07027d3a7b98155bab51f9.gif"
alt="Mushroom Cloudy Animation"
data-base62-sha1="3KgET7IkgYBwfOEiNEsry2WwB4d"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Cloudy Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Cloudy
icon: mdi:weather-cloudy
icon_color: grey
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/b/b/dbbd1d3e8d3113331bf6855fb7c648517193a4aa.gif"
alt="Mushroom Rainy Animation"
data-base62-sha1="vlTJXYGTyB0eqVcldoFGs6C1Pdw"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Rainy Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Rainy
icon: mdi:weather-rainy
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, rain <span class="hljs-number">1.5s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> rain {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">39%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">0</span> <span class="hljs-number">73%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/3/2/b32ef92f3eab7937d7644cfd606d420120774936.gif"
alt="Mushroom Pouring Animation"
data-base62-sha1="pz86E6njSe7Q9u46YaAQAPbu1fM"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Pouring Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Pouring
icon: mdi:weather-pouring
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, rain <span class="hljs-number">1s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> rain {
<span class="hljs-number">0%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">47%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">46%</span>, <span class="hljs-number">38%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">0</span> <span class="hljs-number">83%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">94%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">94%</span>, <span class="hljs-number">46%</span> <span class="hljs-number">46%</span>, <span class="hljs-number">30%</span> <span class="hljs-number">46%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">0</span> <span class="hljs-number">72%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/7/4/27452f0c68db3a59c4343343407b0a535ff430ad.gif"
alt="Mushroom Tornado Animation"
data-base62-sha1="5BoQvyyLVcJJHux7Fq5xWgHYcrz"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Tornado Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Tornado
icon: mdi:weather-tornado
icon_color: orange
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: tornado <span class="hljs-number">3s</span> ease-in-out infinite;
}
<span class="hljs-keyword">@keyframes</span> tornado {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>) <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">0.1%</span>, <span class="hljs-number">45.1%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>) <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
<span class="hljs-number">30.1%</span>, <span class="hljs-number">75.1%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>) <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>) <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/d/f/6df3afb289c611e6dd06c555c39ba71ad7d5b38c.gif"
alt="Mushroom Lightning Animation"
data-base62-sha1="fGG8Fq1HzHuJBwdsR2YAoeFLhwM"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Lightning Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Lightning
icon: mdi:weather-lightning
icon_color: amber
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, lightning <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> lightning {
<span class="hljs-number">10%</span>, <span class="hljs-number">15%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">48%</span> <span class="hljs-number">39%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">10.1%</span>, <span class="hljs-number">15.1%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/6/f/26faeae0e0d26a301fc6753546768297215789b9.gif"
alt="Mushroom Clear Night Animation"
data-base62-sha1="5yPJoiGt8rRi7LwGIZCRhiHvRMd"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Clear Night Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:weather-night
icon_color: amber
primary: Clear Night
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: moon <span class="hljs-number">10s</span> linear infinite, stars <span class="hljs-number">5s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> moon {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">12deg</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">6deg</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">8deg</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">10deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> stars {
<span class="hljs-number">0%</span>, <span class="hljs-number">3.1%</span>, <span class="hljs-number">14.1%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">3%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">1%</span> <span class="hljs-number">1%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">99%</span>, <span class="hljs-number">99%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">99%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">99%</span> <span class="hljs-number">0%</span>); }
<span class="hljs-number">14%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">1%</span> <span class="hljs-number">1%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">99%</span>, <span class="hljs-number">99%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">45%</span>, <span class="hljs-number">38%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/2/0/0200f30f7a5f02c0a52e8671acc101a7e341ea0e.gif"
alt="Mushroom Windy Animation"
data-base62-sha1="hIZkfrHKINBV4jjCqMnPVlowZo"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Windy Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Windy
icon: mdi:weather-windy
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1.2</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.9</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.8</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/7/4/b74e80b6036dde158f12819a428574ce4529d5d2.gif"
alt="Mushroom Wind Animation"
data-base62-sha1="q9Bzfnu8Y5f2657GwnzyZnrdGam"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Wind Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Wind
icon: mdi:weather-windy-variant
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, wind <span class="hljs-number">5s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> wind {
<span class="hljs-number">0%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">37%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/e/5/de5d519dc79320bcd8eb32f10381660cf5ce0225.gif"
alt="Mushroom Snow Animation"
data-base62-sha1="vJ7VQKabILerXpGVYU9FDzv7BFb"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Snow Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Snow
icon: mdi:weather-snowy
icon_color: grey
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, snow <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> snow {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">65%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">49%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">26%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">37%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">51%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/8/e/38e02c8c2e2f85015364ec5c67412f62b6104483.gif"
alt="Mushroom Hail Animation"
data-base62-sha1="8791NiNfpDJbSzgVC0oZzV1R13Z"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Hail Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Hail
icon: mdi:weather-hail
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, hail <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> hail {
<span class="hljs-number">0%</span>, <span class="hljs-number">26%</span>, <span class="hljs-number">51%</span>, <span class="hljs-number">76%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">43%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">58%</span>, <span class="hljs-number">48%</span> <span class="hljs-number">68%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">86%</span>, <span class="hljs-number">74%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">46%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">87%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">68%</span>, <span class="hljs-number">27%</span> <span class="hljs-number">81%</span>, <span class="hljs-number">37%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/c/4/ec4e56cb790436b8a9cfd21e29b5531970e888d8.gif"
alt="Mushroom Hurricane Animation"
data-base62-sha1="xIswsUr90tw5kzMd57z1SB4Jjyo"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Hurricane Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Hurricane</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:weather-hurricane</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
animation: spin 1.5s linear infinite reverse;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/8/b/7/8b75b2c4281d15a6a40c3e43b11ecec2d22e34bc.gif"
alt="Mushroom Dust Animation"
data-base62-sha1="jTIxdNRZPe29hYf5Rz49v1TBD2Y"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Dust Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Dust
icon: mdi:weather-dust
icon_color: brown
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: wind <span class="hljs-number">10s</span> ease-in-out infinite, dust <span class="hljs-number">1s</span> infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">15%</span> <span class="hljs-number">50%</span>
}
<span class="hljs-keyword">@keyframes</span> wind {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1.2</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.9</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.8</span>); }
}
<span class="hljs-keyword">@keyframes</span> dust {
<span class="hljs-number">0%</span>, <span class="hljs-number">21%</span>, <span class="hljs-number">41%</span>, <span class="hljs-number">61%</span>, <span class="hljs-number">81%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">69%</span> <span class="hljs-number">0</span>, <span class="hljs-number">72%</span> <span class="hljs-number">27%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">0</span> <span class="hljs-number">79%</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">30%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">28%</span>, <span class="hljs-number">30%</span> <span class="hljs-number">28%</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">61%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">46%</span>, <span class="hljs-number">0</span> <span class="hljs-number">46%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/2/0/520e0b016fd49c4e00af2473c81a1f9f6da3372e.gif"
alt="Mushroom Foggy Animation"
data-base62-sha1="bHTeQOq115nnY2fGkTWRc3oMr6K"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Foggy Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Foggy
icon: mdi:weather-fog
icon_color: grey
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, fog <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> fog {
<span class="hljs-number">0%</span>, <span class="hljs-number">26%</span>, <span class="hljs-number">76%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">26%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">26%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">0</span> <span class="hljs-number">76%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/7/6/7762231e6bc4093266fdc0f342fd5e3a65a8685c.gif"
alt="Mushroom Partly Cloudy Animation"
data-base62-sha1="h274LI8DXmjB7i0L5SdUYp7MJR2"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Partly Cloudy Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Cloudy
icon: mdi:weather-partly-cloudy
icon_color: amber
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: cloudy <span class="hljs-number">10s</span> ease-in-out infinite, sun <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> cloudy {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">3px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">1px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">1.5px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">3.2px</span>); }
}
<span class="hljs-keyword">@keyframes</span> sun {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">67%</span>, <span class="hljs-number">18%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">16%</span> <span class="hljs-number">31%</span>, <span class="hljs-number">41%</span> <span class="hljs-number">12%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">24%</span>, <span class="hljs-number">77%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/1/a/a1a845b1fcf638c338fc944b55db2c3c9e6e0dd1.gif"
alt="Mushroom Fireplace Animation"
data-base62-sha1="n45orXbVyoKBqdWGaE7AekujKbD"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Fireplace Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Fireplace
icon: mdi:fireplace
icon_color: red
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: fire <span class="hljs-number">800ms</span> infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">85%</span>;
}
<span class="hljs-keyword">@keyframes</span> fire {
<span class="hljs-number">0%</span>, <span class="hljs-number">19%</span>, <span class="hljs-number">23%</span>, <span class="hljs-number">39%</span>, <span class="hljs-number">43%</span>, <span class="hljs-number">49%</span>, <span class="hljs-number">53%</span>, <span class="hljs-number">69%</span>, <span class="hljs-number">73%</span>, <span class="hljs-number">89%</span>, <span class="hljs-number">93%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">20%</span>, <span class="hljs-number">40%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">70%</span>, <span class="hljs-number">90%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">65%</span> <span class="hljs-number">99%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">49%</span>, <span class="hljs-number">52%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">33%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">33%</span> <span class="hljs-number">82%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">82%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="63"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/0/4/104bea290004b27e7965734ff25c3fda5ee3da58.gif"
alt="Mushroom Washing Machine #2 Animation"
data-base62-sha1="2kahJmW6xz9mGaK3XXT0NsVLc5q"
width="263"
height="63"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 63;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Washing Machine #2 Animation (changed, fyi you can even make the drum a different color to the main icon.)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:washing-machine
icon_color: orange
primary: <span class="hljs-string">'Washing Machine #2'</span>
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: shake <span class="hljs-number">400ms</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">58%</span>;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">68%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">41%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">65%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>);
}
<span class="hljs-keyword">@keyframes</span> shake {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.4px</span>, -<span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.4px</span>, <span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">4deg</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">0.4px</span>, <span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">4deg</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">0.4px</span>, -<span class="hljs-number">0.4px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">4deg</span>); }
}
- type: custom:mushroom-template-card
icon: mdi:washing-machine
icon_color: orange
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">background</span>: none <span class="hljs-meta">!important</span>;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">58%</span>;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">21.7%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">58%</span>);
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/b/b/2bbc92e6aada904e5fa86df065736a5e08651099.gif"
alt="Mushroom Pot Animation"
data-base62-sha1="6eUy1ALmcKqUSRo2Fs6DYL7u8dP"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Pot Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:pot-steam
icon_color: grey
primary: Pot
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: steam <span class="hljs-number">2s</span> ease-in-out infinite;
}
<span class="hljs-keyword">@keyframes</span> steam {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">39%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/9/5/e/95e4e17c4a6e7f5221aefe614b9ab2b57dfaf24a.gif"
alt="Mushroom Serenity Animation"
data-base62-sha1="lo1w71f8H3DLqFmjOM2Yid5BSqu"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Serenity Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Serenity
icon: mdi:scent
icon_color: green
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: color <span class="hljs-number">6s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> <span class="hljs-attribute">color</span> {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-cyan), <span class="hljs-number">0.2</span>); }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: wave <span class="hljs-number">6s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> wave {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotatey</span>(<span class="hljs-number">180deg</span>); <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/d/7/fd7141d07aee7e96a4d491b7cd4d240309d44d55.gif"
alt="Mushroom Music #1 Animation"
data-base62-sha1="Aa3s2jk5SXGTa3cR14AiWl75UX3"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Music #1 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: <span class="hljs-string">'Music #1'</span>
icon: mdi:music
icon_color: blue
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">perspective</span>: <span class="hljs-number">7px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: music <span class="hljs-number">2s</span> ease-in-out infinite alternate;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">100%</span>
}
<span class="hljs-keyword">@keyframes</span> music {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0px</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">2px</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">0.9</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">10deg</span>) <span class="hljs-built_in">rotateZ</span>(-<span class="hljs-number">10deg</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">4px</span>) <span class="hljs-built_in">scaleX</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(-<span class="hljs-number">10deg</span>) <span class="hljs-built_in">rotateZ</span>(<span class="hljs-number">10deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/9/2/c/92cd32a540a0cf9da905cd0dd4ee579de824cc03.gif"
alt="Mushroom Music #2 Animation"
data-base62-sha1="kWFlofjIRRkoJUvAPC2eD08gOz1"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Music #2 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: <span class="hljs-string">'Music #2'</span>
icon: mdi:music
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: beat <span class="hljs-number">1.3s</span> ease-out infinite both;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">80%</span>;
}
<span class="hljs-keyword">@keyframes</span> beat {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">17%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.05</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.25</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/3/4/a341792e86d120b3acfd49db0e284bc8be405d0c.gif"
alt="Mushroom Playlist Animation"
data-base62-sha1="nie6qIava9iRCrbMK1Y62AGqigk"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Playlist Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:format-list-bulleted-square
icon_color: purple
primary: Playlist
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: clip <span class="hljs-number">2s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">4</span>) infinite;
}
<span class="hljs-keyword">@keyframes</span> clip {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">85%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> -<span class="hljs-number">5%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/e/8/1e80c56177ada29f5c4f060b04d6f5c53366f52e.gif"
alt="Mushroom Grain Animation"
data-base62-sha1="4lQdjuvjIipWSHrr6dBtgFcX9YW"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Grain Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:grain
icon_color: brown
primary: Grain
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: flip <span class="hljs-number">1s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite;
}
<span class="hljs-keyword">@keyframes</span> flip {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/f/3/bf3957c092a6907aaabbae81d62a66c0807f50c2.gif"
alt="Mushroom Focus Animation"
data-base62-sha1="rhE3iv2LGe74ylvcLR1yguTUK8G"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Focus Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:bullseye
icon_color: purple
primary: Focus
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: focus <span class="hljs-number">4s</span> linear infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> focus {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">filter</span>: <span class="hljs-built_in">blur</span>(<span class="hljs-number">10px</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/8/a/48aca787b909e564162ae6c580a698197168baa9.gif"
alt="Mushroom Access Point Animation"
data-base62-sha1="amUhS20F3ZzWRcgvx53BNmD5hWh"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Access Point Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:access-point
icon_color: teal
primary: Access Point
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: ping <span class="hljs-number">1.5s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> ping {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">1px</span> <span class="hljs-number">1px</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-teal), <span class="hljs-number">0.3</span>) inset; }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">15px</span> transparent inset; }
<span class="hljs-number">51%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">1px</span> <span class="hljs-number">1px</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-teal), <span class="hljs-number">0.3</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">15px</span> transparent; }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: clip <span class="hljs-number">1.5s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> clip {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">13.0%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">50%</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">50.0%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">50%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/6/7/b67fd007439de054720e5b44fad19552eb1083ff.gif"
alt="Mushroom Alert Animation"
data-base62-sha1="q2sJGyy0uJs0OlelNwWWtX9XX67"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Alert Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Alert!
icon: mdi:fire
icon_color: red
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-animation</span>: ping <span class="hljs-number">1.5s</span> infinite, blink <span class="hljs-number">1.5s</span> ease-in-out infinite;;
}
<span class="hljs-keyword">@keyframes</span> ping {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.7</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">15px</span> transparent; }
}
<span class="hljs-keyword">@keyframes</span> blink {
<span class="hljs-number">100%</span> {<span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>;}
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/9/d/79d9dc50f0fe12ac0ba8662689446f8a4c68a1e1.gif"
alt="Mushroom Record Animation"
data-base62-sha1="hnWxmz8El4kySedf2Hc0atFgChX"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Record Animation (unchanged, doesnt work well on a dark background unless you set a --shape-color.)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:record-circle
icon_color: cyan
primary: Record
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(-<span class="hljs-number">45deg</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-black), <span class="hljs-number">0.4</span>) <span class="hljs-number">0%</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-black), <span class="hljs-number">0.6</span>) <span class="hljs-number">50%</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-black), <span class="hljs-number">0.4</span>) <span class="hljs-number">100%</span>);
<span class="hljs-attr">--shape-animation</span>: spin <span class="hljs-number">400ms</span> linear infinite;
<span class="hljs-attr">--shape-color</span>: none;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/e/f/5efec1a11befce93cc58964996c7b6c45debcae7.gif"
alt="Mushroom Heart Animation"
data-base62-sha1="dymH6ps7iNtgQbzulBR57eMDj9B"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Heart Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Heart
icon: mdi:heart
icon_color: red
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">60%</span>;
<span class="hljs-attr">--shape-animation</span>: heart <span class="hljs-number">1.3s</span> ease-out infinite both;
}
<span class="hljs-keyword">@keyframes</span> heart {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.2</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">5px</span> transparent; }
<span class="hljs-number">17%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.2</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">5px</span> <span class="hljs-number">5px</span> transparent; }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-red), <span class="hljs-number">0.2</span>); }
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: beat <span class="hljs-number">1.3s</span> ease-out infinite both;
}
<span class="hljs-keyword">@keyframes</span> beat {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">17%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.05</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.25</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/d/3/4d37c01ca9f1db1350357a6908a093a4bd94a27b.gif"
alt="Mushroom Play Animation"
data-base62-sha1="b16d1busaYXh8hovTVpx3CefQEj"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Play Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:play</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">orange</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Play</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
animation: spin 4s steps(4) infinite;
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/a/0/4a05840bddc1320d8be1f5056259e3be2639b7a3.gif"
alt="Mushroom Christmas Tree Animation"
data-base62-sha1="ayP9k29eugQML1qV05OEGkxpmkH"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Christmas Tree Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:pine-tree
icon_color: green
primary: Christmas Tree
- type: custom:mushroom-template-card
icon: mdi:star-four-points
icon_color: yellow
primary: Star
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: star <span class="hljs-number">8s</span> ease infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> star {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">10px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0deg</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">0.4</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">10px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">360deg</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">0.6</span>); }
}
- type: custom:mushroom-template-card
icon: mdi:gift
icon_color: red
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">20px</span>;
<span class="hljs-attribute">top</span>: <span class="hljs-number">16px</span>;
<span class="hljs-attribute">left</span>: <span class="hljs-number">18px</span>;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">132px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: surprise <span class="hljs-number">4s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> surprise {
<span class="hljs-number">0%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">2.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">27deg</span>); }
<span class="hljs-number">5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">21deg</span>); }
<span class="hljs-number">7.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">9deg</span>); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">15%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">1.2px</span>) }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/7/f/77f52d44976fcded534fc8b8d8ef14003dd84304.gif"
alt="Mushroom Doggy Animation"
data-base62-sha1="h7c6GP3F08NYvRW74Oophx9PGAc"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Doggy Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Doggy
icon: mdi:dog
icon_color: brown
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: huh <span class="hljs-number">4s</span> ease infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">60%</span>;
}
<span class="hljs-keyword">@keyframes</span> huh {
<span class="hljs-number">0%</span>, <span class="hljs-number">10%</span>, <span class="hljs-number">75%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">15%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">25deg</span>); }
<span class="hljs-number">30%</span>, <span class="hljs-number">35%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">40deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">12deg</span>); }
<span class="hljs-number">65%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">8deg</span>); }
}
</code></pre>
</details>
<p>Updated Posts <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"><br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7717">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7719">Part 2</a>, Part 3, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7725">Part 4</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7726">Part 5</a><br>
Original Posts by <a class="mention"
href="/u/rhysb">@rhysb</a> <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"> please only like his posts.<br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3240">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3256">Part 2</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3272">Part 3</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3348">Part 4</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/4043">Part 5</a>
</p>
<h2>
<a name="even-more-mushroom-card-icon-animations-2"
class="anchor"
href="#even-more-mushroom-card-icon-animations-2"></a>Even More Mushroom Card Icon Animations
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/2/c/72c1ab23ef76375bcdec68d1db056c7aa7319d55.gif"
alt="Mushroom HA Animation"
data-base62-sha1="gnbmBcdQa9qtD0u3VwwHqX09ZRP"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
HA Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:home-assistant
icon_color: blue
primary: Home Assistant
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: boing <span class="hljs-number">3s</span> ease infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">90%</span>;
}
<span class="hljs-keyword">@keyframes</span> boing {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">7%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.25</span>, <span class="hljs-number">0.75</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.75</span>, <span class="hljs-number">1.25</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">12%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.15</span>, <span class="hljs-number">0.85</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">16%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.95</span>, <span class="hljs-number">1.05</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">19%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.05</span>, <span class="hljs-number">0.95</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/3/8/f381e2811c6882688bcfb6c202b22915cb1af047.gif"
alt="Mushroom Surprise Animation"
data-base62-sha1="yKaiJAwyChqb2rrSIsuFDdM25Yr"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Surprise Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:gift
icon_color: deep-orange
primary: Surprise
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: surprise <span class="hljs-number">3s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> surprise {
<span class="hljs-number">0%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">2.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">6px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">14deg</span>); }
<span class="hljs-number">5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">6px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">11deg</span>); }
<span class="hljs-number">7.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">6px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">8deg</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">6px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">5deg</span>); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">15%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">3px</span>) }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/0/e/60e6f16dc8b36da7bf8b75c782e8a1cfacf7b3e6.gif"
alt="Mushroom Ring Animation"
data-base62-sha1="dPeD5nRaVZ4bp5hbFjY2ROcoanI"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Ring Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:phone-classic
icon_color: light-green
primary: Ring
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">67%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">39%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">0</span> <span class="hljs-number">68%</span>);
}
- type: custom:mushroom-template-card
icon: mdi:phone-hangup
icon_color: light-green
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">4px</span>;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: ring <span class="hljs-number">1s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> ring {
<span class="hljs-number">0%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">4px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">27deg</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">4px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">21deg</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">4px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">4px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">9deg</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2.4px</span>); }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/8/1/5815632498c2dc155a841b44ffee607e34ff0180.gif"
alt="Mushroom Marker Animation"
data-base62-sha1="czdQ2LyKN7qspNhRoeUPgWPwX8Q"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Marker Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:map-marker
icon_color: red
primary: Marker
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: boing <span class="hljs-number">3s</span> ease infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">90%</span>;
}
<span class="hljs-keyword">@keyframes</span> boing {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">7%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">4px</span>) <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.75</span>, <span class="hljs-number">1.25</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.25</span>, <span class="hljs-number">0.75</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">12%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.85</span>, <span class="hljs-number">1.15</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">16%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.05</span>, <span class="hljs-number">0.95</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">19%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.95</span>, <span class="hljs-number">1.05</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/f/1/2f15d811a2ddf5e0b3f6973b08bdde7e58d3e7c5.gif"
alt="Mushroom Beat Animation"
data-base62-sha1="6IxeZ7m1Nfl8miEUHpuHCpwvczP"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Beat Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Beat
icon: mdi:speaker
icon_color: blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: beat <span class="hljs-number">1.3s</span> ease-out infinite both;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">60%</span>;
}
<span class="hljs-keyword">@keyframes</span> beat {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.1</span>); }
<span class="hljs-number">17%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.05</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.25</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/e/a/eea81797bbcd53e6f5d6a435309a618f5613acac.gif"
alt="Mushroom Door Animation"
data-base62-sha1="y3fLYjSdQ3hVH6ZaLseSZYi5JGk"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Door Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:door
icon_color: brown
primary: Door
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">perspective</span>: <span class="hljs-number">45px</span>;
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: open <span class="hljs-number">6s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">30%</span>;
}
<span class="hljs-keyword">@keyframes</span> open {
<span class="hljs-number">0%</span>, <span class="hljs-number">66%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(-<span class="hljs-number">120deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/e/b/1ebf6618397cc797e5f60eb5ff44d22254bce8ca.gif"
alt="Mushroom Bounce Animation"
data-base62-sha1="4o0oraVfiqXnsLWAfpRRk4x9FdU"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Bounce Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:tennis-ball
icon_color: amber
primary: Bounce
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: bounce <span class="hljs-number">0.6s</span> <span class="hljs-built_in">cubic-bezier</span>(<span class="hljs-number">0.30</span>, <span class="hljs-number">2.40</span>, <span class="hljs-number">0.85</span>, <span class="hljs-number">2.50</span>) infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">100%</span>;
}
<span class="hljs-keyword">@keyframes</span> bounce {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0px</span>) <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">0.9</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">3px</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/a/d/ead6d670ec3650469d839d6cd3e9e002b2d92666.gif"
alt="Mushroom Ghost Animation"
data-base62-sha1="xvu0Y9PQqh3m0lF5AEKMvHQnWLQ"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Ghost Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Ghost
icon: mdi:ghost-outline
icon_color: grey
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: drift <span class="hljs-number">10s</span> ease-in-out infinite, blink <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> drift {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">3px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">1px</span>, <span class="hljs-number">2px</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">1.5px</span>, <span class="hljs-number">0px</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">3.2px</span>, -<span class="hljs-number">3px</span>); }
}
<span class="hljs-keyword">@keyframes</span> blink {
<span class="hljs-number">0%</span>, <span class="hljs-number">24%</span>, <span class="hljs-number">35%</span>, <span class="hljs-number">74%</span>, <span class="hljs-number">85%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">27%</span> <span class="hljs-number">31%</span>, <span class="hljs-number">49%</span> <span class="hljs-number">31%</span>, <span class="hljs-number">49%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">49%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">52%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">73%</span> <span class="hljs-number">31%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/a/7/7a7e4411f96cae05f88edfbd1fb544bb4c4181da.gif"
alt="Mushroom Ducky Animation"
data-base62-sha1="htCM2tbPKH5hgxkX7v7JRjQdC0a"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Ducky Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Rubber Ducky
icon: mdi:duck
icon_color: amber
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: ducky <span class="hljs-number">2s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">75%</span>;
}
<span class="hljs-keyword">@keyframes</span> ducky {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">15deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/8/6/f8611492255f2ddb0653e39ae9d5a5d0efab46ca.gif"
alt="Mushroom Robot Animation"
data-base62-sha1="zrgpc5ZPRvz99EF7Jk1IAV2J2Wu"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Robot Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Robot
icon: mdi:robot-outline
icon_color: deep-purple
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: tilt <span class="hljs-number">4s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite, blink <span class="hljs-number">4s</span> infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">92%</span>;
}
<span class="hljs-keyword">@keyframes</span> tilt {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0deg</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">8deg</span>); }
<span class="hljs-number">66%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">8deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> blink {
<span class="hljs-number">0%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">30%</span>, <span class="hljs-number">45%</span>, <span class="hljs-number">55%</span>, <span class="hljs-number">70%</span>, <span class="hljs-number">80%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/a/7/da7c03a86058c2a64117b1917dd57b34784b4f15.gif"
alt="Mushroom Coffee Machine Animation"
data-base62-sha1="vaNMQRejAFqXCjOrXGFE97FbIQR"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Coffee Machine Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:coffee-maker
icon_color: brown
primary: Coffee Machine
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: java <span class="hljs-number">4s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> java {
<span class="hljs-number">0%</span>, <span class="hljs-number">80%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">80%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">15%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">77%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">80%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">44%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">35%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">44%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">45%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">55%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">65%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">65%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">42%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">56%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/d/f/2df5aa53fe1aee4a643ece41d7038ccd80eb431c.gif"
alt="Mushroom Apple Animation"
data-base62-sha1="6yzOWMgcMV5yxSzMl8x7Th8tn8o"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Apple Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Apple
icon: mdi:food-apple
icon_color: green
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: bite <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> bite {
<span class="hljs-number">0%</span>, <span class="hljs-number">19%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">20%</span>, <span class="hljs-number">39%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">78%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">41%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">74%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">74%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">75%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">40%</span>, <span class="hljs-number">59%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">78%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">41%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">59%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">85%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">91%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">60%</span>, <span class="hljs-number">79%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">78%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">41%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">59%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">85%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">91%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">84%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">75%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">71%</span>, <span class="hljs-number">33%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">45%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">0</span> <span class="hljs-number">27%</span>); }
<span class="hljs-number">80%</span>, <span class="hljs-number">99%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">78%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">41%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">59%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">85%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">91%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">88%</span>, <span class="hljs-number">37%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">67%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">59%</span>, <span class="hljs-number">35%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">45%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">0</span> <span class="hljs-number">27%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/c/6/6c6c6cc38ba2b1cfc09236fc9306097767166188.gif"
alt="Mushroom Memory Animation"
data-base62-sha1="ft9RGTm46RdcQfVXdqhY338IW0w"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Memory Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Memory
icon: mdi:memory
icon_color: orange
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: bit <span class="hljs-number">250ms</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> bit {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">30%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">70%</span> <span class="hljs-number">30%</span>, <span class="hljs-number">70%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">70%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/e/c/3/ec328f61704f164ad7bdb8ceba34bdf73b5c6458.gif"
alt="Mushroom Pump Animation"
data-base62-sha1="xHv0sPda1wHYfLfOAhnb8G7HROg"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Pump Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Pump
icon: mdi:water-pump
icon_color: light-blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: drip <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> drip {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">15%</span>, <span class="hljs-number">85%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">57%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">57%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/6/9/169f466210f4e93188214579813229ab4755f657.gif"
alt="Mushroom Power Animation"
data-base62-sha1="3e7Ksoo5NpDZEoIUxd4yx56bNRl"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Power Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Power
icon: mdi:power
icon_color: teal
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: power <span class="hljs-number">1.5s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> power {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">42%</span> <span class="hljs-number">0</span>, <span class="hljs-number">42%</span> <span class="hljs-number">58%</span>, <span class="hljs-number">58%</span> <span class="hljs-number">58%</span>, <span class="hljs-number">58%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/8/7/9/8799e226eb4798a65ea363f89a6583cb32a7e338.gif"
alt="Mushroom Garage Animation"
data-base62-sha1="jlA9r0IahvY9nBW6wRLLZeBd8tG"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Garage Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Garage
icon: mdi:garage
icon_color: amber
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: door <span class="hljs-number">3s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> door {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/3/5/a3555077eb3a8ec729a813759e8a7cefc067dd36.gif"
alt="Mushroom Coffee Animation"
data-base62-sha1="niUBZzs0lxhLSvcgWFUu0dJ04ku"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Coffee Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:coffee
icon_color: brown
primary: Coffee
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scaleY</span>(<span class="hljs-number">0.8</span>);
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">100%</span>;
}
- type: custom:mushroom-template-card
icon: mdi:pot-steam
icon_color: brown
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">2px</span>;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: steam <span class="hljs-number">2s</span> ease-in infinite;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">61%</span> <span class="hljs-number">0</span>);
}
<span class="hljs-keyword">@keyframes</span> steam {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/2/d/d2d9f5218f7daae761f8e4489e7ed1fb22ea23d3.gif"
alt="Mushroom Auto Fix Animation"
data-base62-sha1="u5heVa85pxNtN6RMJzK6Oo3jmqn"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Auto Fix Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:auto-fix
icon_color: cyan
primary: Auto Fix
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: sparkle <span class="hljs-number">1.8s</span> linear infinite, kadabra <span class="hljs-number">1.8s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">10%</span> <span class="hljs-number">90%</span>
}
<span class="hljs-keyword">@keyframes</span> sparkle {
<span class="hljs-number">0%</span>, <span class="hljs-number">69%</span>, <span class="hljs-number">74%</span>, <span class="hljs-number">79%</span>, <span class="hljs-number">85%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">76%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">39%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">26%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">100%</span>); }
}
<span class="hljs-keyword">@keyframes</span> kadabra {
<span class="hljs-number">0%</span>, <span class="hljs-number">65%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">20deg</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">15deg</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">25deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/1/b/11b49f00caa93aaf12e1acf9683eb9c7525fabaf.gif"
alt="Mushroom Grinder Animation"
data-base62-sha1="2wD5WLjCACePkuC6jvGbbJn8sa3"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Grinder Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:blender
icon_color: orange
primary: Grinder
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: shake <span class="hljs-number">400ms</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">90%</span>;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">24%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">75%</span>, <span class="hljs-number">33%</span> <span class="hljs-number">62%</span>);
}
<span class="hljs-keyword">@keyframes</span> shake {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">3deg</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">3deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/b/e/8/be823c2a43a0922e09c39e1b62da231de3f4f75c.gif"
alt="Mushroom Solar Panel Animation"
data-base62-sha1="rbjKi2v08Jxsgqv8NS2RKF3wkFe"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Solar Panel Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:solar-power-variant
icon_color: amber
primary: Solar Panel
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: rays <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> rays {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">100%</span> <span class="hljs-number">99%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">99%</span>, <span class="hljs-number">11%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">57%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">31%</span>, <span class="hljs-number">41%</span> <span class="hljs-number">31%</span>, <span class="hljs-number">33%</span> <span class="hljs-number">25%</span>, <span class="hljs-number">29%</span> <span class="hljs-number">18%</span>, <span class="hljs-number">27%</span> <span class="hljs-number">11%</span>, <span class="hljs-number">27%</span> <span class="hljs-number">6%</span>, <span class="hljs-number">74%</span> <span class="hljs-number">6%</span>, <span class="hljs-number">73%</span> <span class="hljs-number">15%</span>, <span class="hljs-number">69%</span> <span class="hljs-number">23%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">29%</span>, <span class="hljs-number">71%</span> <span class="hljs-number">42%</span>, <span class="hljs-number">87%</span> <span class="hljs-number">47%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/5/c/b/5cb93651d0c21aa02aa7ae0d6f7f92eed864ea1d.gif"
alt="Mushroom Light Bulb Animation"
data-base62-sha1="degK2oIZtP5uKS4L8yPf9MgjaZ7"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Light Bulb Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:lightbulb-on
icon_color: amber
primary: Light Bulb
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: illumination <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> illumination {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">99%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">22%</span> <span class="hljs-number">37%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">20%</span>, <span class="hljs-number">61%</span> <span class="hljs-number">21%</span>, <span class="hljs-number">77%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">57%</span>, <span class="hljs-number">99%</span> <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/1/0/3107a59f55744ebeda5cbf776666d943a28ce89d.gif"
alt="Mushroom Eureka Animation"
data-base62-sha1="6ZJMkKYGyUYqkG6qcly96WfWfPD"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Eureka Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:lightbulb-on
icon_color: orange
primary: Eureka
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: eureka <span class="hljs-number">1.8s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> eureka {
<span class="hljs-number">0%</span>, <span class="hljs-number">45%</span>, <span class="hljs-number">55%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">1</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">20%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">21%</span> <span class="hljs-number">38%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">22%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">21%</span>, <span class="hljs-number">79%</span> <span class="hljs-number">37%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">53%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">67%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">46%</span>, <span class="hljs-number">62%</span> <span class="hljs-number">38%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">47%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">37%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">33%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">41%</span> <span class="hljs-number">64%</span>, <span class="hljs-number">45%</span> <span class="hljs-number">66%</span>, <span class="hljs-number">45%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">76%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">10%</span>, <span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">5px</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">1.12</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/3/e/b/3ebe7b5721adb3005f13fbe5ca28dc76eda38a97.gif"
alt="Mushroom Trash Animation"
data-base62-sha1="8X3HVCyBQt4816Rb0T4YWU604rt"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Trash Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:trash-can
icon_color: green
primary: Trash
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">26%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>);
}
- type: custom:mushroom-template-card
icon: mdi:trash-can
icon_color: green
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attribute">top</span>: <span class="hljs-number">0.3px</span>;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: lid <span class="hljs-number">1s</span> ease infinite;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">75%</span> <span class="hljs-number">0</span>);
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">25%</span>;
}
<span class="hljs-keyword">@keyframes</span> lid {
<span class="hljs-number">0%</span>, <span class="hljs-number">50%</span>, <span class="hljs-number">80%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">5px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">37deg</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">5px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">31deg</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">5px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">25deg</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">5px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">19deg</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">3px</span>); }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/f/b/9/fb90f77f79116dd9605bb62e74ae9ff85d3155d0.gif"
alt="Mushroom Heat Pump Animation"
data-base62-sha1="zTsqY7zBtjqR8DhxwhK4sCLNB6w"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Heat Pump Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:heat-pump-outline
icon_color: deep-purple
primary: Heat Pump
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">23%</span>, <span class="hljs-number">78%</span> <span class="hljs-number">22%</span>, <span class="hljs-number">77%</span> <span class="hljs-number">78%</span>, <span class="hljs-number">23%</span> <span class="hljs-number">78%</span>, <span class="hljs-number">22%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>);
}
- type: custom:mushroom-template-card
icon: mdi:heat-pump-outline
icon_color: deep-purple
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">position</span>: absolute;
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">2s</span> linear infinite;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">27.3%</span> at <span class="hljs-number">50%</span> <span class="hljs-number">50%</span>);
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/9/5/4/9543486a425eaea7a864102044e004c0099bacc0.gif"
alt="Mushroom Air Purifier Animation"
data-base62-sha1="lirilLhuncrFQUGW41H5R8lqqS4"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Air Purifier Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:air-purifier
icon_color: cyan
primary: Air Purifier
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: air <span class="hljs-number">1s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> air {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">98%</span> <span class="hljs-number">32%</span>, <span class="hljs-number">63%</span> <span class="hljs-number">42%</span>, <span class="hljs-number">65%</span> <span class="hljs-number">58%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">43%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">72%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">78%</span> <span class="hljs-number">38%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">73%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/8/f/7/8f70737f37605b5654ae251043dae92de0521ecc.gif"
alt="Mushroom Calendar Clock Animation"
data-base62-sha1="ksVcDiRgQ97bX6SGDOH3dhCMQHi"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Calendar Clock Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:calendar-clock
icon_color: purple
primary: Calendar Clock
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">67%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">73%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">59%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">59%</span> <span class="hljs-number">72%</span>, <span class="hljs-number">77%</span> <span class="hljs-number">81%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">68%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">67%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>);
}
- type: custom:mushroom-template-card
icon: mdi:calendar-clock
icon_color: purple
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">1s</span> linear infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">67%</span> <span class="hljs-number">67%</span>;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">circle</span>(<span class="hljs-number">17%</span> at <span class="hljs-number">67%</span> <span class="hljs-number">67%</span>);
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/c/e/0ceb026fba57b4591e5aa750acc6765f6001a746.gif"
alt="Mushroom CRT Animation"
data-base62-sha1="1QheAa71FPZ0daS4yrWf999wgo6"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
CRT Animation (changed. i did also change the if statement structure here because i find this method easier to read and trouble shoot.)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-template-card
primary: CRT
entity: switch.television
icon: mdi:television-classic
icon_color: '</span><span class="hljs-template-variable">{{ <span class="hljs-name">''</span>orange<span class="hljs-string">''</span> if is_state(<span class="hljs-name">entity</span>, <span class="hljs-string">''</span>on<span class="hljs-string">''</span>) }}</span><span class="language-xml">'
card_mod:
style: |
ha-state-icon {
{% if is_state(config.entity, 'on') %}
animation: tube-on 1s linear, flicker 1s linear 1s infinite alternate;
{% else %}
animation: tube-off 2s linear forwards;
{% endif %}
}
@keyframes tube-off {
1%, 15% { transform: scale(1, 0.2); }
40% { transform: scale(0.2); opacity: 1; }
100% { transform: scale(0.2); opacity: 0; }
}
@keyframes tube-on {
0% { transform: scale(0.2); opacity: 0; }
5% { transform: scale(1, 0.2); opacity: 0.3; }
15% { transform: scale(1); opacity: 0.4; }
100% { transform: scale(1); opacity: 1; }
}
@keyframes flicker {
0%, 31.98%, 32.98%, 34.98%, 36.98%, 39.98%, 67.98%, 68.98%, 95.98%, 96.98%, 97.98%, 98.98%, 100% { opacity: 0.6; }
32%, 33%, 35%, 36%, 37%, 40%, 68%, 69%, 96%, 97%, 98%, 99% { opacity: 1; }
}
</span></code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/a/1/d/a1dd407ccb959223100d8287c45c27f6d82e233b.gif"
alt="Mushroom Microwave Animation"
data-base62-sha1="n5UTYdcjEDIYWqxEyCEVyv8ArGz"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Microwave Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:microwave
icon_color: blue
primary: Microwave
card_mod:
style: |
ha-state-icon:before {
<span class="hljs-attribute">content</span>: <span class="hljs-string">""</span>;
<span class="hljs-attribute">position</span>: absolute;
<span class="hljs-attribute">width</span>: <span class="hljs-number">25%</span>;
<span class="hljs-attribute">height</span>: <span class="hljs-number">25%</span>;
<span class="hljs-attribute">margin</span>: <span class="hljs-number">10%</span>;
<span class="hljs-attribute">animation</span>: cook <span class="hljs-number">1s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> cook {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">90deg</span>, white <span class="hljs-number">0%</span>, transparent <span class="hljs-number">50%</span>, transparent <span class="hljs-number">100%</span>); }
<span class="hljs-number">33%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">90deg</span>, transparent <span class="hljs-number">0%</span>, white <span class="hljs-number">50%</span>, transparent <span class="hljs-number">100%</span>); }
<span class="hljs-number">66%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">90deg</span>, transparent <span class="hljs-number">0%</span>, transparent <span class="hljs-number">50%</span>, white <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<h2>
<a name="controlling-the-animation-in-your-card-3"
class="anchor"
href="#controlling-the-animation-in-your-card-3"></a>Controlling the Animation in your Card
</h2>
<p>The animations can be controlled using a Jinja Template condition on the animation command.</p>
<p>For example if I wanted an animation when my coffee machine is on I would use an if statement like this:</p>
<p><code>{{ 'animation: java 4s linear infinite;' if is_state(config.entity, 'on') }}</code></p>
<p><span class="bbcode-u">Added by Dimitri.</span><br>
Or you can make your if statement block like this instead. i think this is easier to read. it does take up more space in the code, but easier to see what is happening <img src="https://community.home-assistant.io/images/emoji/twitter/slight_smile.png?v=10"
title=":slight_smile:"
class="emoji"
alt=":slight_smile:"
loading="lazy"> the <code>{% else %}</code> is technically not even required.
</p>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-php" data-highlighted="yes">{% <span class="hljs-keyword">if</span> <span class="hljs-title function_ invoke__">is_state</span>(config.entity, <span class="hljs-string">'on'</span>) %}
animation: java <span class="hljs-number">4</span>s linear infinite;
{% <span class="hljs-keyword">else</span> %}
{% <span class="hljs-keyword">endif</span> %}
</code></pre>
<p>The complete card would look like this:</p>
<details>
<summary>
Coffee Machine Card (new if statements and structure changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-template-card</span>
<span class="hljs-attr">entity:</span> <span class="hljs-string">switch.coffee_machine</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:coffee-maker</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">'<span class="hljs-template-variable">{{ ''brown'' if is_state(entity, ''on'') }}</span>'</span>
<span class="hljs-attr">primary:</span> <span class="hljs-string">Coffee</span> <span class="hljs-string">Machine</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
{% if is_state(config.entity, 'on') %}
animation: java 4s linear infinite;
{% else %}
</span>
{<span class="hljs-string">%</span> <span class="hljs-string">endif</span> <span class="hljs-string">%</span>}
<span class="hljs-string">}</span>
<span class="hljs-string">@keyframes</span> <span class="hljs-string">java</span> {
<span class="hljs-number">0</span><span class="hljs-string">%</span>, <span class="hljs-number">80</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">10</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">79</span><span class="hljs-string">%</span>, <span class="hljs-number">63</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">55</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">77</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">80</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">15</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">79</span><span class="hljs-string">%</span>, <span class="hljs-number">63</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">77</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">80</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">20</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">63</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">55</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">25</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">63</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">76</span><span class="hljs-string">%</span>, <span class="hljs-number">56</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">30</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">64</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">55</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">55</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">69</span><span class="hljs-string">%</span>, <span class="hljs-number">44</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">35</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">64</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">55</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">69</span><span class="hljs-string">%</span>, <span class="hljs-number">44</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">73</span><span class="hljs-string">%</span>, <span class="hljs-number">56</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">40</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">45</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">70</span><span class="hljs-string">%</span>, <span class="hljs-number">56</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">50</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">66</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">65</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">65</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">65</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">55</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">66</span><span class="hljs-string">%</span>, <span class="hljs-number">67</span><span class="hljs-string">%</span> <span class="hljs-number">65</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">65</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">65</span><span class="hljs-string">%</span>, <span class="hljs-number">56</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">60</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">65</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">60</span><span class="hljs-string">%</span>, <span class="hljs-number">56</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">70</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">32</span><span class="hljs-string">%</span>, <span class="hljs-number">47</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">43</span><span class="hljs-string">%</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">57</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
<span class="hljs-number">75</span><span class="hljs-string">%</span> { <span class="hljs-attr">clip-path:</span> <span class="hljs-string">polygon(0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">66</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">54</span><span class="hljs-string">%</span>, <span class="hljs-number">42</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">56</span><span class="hljs-string">%</span>, <span class="hljs-number">55</span><span class="hljs-string">%</span> <span class="hljs-number">100</span><span class="hljs-string">%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100</span><span class="hljs-string">%);</span> }
}
</code></pre>
</details>
<p>Or if I wanted to have the dryer animate when the load is over 4w I would do this:</p>
<p><code>{{ 'animation: shake 400ms ease-in-out infinite, drum 1s infinite;' if states('sensor.dryer_power') | float &gt; 4 }}</code></p>
<p><span class="bbcode-u">Added by Dimitri.</span><br>
Or you can make your if statement block like this instead. i think this is easier to read. it does take up more space in the code, but easier to see what is happening <img src="https://community.home-assistant.io/images/emoji/twitter/slight_smile.png?v=10"
title=":slight_smile:"
class="emoji"
alt=":slight_smile:"
loading="lazy"> the <code>{% else %}</code> is technically not even required.
</p>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-php" data-highlighted="yes">{% <span class="hljs-keyword">if</span> <span class="hljs-title function_ invoke__">states</span>(sensor.dryer_power) | <span class="hljs-keyword">float</span> &gt; <span class="hljs-number">4</span> %}
animation: shake <span class="hljs-number">400</span>ms ease-in-out infinite, drum <span class="hljs-number">1</span>s infinite;
{% <span class="hljs-keyword">else</span> %}
{% <span class="hljs-keyword">endif</span> %}
</code></pre>
<p>The complete card would look like this:</p>
<details>
<summary>
Dryer Card (new if statements and structure changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-template-card
entity: switch.dryer
icon: mdi:tumble-dryer
icon_color: '</span><span class="hljs-template-variable">{{ <span class="hljs-name">''</span>teal<span class="hljs-string">''</span> if states(<span class="hljs-name">''</span>sensor.dryer_power<span class="hljs-string">''</span>) | float &gt; <span class="hljs-number">4</span> }}</span><span class="language-xml">'
primary: Dryer
card_mod:
style: |
ha-state-icon {
transform-origin: 50% 65%;
{% if states('sensor.dryer_power') | float &gt; 4 %}
animation: shake 400ms ease-in-out infinite, drum 1s infinite;
{% else %}
{% end if %}
}
@keyframes shake {
0%, 100% { transform: rotate(4deg); }
50% { transform: rotate(-4deg); }
}
@keyframes drum {
50% { clip-path: polygon(0 0, 0 100%, 35% 100%, 36% 74%, 31% 43%, 61% 40%, 71% 69%, 62% 78%, 36% 73%, 35% 100%, 100% 100%, 100% 0); }
}
</span></code></pre>
</details>
<p>You will need to add the if condition for each <code>animation:</code>, <code>--icon-animation:</code> or <code>--shape-animation:</code> command in the card.</p>
<p><span class="bbcode-u">Added by Dimitri.</span><br>
This is not true if you complete the if statements in the way that i have showed. that is unless you need the animations to be based on different conditions.
</p>
<h2>
<a name="using-the-animations-with-tile-card-4"
class="anchor"
href="#using-the-animations-with-tile-card-4"></a>Using the Animations with Tile Card
</h2>
<p>The structure of the new Tile Card is very similar to the Mushroom Cards, so it is easy to use these animations with it.</p>
<p>Mushroom Card (changed)</p>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span> <span class="hljs-string">|
ha-state-icon {
}
</span></code></pre>
<p>Tile Card (changed)</p>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span>
<span class="hljs-string">ha-tile-icon$:</span> <span class="hljs-string">|
ha-icon {
}
</span></code></pre>
<details>
<summary>
Animated Tile Card (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: tile
entity: fan.bathroom_fan
color: green
card_mod:
style:
ha-tile-icon$: |
ha-icon {
<span class="hljs-attribute">animation</span>: rotate <span class="hljs-number">1s</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> rotate {
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">360deg</span>); }
}
</code></pre>
</details>
<p>Updated Posts <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"><br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7717">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7719">Part 2</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7723">Part 3</a>, Part 4, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7726">Part 5</a><br>
Original Posts by <a class="mention"
href="/u/rhysb">@rhysb</a> <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"> please only like his posts.<br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3240">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3256">Part 2</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3272">Part 3</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3348">Part 4</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/4043">Part 5</a>
</p>
<h2>
<a name="mushroom-chip-animations-2"
class="anchor"
href="#mushroom-chip-animations-2"></a>Mushroom Chip Animations
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="517"
height="61"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/2/4/7/247cb76d8c3fe0e33d061109ddfd7fc7337ee132.gif"
alt="Mushroom Chip Animated Scene"
data-base62-sha1="5cMom4gQaMCipHhndMrSHhod6qm"
width="517"
height="61"
class="animated"
loading="lazy"
style="aspect-ratio: 517 / 61;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Chip Animated Scene (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-handlebars" data-highlighted="yes"><span class="language-xml">type: custom:mushroom-chips-card
chips:
- type: template
icon: mdi:mushroom
icon_color: red
- type: template
icon: mdi:snail
icon_color: brown
- type: template
icon: mdi:flower
icon_color: amber
- type: template
icon: mdi:butterfly
icon_color: cyan
card_mod:
style:
mushroom-template-chip:nth-child(1)$: |
ha-state-icon {
animation: bump 10s infinite;
transform-origin: 50% 100%;
}
@keyframes bump {
0% { transform: translateX(0); }
1% { transform: translateX(-0.6px) rotate(-9deg); }
2% { transform: translateX(0.5px) rotate(7deg); }
3% { transform: translateX(-0.3px) rotate(-5deg); }
4% { transform: translateX(0.2px) rotate(3deg); }
5% { transform: translateX(0); }
}
mushroom-template-chip:nth-child(2)$: |
ha-state-icon {
animation: slip 0.5s linear infinite alternate;
transform-origin: 100% 100%;
}
@keyframes slip {
from { transform: scale(1.05, 0.9);}
to { transform: scale(0.9, 1.05); }
}
mushroom-template-chip:nth-child(3)$: |
ha-state-icon {
animation: bump 10s infinite;
transform-origin: 50% 100%;
}
@keyframes bump {
50% { transform: translateX(0); }
51% { transform: translateX(-0.6px) rotate(-9deg); }
52% { transform: translateX(0.5px) rotate(7deg); }
53% { transform: translateX(-0.3px) rotate(-5deg); }
54% { transform: translateX(0.2px) rotate(3deg); }
55% { transform: translateX(0); }
}
mushroom-template-chip:nth-child(4)$: |
ha-state-icon {
animation: flutter 5s infinite alternate;
}
@keyframes flutter {
0% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
10% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg) scalex(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">3</span>, <span class="hljs-number">7</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">); }
20% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
30% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg) scalex(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">3</span>, <span class="hljs-number">7</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">); }
40% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
50% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg) scalex(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">3</span>, <span class="hljs-number">7</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">); }
60% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
70% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg) scalex(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">3</span>, <span class="hljs-number">7</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">); }
80% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
90% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg) scalex(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">3</span>, <span class="hljs-number">7</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">); }
100% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px, </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-20</span>, <span class="hljs-number">20</span>) | random / <span class="hljs-number">10</span> }}</span><span class="language-xml">px) rotate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">-15</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">deg); }
}
.: |
.chip-container {
background: radial-gradient(circle, rgba(var(--rgb-light-blue), 0.1) 0%, transparent 100%);
border-bottom: 3px dotted rgba(var(--rgb-green));
border-radius: 20%;
box-shadow: 0 5px 1px 0.1px rgba(var(--rgb-green), 0.2)
}
mushroom-template-chip:nth-child(2) {
animation: slide 10s ease-in-out infinite;
}
@keyframes slide {
0% { transform: translate(0px, 0px) rotateY(0deg); }
50% { transform: translate(100px, 0px) rotateY(0deg); }
50.1% { transform: translate(100px, 0px) rotateY(180deg); }
100% { transform: translate(0px, 0px) rotateY(180deg); }
}
mushroom-template-chip:nth-child(3) {
transform: translate(100px);
}
mushroom-template-chip:nth-child(4) {
animation: by </span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">5</span>, <span class="hljs-number">15</span>) | random }}</span><span class="language-xml">s ease infinite;
}
@keyframes by {
0% { transform: translate(100px, 0px); }
50% { transform: translate(</span><span class="hljs-template-variable">{{ <span class="hljs-name">range</span>(<span class="hljs-name">110</span>, <span class="hljs-number">150</span>) | random }}</span><span class="language-xml">px, 0px); }
100% { transform: translate(100px, 0px); }
}
</span></code></pre>
</details>
<p><span class="bbcode-u">All of the below info regarding adding animations to chips is still true.</span></p>
<h2>
<a name="adding-animations-to-chips-3"
class="anchor"
href="#adding-animations-to-chips-3"></a>Adding Animations to Chips
</h2>
<p>Adding an animation to a Mushroom Chip is a bit more complicated than a normal Mushroom Card. You have the Chips ‘parent’ and multiple Chip ‘children’. The <code>card_mod</code> can be applied differently to each.</p>
<h3>
<a name="to-the-chip-4"
class="anchor"
href="#to-the-chip-4"></a>To the Chip
</h3>
<p>The simplest method is to add the <code>card_mod</code> to the Chip. The disadvantage of doing this is that we can’t address the icon directly, so animations such as <code>clip-path</code> will not work and we can’t have any text on the Chip. This method also breaks the GUI editor of the Chips, so you have to configure with YAML.</p>
<details>
<summary>
Chip Animation (unchanged)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-chips-card
chips:
- type: template
icon: mdi:mushroom
icon_color: red
card_mod:
style: |
.content {
<span class="hljs-attribute">animation</span>: boing <span class="hljs-number">3s</span> ease infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">50%</span> <span class="hljs-number">90%</span>;
}
<span class="hljs-keyword">@keyframes</span> boing {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">7%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.25</span>, <span class="hljs-number">0.75</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.75</span>, <span class="hljs-number">1.25</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">12%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.15</span>, <span class="hljs-number">0.85</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">16%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">0.95</span>, <span class="hljs-number">1.05</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">19%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1.05</span>, <span class="hljs-number">0.95</span>, <span class="hljs-number">1</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">scale3d</span>(<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>); }
}
- type: template
icon: mdi:mushroom
icon_color: red
card_mod:
style: |
.content {
<span class="hljs-attribute">animation</span>: spin <span class="hljs-number">3s</span> ease <span class="hljs-number">1.5s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> spin {
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">360deg</span>); }
}
</code></pre>
</details>
<h3>
<a name="to-the-chips-5"
class="anchor"
href="#to-the-chips-5"></a>To the Chips
</h3>
<p>The more complex but correct method is to add the <code>card_mod</code> to the Chips (parent) and then address each Chip (child). This is done by referencing the <code>mushroom-&lt;chip-type&gt;-chip:nth-child(x)</code> where x is the number of the Chip and <code>&lt;chip-type&gt;</code> is type of Chip, such as template, entity, light etc. So, if I wanted to reference the 5th Entity Chip I would use <code>mushroom-entity-chip:nth-child(5)</code> or the 2nd Template Chip <code>mushroom-template-chip:nth-child(2)</code>. The functionality of the GUI editor is retained with this method.</p>
<details>
<summary>
Chips Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-yaml" data-highlighted="yes"><span class="hljs-attr">type:</span> <span class="hljs-string">custom:mushroom-chips-card</span>
<span class="hljs-attr">chips:</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">type:</span> <span class="hljs-string">template</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">type:</span> <span class="hljs-string">template</span>
<span class="hljs-attr">content:</span> <span class="hljs-string">Mushroom</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:mushroom</span>
<span class="hljs-attr">icon_color:</span> <span class="hljs-string">red</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">type:</span> <span class="hljs-string">light</span>
<span class="hljs-attr">entity:</span> <span class="hljs-string">light.rocket_man</span>
<span class="hljs-attr">icon:</span> <span class="hljs-string">mdi:rocket-launch</span>
<span class="hljs-attr">name:</span> <span class="hljs-string">Rocket</span> <span class="hljs-string">Man</span>
<span class="hljs-attr">content_info:</span> <span class="hljs-string">name</span>
<span class="hljs-attr">card_mod:</span>
<span class="hljs-attr">style:</span>
<span class="hljs-string">mushroom-template-chip:nth-child(1)$:</span> <span class="hljs-string">|
ha-state-icon {
animation: boing 3s ease infinite;
transform-origin: 50% 90%;
}
@keyframes boing {
0% { transform: scale3d(1, 1, 1); }
7% { transform: scale3d(1.25, 0.75, 1); }
10% { transform: scale3d(0.75, 1.25, 1); }
12% { transform: scale3d(1.15, 0.85, 1); }
16% { transform: scale3d(0.95, 1.05, 1); }
19% { transform: scale3d(1.05, 0.95, 1); }
25% { transform: scale3d(1, 1, 1); }
}
</span> <span class="hljs-string">mushroom-template-chip:nth-child(2)$:</span> <span class="hljs-string">|
ha-state-icon {
animation: spin 3s ease 1.5s infinite;
}
@keyframes spin {
100% { transform: rotate(360deg); }
}
</span> <span class="hljs-string">mushroom-light-chip:nth-child(3)$:</span> <span class="hljs-string">|
ha-state-icon {
{{ 'animation: thrust 100ms infinite, motion 3s ease-in-out infinite;' if is_state('light.rocket_man', 'on') }}
}
@keyframes thrust {
0% { clip-path: polygon(0 0, 0 47%, 22% 57%, 28% 63%, 0 91%, 11% 100%, 37% 73%, 45% 77%, 55% 100%, 100% 100%, 100% 0%); }
33% { clip-path: polygon(0 0, 0 47%, 24% 59%, 42% 76%, 54% 100%, 100% 100%, 100% 0); }
66% { clip-path: polygon(0 0, 0 92%, 28% 64%, 36% 72%, 9% 100%, 100% 100%, 100% 0%); }
}
@keyframes motion {
0%, 100% { transform: translateY(-2px) translateX(-3px); }
50% { transform: translateY(3px) translateX(2px); }
}
</span></code></pre>
</details>
<h2>
<a name="even-more-mushroom-card-icon-animations-6"
class="anchor"
href="#even-more-mushroom-card-icon-animations-6"></a>Even More Mushroom Card Icon Animations
</h2>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/9/7/1979be23b7c7f38d0c61df9caddad29a0a8b4ee9.gif"
alt="Mushroom Monitor Animation"
data-base62-sha1="3DmLHqFydVATOcgOgi70QYSrCyd"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Monitor Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:monitor
icon_color: purple
primary: Monitor
card_mod:
style: |
ha-state-icon:before {
<span class="hljs-attribute">content</span>: <span class="hljs-string">""</span>;
<span class="hljs-attribute">position</span>: absolute;
<span class="hljs-attribute">width</span>: <span class="hljs-number">40%</span>;
<span class="hljs-attribute">height</span>: <span class="hljs-number">30%</span>;
<span class="hljs-attribute">margin</span>: <span class="hljs-number">6%</span>;
<span class="hljs-attribute">animation</span>: refresh <span class="hljs-number">300ms</span> linear infinite;
}
<span class="hljs-keyword">@keyframes</span> refresh {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">180deg</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-{{ config<span class="hljs-selector-class">.icon_color</span> }}), <span class="hljs-number">0.2</span>) <span class="hljs-number">0%</span>, transparent <span class="hljs-number">50%</span>, transparent <span class="hljs-number">100%</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">180deg</span>, transparent <span class="hljs-number">0%</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-{{ config<span class="hljs-selector-class">.icon_color</span> }}), <span class="hljs-number">0.2</span>) <span class="hljs-number">25%</span>, transparent <span class="hljs-number">100%</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">180deg</span>, transparent <span class="hljs-number">0%</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-{{ config<span class="hljs-selector-class">.icon_color</span> }}), <span class="hljs-number">0.2</span>) <span class="hljs-number">50%</span>, transparent <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">180deg</span>, transparent <span class="hljs-number">0%</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-{{ config<span class="hljs-selector-class">.icon_color</span> }}), <span class="hljs-number">0.2</span>) <span class="hljs-number">75%</span>, transparent <span class="hljs-number">100%</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">background</span>: <span class="hljs-built_in">linear-gradient</span>(<span class="hljs-number">180deg</span>, transparent <span class="hljs-number">0%</span>, transparent <span class="hljs-number">50%</span>, <span class="hljs-built_in">rgba</span>(<span class="hljs-built_in">var</span>(--rgb-{{ config<span class="hljs-selector-class">.icon_color</span> }}), <span class="hljs-number">0.2</span>) <span class="hljs-number">100%</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="66"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/c/a/8/ca81276413e5621fc4a03ac34b925e1f2ad3f856.gif"
alt="Mushroom Email Animation"
data-base62-sha1="sTr9UK4k6xCsbw3iS3eja1kFy86"
width="265"
height="66"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 66;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Email Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:email
icon_color: orange
primary: Email
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: email <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> email {
<span class="hljs-number">0%</span>, <span class="hljs-number">32%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
<span class="hljs-number">33%</span>, <span class="hljs-number">99%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
}
- type: custom:mushroom-template-card
icon: mdi:email-open
icon_color: orange
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: email-open <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> email-open {
<span class="hljs-number">0%</span>, <span class="hljs-number">32%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">33%</span>, <span class="hljs-number">65%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
<span class="hljs-number">66%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
}
- type: custom:mushroom-template-card
icon: mdi:email-newsletter
icon_color: orange
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">132px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: email-newsletter <span class="hljs-number">4s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> email-newsletter {
<span class="hljs-number">0%</span>, <span class="hljs-number">65%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">66%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="65"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/0/e/7/0e742b3302f15591d126028d54e2565e0b4f4c1d.gif"
alt="Mushroom Email #2 Animation"
data-base62-sha1="23RzEdCNLjmpEuat9KZPIbQ0Qc5"
width="265"
height="65"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 65;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Email #2 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:email
icon_color: orange
primary: <span class="hljs-string">'Email #2'</span>
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: email <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> email {
<span class="hljs-number">0%</span>, <span class="hljs-number">49%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
<span class="hljs-number">50%</span>, <span class="hljs-number">99%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
}
- type: custom:mushroom-template-card
icon: mdi:email-open
icon_color: orange
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: email-open <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> email-open {
<span class="hljs-number">0%</span>, <span class="hljs-number">49%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">50%</span>, <span class="hljs-number">99%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="265"
height="69"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/5/b/65b47eb23791ee5f2f38a592eb9d2cbc50598cbd.gif"
alt="Mushroom Christmas Tree #2 Animation"
data-base62-sha1="evIVQIFItENi4hXXG1JZ9R368XP"
width="265"
height="69"
class="animated"
loading="lazy"
style="aspect-ratio: 265 / 69;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Christmas Tree #2 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:pine-tree
icon_color: green
primary: <span class="hljs-string">'Christmas Tree #2'</span>
- type: custom:mushroom-template-card
icon: mdi:star-four-points
icon_color: yellow
primary: Star
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: star <span class="hljs-number">8s</span> ease infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> star {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">10px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">0deg</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">0.4</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">10px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">360deg</span>) <span class="hljs-built_in">scale</span>(<span class="hljs-number">0.6</span>); }
}
- type: custom:mushroom-template-card
icon: mdi:grain
icon_color: red
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">132px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: flash <span class="hljs-number">2s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite, lights <span class="hljs-number">2s</span> infinite;
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">51%</span> <span class="hljs-number">15%</span>, <span class="hljs-number">24%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">74%</span> <span class="hljs-number">74%</span>);
}
<span class="hljs-keyword">@keyframes</span> flash {
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotateY</span>(<span class="hljs-number">180deg</span>); }
}
<span class="hljs-keyword">@keyframes</span> lights {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> {<span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-red)); }
<span class="hljs-number">6.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-orange)); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-orange)); }
<span class="hljs-number">18.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-amber)); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-yellow)); }
<span class="hljs-number">31.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-lime)); }
<span class="hljs-number">37.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-green)); }
<span class="hljs-number">43.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-green)); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-teal)); }
<span class="hljs-number">56.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-cyan)); }
<span class="hljs-number">62.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-light-blue)); }
<span class="hljs-number">68.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-blue)); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-indigo)); }
<span class="hljs-number">81.25%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-deep-purple)); }
<span class="hljs-number">87.5%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-purple)); }
<span class="hljs-number">93.75%</span> { <span class="hljs-attribute">color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-built_in">var</span>(--rgb-pink)); }
}
- type: custom:mushroom-template-card
icon: mdi:gift
icon_color: red
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
<span class="hljs-attr">--icon-size</span>: <span class="hljs-number">18px</span>;
<span class="hljs-attribute">top</span>: <span class="hljs-number">18px</span>;
<span class="hljs-attribute">left</span>: <span class="hljs-number">18px</span>;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">198px</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: surprise <span class="hljs-number">4s</span> ease infinite;
}
<span class="hljs-keyword">@keyframes</span> surprise {
<span class="hljs-number">0%</span>, <span class="hljs-number">20%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">2.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">27deg</span>); }
<span class="hljs-number">5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">21deg</span>); }
<span class="hljs-number">7.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">2px</span>) <span class="hljs-built_in">rotate</span>(<span class="hljs-number">9deg</span>); }
<span class="hljs-number">12.5%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(<span class="hljs-number">0</span>); }
<span class="hljs-number">15%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateY</span>(-<span class="hljs-number">1.2px</span>) }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="266"
height="65"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/4/5/9/459b7a2b0d45ffc4608775d6ab22d0f0b64bb1a0.gif"
alt="Mushroom 3D Printing Animation"
data-base62-sha1="9VM3l45tM6ILbFuWkkT2uujK5JC"
width="266"
height="65"
class="animated"
loading="lazy"
style="aspect-ratio: 266 / 65;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
3D Printing Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:stack-in-card
cards:
- type: custom:mushroom-template-card
icon: mdi:printer-<span class="hljs-number">3</span>d-nozzle
icon_color: cyan
primary: <span class="hljs-number">3</span>D Printing
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">83%</span> <span class="hljs-number">72%</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>);
}
ha-card {
<span class="hljs-attr">--ha-card-border-width</span>: <span class="hljs-number">0</span>;
}
- type: custom:mushroom-template-card
icon: mdi:printer-<span class="hljs-number">3</span>d-nozzle
icon_color: cyan
primary: <span class="hljs-string">''</span>
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attr">--shape-color</span>: none;
}
.: |
ha-card {
<span class="hljs-attribute">width</span>: <span class="hljs-number">66px</span>;
<span class="hljs-attribute">top</span>: -<span class="hljs-number">66px</span>;
<span class="hljs-attr">--ha-card-border-width</span>: <span class="hljs-number">0</span>;
}
ha-state-<span class="hljs-attribute">icon</span> {
<span class="hljs-attribute">animation</span>: print <span class="hljs-number">1s</span> linear infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> print {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(<span class="hljs-number">4px</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">26%</span>); }
<span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translateX</span>(-<span class="hljs-number">4px</span>); <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">40%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">26%</span>); }
}
card_mod:
style: |
ha-card {
<span class="hljs-attribute">height</span>: <span class="hljs-number">66px</span>;
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/6/d/2/6d2323792803264dfe733add6103b7ba7b08323f.gif"
alt="Mushroom 3D Printer Animation"
data-base62-sha1="fztkm23Ne3YVxf7G1igZGXGvhfh"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
3D Printer Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: <span class="hljs-number">3</span>D Printer
icon: mdi:printer-<span class="hljs-number">3</span>d
icon_color: light-blue
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: print <span class="hljs-number">2s</span> infinite;
}
<span class="hljs-keyword">@keyframes</span> print {
<span class="hljs-number">0%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">51%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">10%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">49%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">49%</span> <span class="hljs-number">98%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">89%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">82%</span>, <span class="hljs-number">46%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">17%</span> <span class="hljs-number">82%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">20%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">46%</span> <span class="hljs-number">79%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">17%</span> <span class="hljs-number">82%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">30%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">45%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">36%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">17%</span> <span class="hljs-number">82%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">40%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">83%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">73%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">45%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">63%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">63%</span>, <span class="hljs-number">54%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">45%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">34%</span> <span class="hljs-number">63%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">60%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">66%</span> <span class="hljs-number">63%</span>, <span class="hljs-number">55%</span> <span class="hljs-number">69%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">32%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">54%</span>, <span class="hljs-number">20%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">76%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">68%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">60%</span> <span class="hljs-number">55%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">61%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">50%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">37%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">30%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">51%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">90%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">77%</span> <span class="hljs-number">51%</span>, <span class="hljs-number">67%</span> <span class="hljs-number">42%</span>, <span class="hljs-number">64%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">34%</span>, <span class="hljs-number">50%</span> <span class="hljs-number">36%</span>, <span class="hljs-number">39%</span> <span class="hljs-number">40%</span>, <span class="hljs-number">31%</span> <span class="hljs-number">44%</span>, <span class="hljs-number">30%</span> <span class="hljs-number">35%</span>, <span class="hljs-number">41%</span> <span class="hljs-number">33%</span>, <span class="hljs-number">85%</span> <span class="hljs-number">53%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">52%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/7/b/5/7b5fe3884a04409fd0a4ed73a09df90da62b1796.gif"
alt="Mushroom Auto Fix #2 Animation"
data-base62-sha1="hBqawcGMEvB1uWcGBaG541zR1jg"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Auto Fix #2 Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:auto-fix
icon_color: cyan
primary: <span class="hljs-string">'Auto Fix #2'</span>
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: sparkle <span class="hljs-number">2s</span> linear infinite, kadabra <span class="hljs-number">2s</span> ease-in-out infinite;
<span class="hljs-attribute">transform-origin</span>: <span class="hljs-number">10%</span> <span class="hljs-number">90%</span>
}
<span class="hljs-keyword">@keyframes</span> sparkle {
<span class="hljs-number">0%</span>, <span class="hljs-number">68%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">1%</span> <span class="hljs-number">75%</span>, <span class="hljs-number">56%</span> <span class="hljs-number">22%</span>, <span class="hljs-number">80%</span> <span class="hljs-number">43%</span>, <span class="hljs-number">26%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">69%</span>, <span class="hljs-number">74%</span>, <span class="hljs-number">79%</span>, <span class="hljs-number">85%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">76%</span>, <span class="hljs-number">75%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">39%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">62%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>, <span class="hljs-number">100%</span> <span class="hljs-number">26%</span>, <span class="hljs-number">25%</span> <span class="hljs-number">100%</span>); }
}
<span class="hljs-keyword">@keyframes</span> kadabra {
<span class="hljs-number">0%</span>, <span class="hljs-number">65%</span>, <span class="hljs-number">100%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(-<span class="hljs-number">15deg</span>); }
<span class="hljs-number">70%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">20deg</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">15deg</span>); }
<span class="hljs-number">80%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">rotate</span>(<span class="hljs-number">25deg</span>); }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="263"
height="67"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/d/3/0/d30a8ffae0a7ac54a580792457ac42fef0453fab.gif"
alt="Mushroom Vroom Animation"
data-base62-sha1="u6XnjUSw0VSRsfkul2Dwz4ac54v"
width="263"
height="67"
class="animated"
loading="lazy"
style="aspect-ratio: 263 / 67;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Vroom Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
icon: mdi:car-hatchback
icon_color: red
primary: Vroom
card_mod:
style:
mushroom-shape-icon$: |
.shape {
<span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>);
}
.: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: vroom <span class="hljs-number">2s</span> ease-in-out infinite;
}
<span class="hljs-keyword">@keyframes</span> vroom {
<span class="hljs-number">49%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>;}
<span class="hljs-number">50%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(<span class="hljs-number">32px</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">51%</span> { <span class="hljs-attribute">transform</span>: <span class="hljs-built_in">translate</span>(-<span class="hljs-number">32px</span>); <span class="hljs-attribute">opacity</span>: <span class="hljs-number">0</span>; }
<span class="hljs-number">52%</span> { <span class="hljs-attribute">opacity</span>: <span class="hljs-number">1</span>; }
}
</code></pre>
</details>
<p>
<div class="pausable-animated-image paused-animated-image">
<canvas width="264"
height="64"
aria-hidden="true"
role="presentation"></canvas>
<img src="https://community-assets.home-assistant.io/original/4X/1/8/d/18d01fa7551d8f0b9cfa64e5a9f2171de7369e97.gif"
alt="Mushroom Double Garage Animation"
data-base62-sha1="3xvms61ISmeJiJHIZem7n44Jwz5"
width="264"
height="64"
class="animated"
loading="lazy"
style="aspect-ratio: 264 / 64;">
<div class="animated-image-overlay"
aria-hidden="true"
role="presentation">
<svg class="fa d-icon d-icon-pause svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#pause"></use>
</svg>
<svg class="fa d-icon d-icon-play svg-icon svg-string"
xmlns="http://www.w3.org/2000/svg">
<use href="#play"></use>
</svg>
</div>
</div>
</p>
<details>
<summary>
Double Garage Animation (changed)
</summary>
<pre class="codeblock-buttons"><div class="codeblock-button-wrapper" style="right: 0px;"><button class="btn nohighlight copy-cmd" aria-label="copy code to clipboard"><svg class="fa d-icon d-icon-copy svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#copy"></use></svg></button><button class="btn nohighlight fullscreen-cmd" aria-label="show code in full screen"><svg class="fa d-icon d-icon-discourse-expand svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#discourse-expand"></use></svg></button></div><code class="hljs language-css" data-highlighted="yes">type: custom:mushroom-template-card
primary: Double Garage
icon: mdi:garage-variant
icon_color: amber
card_mod:
style: |
ha-state-icon {
<span class="hljs-attribute">animation</span>: door <span class="hljs-number">3s</span> <span class="hljs-built_in">steps</span>(<span class="hljs-number">1</span>) infinite alternate;
}
<span class="hljs-keyword">@keyframes</span> door {
<span class="hljs-number">0%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">inset</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">25%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">19%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">19%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">74%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">50%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">19%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">19%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">60%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
<span class="hljs-number">75%</span> { <span class="hljs-attribute">clip-path</span>: <span class="hljs-built_in">polygon</span>(<span class="hljs-number">0</span> <span class="hljs-number">0</span>, <span class="hljs-number">0</span> <span class="hljs-number">100%</span>, <span class="hljs-number">19%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">19%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">48%</span>, <span class="hljs-number">81%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">100%</span>, <span class="hljs-number">100%</span> <span class="hljs-number">0</span>); }
}
</code></pre>
</details>
<p>Updated Posts <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"><br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7717">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7719">Part 2</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7723">Part 3</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/7725">Part 4</a>, Part 5<br>
Original Posts by <a class="mention"
href="/u/rhysb">@rhysb</a> <img src="https://community.home-assistant.io/images/emoji/twitter/point_down.png?v=10"
title=":point_down:"
class="emoji"
alt=":point_down:"
loading="lazy"> please only like his posts.<br>
<a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3240">Part 1</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3256">Part 2</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3272">Part 3</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/3348">Part 4</a>, <a href="https://community.home-assistant.io/t/mushroom-cards-build-a-beautiful-dashboard-easily/388590/4043">Part 5</a>
</p>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment