Panel transitions: assert the motion contract and hard rules #178

Member

Task 50067c1f-c807-4d08-8c2a-ee6cb71b6498 — Transitions and animations to the mockups.

Verified against PANEL-SPEC (no code changes needed — all four already matched):

  • Confirm dialog (1j): fade + scale(.96 → 1) over --nq-dur-modal/--nq-ease-out (§4).
  • Seal entrance: fade + scale(1.15 → 1) over --nq-dur-base/--nq-ease-out, per-card rotation preserved (§3.3).
  • Quest-complete (1c): 12 s auto-return with the per-second Returning to The Party in N seconds line (§5).
  • Idle return: 40 s default, re-armed on pointer/touch (§3.5).

Added assertions (tests/test_panel_cards.py + frontend/tests/render-quest-log.mjs):

  • Entrance timing/easing for dialog, seal, toast; press feedback scale(.98)/--nq-dur-micro.
  • Source-level 1c 12 s timing and §3.5 40 s idle default.
  • End-to-end 1c countdown return driven through the quest-log harness against the committed bundle.
  • PANEL-SPEC hard rules: byte-identical served token copy, 22px body floor, token-only inks, no hover states, no animation loops, inert dock strip + pointer-none frames, whole plate as the single tap target, control-free away plate (away navigation already covered by test_away_plate_does_not_navigate).

Checks: cd frontend && npm run build reproduces the committed bundle unchanged; TZ=UTC uv run pytest -q → 1709 passed (baseline 1701 + 8 new).

Task 50067c1f-c807-4d08-8c2a-ee6cb71b6498 — Transitions and animations to the mockups. **Verified against PANEL-SPEC (no code changes needed — all four already matched):** - Confirm dialog (1j): fade + `scale(.96 → 1)` over `--nq-dur-modal`/`--nq-ease-out` (§4). - Seal entrance: fade + `scale(1.15 → 1)` over `--nq-dur-base`/`--nq-ease-out`, per-card rotation preserved (§3.3). - Quest-complete (1c): 12 s auto-return with the per-second `Returning to The Party in N seconds` line (§5). - Idle return: 40 s default, re-armed on pointer/touch (§3.5). **Added assertions (tests/test_panel_cards.py + frontend/tests/render-quest-log.mjs):** - Entrance timing/easing for dialog, seal, toast; press feedback `scale(.98)`/`--nq-dur-micro`. - Source-level 1c 12 s timing and §3.5 40 s idle default. - End-to-end 1c countdown return driven through the quest-log harness against the committed bundle. - PANEL-SPEC hard rules: byte-identical served token copy, 22px body floor, token-only inks, no hover states, no animation loops, inert dock strip + pointer-none frames, whole plate as the single tap target, control-free away plate (away navigation already covered by `test_away_plate_does_not_navigate`). Checks: `cd frontend && npm run build` reproduces the committed bundle unchanged; `TZ=UTC uv run pytest -q` → 1709 passed (baseline 1701 + 8 new).
dev_agent added 1 commit 2026-09-23 11:26:06 -04:00
The confirm dialog (fade + scale .96->1 over --nq-dur-modal/--nq-ease-out),
the seal (fade + scale 1.15->1 over --nq-dur-base), the quest-complete
12 s countdown return and the 40 s idle return already matched
PANEL-SPEC, but nothing pinned them: a token or keyframe edit could
silently drift the panel off the approved mockup timing.

tests/test_panel_cards.py now asserts the entrance timing and easing,
the byte-identical served token copy, and the section 1/6 hard rules
(22px body floor, token-only inks, no hover states, no animation loops,
inert dock strip, whole-plate tap target, control-free away plate), and
the quest-log harness drives the 1c countdown return end-to-end against
the bundle HACS ships.
review_agent left a comment
Member

Independent Claude Sonnet 5 review completed for this exact commit.

Independent Claude Sonnet 5 review completed for this exact commit.
dev_agent merged commit 5339b64751 into feature/3e640c07-2132-46e2-a363-be72ee091291-zero-config-panel-dashboard 2026-09-23 11:32:50 -04:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/NestQuest#178