callstack / callstack/react-native-bottom-tabs

The tab bar is always forced to light mode on iOS 26 when "Reduce Transparency" is on

オープン
#433 コメント 14 件 リアクション 2 件 担当者 0 名 GitHub で見る
bug
主要言語
TypeScript
スター
1.5k
フォーク
109
平均マージ
11時間 44分
マージ済み PR(30日)
8

説明

### Before submitting a new issue

- [x] I tested using the latest version of the library, as the bug might be already fixed.
- [x] I tested using a [supported version](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md) of react native.
- [x] I checked for possible duplicate issues, with possible answers.

### Bug summary

On iOS 26 with the new Liquid Glass style tab bar, the background and icon appearance is always in light mode despite system setting, when the accessibility option "Reduce Transparency" is enabled in the iOS settings. When the accessibility setting is _not_ enabled, the tab bar responds to system appearance and content in the background normally. Calling `Appearance.setColorScheme('dark')` and/or using DarkTheme for the Native stack navigator has no effect on this issue. This does not seem to be a bug in iOS 26 itself, nor is the tab bar _supposed_ to be in light mode when the accessibility setting is enabled, as in Apple's own native apps the tab bar behaves normally (as shown in the example screenshot of Shortcuts below).
This issue can be replicated with the example app in this repo.

**Screenshots**
Reduce Transparency enabled and system set to dark theme, issue with the tab bar occurs.
Reduce Transparency enabled
Reduce Transparency disabled, issue does not occur.
Reduce Transparency disabled
Apple's Shortcuts app for comparison. No issue with Reduce Transparency setting.
Image

The screenshots are from a simulator but the issue occurs on actual devices too.

### Library version

0.11.2

### Environment info

```shell
System:
OS: macOS 15.6.1
CPU: (8) arm64 Apple M1 Pro
Memory: 626.77 MB / 32.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 20.19.5
path: /opt/homebrew/opt/node@20/bin/node
Yarn:
version: 4.6.0
path: /opt/homebrew/opt/node@18/bin/yarn
npm:
version: 10.8.2
path: /opt/homebrew/opt/node@20/bin/npm
Watchman:
version: 2025.09.15.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 25.0
- iOS 26.0
- macOS 26.0
- tvOS 26.0
- visionOS 26.0
- watchOS 26.0
Android SDK: Not Found
IDEs:
Android Studio: 2025.1 AI-251.26094.121.2512.13991807
Xcode:
version: 26.0/17A324
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.16
path: /usr/bin/javac
Ruby:
version: 3.4.6
path: /opt/homebrew/opt/ruby/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react: Not Found
react-native: Not Found
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: Not found
newArchEnabled: Not found
iOS:
hermesEnabled: Not found
newArchEnabled: Not found
```

### Steps to reproduce

1. Install the example app from this repo.
2. (Optionally) call Appearance.setColorScheme('dark') in the `App()` function and set NavigationContainer `theme` prop to DarkTheme (imported from '@react-navigation/native').
3. In iOS Settings app, set system theme to dark and in Accessibility -> Display & Text size, enable Reduce Transparency.
4. In the example app, navigate to an example with a native tab bar.

### Reproducible sample code

```js
./apps/example/ from this repository.
```

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず ./apps/example/ でサンプルアプリを実行し、App() のセットアップに従って、ダークモードと Reduce Transparency を有効にした状態でネイティブのタブバーを再現します。この設定でタブバーがシステムのダークな外観に従い、Reduce Transparency を無効にした場合には報告されている動作を維持することを確認して、完了を確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
react-native, typescript
領域
mobile
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
56/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。