快速了解颜色调整模块 1 的第一个公开工作草案

Avatar of Geoff Graham
Geoff Graham

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

自从 Apple 在 MacOS 10.14 中将其发布为系统设置 并在随后作为 Safari 的一部分发布以来,我们一直在讨论 Dark Mode。 它很有趣,因为它既打开了设计机会,也根据用户的实际偏好定制用户体验。

本周,我们获得了 颜色调整模块 1 规范的编辑草案 和其 第一个公开工作草案。 所有这些都是正在进行的工作,但是跟踪它的进展很有趣。 该规范引入了三个新的 CSS 属性,这些属性有助于告知用户代理在根据用户偏好确定渲染页面的视觉外观时应该拥有多少控制权。

color-scheme 是规范中定义的第一个属性,也许也是其核心。 它接受 lightdark 值,正如您可能猜到的那样,它们分别对应于支持它们的操纵系统的亮模式和暗模式偏好。 值得一提的是,我们可能正在处理除“亮”和“暗”以外的标签(例如“白天”和“夜晚”),但我们正在处理的归结为亮色方案与暗色方案。

来源:developer.apple.com

这个单独的属性具有重要的意义。 首先,它的理念是让我们能够根据用户的系统偏好设置样式,这使我们能够对该体验进行细粒度的控制。

另一个可能的意义是,声明该属性本身使用户代理能够承担部分责任来确定元素的颜色,其中声明 lightdark 通知用户代理元素“知道”颜色方案,并且应该根据与该值匹配的偏好设置进行样式设置。 另一方面,我们可以通过使用 auto 值让浏览器完全控制来确定要使用的颜色方案,具体取决于用户的系统偏好。 这告诉浏览器元素“不知道”颜色方案,并且浏览器可以使用用户偏好和系统默认样式作为指南来确定如何继续。

值得注意的是,我们可能还有一个 prefers-color-scheme 媒体特性(目前位于 媒体查询 5 级规范的编辑草案 中),它也有助于我们检测用户的偏好,并帮助我们根据系统偏好更好地控制用户体验。 Robin 有一个关于它的 很好的概述。 颜色调整模块 1 级工作草案也 提到了 可能会在 <meta> 元素中使用颜色方案值来指示颜色方案支持。

当然,该属性还有更多内容,包括 only 关键字,链接值以指示优先级顺序,甚至是一个开放式的自定义标识符关键字。 所以一定要深入研究,因为有很多东西需要学习。

相当有趣,对吧? 希望您开始了解这个草案如何开辟新的可能性,甚至会影响我们做出设计决策的方式。 这仅仅是开始,因为还有另外两个属性!

当前草案肯定会扩展,但是,这就是我们了解 W3C 作者正在做的出色工作,获得他们面临的挑战的背景,甚至 为这项工作做出贡献 的地方。 (请参阅 Rachel Andrew 关于 做出贡献的建议。)