At WWDC25 we launched a new type of Lab event for the developer community - Group Labs. A Group Lab is a panel Q&A designed for a large audience of developers. Group Labs are a unique opportunity for the community to submit questions directly to a panel of Apple engineers and designers. Here are the highlights from the WWDC25 Group Lab for Design.
Can you expand on how Liquid Glass helps with navigation and focus in the UI?
Liquid Glass clarifies the navigation layer by introducing a single, floating pane that acts as the primary navigation area. Buttons within this pane seamlessly morph as you move between sections, and controls can temporarily lift into the glass surface. While avoiding excessive use of glass (like layering glass on glass), this approach simplifies navigation and strengthens the connection between menus, alerts, and the elements that trigger them.
What should I do with customized bars that I might have in my app?
Reconsider the content and behavior of customized bars. Evaluate whether you need all the buttons and whether a menu might be a better solution. Instead of relying on background colors or styling, express hierarchy through layout and grouping. This is a good opportunity to adopt the new design language and simplify your interface.
What are scroll edge effects, and what options do we have for them?
Scroll edge effects enhance legibility in controls by lifting interactive elements and separating them from the background. There are two types: a soft edge effect (a subtle blur) and a hard edge effect (a more defined boundary for high-legibility areas like column sorting). Scroll edge effects are designed to work seamlessly with Liquid Glass, allowing content to feel expansive while ensuring controls and titles remain legible.
How can we ensure or improve accessibility using Liquid Glass?
Legibility is a priority, and refinements are ongoing throughout the betas. Liquid Glass adapts well to accessibility settings like Reduce Transparency, Increase Contrast, and Reduce Motion. There are two variants of glass: regular glass, designed to be legible by default, and clear glass, used in places like AVKit, which requires more care to ensure legibility. Use color contrast tools to ensure contrast ratios are met. The Human Interface Guidelines (HIG) are a living document offering best practices. The colors and materials pages are key resources.
Do you have any recommendations for convincing designers concerned with consistency across Android and Web to use Liquid Glass?
Start small and focus on high-utility controls that don't significantly impact brand experience. Native controls offer familiarity and predictability to users. Using the native controls makes sure your app feels at home on the device. Using native frameworks provides built-in accessibility support (dynamic type, reduce transparency, increase contrast). Native controls come with built-in behaviors and interactions.
Can ScrollViews include Liquid Glass within them?
You can technically put a glass layer inside a scroll view, but it can feel heavy and doesn't align with the system's intention for Liquid Glass to serve as a fixed layer. Think of the content layer as the scrolling layer, and the navigational layer as the one using Liquid Glass. If there is glass on the content layer it will collide into the navigational layer.
What core design philosophy guided the direction of iOS 26, beyond the goal of unification?
The core design philosophy involved blurring the line between hardware and software, separating UI and navigation elements from content, making apps adaptable across window sizes, and combining playfulness with sophistication. It was about making the UI feel at home on rounded screens.
Can we layer Liquid Glass elements on top of each other?
Avoid layering Liquid Glass elements directly on top of each other, as it creates unnecessary visual complexity. The system will automatically convert nested glass elements to a vibrant fill style. Use vibrant fills and labels to show control shapes and ensure legibility. Opaque grays should be avoided in favor of vibrant colors, which will multiply with the backgrounds correctly.
What will happen to apps that use custom components? Should they be adapted to the new design within the next year?
The more native components you use, the more things happen for free. Standard components will be upgraded automatically. Look out for any customizations that might clash. Think about what is the minimum viable change, where your app still feels and looks very similar to what it did. Prioritize changes in core workflows and navigational areas. There are a number of benefits to using native components including user familiarity, built-in accessibility support, and built-in behaviors and interactions.
Will Apple be releasing Figma design templates?
Sketch kits were published on Monday and can be referenced. The goal is to ensure the resources are well-organized, well-named, and easy to use. It's a high priority.
Explore the art and science of app design. Discuss user interface (UI) design principles, user experience (UX) best practices, and share design resources and inspiration.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hey there,
I redesigned my apps icons for Liquid Glass in the icon composer app. I have to say it's been a pleasure to use and my icons look stunning when rendered in the icon composer app, whatever rendering mode and context I've been testing.
But once in a developer release on my device (iOS 26 beta 3), the rendering is very disappointing. They look blurry, very far from what icon composer is showing.
I would like to know whether I have a design issue, or if the current state of the beta release is known to not render icon properly. I'm kind of panicking :)
Hi everyone, I'm new to building apps on Swift and recently I've been wondering how does Apple get this blur effect behind the control center on Mac OS Tahoe. I think it would be nice to use in an app that I'm making but I can't seem to find it in the docs. Is it available through AppKit? I would appreciate some help on this
I found that on my cutomer's mac device, webflterproxyd start interferiing with the NE traffic. Tried to stop it, but "screen time" was not enabled at all.
Who started this webfilterproxyd process and how to stop it?
Hi everyone,
I’m having trouble getting the new glassEffect() modifier to render correctly in SwiftUI.
No matter what I try, it just appears as a solid white background (instead of translucent glass). This happens both in Beta 1 and Beta 2.
My setup: • Mac mini (M4 chip) • macOS 26 Beta 2 (Tahoe) • Xcode 26 Beta 2 • Samsung Odyssey G9 57” monitor (super ultrawide) • Using Preview in SwiftUI, I use IOS 26 Beta 2 (not the Simulator)
Even when I use Apple’s default demo code like:
Text("Hello World") .padding() .glassEffect()
Some SF Symbols (wifi for example) render fine with the variable. But many, mostly ones with the circle being variable, do not seem to work. The SF Symbols app shows them rendering with a variable fine. But in code it doesn't work. Am I missing something or is there a reason?
var body: some View {
HStack {
Image(systemName: "01.circle", variableValue: 0.5)
Image(systemName: "figure.wave.circle", variableValue: 0.5)
Image(systemName: "wifi", variableValue: 0.5)
}.font(.largeTitle)
}
}
I'm developing an iPadOS 18+ application that uses a UITabBarController, styled as a sidebar, to serve as the primary navigation interface. This setup includes 20 different tabs, each representing a distinct section of the app.
For the user experience, each tab needs to present a master-detail interface, implemented using a UISplitViewController. The goal is to allow users to navigate between tabs via the sidebar, and within each tab, access related content through the split view's list-detail pattern.
The Problem:
Currently, my implementation involves instantiating a separate UISplitViewController for each tab, resulting in 20 unique split view instances embedded inside the UITabBarController. While this works functionally, it leads to significant memory usage, especially after the user opens each tab at least once. The accumulation of all these instantiated view controllers in memory eventually causes performance degradation or even memory warnings/crashes on lower-end iPads.
The Question:
What is the best approach to implement this type of architecture without running into memory management issues?
Specifically:
Is there a way to reuse or lazily load the UISplitViewController instances only when needed?
Can we unload or release split view controllers that haven't been used for a while to reduce memory pressure?
Would a custom container controller be more appropriate than using UITabBarController in this case?
Are there iPadOS 18+ best practices or newer APIs that support this kind of complex multi-tab, multi-split-view structure efficiently?
Any advice on how to optimize memory usage while preserving the sidebar navigation and split view layout would be highly appreciated.
In the clock app when making an alarm for myself to wake up, I found this bug where If you swipe left On an alarm without deleting it and then Swipe right it does a goofy visual glitch where it teleports to the top of your screen.
This issue affects core system UI elements such as Control Center, notifications, and system apps. In iOS 26, the Liquid Glass UI introduces excessive transparency and blur across the system. This significantly reduces text readability, lowers contrast, and causes visual fatigue during prolonged use.
There is currently no true option to fully disable Liquid Glass effects. Existing accessibility settings only partially mitigate the issue and do not restore a solid, high-contrast interface similar to iOS 18.
Please consider adding a system-wide toggle to completely disable Liquid Glass and transparency effects, or provide a solid UI mode for users who prioritize readability and visual comfort.
This is especially important for accessibility, as the current design negatively impacts users sensitive to eye strain and low contrast.
I have the June 2025 version, but I'd like to find the 2022. There was something removed from the 2022 that I would like to check out.
I'm coding an iPhone app using Swift and I'm getting this scoping error. Attached.
I've been playing around with the recently published iPad PRO M5 13" and it's awesome in most ways I've been able to think of. But this video capture of the app I'm developing, for example, lacks it the app icon "should" be just slightly translucent as I see it.
https://youtube.com/CAukICBrVzw
However I'm not and UI/X person and this is primarily my personal preference only for an option to allow for devs.
What is the step-by-step process to run an iOS application paired with the Mac in my MAUI project?
I am using Windows with Visual Studio 2022 V17.13.5.
Application: Multiplatform;
Language: C#;
Framework: MAUI 8;
Xcode: 16.2;
Objective: Identify and fix the issue to allow the application to run correctly.
Development environment:
Simulator: iOS 26 beta 3 iPhone 16 (for testing)
Simulator 2: iPadOS 26 beta 3 iPad Air 13 inch (M3) (for testing)
Connected Device: iPadOS 26 beta 3 iPad Pro 11 inch (M4) (for testing)
Dev Device: macOS Tahoe 26 beta 3 Macbook Air
When using the NavigationSplitView element, the sidebar has a built-in panel toggle button.
However, when I click the toggle button to toggle the sidebar section in SwiftUI 26 on both simulator 2 and the connected device, it has a slight animation glitch before going back to normal. What's going on?
This is my code for the specific view that has the NavigationSplitView (and all views are connected through TabViews):
RecordsPage.swift
Here are image references:
When I clicked the toggle:
After 1~2 seconds:
These images are in the state of the panel being hidden.
We all know that the feature “Always On Display” is available only on pro models.
I checked in iPhone 14 Plus, that feature became visible in “Search” menu under “Settings”. If a user types “Displa”, then the search results show “Always On Display” as a result.
When I click on that, it navigates inside “Display and Brightness” and we found no toggle for “Always On Display”.
So, displaying the same on search result is a big bug which needs immediate attention from Apple. Users are getting confused whether iPhone 14 plus has that feature or not..
**Possible reason: **
I believe Apple releases iPhone OS versions in a single release each time and must be applying any kind of feature flagging to enable / disable a feature in a version or for a model. The feature flagging might not be working with Settings menu’s Search service or the code is not properly modular.
I have an ongoing activity in progress.
Think of:
a delivery in progress
house internet reboot in progress
some water / electricity / internet / tv outage.
(food) order processing
I want to show a persistent toast message above the tab bar, across all tabs and screens across the app. It could take 15 minutes until the activity is finished.
Obviously there's a challenge of:
accessibility
content overlaying with each other
extra engineering effort.
What we've thought of doing is:
Option1: show a toast message, but when a modal is presented then it presents on top of the toast message. The toast message no longer updates itself. Once the modal is finished, then the toast message re-appears and continues to update.
Option2: keep the toast message across all tabs and modals and work through the challenges mentioned
Question:
What are some other design approaches that could be taken to persist an ongoing activity (much like 'Live Activity', but just across the app when it's in foreground) or what are some design reasons that the two options considered are bad?
Target: MacOS 11.1 and above
C++, Juce 8, XCode 16.2
Testing: Sonoma 14.5
Logic Pro (latest version), Reaper 7.34, Pro Tools 2023.12 and 2025.6
I'm developing an audio plugin that creates an NSStatusItem ("menu bar status icon" or MBSI for short) to provide visual feedback for one of the components. I've encountered a Logic Pro-specific behavior that I'd like to fix. I'm building for Mac-only, Intel and Silicon, and for AU/VST3/AAX.
Summary:
The NSStatusItem for the MBSI is created successfully and functions properly in some hosts (Reaper (AU and VST3), Pro Tools (AAX)) but isn't visible in Logic Pro, despite identical API behavior.
Details:
NSStatusItem Creation: implementation using [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength]
All API calls report success in both working (Reaper) and non-working (Logic Pro) hosts.
Logging shows Logic Pro and Reaper create the NSStatusItem with the same properties:
Window frame: {{0, -36}, {38, 36}} (both hosts)
statusItem.visible: YES (both hosts)
Button exists and responds to state changes (both hosts)
Y coordinate is -36 pixels (above visible screen, both hosts)
In Reaper, I can see the MBSI but in Logic Pro I can't. Note: the MBSI has no functionality beyond visual feedback. It's not clickable nor does it create a corresponding menu.
Questions:
Are there known differences in how Logic Pro's AU hosting service handles system UI elements compared to other hosts? And if so, is there guidance on AU plugins accessing system UI elements like the menu bar?
Link to NSStatusItemTest.component: https://app.box.com/s/i3rq0hii3qf43iojrayc17fsfq7fnssd
Link to video showing issue: https://app.box.com/s/icefqk898timqov77t468lqtio0rjqul
Link to Console output for testing in Reaper vs Logic Pro: https://app.box.com/s/ph6nv1lmozo3phtjx3md6abdms5atgg6
Hi, I'm getting started with designing and coding a watchOS app. I wanted to use Sketch to plan the UI before I dive into coding, but it seems like the official Sketch templates on the Design Resources page only have templates for the Series 8 and SE 2 on watchOS 10. I want to use the Series 10's screen size for my layouts since it's the model I have, but I can't find a template for it. Will the official templates be updated for the new models? If not, does anyone know of a third-party template I can use? Thanks in advance!
Hey there! I'd love to know if theres a way where you can animate items between ZStack and VStacks? Just like the native iOS notifications on the Lockscreen stack at the bottom and if tapped, they convert from a Stack to a List - I have a list with items, displayed in a VStack, and I make the list collapsable when swiping down, where the items stack behind eachother with a progresisve reduction in opacity & scale, but I havent figured out a way to animate the items between the list and the stack - where you can visually see items starting to overlap and stack ontop of eachother when collapsing the list.
Hello,
I used icon composer to create an icon for my Mac OS app and it seemed to have worked. I see the app icon everywhere except for window expose or stage manager.
Any help or guidance would be greatly appreciated!