为何两态主题切换优于三态

In defense of two-state theme toggles

为何两态主题切换优于三态

前端社区正热议主题切换是选两态(亮/暗)还是三态(加系统默认)。Lea Verou 提出两态方案在多数场景下更优,其巧妙之处在于不永久存储偏好,仅在用户选择与系统设置不同时才记录,否则删除存储以回归系统默认。我认同这一观点,认为三态中的“系统”选项对许多用户而言不仅冗余,甚至会造成困惑。动态主题用户占比极低,为极少数边缘案例增加复杂性并不划算。更关键的是,普通用户往往根本不清楚自己的系统主题设置,所谓的“系统”选项对他们来说毫无意义,反而增加了认知负担。

我怀疑我们大部分时候都是在自造问题,而非解决真实存在的痛点。
  1. kqr

    我完全没想到人们对主题切换功能会有这么强烈的感受。我知道有些应用提供了这个选项,但我原本以为那只是一小部分开发者把它当作一个有趣的挑战来实现的。我的一款银行应用就有主题切换功能。我一个月只看两次那个应用,检查是否需要重新平衡储蓄投资组合。它根本不需要主题切换功能。显然,这个切换功能只是真实工作之间安排的“趣味冲刺”的产物。对吧?

    但这篇文章暗示主题切换功能是新开发的标配,正如括号里所暗示的那样:

    > (尽管讽刺的是,发布该文章的网站本身根本不提供任何主题或主题切换功能)

    就像……网站应该做这种事吗?这是来自某种信息茧房,还是行业内的 UX 人员普遍已经跨过了“我们是否应该提供主题切换”的讨论,进入了“我们显然必须拥有的主题切换的最佳形态是什么”的阶段?

    也许是我老了,但我并不期望开发者为了迎合不同的偏好而制作多个主题。这看起来完全是浪费时间。这些时间本可以更好地用于改进功能、修复 Bug 和提升稳定性,或者增加行为追踪以投放更精准的广告。

  2. donatj

    在程序员或设计师圈子之外,提供深色模式有多普遍?

    我们很想提供,但目前还没有,因为这是一项相当复杂的工作——我们有很多图片需要更新对应的深色版本,否则看起来会格格不入。

    不过据我所知,我们只收到过一条关于此功能的请求,而且那条请求简直夸张到了极点,声称我们的网站把他们的眼球都烧着了。

  3. dspillett

    一般来说,我无所谓第三个选项是否存在,但“系统”选项有用的一个场景是:当偏好设置保存在应用内并同步到我的个人资料时。我通常在桌面端使用浅色主题,而在移动端使用深色主题。不过说真的,如果切换开关触手可及,随手切换一下也完全不是负担。

    我常抱怨的一点不是切换开关本身,而是人们往往不测试两种状态,忽略了他们自己不使用的那种状态,导致一些元素因为对比度问题在某种状态下难以(甚至无法)阅读或看见。如果你要提供两种选项,请务必测试这两种选项。没有我的偏好选项没那么烦人,烦人的是提供了我的偏好选项,但实际上根本没法用。

    顺便一提,这是终极的浅色/深色模式实现方案:https://tonsky.me/

  4. red_trumpet

    > 在底层,它不是显式地在“浅色”或“深色”之间切换,而是在“回退到系统设置”和“与系统设置相反”之间切换。

    我不太喜欢这个做法。假设我的系统因为低电量而处于深色模式,但我想用浅色模式阅读某个页面,于是我手动切换了。下次我打开这个页面时(此时电量充足,系统已回到浅色模式),页面又会渲染成深色……

  5. xnx

    更好的想法是:尽可能少地对网站进行样式定制,把决定权交给用户的代理(浏览器)。

    现在的网络太多像旧版的 MySpace,每个设计师都试图表达自己的风格,而不是像 Twitter 那样以内容为核心。

同日更多故事

2026-09-04