Skip to content

Add interface motion and native page transitions - #328

Merged
woahitsraj merged 2 commits into
mainfrom
rajan/animate-menus-buttons-drawers
Sep 14, 2026
Merged

woahitsraj merged 2 commits into
mainfrom
rajan/animate-menus-buttons-drawers

Conversation

@woahitsraj

@woahitsraj woahitsraj commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • add shared motion easing and transition helpers with reduced-motion handling
  • animate edge menus, takeovers, the source picker, update prompt, and Saves grid
  • add command press feedback and smooth invalid carry-destination dimming
  • skip entrance and exit motion when one menu or takeover replaces another
  • add directional native page transitions with browser-history and reduced-motion handling

Verification

  • pnpm lint
  • pnpm typecheck
  • pnpm test:unit -- --run (452 tests)
  • pnpm test:engine-smoke (144 tests)
  • pnpm test:e2e (126 of 127 passed; isolated retry passed)

Acceptance criteria

  • Edge menus enter and exit from the correct viewport edge without changing their layout bounds.
  • Replacing one menu with another does not replay an exit and entrance sequence.
  • Takeovers and the source picker fade and settle without replaying motion for internal view changes.
  • Saves cards use a short capped entrance stagger.
  • Motion preserves focus, navigation, responsive geometry, and reduced-motion behavior.
  • Destination changes and browser history use directional native page transitions, while reduced-motion navigation stays instant.

Evidence

App: PKSX on localhost:5179 and localhost:5180, Chromium at 390 by 844

Main menu edge transition

How verified: Opened and dismissed Main Menu from Saves at the portrait viewport floor. The sheet uses the bottom edge and the page bounds stay fixed.

Main Menu open at the portrait viewport floor
main-menu-portrait.mp4

Nested menu replacement

How verified: Opened ARON's Slot actions, replaced it with Clear ARON?, canceled back to Slot actions, then closed the menu. The replacement changes in place without a second sheet entrance.

Clear confirmation replacing Slot actions
nested-menu-flow-final.mp4

Source picker transition

How verified: Opened Box Menu, opened the collection picker, closed it, and returned to the workspace. The picker fades and settles above the existing workspace.

Open another collection source picker
source-picker-flow.mp4

Takeover transition and internal replacement

How verified: Opened ARON's editor, switched to its Legality Check, returned to the editor, and closed it. The takeover enters once and internal views replace each other without restarting the outer transition.

Pokemon Editor takeover
takeover-editor-flow.mp4

Saves grid entrance

How verified: Reloaded Saves with an imported Emerald save. Save cards and the import card enter in order with a capped stagger.

Saves grid after its entrance
saves-grid-entrance.mp4

Native destination page transitions

How verified: Navigated Saves to Boxes to Saves through Main Menu, then used browser Back and Forward. The named View Transition animations ran in forward, backward, backward, forward order, destination focus was restored, and reduced-motion navigation bypassed the API.

page-transitions-evidence.mp4

Automated coverage

How verified: motion.browser.spec.ts checks easing endpoints and shared replacement decisions. main-menu.e2e.ts checks native transition direction for destination and history navigation plus the reduced-motion bypass. The responsive and interaction suites cover portrait, landscape, focus restoration, controller input, takeover geometry, nested menus, and Carry.

  • pnpm lint
  • pnpm typecheck
  • pnpm test:unit -- --run, 452 passed
  • pnpm test:engine-smoke, 144 passed
  • pnpm test:e2e, 126 of 127 passed; the existing backdrop-dismissal case failed once under parallel load and passed on immediate isolated retry

@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown

Cloudflare preview

Environment Link
This pull request Open preview
Staging staging.pksx.app

Updated for commit dfdbb6e. View workflow run.

@woahitsraj woahitsraj changed the title Animate menus and interaction feedback Add interface motion and native page transitions Sep 14, 2026
@woahitsraj
woahitsraj enabled auto-merge (squash) September 14, 2026 15:51
@woahitsraj
woahitsraj merged commit c935c19 into main Sep 14, 2026
11 checks passed
@woahitsraj
woahitsraj deleted the rajan/animate-menus-buttons-drawers branch September 14, 2026 15:54
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