From c5b313a5e33d7d41d6e27a0ccff16a1777604b74 Mon Sep 17 00:00:00 2001 From: dev_agent <17+dev_agent@code.cubecraftcreations.com> Date: Sat, 26 Sep 2026 08:09:51 -0400 Subject: [PATCH 1/8] Fix hidden hint text behind the party-board dock (#244) --- .../nestquest/www/nestquest-cards.js | 5 ++-- frontend/src/cards/party-board.ts | 5 ++-- tests/test_panel_cards.py | 30 +++++++++++++++++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/custom_components/nestquest/www/nestquest-cards.js b/custom_components/nestquest/www/nestquest-cards.js index d67e35d..8f0296d 100644 --- a/custom_components/nestquest/www/nestquest-cards.js +++ b/custom_components/nestquest/www/nestquest-cards.js @@ -906,11 +906,12 @@ const $t = "polygon(0 0, 100% 0, 100% 62%, 50% 100%, 0 62%)", $e = "polygon(50% .hint { position: absolute; - top: 930px; + top: 896px; left: 0; right: 0; + margin: 0; font-family: var(--nq-p-font-body); - font-size: 24px; + font-size: 27px; font-weight: 600; line-height: 1.4; text-align: center; diff --git a/frontend/src/cards/party-board.ts b/frontend/src/cards/party-board.ts index 65c7925..0a7569b 100644 --- a/frontend/src/cards/party-board.ts +++ b/frontend/src/cards/party-board.ts @@ -497,11 +497,12 @@ const boardStyles = css` .hint { position: absolute; - top: 930px; + top: 896px; left: 0; right: 0; + margin: 0; font-family: var(--nq-p-font-body); - font-size: 24px; + font-size: 27px; font-weight: 600; line-height: 1.4; text-align: center; diff --git a/tests/test_panel_cards.py b/tests/test_panel_cards.py index 2b01162..2ef824f 100644 --- a/tests/test_panel_cards.py +++ b/tests/test_panel_cards.py @@ -411,6 +411,36 @@ def test_panel_hard_rules_hold_in_the_card_sources() -> None: assert "@click" not in sealed_template +def test_party_board_hint_clears_the_dock() -> None: + """PANEL-SPEC §2/§2.3: the hint line reads fully above the dock at + 1920x1080. The hint's line box (top + font-size x line-height) must + end above the dock's top edge (1080 - bottom inset - dock height) + with a visible gap, at the 27px/600 design size. The hint is a

, + so its user-agent 1em top margin must be reset or it shifts the box + down by a whole font-size.""" + style = _style_literal(_read(PARTY_BOARD), STYLE_CONSTANTS[PARTY_BOARD]) + rules = {selector.strip(): body for selector, body in _css_rules(style)} + sizes = _size_tokens(_read(REWARD_TOKENS)) + + def px(body: str, prop: str) -> float: + declared = re.search(rf"(? None: """PANEL-SPEC §1: no body text below 22px. Every font-size in the panel styles resolves against the panel size tokens or an explicit -- 2.55.0 From 9916d83138c963193fd2620684e04dc8367fdead Mon Sep 17 00:00:00 2001 From: dev_agent <17+dev_agent@code.cubecraftcreations.com> Date: Sat, 26 Sep 2026 09:08:59 -0400 Subject: [PATCH 2/8] Fix the Quest Log header crest/shield to match the design (resubmission of PR #247) (#252) --- .../nestquest/www/nestquest-cards.js | 4 +- frontend/src/cards/quest-log.ts | 4 +- tests/test_panel_cards.py | 68 +++++++++++++++++++ 3 files changed, 72 insertions(+), 4 deletions(-) diff --git a/custom_components/nestquest/www/nestquest-cards.js b/custom_components/nestquest/www/nestquest-cards.js index 8f0296d..b221b38 100644 --- a/custom_components/nestquest/www/nestquest-cards.js +++ b/custom_components/nestquest/www/nestquest-cards.js @@ -1765,7 +1765,7 @@ const Nt = "polygon(0 0, 100% 0, 100% 62%, 50% 100%, 0 62%)", Ye = "polygon(50% flex: none; width: 96px; height: 110px; - padding: 3px; + padding: 4px; clip-path: ${v(Nt)}; background: rgba(255, 255, 255, 0.22); } @@ -3091,7 +3091,7 @@ class un extends A { const e = this._childSlug(), n = t.kind === "away", i = n ? t.name : this._childName(e) ?? (e ? Y(e) : null), { due: r, completed: o } = this._childCounts(e), l = this._remaining(), a = this._partyCounts(), p = i ? `${i}'s Quest Log` : "Quest Log", u = (i?.charAt(0) || "?").toUpperCase(); return d`

-