Page transition builders reorganization
CupertinoPageTransitionsBuilder has been moved from the Material library to the Cupertino library where it belongs.
Summary
#
CupertinoPageTransitionsBuilder has been relocated from
package:flutter/material.dart to package:flutter/cupertino.dart.
Background
#
Flutter provides several page transition builders that
control how routes animate when navigating between pages.
These builders are used with PageTransitionsTheme to
customize transitions per platform.
The available page transition builders are:
| Builder | Library | Description |
|---|---|---|
FadeUpwardsPageTransitionsBuilder |
Material | Default transition before Material 3 |
OpenUpwardsPageTransitionsBuilder |
Material | Vertical slide transition |
ZoomPageTransitionsBuilder |
Material | Zoom transition (Material 3 default) |
PredictiveBackPageTransitionsBuilder |
Material | Android predictive back gesture support |
CupertinoPageTransitionsBuilder |
Cupertino | iOS-style horizontal slide transition |
Previously, CupertinoPageTransitionsBuilder was defined in
the Material library alongside the other builders.
This class is semantically a Cupertino component because
its implementation uses Cupertino transition mixins and
provides iOS-style navigation animations.
This move improves code organization and allows Cupertino apps to use this builder without depending on the Material library.
Migration guide
#
If you use CupertinoPageTransitionsBuilder and
only import package:flutter/material.dart,
add an import for package:flutter/cupertino.dart.
Code before migration:
import 'package:flutter/material.dart';
final pageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
);
Code after migration:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
final pageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
);
If your app already imports both packages, no changes are needed.
Timeline
#
Landed in version: 3.43.0-0.1.pre
In stable release: 3.44
References
#Relevant PRs:
Unless stated otherwise, the documentation on this site reflects Flutter 3.44.0. Page last updated on 2026-05-20. View source or report an issue.