Add interface motion and native page transitions - #328
Merged
Merged
Conversation
Cloudflare preview
Updated for commit |
woahitsraj
enabled auto-merge (squash)
September 14, 2026 15:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
pnpm lintpnpm typecheckpnpm test:unit -- --run(452 tests)pnpm test:engine-smoke(144 tests)pnpm test:e2e(126 of 127 passed; isolated retry passed)Acceptance criteria
Evidence
App: PKSX on
localhost:5179andlocalhost:5180, Chromium at 390 by 844Main 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-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.
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.
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.
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-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.tschecks easing endpoints and shared replacement decisions.main-menu.e2e.tschecks 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 lintpnpm typecheckpnpm test:unit -- --run, 452 passedpnpm test:engine-smoke, 144 passedpnpm test:e2e, 126 of 127 passed; the existing backdrop-dismissal case failed once under parallel load and passed on immediate isolated retry