callstack / callstack/react-theme-provider

Preferred light/dark theme?

未關閉
#55 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
JavaScript
星號
467
分支
53
PR 合併指標
30 天內沒有已合併 PR

描述

## Describe the feature

It'd be nice to automatically be able to accommodate a user's preferred light/dark theme preferences.

Perhaps, simplifying the check of `uiMode && UI_MODE_NIGHT_MASK` [on Android](https://developer.android.com/reference/android/content/res/Configuration.html#uiMode) and `traitCollection.userInterfaceStyle` [on iOS](https://developer.apple.com/documentation/uikit/uiuserinterfacestyle).

These both have `undefined`/`unspecified`, `light`, and `dark`/`night`.

Unfortunately, the [built-in react-native uiMode](https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java#L47) doesn't give this information.

## Motivation

With iOS 13 and Android Q making this sort of theming more integrated (and Google and Apple's own apps supporting the ability to switch at the OS level), it'd be nice to automatically detect what theme the user wants.

I'd rather not force a user to fumble through app settings to configure the theme if they've already got an option to specify it at the OS level.

## Related Issues

I didn't see any at first glance, but I may have missed them.

貢獻指南

開啟貢獻指南

研究方向

Start by reviewing React Native's AndroidInfoModule entry point and the Android uiMode and iOS traitCollection.userInterfaceStyle APIs cited in the issue. The work is done when the theme provider can distinguish unspecified, light, and dark preferences on both platforms, with behavior covered by appropriate tests.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
android, ios, javascript, react-native
領域
mobile
Issue 類型
功能
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。