Liquid Glass support : Best practices for navigation button styles in iOS 26 and later

Hello!

I'm currently working on Liquid Glass support for my app. I understand that starting with iOS 26, standard buttons like "Close" or "Done" have shifted from text buttons to using SF Symbols, as mentioned in the Human Interface Guidelines under "Icons".

However, on iOS 18 and earlier, the flat text button style remains the standard. I am unsure about the best approach for backward compatibility:

  1. Branch by OS version: Keep text buttons for older OS versions and use SF Symbols for iOS 26+.

    Concern: This increases the number of conditional branches, potentially reducing code readability and maintainability.

  2. Adopt SF Symbols universally: Use SF Symbols for all versions.

    Concern: I feel that SF Symbols do not fit well (look inconsistent or out of place) with the flat design language of iOS 18 and earlier.

What would be the recommended approach in this situation?

Thanks for your post.

This is an excellent topic. My personal recommendation is to always allow the iOS system to handle customization by refraining from adding excessive personal modifications. I would like to invite other developers here to provide their opinion.

Maintaining multiple UI styles for different iOS versions can indeed complicate code maintenance and reduce readability. However, consistency with native UI conventions is also important for providing a familiar user experience.

If abstraction seems too heavy, centralize the conditional logic in one place, such as in a view controller setup method or a dedicated UI helper class. This keeps the rest of your code clean.

I was looking at the documentation about how is expected to do with buttons here: Adoption Liquid Glass controls

In your case, it appears that you are seeking guidance on transitioning to SF symbols for all iOS versions, but you are concerned about their appearance in iOS before 26. Having utilized SF symbols across various iOS and macOS versions, I have not encountered any issues. Would you kindly provide examples where SF symbols do not appear visually appealing?

Albert Pascual
  Worldwide Developer Relations.

@DTS Engineer

Thank you for your comment!

If Liquid Glass support is implemented in iOS 26, the Close button for navigation will likely be created using code similar to the following:

let closeButton = UIBarButtonItem(
     barButtonSystemItem: .close,
     target: self,
     action: #selector(closeButtonTapped)
 )

With this code, the appearance on iOS 18 will be as shown on the right side of the image.

Is it correct to understand that this intended appearance is within acceptable limits?

Thanks for the reply, the button looks like the default before Liquid Glass, do you have any concerns? Your code looks perfect and you are using the defaults without any modifications, you can add any modifications you like or like me, let the iOS take care of the rendering.

The appearance looks good to me, but looks like you are concerned about one? I would recommend to look at the same code with older versions of iOS as well as move to the iOS 26.2 and beyond.

Albert Pascual
  Worldwide Developer Relations.

Liquid Glass support : Best practices for navigation button styles in iOS 26 and later
 
 
Q