callstack / callstack/react-theme-provider

Preferred light/dark theme?

Ouverte
#55 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
JavaScript
Étoiles
467
Forks
53
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

## 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.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, ios, javascript, react-native
Domaine
mobile
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.