From 8ddf34f3ac18b2d3bf505404ae0e2d06fc76f72d Mon Sep 17 00:00:00 2001 From: Matysh Date: Thu, 16 Jul 2026 15:08:45 +0300 Subject: [PATCH] style v1.21.3: drop the text shadow on room name labels --- custom_components/houseplan/const.py | 2 +- custom_components/houseplan/frontend/houseplan-card.js | 3 +-- custom_components/houseplan/manifest.json | 2 +- dist/houseplan-card.js | 3 +-- docs/CHANGELOG.md | 4 ++++ docs/STATUS.md | 2 +- docs/TESTING.md | 2 +- package.json | 2 +- src/houseplan-card.ts | 2 +- src/styles.ts | 1 - 10 files changed, 12 insertions(+), 11 deletions(-) diff --git a/custom_components/houseplan/const.py b/custom_components/houseplan/const.py index bbb044e..74f5171 100755 --- a/custom_components/houseplan/const.py +++ b/custom_components/houseplan/const.py @@ -11,7 +11,7 @@ PLANS_DIR = "houseplan/plans" # relative to the HA configuration directory FILES_URL = "/houseplan_files/files" FILES_DIR = "houseplan/files" CONF_ADMIN_ONLY = "admin_only" -VERSION = "1.21.2" +VERSION = "1.21.3" DEFAULT_CONFIG: dict = { "spaces": [], diff --git a/custom_components/houseplan/frontend/houseplan-card.js b/custom_components/houseplan/frontend/houseplan-card.js index 54fc896..cb90b89 100755 --- a/custom_components/houseplan/frontend/houseplan-card.js +++ b/custom_components/houseplan/frontend/houseplan-card.js @@ -238,7 +238,6 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow cursor: grab; pointer-events: auto; user-select: none; - text-shadow: 0 0 4px var(--card-background-color, rgba(0, 0, 0, 0.6)); z-index: 1; } .roomlabel:active { cursor: grabbing; } @@ -1473,4 +1472,4 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow - `}}Mi.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_markup:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Mi.styles=li,customElements.get("houseplan-card")||customElements.define("houseplan-card",Mi),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.21.2 ","background:#3ea6ff;color:#04121f;font-weight:700",""); + `}}Mi.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_markup:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Mi.styles=li,customElements.get("houseplan-card")||customElements.define("houseplan-card",Mi),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.21.3 ","background:#3ea6ff;color:#04121f;font-weight:700",""); diff --git a/custom_components/houseplan/manifest.json b/custom_components/houseplan/manifest.json index 667f9df..723c6d3 100755 --- a/custom_components/houseplan/manifest.json +++ b/custom_components/houseplan/manifest.json @@ -16,5 +16,5 @@ "issue_tracker": "https://github.com/Matysh/houseplan-card/issues", "requirements": [], "single_config_entry": true, - "version": "1.21.2" + "version": "1.21.3" } diff --git a/dist/houseplan-card.js b/dist/houseplan-card.js index 54fc896..cb90b89 100755 --- a/dist/houseplan-card.js +++ b/dist/houseplan-card.js @@ -238,7 +238,6 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow cursor: grab; pointer-events: auto; user-select: none; - text-shadow: 0 0 4px var(--card-background-color, rgba(0, 0, 0, 0.6)); z-index: 1; } .roomlabel:active { cursor: grabbing; } @@ -1473,4 +1472,4 @@ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow - `}}Mi.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_markup:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Mi.styles=li,customElements.get("houseplan-card")||customElements.define("houseplan-card",Mi),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.21.2 ","background:#3ea6ff;color:#04121f;font-weight:700",""); + `}}Mi.properties={hass:{attribute:!1},_config:{state:!0},_space:{state:!0},_layout:{state:!0},_devices:{state:!0},_tip:{state:!0},_selId:{state:!0},_toast:{state:!0},_serverCfg:{state:!0},_markup:{state:!0},_tool:{state:!0},_path:{state:!0},_cursorPt:{state:!0},_mergeSel:{state:!0},_mergeDialog:{state:!0},_splitSel:{state:!0},_areaSel:{state:!0},_nameSel:{state:!0},_roomDialog:{state:!0},_spaceDialog:{state:!0},_infoCard:{state:!0},_rulesDialog:{state:!0},_importDialog:{state:!0},_markerDialog:{state:!0},_zoom:{state:!0},_view:{state:!0}},Mi.styles=li,customElements.get("houseplan-card")||customElements.define("houseplan-card",Mi),window.customCards=window.customCards||[],window.customCards.find(t=>"houseplan-card"===t.type)||window.customCards.push({type:"houseplan-card",name:"House Plan Card",description:"Interactive house plan: spaces, rooms and devices with live states and drag layout."}),console.info("%c HOUSEPLAN-CARD %c v1.21.3 ","background:#3ea6ff;color:#04121f;font-weight:700",""); diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 662a14c..743bc1f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v1.21.3 — 2026-07-16 (room labels: no text shadow) +- Room name labels no longer carry a text shadow — crisper look on both the white + hand-drawn canvas and plan images. + ## v1.21.2 — 2026-07-16 (space-dialog polish) - The **"Scale (cm per cell)" input is compact** again — a generic `width:100%` dialog rule was stretching it across the row. diff --git a/docs/STATUS.md b/docs/STATUS.md index 9fe847b..4332c9d 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -13,7 +13,7 @@ | Item | State | |---|---| -| Version | **v1.21.2** everywhere (manifest, const.py, package.json, CARD_VERSION) | +| Version | **v1.21.3** everywhere (manifest, const.py, package.json, CARD_VERSION) | | GitHub | https://github.com/Matysh/houseplan-card — branch `main`, releases v1.9.3…v1.11.2 | | CI | `.github/workflows/validate.yml` (hacs + hassfest + frontend + backend) — **fully green** since v1.11.1; `release.yml` auto-attaches the card bundle (needs `permissions: contents: write`, fixed) | | HACS | Works as custom repository (id 1290210112 on the home instance). **Inclusion PR: https://github.com/hacs/default/pull/9004** (queue ≈2 months as of 2026-07). Lesson: #8995 was auto-closed by hacs-bot — the PR body MUST be their exact template with every checkbox ticked and all 3 links (release, HACS action run, hassfest run); a custom body gets closed without discussion | diff --git a/docs/TESTING.md b/docs/TESTING.md index c1c017c..5815061 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -140,7 +140,7 @@ Run the *core flows* (marked ★ below) in each environment at least once per mi - [ ] Zoom level persists per space (localStorage), restored on reload - [ ] Window resize / sidebar collapse refits without distortion - [ ] Room name labels: default at room center; dragging moves and persists (server layout, `rl_*`) [auto]; hidden in markup mode -- [ ] Labels legible on light plans (text shadow) at min/max zoom +- [ ] Labels legible on light and dark plans (no text shadow) at min/max zoom ## Multi-client & concurrency ★ diff --git a/package.json b/package.json index 40f5090..70f3f10 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "houseplan-card", - "version": "1.21.2", + "version": "1.21.3", "description": "Interactive house plan Lovelace card for Home Assistant", "license": "MIT", "type": "module", diff --git a/src/houseplan-card.ts b/src/houseplan-card.ts index 5b113d5..dd24368 100755 --- a/src/houseplan-card.ts +++ b/src/houseplan-card.ts @@ -28,7 +28,7 @@ import './space-card'; import { cardStyles } from './styles'; import { langOf, t, type I18nKey } from './i18n'; -const CARD_VERSION = '1.21.2'; +const CARD_VERSION = '1.21.3'; const LS_KEY = 'houseplan_card_layout_v1'; const LS_CFG = 'houseplan_card_cfg_v1'; // cache of the server config+layout for instant rendering const LS_ZOOM = 'houseplan_card_zoom_v1'; diff --git a/src/styles.ts b/src/styles.ts index d6692c7..b9323a0 100644 --- a/src/styles.ts +++ b/src/styles.ts @@ -235,7 +235,6 @@ export const cardStyles = css` cursor: grab; pointer-events: auto; user-select: none; - text-shadow: 0 0 4px var(--card-background-color, rgba(0, 0, 0, 0.6)); z-index: 1; } .roomlabel:active { cursor: grabbing; }