In defense of two-state theme toggles(joshcollinsworth.com) |
In defense of two-state theme toggles(joshcollinsworth.com) |
But this article implies a theme toggle is table stakes for new development, as implied by the parenthetical:
> (despite the irony that the site that post is published on offers no theming or theme toggle at all)
Like... is that something a website should do? Does this come from a bubble, or have UX people in the industry more broadly moved past "should we provide a theme toggle" into "what is the optimal shape of the theme toggle we obviously must have"?
Maybe I'm old, but I don't expect developers of things to produce multiple themes to suit different preferences. It seems like a complete waste of their time. That time could better be used to improve functionality, fix bugs and stability, or increase behavioural tracking for more specifically targeted advertisements.
Arguably, I personally loathe it when the site has no dark mode cough Amazon cough as I'm doing some late-night shopping on the bed and the screen blinds my eyes with the white background.
As someone who worked on banking software, absolutely not. It was not fun sprint thing, but actual requirement. We would not do it otherwise. We did not do fun sprints. And if we did, we would pick things are the ones that have less maintenance issues related to them (because you then have to keep both versions forever).
Including a toggle in an app/site UI so users can choose to not use their device setting is an extra.
We'd like to but don't currently offer it because it would be a fairly involved undertaking - we have a lot of images that would need to be updated with corresponding dark versions to not look out of place.
As far as I'm aware though we've only received a single request for such a feature, and that request was wildly over the top exclaiming that out site lit their eyeballs on fire.
Not sure I like this. Suppose my system is in dark mode because of low battery, but I want to read a page in light mode, so I change it. The next time I open the page with full battery (and thus system light mode), the page will render dark again...
https://www.brycewray.com/posts/2024/01/its-tri-state-switch...
* Automatically Follow the system theme
* Lock in the opposite of the current system theme.
If you change a page to light while the system is dark, that page will render light forever. (Or at least until you change the setting again)
Sounds like a good reason to make it automatic then, because if users have to find your state toggle in some hamburger menu, they're not going to use it if they don't even know the system has a theme applied.
Rather than each site making its own design for such a control, I wish browsers would make it a per-site setting users could use.
However, we should go a step further and provide a framework of UI elements that can be used consistently to create a uniform and accessible interface and they could even be pre-compiled into native controls for more efficient...hold on a gosh darn minute...
A common gripe I have isn't the toggle, but that people often don't test both states, neglecting the one that they don't personally use, so elements creep in that are difficult (or even impossible) to read/see in one of the options because of contrast problems. If you are going to have both options, please test both options. Not having my preference is less annoying than being offered my preference but it not actually being usable.
As a side note, this is the ultimate light/dark mode implementation: https://tonsky.me/
Maybe it's not technically "white", but I don't think that's a particularly strong rebuttal to my point.
My wife’s phone has been in dark mode since before I married her, but most of the apps she cares about either don’t support dark mode (at least on her version of Android, older Samsung) or she has manually chosen light mode. The system preference and ability to swap it at night time or whatever is thus a bit of a mockery. (I mentioned it once, but didn’t change anything.)
Because of this for my site I have four themes, light, summer sunshine, forest, and dark. I’ve seen some sites where the theme is an RGB colour picker even.
In regards to the article, that’s a lot of consternation and frustrating statements about toggles and tri-state toggles. A simple button with a dynamic icon works well as soon as you want to cycle through more than two choices.
Ironically enough, with the dark mode CSS, the inline code span is unreadable.
Some apps I’ve used in dark mode long enough it would be weird if it switched. But new things I use I don’t really go looking for it.
Default to system, use two states, and integrate the toggle in a top level UI context as a single icon that flips between sun/moon. Putting it deep in a menu is what creates all this pretentious hedging because we're subconsciously worried about the user not being able to get to it.
> rather than explicitly toggling between “light” or “dark”, it toggles between falling back to the system setting, and the opposite of the system setting.
Absolutely NOT.
> this unavoidably indicates that some number of users don’t even know what their system theme is—or might not even understand what “system” means in the first place!
Especially these people should NOT be given two state setting that depends on something third they do not know about. Yes, some people do not care about dark vs light setting. Let them not care.
``` Theme ( ) Light (•) Dark
[x] Follow system Dark — currently controlled by system ```
When "Follow system" is on, the theme choice is greyed out.
Feels simpler to me, and it scales better if themes ever become more than just light/dark.
One may also think about a grayscale theme, perhaps.
Too much of the web is like old MySpace where every designer is trying to express their style instead of Twitter where content is the focus.
Furthermore there might be accessibility use cases in which your site works better for some people in dark mode and better for other people in light mode, expecting that people will switch their device settings when they come on your site if you have this problem would not be nice.
If a site honors the dark/light setting, I don't know what accessibility need would be served by being in the opposite mode for that one site. Having a toggle to meet preferences, yes, need, I don't know.