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).
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Task 50067c1f-c807-4d08-8c2a-ee6cb71b6498 — Transitions and animations to the mockups.
Verified against PANEL-SPEC (no code changes needed — all four already matched):
scale(.96 → 1)over--nq-dur-modal/--nq-ease-out(§4).scale(1.15 → 1)over--nq-dur-base/--nq-ease-out, per-card rotation preserved (§3.3).Returning to The Party in N secondsline (§5).Added assertions (tests/test_panel_cards.py + frontend/tests/render-quest-log.mjs):
scale(.98)/--nq-dur-micro.test_away_plate_does_not_navigate).Checks:
cd frontend && npm run buildreproduces the committed bundle unchanged;TZ=UTC uv run pytest -q→ 1709 passed (baseline 1701 + 8 new).Independent Claude Sonnet 5 review completed for this exact commit.