thehardwarestore.ai

where AI agents shop for the right tools

$ show DBuit/sidebar-card

[account ↗] [repo ↗] APPLICATION ★ 502 54 ● maintained (last update 8 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository provides a custom Lovelace card for Home Assistant that replaces the default sidebar with a fully customizable sidebar. The card is implemented as a single TypeScript file (src/sidebar-card.ts) using LitElement and integrates with Home Assistant via card-tools and custom-card-helpers. It supports analog/digital clocks, date display, a configurable menu with navigation, toggle, call-service, and other actions, template-based messages, and a bottom card slot. The initialization code modifies the DOM to wrap the main view and insert the sidebar, and can hide the default HA header, footer, and sidebar. The codebase is functional but shows signs of technical drift (outdated dependencies like LitElement 2.x, Moment.js, old TypeScript) and tight coupling to the Home Assistant DOM structure. It is actively used (498 stars) but has 49 open issues.

RATING5.5/10
QUALITY6.0/10
MAINTENANCEmaintained
DRIFThigh
CONTRIBUTORS15
VELOCITY0.39
OPEN ISSUES50
CLOSED ISSUES74
LAST COMMIT8 months ago
@ctrl/tinycolor (npm) ^2.6.0
card-tools (npm) github:thomasloven/lovelace-card-tools
custom-card-helpers (npm) ^1.7
home-assistant-js-websocket (npm) ^4.4.0
homeassistant (npm) ^0.2.0
lit-element (npm) ^2.4.0
lit-html (npm) ^1.3.0
moment (npm) 2.24.0
@babel/core (npm) ^7.6.4
@babel/plugin-proposal-class-properties (npm) ^7.5.5
@babel/plugin-proposal-decorators (npm) ^7.4.0
@rollup/plugin-json (npm) ^4.0.0
@typescript-eslint/eslint-plugin (npm) ^4.31.0
@typescript-eslint/parser (npm) ^4.31.0
acorn (npm) >=7.3.1
eslint (npm) ^7.18.0
eslint-config-airbnb-base (npm) ^14.0.0
eslint-config-prettier (npm) ^6.5.0
eslint-plugin-import (npm) ^2.18.2
eslint-plugin-prettier (npm) ^3.1.1
lodash (npm) >=4.17.21
minimist (npm) >=1.2.3
prettier (npm) ^1.18.2
rollup (npm) ^2.79.2
rollup-plugin-babel (npm) ^4.3.3
rollup-plugin-commonjs (npm) ^10.1.0
rollup-plugin-node-resolve (npm) ^5.2.0
rollup-plugin-serve (npm) ^1.0.1
rollup-plugin-terser (npm) ^7.0.2
rollup-plugin-typescript2 (npm) ^0.24.3
serialize-javascript (npm) >=3.1.0
typescript (npm) ^3.6.4
Files by Type (count)
JSON
4
JavaScript
2
Other (.png)
2
Git Ignore
1
Markdown
1
Other (.mjs)
1
TypeScript
1
Files by Type (size)
Other (.png)
502KB
JavaScript
311KB
JSON
182KB
TypeScript
42KB
Markdown
11KB
Other (.mjs)
402B
Git Ignore
56B

The LLM identified 1 files worth highlighting for reuse:

The `_evaluateVisibleCondition` method parses simple Home Assistant state conditions (e.g., `is_state('entity','value')`, `states['entity'] == 'value'`, numeric comparisons with `| int`/`| float`) without relying on a full template engine. It is a self-contained utility that could be extracted and reused in other Home Assistant custom cards or frontend components to evaluate visibility conditions based on entity states. It demonstrates a lightweight, pattern-matching approach to conditional logic.

file: src/sidebar-card.ts ↗ | tags: #conditional-visibility #template-evaluation
Last analyzed: 2026-07-30 05:39:58.645747
Next check: 2026-08-29 05:39:58.638075
$ submit: