`CupertinoPageTransitionsBuilder` has been relocated from `package:material_ui/material_ui.dart` to the Cupertino package, which is now in `package:cupertino_ui/cupertino_ui.dart`.
- Who is affected
- Applications and packages relying on the previous behaviour or signature. Code that uses CupertinoPageTransitionsBuilder, PageTransitionsTheme, FadeUpwardsPageTransitionsBuilder and related APIs.
- Practical impact
- Behaviour or API differences that can break builds or change runtime behaviour.
- What action should I take?
- Follow the official migration guide below, update affected call sites, run `dart fix --apply` where a fix is available, then run your tests.
Before and after (from the official guide)
| 1 | import 'package:material_ui/material_ui.dart'; | |
| 2 | ||
| 3 | final pageTransitionsTheme = PageTransitionsTheme( | |
| 4 | builders: { | |
| 5 | TargetPlatform.android: ZoomPageTransitionsBuilder(), | |
| 6 | TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), | |
| 7 | }, | |
| 8 | ); |
| 1 | + | import 'package:cupertino_ui/cupertino_ui.dart'; |
| 2 | import 'package:material_ui/material_ui.dart'; | |
| 3 | ||
| 4 | final pageTransitionsTheme = PageTransitionsTheme( | |
| 5 | builders: { | |
| 6 | TargetPlatform.android: ZoomPageTransitionsBuilder(), | |
| 7 | TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), | |
| 8 | }, | |
| 9 | ); |
Raw before / after
import 'package:material_ui/material_ui.dart';
final pageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
);import 'package:cupertino_ui/cupertino_ui.dart';
import 'package:material_ui/material_ui.dart';
final pageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
);Official migration guide (excerpt, © The Flutter Authors, CC BY 3.0)
If you use CupertinoPageTransitionsBuilder and
only import package:material_ui/material_ui.dart,
add an import for package:cupertino_ui/cupertino_ui.dart.
Code before migration:
import 'package:material_ui/material_ui.dart';
final pageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
);Code after migration:
import 'package:cupertino_ui/cupertino_ui.dart';
import 'package:material_ui/material_ui.dart';
final pageTransitionsTheme = PageTransitionsTheme(
builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
},
);If your app already imports both packages, no changes are needed.
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.Listed in the official breaking-changes index (docs.flutter.dev/release/breaking-changes).
An official announcement or migration guide documents an intended behaviour or API change. A verified source change (git diff) shows code changed but does not by itself prove a public API is breaking. AI interpretations are labelled and never used to classify a change.
- Source commit
- b3045439b7c0
- Source last updated
- Oct 21, 2026
- Last synchronized
- Oct 21, 2026
- Publication status
- published
Publication history
- Oct 21, 2026, 8:31 PM: new → published (ingestion) — Backed by an official breaking-change/migration guide.
AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.