transition_lab library

Page transitions re-created from well-known apps: the Wolt swing, the iOS 18 zoom and page sheet, the Instagram cube, a photo viewer's drag to dismiss and pinch to dismiss, a card flip, a depth blur, a doorway, a Books page curl, a circular reveal and its iOS 26 glass ripple, Material 3's container transform, shared axis and fade through, a Flipboard fold, a Control Center top sheet, a side drawer, a card stack, four wipes, a Metro turnstile, the Dynamic Island, an Apple Wallet pass, Telegram's full-screen swipe back and a YouTube-style mini-player.

Classes

CardStackRoute<T>
A card dealt onto a stack, as in Tinder or the iOS Safari tab switcher: the page flies in from the trailing edge with a tilt and settles flat, while the page underneath sits back as the next card in the stack.
CircularRevealRoute<T>
Material's circular reveal, as in Android and Telegram: the page opens as a circle growing from where the user tapped, and closes back into that point.
ContainerTransformRoute<T>
Material 3's container transform, as in Gmail, the Play Store and Google Photos: the card the page was opened from grows into the page, its corners rounding out, while its own look cross-fades into the page's.
CubePageRoute<T>
The Instagram Stories transition: the two pages are faces of a cube that turns.
DepthPageRoute<T>
A depth transition, as when an app opens on iOS or a window comes forward on visionOS: the page underneath recedes, blurs and dims, while the new page settles in from slightly in front of the screen and fades in.
DoorPageRoute<T>
A doorway: the page underneath splits down the middle and its two halves swing open like double doors, away from the viewer, revealing the new page as it comes forward. Popping closes the doors again.
DragDismissPageRoute<T>
The photo viewer of Instagram, Telegram and iOS Photos: the page opens over a dark background, and a vertical drag lets it follow the finger in any direction while the background fades. Letting go far or fast enough closes it.
DrawerPageRoute<T>
A side menu, as in Messenger and Telegram: the page slides in from the leading edge over part of the screen, while the page underneath slides a little the other way, shrinks and is dimmed by the scrim.
FadeThroughPageRoute<T>
A PageRoute that always uses a FadeThroughPageTransitionsBuilder, whatever the app's PageTransitionsTheme is:
FadeThroughPageTransitionsBuilder
Material 3's fade through transition, as between the destinations of a navigation bar: the outgoing page fades out, and the new one fades in while growing slightly, with no overlap between the two.
FlipPageRoute<T>
A card flip: the two pages are the front and the back of a card that turns over around its vertical axis, moving back a little as it turns.
FoldPageRoute<T>
Flipboard's fold: the new page arrives folded in half along a crease across its middle, and opens flat, while the page underneath sinks back and dims. Popping folds it closed again.
FullSwipePageRoute<T>
The Telegram back gesture: swiping towards the trailing edge from anywhere on the page pops it, not just from the screen edge. The page moves with the swing transition.
GlassRevealRoute<T>
The glass ripple of iOS 26: the page is uncovered by a circle growing from where the user tapped, with a band of blurred, lit glass riding its edge.
IslandPageRoute<T>
A page growing out of the Dynamic Island: the pill at the top of the screen stretches out into the page, while the screen behind it blurs away under the backdrop.
MiniPlayer
Hosts a page that minimizes into a bar at the bottom of the screen and expands back, like the players of YouTube, Spotify and Apple Music.
MiniPlayerState
Opens, expands, minimizes and closes a MiniPlayer.
PageCurlRoute<T>
A page turn, as in Apple Books: the page is a sheet of paper whose bottom corner on the leading edge lifts and folds over, the folded flap showing the back of the page, until the page has turned away towards the trailing edge. A push lays the page down the same way in reverse.
PinchDismissPageRoute<T>
The photo viewer of Apple Photos and Google Photos: two fingers pinching the page together shrink it around the point between them, and letting go while it is small closes it back into its thumbnail.
SharedAxisPageRoute<T>
A PageRoute that always uses a SharedAxisPageTransitionsBuilder, whatever the app's PageTransitionsTheme is:
SharedAxisPageTransitionsBuilder
Material 3's shared axis transition: the two pages move together along one axis while they cross-fade, so they read as neighbours on that axis.
SheetPageRoute<T>
The iOS page sheet, as in Apple Maps and Music: the page slides up as a card with rounded top corners, while the page underneath shrinks back, dims and peeks out above it.
SwingPageRoute<T>
A PageRoute that always uses a SwingPageTransitionsBuilder, whatever the app's PageTransitionsTheme is. Handy for swinging in a single page:
SwingPageTransitionsBuilder
A PageTransitionsBuilder in which the incoming page swings in from the side in 3D — rotating around the vertical axis and zooming down to size, like a book page being turned — while the page underneath slides back, shrinks and dims.
TapPosition
Remembers where the last finger went down, so a CircularRevealRoute can open from it.
TopSheetRoute<T>
A sheet coming down from the top, as iOS Control Center and the Android notification shade do: the page slides down as a card with rounded bottom corners, while the page underneath shrinks back, dims and peeks out below it.
TurnstileRoute<T>
The turnstile of Windows Phone's Metro: the page underneath pivots away around its leading edge like a revolving door, and the new one pivots into its place.
WalletPageRoute<T>
Apple Wallet: the pass that was tapped rises out of the stack and opens into a full page, while the stack it came from drops away and dims.
WipePageRoute<T>
A wipe: the new page is uncovered through a growing mask, in one of four shapes, while the page underneath dims.
ZoomPageRoute<T>
The iOS 18 zoom transition, as in Photos and the App Store: the page grows out of the ZoomSource with the same tag and shrinks back into it when popped.
ZoomSource
Marks the widget a ZoomPageRoute or DragDismissPageRoute with the same tag grows out of and shrinks back into.

Enums

SharedAxis
The axis a SharedAxisPageTransitionsBuilder moves its pages along.
WipeStyle
The shape a WipePageRoute uncovers its page with.