In defense of two-state theme toggles

In defense of two-state theme toggles

The frontend community is debating whether theme toggles should have two states (light/dark) or three (adding 'system'). Josh Collinsworth argues that two states are usually sufficient, citing Lea Verou's clever implementation that avoids lock-in by storing preferences only when they differ from the system setting. He addresses the case for tri-state toggles, dismissing dynamic theme concerns as edge cases and noting that 'system' is unclear to many users. He concludes that adding complexity for a tiny minority isn't worth it.

I think we’ve mostly invented it.
  1. kqr

    I had no idea people had so strong feelings about theme toggles. I know some applications offer the choice, but I imagined it was because a small set of developers took it as a fun challenge to implement. One of my banking apps has a theme toggle. I look at that app twice a month to see if I need to rebalance the savings portfolio. It doesn't need a theme toggle. Clearly, the toggle is just the result of a scheduled "fun sprint" in between real work. Right?

    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.

  2. donatj

    How common is offering a dark mode outside particularly programmer-y/designer-y spaces?

    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.

  3. dspillett

    Generally I don't care if the third option is there or not, but one place where “system” is useful is when the preference is in an app and saves to my profile. I usually use a light theme on desktop but dark on mobile. Though TBH if the toggle is in easy reach it is no hardship to flick it one way or the other.

    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/

  4. red_trumpet

    >Under the hood, rather than explicitly toggling between “light” or “dark”, it toggles between falling back to the system setting, and the opposite of the system setting.

    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...

  5. georgefrowny

    > Despite spending hours a day looking at her phone, she literally had to check it to find out what her default color theme is; it’s that invisible to her.

    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.

More from this day

2026-09-04