Skip to content

Releases: cataseven/Strip-Card

🐛 Bug fix

Choose a tag to compare

@cataseven cataseven released this 06 Aug 07:29
83ecfef

Minor Bug fix and Readme update

🐛 Bug fix

Choose a tag to compare

@cataseven cataseven released this 30 Jul 15:13
a3f9631

Bug fix for the issue

✨ New Features & ⬆️ Improvements & 🐛 Bug fixes

Choose a tag to compare

@cataseven cataseven released this 10 Jul 21:32
73dc2d3

✨ New Features

📈 Trend indicators — stock‑ticker mode (#24)

Color values red/green, add up/down arrows and show the change or percent next to the value. Works great for stocks, crypto, energy prices and sports scores.

animate
type: custom:strip-card
title: ""
entities:
  - entity: sensor.binance_futures_market_binance_futures_btcusdt_price
    name: BTC
    icon: mdi:bitcoin
    trend:
      up_color: "#00FF00"
      down_color: "#FF0000"
  - entity: sensor.binance_futures_market_binance_futures_btcdomusdt_price
    name: BTC Dominance
    icon: mdi:bitcoin
    trend:
      up_color: "#00FF00"
      down_color: "#FF0000"
- entity: sensor.aapl
  name: AAPL
  trend:
    source: baseline           # memory | attribute | baseline
    baseline: previous_close
    show_delta: percent        # → AAPL: 213.40 ▲ +1.6%

Three change sources: memory (direction of the last observed change), attribute (an attribute that already holds a signed change, e.g. change), baseline (an attribute holding a reference value, e.g. previous_close). Fully configurable: threshold, show_arrow, up_icon/down_icon, show_delta (absolute/percent), delta_precision, up_color/down_color/flat_color, apply_to (value/name/unit/icon/arrow). Set trend: at card level to apply to all entities, and use the new trend / delta / prev_value template variables anywhere. Also editable from the UI editor.

⚡ Jinja conditionals now run locally

A if C else B (chainable), and / or / not, is none, is not none, is defined and True/False/None are now compiled and evaluated instantly in the browser — no server round‑trip:

value_color: "{{ 'limegreen' if trend == 'up' else 'red' if trend == 'down' else 'gray' }}"

🔌 Instant server templates (WebSocket push)

Templates that still need the HA server (full Jinja) now use a WebSocket render_template subscription: the server pushes a new result the moment any referenced entity changes. The old 30‑second REST polling remains only as an automatic fallback for older setups.

🌍 Locale‑aware number formatting

format_number: true (global or per entity) renders numeric values with the HA user's locale — 1,234.5 vs 1.234,5 — preserving the original decimals.

🔋 New toggles

  • pause_when_hidden (default true) — scrolling pauses while the card is off‑screen or the tab is hidden; great for wall tablets.
  • respect_reduced_motion (default true) — honors the OS "reduce motion" accessibility setting.

🐛 Bug Fix

Choose a tag to compare

@cataseven cataseven released this 06 Jul 09:31
4ce21f6

Bug fix for Value Template Not Rendering - #23

✨ New Features

Choose a tag to compare

@cataseven cataseven released this 02 May 12:24
2a63c0b

✨ New Features

value variable in templates

You no longer need to repeat the entity name inside value_template. A new value variable is automatically available, holding the current state of the entity (or the attribute value, if attribute is set).

Before:

- entity: sensor.newgaragesensor_garage_temperature
  value_template: "{{ states('sensor.newgaragesensor_garage_temperature') | round(1) }}"
  name: Garage
- entity: sensor.newgaragesensor_garage_humidity
  value_template: "{{ states('sensor.newgaragesensor_garage_humidity') | round(1) }}"
  name: Garage RH

After:

- entity: sensor.newgaragesensor_garage_temperature
  value_template: "{{ value | round(1) }}"
  name: Garage
- entity: sensor.newgaragesensor_garage_humidity
  value_template: "{{ value | round(1) }}"
  name: Garage RH

The value variable also works inside visible_if:

- entity: sensor.garage_temperature
  visible_if: "{{ value | float > 30 }}"
  value_template: "{{ '%.1f °C' | format(value | float) }}"

✨ New Features & 🐛 Bug Fix

Choose a tag to compare

@cataseven cataseven released this 03 Apr 11:12
4c6ec4f

New Features

Hide When Empty

The card can now completely hide itself when all entities are filtered out by visible_if. No more empty cards taking up space on your dashboard.

type: custom:strip-card
title: ""
hide_when_empty: true
entities:
  - entity: sun.sun
    name: Sun
    visible_if: "{{ float(states('sensor.temperature')) > 23 }}"

When at least one entity becomes visible again, the card reappears automatically. Available in the editor under Toggles.

Click to Pause/Resume

You can now click the card to pause and resume scrolling. Click once to stop, click again to start.

pause_on_click: true

Clicking on an entity still triggers its tap action as usual — the pause toggle only activates when you click the space between items or on the separator. Works alongside pause_on_hover. Available in the editor under Toggles.

Bug Fixes

Separator Spacing

Fixed uneven spacing around the separator character. Previously, the gap after the separator was roughly twice the size of the gap before it. The separator is now rendered as an independent element with equal spacing on both sides.

✨ New Features & 🔧 Improvements

Choose a tag to compare

@cataseven cataseven released this 02 Apr 14:30
37f90e1

HA 2026.4 Compatibility

Strip Card editor now fully works with Home Assistant 2026.4. All input fields, dropdowns, toggles, and entity pickers render correctly after the migration.

Redesigned Editor

The card editor has been completely redesigned with a modern, clean interface.

  • Tabbed layout — Global Settings are organized into four tabs: Layout, Toggles, Sizing, and Colors. No more endless scrolling through settings.
  • Entity tabs — Each entity now has its own tabs: General, Display, Colors, and Actions. Related settings are grouped together.
  • Friendly names — Entity headers in the editor now show the entity's friendly name instead of the entity ID.
  • Native controls — Dropdowns, text fields, and toggle switches work reliably across all HA versions.
ui2

New Features

Separator Styling

You can now customize the separator character's appearance independently from the rest of the card:

  • Separator color — Any CSS color value or theme variable (e.g. var(--primary-color))
  • Separator font size — Independent from the card's main font size
  • Separator font weight — Choose from Light, Normal, Medium, Semi-Bold, Bold, or Black

These options are available under Global Settings → Sizing (weight & font size) and Global Settings → Colors (color).

Changed Defaults

The following defaults have been updated for a better out-of-the-box experience:

Setting Old Default New Default
Show icon Off On
Fading edges Off On
Badge background Background color Primary color
Badge value color Text color Primary color
Badge label color Secondary text Primary text

Note: These changes only affect newly created cards. Your existing cards will keep their current settings.

Bug Fixes

  • Fixed entity picker not appearing in the editor
  • Fixed dropdown menus not responding to clicks
  • Fixed input field backgrounds blending into the card background
  • New entities added via the editor no longer create unnecessary null fields in YAML

🐛 Bug Fix

Choose a tag to compare

@cataseven cataseven released this 01 Apr 10:22
d263cc4

Bug Fix for the issue with old ipads - Link

⤴️Improvements and 🛠️ Bug Fix

Choose a tag to compare

@cataseven cataseven released this 11 Feb 08:03
e6c0083

🛠️ Bug Fix

  • Bug fix for the templating Bug

⤴️Improvements

  • UI Editör CSS update for more fresh look
  • Optimization for slow systems. Expecting less CPU and RAM consumption

Hot fix on V2.0.2

Choose a tag to compare

@cataseven cataseven released this 19 Jan 11:35

Hot fix on V2.0.2

🚀 New

🔁 repeat_on: repeat an entity config over an array

You can now fan out a single entity configuration into multiple “virtual items” based on an array returned by a template.

  • Add repeat_on to an entity entry.
  • The repeat_on template should return an array (e.g., an attribute that contains a list of objects).
  • The card will render one ticker item per array element.

This unlocks use cases like:

  • Weather alert lists (attribute arrays)
  • To-do lists
  • Forecast arrays

🧩 Template variables (available when repeat_on is used)

When an entity uses repeat_on, the following variables are injected into templates:

  • 🧱 item — the current array element (often an object)
  • 🔢 index — the 0-based index of the item
  • 🏷️ entity — the entity id of the source entity (e.g., sensor.nws_alerts)
  • 📦 stateObj — the full state object for that entity

These variables can be used in:

  • visible_if
  • value_template
  • name
  • unit
  • Color fields (*_color, badge_*), and icon

🧪 Example

If your sensor returns below attributes

Alerts:
  - Event: Cold Weather Advisory
    ID: 66aebbdf-c1cf-7004-04ac-7946e90c7c17
    URL: >-
      https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.c9655a94fdf1f8075e3ee0334a04035d67c91766.001.1
    Headline: COLD WEATHER ADVISORY REMAINS IN EFFECT UNTIL NOON CST MONDAY
    Type: Update
    Status: Actual
    Severity: Moderate
    Certainty: Likely
    Sent: "2026-01-18T13:41:00-06:00"
    Onset: "2026-01-18T13:41:00-06:00"
    Expires: "2026-01-18T21:45:00-06:00"
    Ends: "2026-01-19T12:00:00-06:00"
    AreasAffected: >-
      West Polk; Norman; Clay; Kittson; Roseau; Lake Of The Woods; West
      Marshall; East Marshall; North Beltrami; Pennington; Red Lake; East Polk;
      North Clearwater; South Beltrami; Mahnomen; South Clearwater; Hubbard;
      West Becker; East Becker; Wilkin; West Otter Tail; East Otter Tail;
      Wadena; Grant; Towner; Cavalier; Pembina; Benson; Ramsey; Eastern Walsh
      County; Eddy; Nelson; Grand Forks; Griggs; Steele; Traill; Barnes; Cass;
      Ransom; Sargent; Richland; Western Walsh County
    Description: |-
      * WHAT...Very cold wind chills as low as 40 below expected.

      * WHERE...Portions of central, north central, northwest, and west
      central Minnesota and northeast and southeast North Dakota.

      * WHEN...Until noon CST Monday.

      * IMPACTS...The dangerously cold wind chills as low as 40 below zero
      could cause frostbite on exposed skin in as little as 10 minutes.
    Instruction: |-
      Use caution while traveling outside. Wear appropriate clothing, a
      hat, and gloves.
  - Event: Blizzard Warning
    ID: 2274a010-f718-6266-76a7-5af3756f64ab
    URL: >-
      https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.713fd1c091afc8d7b3dfdd2926996c99e484b2d7.002.1
    Headline: BLIZZARD WARNING REMAINS IN EFFECT UNTIL 9 PM CST THIS EVENING
    Type: Update
    Status: Actual
    Severity: Extreme
    Certainty: Likely
    Sent: "2026-01-18T13:40:00-06:00"
    Onset: "2026-01-18T13:40:00-06:00"
    Expires: "2026-01-18T21:00:00-06:00"
    Ends: "2026-01-18T21:00:00-06:00"
    AreasAffected: >-
      Norman; Clay; Roseau; East Marshall; Pennington; Red Lake; East Polk;
      Mahnomen; West Becker; Wilkin; West Otter Tail; Grant; Barnes; Cass;
      Ransom; Sargent; Richland
    Description: |-
      * WHAT...Blizzard conditions. Additional snow accumulations up to
      one inch. Winds gusting as high as 55 mph.

      * WHERE...Portions of northwest and west central Minnesota and
      southeast North Dakota.

      * WHEN...Until 9 PM CST this evening.

      * IMPACTS...Whiteout conditions are expected and will make travel
      treacherous and potentially life-threatening.
    Instruction: |-
      Persons should consider delaying all travel. Motorists should use
      extreme caution if travel is absolutely necessary.
configuration_type: GPS Location
gps_location: 46.7258996,-97.1193751
attribution: Data provided by Weather.gov
icon: mdi:alert
friendly_name: NWS Alerts Alerts

w2

type: custom:strip-card
entities:
  - entity: sensor.nws_alerts
    repeat_on: "{{ state_attr(entity, 'Alerts') }}"
    value_template: "{{ item.Description }}"
    name: "{{ item.Headline  }}"
    visible_if: "{{ item.Status == 'Actual' }}"
duration: "0"
separator: "|"
font_size: 20px
scroll_speed: "100"
grid_options:
  columns: full
  rows: auto

✅ Example: Weather Attributes Strip

w1

type: custom:strip-card
entities:
  - entity: weather.home
    name: Temp
    attribute: temperature
    unit: "{{ state_attr(entity, 'temperature_unit') }}"
  - entity: weather.home
    name: Feels
    attribute: apparent_temperature
    unit: "{{ state_attr(entity, 'temperature_unit') }}"
  - entity: weather.home
    name: Dew
    attribute: dew_point
    unit: "{{ state_attr(entity, 'temperature_unit') }}"
  - entity: weather.home
    name: Humidity
    attribute: humidity
    unit: "%"
  - entity: weather.home
    name: Clouds
    attribute: cloud_coverage
    unit: "%"
  - entity: weather.home
    name: UV
    attribute: uv_index
  - entity: weather.home
    name: Pressure
    attribute: pressure
    unit: "{{ state_attr(entity, 'pressure_unit') }}"
  - entity: weather.home
    name: Wind
    value_template: >-
      {{ state_attr(entity, 'wind_speed') }} {{ state_attr(entity,
      'wind_speed_unit') }}
  - entity: weather.home
    name: Gust
    value_template: >-
      {{ state_attr(entity, 'wind_gust_speed') }} {{ state_attr(entity,
      'wind_speed_unit') }}
  - entity: weather.home
    name: Visibility
    attribute: visibility
    unit: "{{ state_attr(entity, 'visibility_unit') }}"

📨 Message if template is empty

  • you can use empty_message in case your template may returns null for a while.

👁️ Visibility semantics

  • ✅ visible_if is evaluated per item (using item, index, etc.).
  • 🚫 If repeat_on returns undefined, null, false, an empty string, or an empty array, the entity produces no items (it will not be visible).

🛠️ Editor

  • 🧰 Added a new UI field in the entity editor:

    • “Repeat on (template returns array)”

✅ Backwards compatibility

  • Existing configurations without repeat_on continue to behave as before.
  • repeat_on is optional; when omitted, the entity renders as a single item.