Skip to content

Support for iOS 26 “Liquid Glass” Design in Cupertino Widgets #170310

Description

@lucas-goldner

Please keep comments here to the topic of liquid glass.
These issues may be more appropriate for some of the other conversations that have come up in relation to this:


Update: July 29, 2025

Important

The material and cupertino libraries are being decoupled into standalone packages to accelerate feature development. All new work for iOS26 updates in Cupertino will happen in the new packages once established in flutter/packages.

Track the overall decoupling progress in our main issue: #101479


Update June 10, 2025

[!IMPORTANT]
As with Material 3 Expressive, we are not developing the new Apple’26 UI design features in the Cupertino library right now, and we will not be accepting contributions for these updates at this time.

The arrival of major updates for both Material and Cupertino presents a significant (and exciting!) opportunity to apply past lessons and reconsider the long-term architecture for design system integration in Flutter.

To evaluate this, we have begun a broad investigation into our current approach. This includes exploring various architectural possibilities - for instance, we are re-evaluating the long-requested idea of moving the Material and Cupertino libraries out of the core framework.

This strategic pause on design updates gives us the space to ensure the long-term health and maintainability of Flutter's design libraries. We are committed to being transparent with our contributor community as we explore these options and will have more to share on our findings and future direction in the coming weeks. 💙

Meanwhile, WWDC announced other features beyond design updates that we are also tracking. See the Apple release 2025: Xcode 26, iOS 26, macOS 26 project for the latest as we are looking into each exciting update and how it will be coming to Flutter.


Use case

With the introduction of iOS 26, Apple has begun rolling out the new Liquid Glass design language. This introduces significant changes to the visual styling and interaction behavior across native iOS apps. As a result, Flutter apps using the existing Cupertino widgets risk appearing visually outdated on the latest iOS devices, leading to a degraded user experience and a perception of apps being “non-native.”

For developers targeting iOS users who expect modern, fluid design aesthetics, this represents a significant challenge. There is currently no way to adopt these design changes through Flutter’s existing Cupertino widget set.

Problem
• Flutter’s Cupertino widgets are currently modeled after pre-iOS 26 styling.
• With the release of the Liquid design language, Cupertino widgets now look outdated on iOS 26 and beyond.
• Developers may be forced to manually create custom implementations that match Liquid design, fragmenting the ecosystem.

Alternative solutions considered
• Creating custom widgets that mimic the new iOS 26 design language.
• Waiting for a third-party package to attempt a solution (uncertain support and sustainability).
• Forking flutter/cupertino.dart to add our own Liquid components (not ideal for maintainability).

Proposal

This issue aims to open a discussion around supporting Liquid design in Flutter’s Cupertino widget set.

Some ideas to consider:
1. New Widget Set: Introduce a LiquidGlass widget set that mirrors the updated design language, living alongside the current Cupertino widgets.
2. Adaptive Styling: Update existing Cupertino widgets to adapt their style based on the iOS version — using Liquid design on iOS 26+ and the classic Cupertino design on earlier versions.
3. Configurable Styling: Provide a top-level configuration or theme switch that allows developers to choose which Cupertino styling to adopt (Cupertino vs. Liquid).
4. Fallback Strategy: Ensure a graceful fallback for devices running iOS versions older than 26, if newer styles are implemented.

Would love to hear from the Flutter team and the community:
• Should this be a core framework feature?
• Or something better suited to a standalone package?
• How should we manage backward compatibility?

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projectc: new featureNothing broken; request for a new capabilityc: new widgetMust also have "c: new feature". Request for a new widget.c: proposalA detailed proposal for a change to Fluttercustomer: crowdAffects or could affect many people, though not necessarily a specific customer.f: cupertinoflutter/packages/flutter/cupertino repositoryframeworkflutter/packages/flutter repository. See also f: labels.team-designOwned by Design Languages teamtriaged-designTriaged by Design Languages team
    No fields configured for Feature.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions