From 360c182af36aac2b36e7a8a126edc9b165ccf922 Mon Sep 17 00:00:00 2001 From: Deepak Bhagat Date: Tue, 31 Mar 2026 02:53:19 +0530 Subject: [PATCH] fix(ios): preserve Liquid Glass on iOS 26 by skipping custom UITabBarAppearance On iOS 26, creating a custom UITabBarAppearance replaces the system-provided Liquid Glass material. This adds an early return in updateTabBarAppearance() on iOS 26+ when no explicit barTintColor or opaque scrollEdgeAppearance is set, so the system renders Liquid Glass instead. The inactive tint color is still applied via tabBar.unselectedItemTintColor for apps that set tabBarInactiveTintColor. Fixes #439 --- packages/react-native-bottom-tabs/ios/TabViewImpl.swift | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/react-native-bottom-tabs/ios/TabViewImpl.swift b/packages/react-native-bottom-tabs/ios/TabViewImpl.swift index 72938be9..9799e4b6 100644 --- a/packages/react-native-bottom-tabs/ios/TabViewImpl.swift +++ b/packages/react-native-bottom-tabs/ios/TabViewImpl.swift @@ -117,6 +117,15 @@ struct TabViewImpl: View { tabBar.isHidden = props.tabBarHidden + if #available(iOS 26.0, *) { + if props.barTintColor == nil && props.scrollEdgeAppearance != "opaque" { + if let inactiveTintColor = props.inactiveTintColor { + tabBar.unselectedItemTintColor = inactiveTintColor + } + return + } + } + if props.scrollEdgeAppearance == "transparent" { configureTransparentAppearance(tabBar: tabBar, props: props) return