Skip to content

web(844): hold search panel exit state until unmount - #847

Merged
xiechimon merged 1 commit into
mainfrom
hp/pacman/t-0163-844
Oct 4, 2026
Merged

xiechimon merged 1 commit into
mainfrom
hp/pacman/t-0163-844

Conversation

@xiechimon

Copy link
Copy Markdown
Owner

Fixes the flash on the second Ctrl+K: the panel exit was a 100ms one-shot
keyframe while Base UI holds the unmount window 150ms, so the keyframe
finished first, snapped back to opacity 1, and painted 2-3 fully-opaque
frames before removal. Exit now rides a specified-style transition to
opacity 0 / scale .98 (same law as #771/P2, docs/spec/base-ui-theme.md
§1.2: interaction-state changes use transitions, not one-shot keyframes);
enter keyframes untouched, no duration changed.

Measured traces (rAF opacity sampler, full numbers in docs/verify/844/):
before 1 -> 0.01 (t=96ms) -> 1 (t=112ms) -> detach (t=165ms);
after 1 -> 0 (t=111ms), held at 0 -> detach (t=181ms).

Evidence (slow-motion strobe, 15ms steps, dark scheme):

before: panel pops back opaque after fading
after: one clean fade to gone

Same-delay stills (+120ms into a 100ms fade-out):

before at +120ms: panel fully solid
after at +120ms: board only

Regression: new search-close-flash.spec.ts (monotonic-opacity close test,
failed pre-fix, passes now; triple-toggle test included). Family green on the
after stack (32 passed): search-focus, search-result-rows,
sidebar-search-offboard, dialog-viewport, escape-wiring, checkbox-unified,
search-close-flash. pnpm lint / pnpm typecheck pass.

Also checked the ticket's checkbox half: rapid-uncheck probe on the accept
face shows the Indicator fading 1 -> 0 with no remount — #771 holds, no
change made there.

The panel exit was a 100ms one-shot keyframe while Base UI holds the
unmount window 150ms, so the keyframe finished first, snapped back to
opacity 1, and painted 2-3 fully-opaque frames before removal: the flash
on the second Ctrl+K. Exit now rides a specified-style transition to
opacity 0 / scale .98 (same law as #771/P2, base-ui-theme 1.2), held
until unmount; enter keyframes untouched.

closes #844
@xiechimon
xiechimon merged commit b742384 into main Oct 4, 2026
8 checks passed
@xiechimon
xiechimon deleted the hp/pacman/t-0163-844 branch October 4, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant