feat(native): view transitions with a named pair of screens - #55
Open
mateo-m wants to merge 121 commits into
Open
feat(native): view transitions with a named pair of screens#55mateo-m wants to merge 121 commits into
mateo-m wants to merge 121 commits into
Conversation
… onto effect layers
# Conflicts: # .github/workflows/ci.yml # examples/compile.ts # packages/native/src/custom_elements/anchored.rs # packages/native/src/custom_elements/code.rs # packages/native/src/custom_elements/diff.rs # packages/native/src/custom_elements/img.rs # packages/native/src/custom_elements/input.rs # packages/native/src/custom_elements/markdown.rs # packages/native/src/renderer.rs # packages/react/src/types/host.ts # zed
# Conflicts: # zed
# Conflicts: # packages/native/src/custom_elements/code.rs # packages/native/src/renderer/frame.rs # packages/native/src/style/resolve.rs # packages/react/src/testing.ts # packages/react/src/types/host.ts
# Conflicts: # packages/native/src/renderer/frame.rs # packages/react/src/reconciler/event-registry.ts
# Conflicts: # packages/react/src/testing.ts
This was referenced Sep 4, 2026
mateo-m
force-pushed
the
feat/view-transitions
branch
from
September 4, 2026 14:59
3974068 to
4917aeb
Compare
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.
Stacked on #54 (fix/selection-remount-automation).
What this adds
The View Transitions API.
startViewTransition(renderer, update, options)captures every element that carries aviewTransitionNamestyle, applies the React update synchronously, and animates each name from its old place to its new one.translateX,translateYandopacityranges for the old side and the new side. Percent lengths resolve against the size of the named element, sotranslateX: ["100%", "0%"]slides a screen in from the right at any width.Demo
The Navigation panel in
examples/demois the push and pop of the iOS Settings app. A click on General slides its screen in from the right while Settings slides 30% of its width to the left. The back button runs the same move backwards with the leaving screen on top.Limits in this version
Tests
packages/react/src/__tests__/view-transitions.test.tsx: the push pair, the default crossfade, an enter-only name, a restart mid-flight, an update in place, and a renderer without the native methods. 6 tests.examples/demo.test.tsx: a real click drives the push, the screen starts 318px to the right, and the pop returns to the root screen.Moved from the fork
This PR was mateo-m#7.
The branch merged its parent branch after that one merged upstream main at 028f70a.
The history was rewritten once after the first push. It dropped the commits that reworded AGENTS.md, and the zed pin moved to the rewritten mateo-m/zed branches. No code changed in that rewrite.
On the merged head
cargo checkandtscpass. The full suites ran at the bottom and at the top of the stack.Stacked on #54. The diff here includes #50, #51, #52, #53, #54.
The zed submodule points at the mateo-m/zed fork until remorses/zed#5, #6 and #7 merge. Then a follow-up commit restores
.gitmodulesto remorses/zed on thegpuixbranch and pins the merged commit. The same GPUI stack is also open upstream as zed-industries/zed#63771, #63772 and #63773.