Post

YES, Dark Mode Toggles _should_ be a browser feature. I wrote about this before: brm.us/dark-mode-ov... Find the link to the Chrome Bug in the post, and hit the star next to it to "upvote" the bug. (I even have a prototype extension to provide this for you: brm.us/chrome-dark-...) #cssday

brm.usDark Mode Toggles Should be a Browser FeatureWhen implementing Dark Mode and ways to toggle it, developers currently need to duplicate code and roll their own toggle implementation. What if, instead, browsers would take care of all that?

23 reposts100 likes

Not just that - I believe that dark mode itself should be a universal browser feature. Extensions like darkreader.org have been doing it for ages. If ppl want to customize the dark experience, they still can, but most won't need to. Even less code duplication. As of 2026 only some browsers do it.

darkreader.orgDark Reader — dark theme for every websiteDark mode for every website. Take care of your eyes, use dark theme for night and daily browsing. For Chrome and Firefox, Edge and Safari.

It’s unfortunately impossible to generalize an inversion of color well, way too many variables at play (not to mention “feel”). Whilst some extensions certainly make an attempt, from my anecdotal experience, most folks see them as worse than just dealing with light mode.

As long as they don’t take the Gmail approach to dark mode and use awful inversion algorithms in a very specific subset of cases that you have little to no control over, I am all for it.

This proposal is NOT about automatically creating dark modes. Instead, this proposal is about exposing a button that lets you override the value for prefers-color-scheme. This this, the dark mode styling remains a responsibility of the website to implement.

To be clear, I’m not saying it isn’t. Im saying that’s the line that I draw before I riot when it comes to theming content on the web.

Recently went through this. I agree, things like selected theme should be entirely in CSS so you're not inlining scripts in the head to check local-storage. But we should consider more than light/dark. We need layered themes the component can enumerate (eg contrast + dark)