How to Detect Dark Mode in JavaScript?

Patricia Arquette
Release: 2024-11-09 19:26:02
Original
578 people have browsed it

How to Detect Dark Mode in JavaScript?

Detecting Dark Mode in JavaScript

With the widespread adoption of dark mode in operating systems like Windows and macOS, developers need a way to adapt their web applications accordingly. This task arises when customizing user interfaces and styling elements dynamically based on the system's preferred color scheme.

One approach involves using CSS media queries to target dark mode preferences. However, when handling elements styled in JavaScript, such as those created using the Stripe Elements API, a more comprehensive solution is required.

To determine the operating system's color scheme programmatically in JavaScript, utilize the following technique:

if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
    // Dark mode is active
}
Copy after login

This method checks if the browser supports the window.matchMedia() API and then employs a media query to verify if the system's preferred color scheme is dark.

To monitor changes in color scheme preference, use the following code:

window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
    const newColorScheme = event.matches ? "dark" : "light";
});
Copy after login

This listener function monitors any modifications in the media query and provides an event object that indicates the new color scheme. Developers can then update their applications dynamically to match the current system settings.

By implementing this technique, web applications can seamlessly adapt to dark mode, providing users with a consistent and visually appealing experience across different systems and operating conditions.

The above is the detailed content of How to Detect Dark Mode in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template