[Custom Card] Room Card - Visual, Clean, Grid-Based & Zero YAML

Hi everyone,

I wanted to share my first custom card with you all.
I was looking for a room card that is compact, visually customizable, and allows for a flexible grid layout without having to mess with complex YAML nesting.

So I built the Room Card.

It focuses on stability, performance (Vanilla JS), and usability. Everything can be configured directly via the visual editor.

:sparkles: Key Features

  • :computer_mouse: Visual Editor: Configure everything in the UI – no YAML required.
  • :straight_ruler: Flexible Grid: You decide if a button takes 1/3, 1/4, or 1/6 of the row width.
  • :battery: Smart Chips: Automatically shows active devices (e.g., open windows, low batteries, high humidity).
  • :up_down_arrow: Custom Heights: Make important buttons taller for better accessibility.
  • :high_voltage: Fast: Written in Vanilla JS with no external dependencies.

:inbox_tray: Installation

The card is ready to be installed via HACS (Custom Repository):

  1. Open HACS.
  2. Go to “Custom Repositories” (top right menu).
  3. Add URL: https://github.com/lop1505/RoomCard
  4. Category: Lovelace (or Dashboard in newer versions).
  5. Click “Install”.

Or check out the code and documentation on GitHub:
:backhand_index_pointing_right: GitHub Repository

I’d love to hear your feedback and suggestions!

Cheers,
OneLine

1 Like

Looks pretty good, but everything is in German and my German is very rusty.

2 Likes

Thanks for the feedback! I’ve just released Version 1.0.3, which now includes full support for English and French. You should be able to update and use it in your preferred language now. Let me know if everything works for you!

1 Like

You can now use this direct installation link to add the card, as I have just fixed two critical bugs in version 1.0.4.
Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

Hey everyone, I just pushed a major update (v1.0.7) for the OneLine Room Card regarding stability and flexibility!

1. :no_entry_sign: Renaming to avoid conflicts To prevent clashes with other existing “room-card” projects, I have officially scoped the card name.

  • New Type: custom:oneline-room-card
  • Old Type: custom:room-card (Now displays a migration warning)

2. :us: Dynamic Unit Support (“Freedom Units”) No more hardcoded Celsius! The card now automatically detects your Home Assistant system settings. Whether you use Fahrenheit, Celsius, the card adapts instantly without manual config.

:point_right: How to update:

  1. Update via HACS to v1.0.7.
  2. Clear your browser cache (Ctrl + F5) – Important!
  3. Update your YAML configuration to the new type: type: custom:oneline-room-card.

Enjoy the update!

Small update on the Room Card :slightly_smiling_face:

I’ve been working a bit more on the Room Card over the past weeks, mainly focusing on improving UX and overall performance.

GitHub Releases:

v1.0.9 – UX & Editor Power-Update

v1.1.0 – Performance & Behavior Improvements

The most important changes in short:

:jigsaw: Editor is much cleaner and more flexible (free label/status positioning, collapsible sections, improved layout)

:eye: New Conditional tab to show the card only when defined conditions match

:art: Header icon now reacts dynamically to entity state, just like the buttons

:no_entry_sign: Offline / unavailable entities are handled more clearly and can’t be toggled accidentally

:zap: Less unnecessary updates → noticeably smoother on larger dashboards

Everything remains fully backward compatible — no breaking changes :slightly_smiling_face:

If anyone wants to try it or has feedback or ideas, feel free to share!

v1.2.2 released! :tada:

Here’s what’s new:

  • Collapsible card – Click the header to toggle the button grid (collapsible: true)
  • Configurable header height – Adjust or fully hide the header image area (header_height)
  • Inline Slider & Buttons – Control brightness/position directly on the tile (control_mode: slider/buttons)
  • Dynamic state icons – Icons automatically switch based on entity state
  • Custom header badges – Show any entity in the header with optional colored background
  • Fix: Quick Add type selector no longer resets on HA state updates (#32)

No breaking changes — existing configs continue to work.

:arrow_right: GitHub Release

:rocket: OneLine Room Card — What’s new since v1.2.2 (now at v1.2.5)
A lot has happened over the last three releases — here’s a full summary of everything that landed since v1.2.2. No breaking changes, existing configs continue to work.

v1.2.3 — Header Typography
:art: The header area now supports full visual customization directly in the editor — no YAML required. Room name and info line can each be styled independently with font size, weight, style, and color.

v1.2.4 — Controls & Editor Overhaul
:control_knobs: Climate Inline Slider — Direct target temperature control on climate buttons without opening a detail dialog. Shows current and target temperature live while dragging.
:card_index_dividers: Dedicated Buttons Tab — Button configuration moved to its own tab. The former “General” section split into “Card Behavior” and “Header” for a much cleaner editing experience.
:art: State-Dependent Colors — Buttons can now change icon color and background automatically based on entity state, with an optional default fallback.
:triangular_ruler: Configurable Icon Size — Set a custom icon size per button or a global default for all buttons.
:round_pushpin: Info Line Position Slider — Drag the title and info line left/right across the header with snap points at left, center, and right.
:art: Button Backgrounds — Per-button and global background color, plus CSS custom properties for card-mod users.
:thermometer: Cover Position Presets — Tap-to-set position presets directly on cover buttons. Default: 0% / 50% / 100%, fully customizable.
:thermometer: Climate Temperature Presets — Tap-to-set fixed temperatures, auto, max, or off directly on climate buttons.
:bulb: Light Color Favorites — Tap-to-set RGB color swatches on light buttons with active color highlighting.

v1.2.5 — Area Setup, Sensors & More
:zap: Area Auto-Setup — Bind the card to a HA Area and click “Generate from Area” — buttons, climate, sensors, window/door sensors, and batteries are populated automatically. No manual entity selection needed.
:jigsaw: Sub-Chips on Buttons — Small overlay chips on button tiles showing sensor values, entity states, or attributes — configurable with icon, label, and top/bottom position.
:eye: Conditional Button Visibility — Uses the native HA conditions editor, identical to the card visibility tab. Supports State, Numeric State, Time, User, AND/OR/NOT and more.
:rotating_light: Alert Sensors — Threshold logic (above / below / state), active alerts highlight the card border. A collapsed mode shows a count badge with a popup on click.
:chart_with_upwards_trend: Sensor Sparklines — Renders a mini history chart directly on the tile with configurable history range and auto-refresh.
:clock1: Time Since Last Change — Shows elapsed time per button (just now, 12 min, 2h 15min). Combined with state renders as “on · 2h”. A card-level option shows the most recently changed entity as a header badge.
:window: Multi-State Window/Door Sensors — Support for arbitrary sensor domains, custom open states, and per-state color overrides.
:thermometer: Color Temperature Slider — Kelvin Support — Full support for Kelvin-native lights with correct range, gradient, and service call.
:card_index_dividers: Unified Collapse Mode — Three separate options replaced by a single dropdown: Disabled, Collapsed, Expanded, or Remember.
:hammer_and_wrench: Editor Fixes — Scroll no longer jumps after changes, color applies automatically when a value is present, conditions editor no longer destroyed while editing.

Update via HACS: HACS → Frontend → OneLine Room Card → Update
:link: Release v1.2.5 · lop1505/RoomCard · GitHub
If you enjoy the card, consider buying me a coffee — it keeps the project going! :coffee:
https://buymeacoffee.com/oneline1505​​​​​​​​​​​​​​​​