Flutter's Material/Cupertino Decoupling Hits 100% Code Migration, M3 Expressive Begins
The decoupling untangles UI libraries from the Flutter SDK release cycle, allowing Material and Cupertino widgets to ship fixes and new styles independently. For teams stuck on older Flutter versions, this means UI updates without a full SDK upgrade—but the August release risks shipping with zero UI changes if the packages aren't published in time.
Flutter's massive effort to decouple its Material and Cupertino design libraries from the core framework has reached a major milestone. All source code, tests, and examples have been successfully moved into independent `material_ui` and `cupertino_ui` packages within `flutter/packages`. The original code in `flutter/flutter` is now frozen and awaits final deletion once the new packages stabilize.
With the code migration at 100%, the remaining tasks are wrapping up localization support and re-enabling the full test suite. The first pull requests for Material 3 Expressive styling—including a new IconButton and a global style variant switching mechanism—are also open, signaling the start of next-generation widget support.
A full release to pub.dev is unlikely to land in the August Flutter version, though a preview is possible. iOS 26's Liquid Glass style remains untouched, with no significant progress expected until at least 2027 unless Apple forces the issue.
The 600,000-line 'recopy' succeeded after multiple failed attempts, suggesting the migration's complexity was in preserving git history and test integrity, not just moving files.
Freezing the original code while the packages stabilize creates a risky interim state where two copies of the same widgets exist, but only one receives updates.
Liquid Glass's low priority across both Flutter and Compose Multiplatform points to a real technical tension: custom rendering engines struggle with the heavy translucency and blur effects the style demands.