Similaire à " Comment détecter si OS X est en mode sombre? " Uniquement pour les navigateurs.
Quelqu'un a-t-il trouvé s'il existe un moyen de détecter si le système de l'utilisateur est dans le nouveau mode sombre d'OS X dans Safari / Chrome / Firefox?
Nous aimerions modifier la conception de notre site pour qu'elle soit compatible avec le mode sombre en fonction du mode de fonctionnement actuel.
Réponses:
La nouvelle norme est enregistrée sur W3C dans Media Queries Level 5 .
REMARQUE: actuellement uniquement disponible dans Safari Technology Preview Release 68Dans le cas où la préférence de l'utilisateur est
light
:Dans le cas où la préférence de l'utilisateur est
dark
:Il existe également une option
no-preference
au cas où un utilisateur n'aurait aucune préférence. Mais je vous recommande simplement d'utiliser le CSS normal dans ce cas et de mettre en cascade votre CSS correctement.-
-
-
-
-
la source
window.matchMedia("(prefers-color-scheme: dark)").matches
si j'ai du temps libre, j'ajouterai une solution javascript complète à ma réponse.Si vous souhaitez le détecter à partir de JS, vous pouvez utiliser ce code:
Pour surveiller les changements:
la source
matchMedia
, puis il essaiera de faire correspondre laprefers-color-scheme: dark
chaîne. Si cela correspond, nous sommes en mode sombre.if (window.matchMedia?('(prefers-color-scheme: dark)').matches) { }
Ceci est actuellement (septembre 2018) en cours de discussion dans "Brouillons de l'éditeur de groupe de travail CSS" .Spec a lancé (voir ci-dessus), disponible sous forme de requête multimédia. Quelque chose a déjà atterri dans Safari, voir aussi ici . Donc, en théorie, vous pouvez le faire dans Safari / Webkit:Mais il semble que ce soit privé .Sur MDN, une fonctionnalité multimédia CSSinverted-colors
est mentionnée . Plug: J'ai blogué sur le mode sombre ici .la source
J'ai cherché via l'API Mozilla, ils ne semblent pas avoir de variables correspondant à la couleur des fenêtres du navigateur. Bien que j'aie trouvé une page qui pourrait vous aider: Comment utiliser les styles du système d'exploitation dans CSS . Malgré l'en-tête de l'article, les couleurs sont différentes pour Chrome et Firefox.
la source
Selon Mozilla, voici la méthode préférée à partir de septembre 2019
la source