JavaScript and CSS allow users to detect the user theme preference with CSS’ prefers-color-scheme
media query. It’s standard these days to use that preference to show the dark or light theme on a given website. But what if the user changes their preference while using your app?
To detect a system theme preference change using JavaScript, you need to combine matchMedia
, prefers-color-scheme
, and an event listener:
window.matchMedia('(prefers-color-scheme: dark)') .addEventListener('change',({ matches }) => { if (matches) { console.log("change to dark mode!") } else { console.log("change to light mode!") } })
The change
event of the matchMedia
API notifies you when the system preference changes. You can use this event to automatically update the site’s display in real time.
I love that this API allows detecting user preference on a system level. Catering to user needs is an important part of creating a great web experience!
5 More HTML5 APIs You Didn’t Know Existed
The HTML5 revolution has provided us some awesome JavaScript and HTML APIs. Â Some are APIs we knew we’ve needed for years, others are cutting edge mobile and desktop helpers. Â Regardless of API strength or purpose, anything to help us better do our job is a…
Responsive and Infinitely Scalable JSÂ Animations
Back in late 2012 it was not easy to find open source projects using
requestAnimationFrame()
– this is the hook that allows Javascript code to synchronize with a web browser’s native paint loop. Animations using this method can run at 60 fps and deliver fantastic…
CSSÂ Transforms
CSS has become more and more powerful over the past few years and CSS transforms are a prime example. CSS transforms allow for sophisticated, powerful transformations of HTML elements. Â One or more transformations can be applied to a given element and transforms can even be animated…
[ad_2]
Source link