Mirip dengan " Bagaimana mendeteksi jika OS X dalam mode gelap? " Hanya untuk browser.
Adakah yang menemukan jika ada cara untuk mendeteksi apakah sistem pengguna berada dalam Mode Gelap OS X yang baru di Safari / Chrome / Firefox?
Kami ingin mengubah desain situs kami menjadi mode ramah gelap berdasarkan mode operasi saat ini.
Jawaban:
Standar baru terdaftar di W3C di Media Queries Level 5 .
CATATAN: saat ini hanya tersedia di Safari Technology Preview Release 68Dalam hal preferensi pengguna adalah
light
:Dalam hal preferensi pengguna adalah
dark
:Ada juga opsi
no-preference
jika pengguna tidak memiliki preferensi. Tapi saya sarankan Anda hanya menggunakan CSS normal dalam kasus itu dan mengalirkan CSS Anda dengan benar.-
-
-
-
-
sumber
window.matchMedia("(prefers-color-scheme: dark)").matches
Jika saya punya waktu luang, saya akan menambahkan solusi javascript lengkap untuk jawaban saya.Jika Anda ingin mendeteksinya dari JS, Anda dapat menggunakan kode ini:
Untuk melihat perubahan:
sumber
matchMedia
dan kemudian akan mencoba mencocokkanprefers-color-scheme: dark
string. Jika cocok kami dalam mode gelap.if (window.matchMedia?('(prefers-color-scheme: dark)').matches) { }
Saat ini (September 2018) sedang dibahas dalam "Draf Editor Kelompok Kerja CSS" .Spec telah diluncurkan (lihat di atas), tersedia sebagai kueri media. Sesuatu telah mendarat di Safari, lihat juga di sini . Jadi secara teori Anda bisa melakukan ini di Safari / Webkit:Tapi sepertinya ini rahasia .Pada MDN fitur media CSSinverted-colors
yang disebutkan . Pasang: Saya membuat blog tentang mode gelap di sini .sumber
Saya mencari melalui Mozilla API, mereka tampaknya tidak memiliki variabel yang sesuai dengan warna browser-windows. Meskipun saya menemukan halaman yang dapat membantu Anda: Cara Menggunakan Gaya Sistem Operasi di CSS . Meskipun artikel-header warna berbeda untuk Chrome dan Firefox.
sumber
Menurut Mozilla, berikut adalah metode yang disukai pada September 2019
sumber