Precisely the form of nerdy UI/UX dialogue I really like:
Lea’s pushing again on mild/darkish mode implementations that show three state choices for guests:
- Mild
- Darkish
- System (core of the talk)
Why present a System choice in any respect when:
[…] a good two state management can truly categorical all three states — customers simply want to use the override the primary time it turns into related.
The primary determine succinctly illustrates the purpose:

Briefly: No choice? Fall again to the system settings and supply a setting to override that if that’s wanted/most well-liked. Then that choice is saved in localStorage for future classes.
One thing I sorta missed the primary time I noticed the picture is that maybe we don’t even have to show two states after we know what coloration scheme is lively:
- Mild by default? Present a Darkish choice to override that.
- Darkish by default? Present a Mild choice to override that.
Personally, I’m satisfied. Much less UI that accomplishes the identical as extra UI is usually a superb factor. Lea’s level goes approach past that, stepping into well-considered causes that transcend simplicity.
An fascinating consideration is what occurs when toggling again to a state. Like, if we begin with a Mild system choice, toggle it to Darkish, then again to Mild. Can we get a brand new override choice or return to the system setting could be an undefined localStorage worth? Possibly it doesn’t matter as a result of theme switching isn’t precisely the first person intent:
Bear in mind, this management is completely tangential to the precise person aim for visiting the web site. Even when their intent had been to pin mild as a substitute of reverting to System (mild), that is one thing they’d solely discover as soon as these diverge, i.e. the OS switches to darkish. At that time, fixing it’s a single click on away. It’s such a simple repair, that there isn’t any level in dwelling on it additional.
To be clear, Lea is referring to persistent UI. The steerage is concentrating on toggles which can be at all times seen to the customer. That’s actually, actually widespread in a web site’s header/navigation (my private web site included). If that’s the sample, then it might distract from the customer’s major intent. And the extra choices we see, the extra cognitive dissonance is launched.
I believe there’s an much more compelling argument within the thread:
Sure, please! Improvement for the choice, however no want to indicate an override when the setting is within the browser itself. Then a tri-state toggle is likely to be extra acceptable.
Talking of which, Lea does provide two situations the place three states make sense:
- Colour scheme setting that lives a separate settings panel (i.e., the toggle is in a very totally different context that isn’t interfering with the customer’s major intent)
- When coloration schemes are carried out otherwise relying on the system setting (i.e., greater than two coloration schemes are provided )
Definitely worth the full learn, in case you ask me!








