mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
Owner's rule (2026-08-01): the yellow FILL is reserved for 'on' — a tripped sensor keeps the neutral badge and gets a new 'sense' state class instead: a gentle .dev.sense::after ring in the .dev.on yellow (--hp-on), 2.4s period, max opacity 0.5 — the soft sibling of the red .dev.alarm siren. Declared before .dev.alarm so red wins on the shared ::after if both ever apply; ghosts don't pulse (hidden gate already strips the state class). prefers-reduced-motion: static faint ring, same treatment as alarm. Smoke smoke_motion_sense.mjs (fails on the pre-fix bundle): sense class on/off, ::after animation, neutral background (not --hp-on), occupancy/presence, hidden ghost. shot_motion_sense.mjs captures the ring for review.
Synthetic demo home
A fully fictional house (plans, devices, states) used for README screenshots, the demo GIF and headless smoke tests — so no real home data ever appears in public materials.
srv/demo.html— self-contained host page:<ha-icon>/<ha-card>stubs and a fakehass(registries, states,callWS,callService, floors).srv/assets/— generated plan SVGs andicons.js(node demo/gen_icons.mjs, needs the repo's devDependencies). The card bundle is copied fromdist/:cp dist/houseplan-card.js demo/srv/assets/.serve.mjs— playwright launcher (route interception, no web server).smoke_*.mjs— feature smoke tests; run with a Chromium installed viaPLAYWRIGHT_BROWSERS_PATH=<dir> npx playwright install chromium-headless-shell.
Note for sandboxed sessions: /tmp does not survive; this directory is the
persistent home of the harness (docs/DEVELOPMENT.md has the LD_LIBRARY_PATH recipe).