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] 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