diff options
| author | eltrac <hi@eltr.ac> | 2026-05-12 09:15:56 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-05-12 09:15:56 +0800 |
| commit | 4e2ebd71b33293dc41aa56505665d55c28b9514d (patch) | |
| tree | 1c996615c9947cbf85e30b6bf8398f3ab5435933 /content | |
| parent | f72ea1e5039e7b552b056ac2489f5ab23856000a (diff) | |
[draft] new weekly draft
Diffstat (limited to 'content')
| -rw-r--r-- | content/weekly/81.md | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/content/weekly/81.md b/content/weekly/81.md new file mode 100644 index 00000000..fb2b1c9c --- /dev/null +++ b/content/weekly/81.md @@ -0,0 +1,63 @@ ++++ +title = "稻草人周刊 Vol." +subtitle = "" +tags = [] +date = 2026-05-12T08:31:42+08:00 +draft = true +toc = true ++++ + +Blah, blah. + +<!--more--> + +--- + +## 连接 + +### 浏览器应该有单站点的色彩偏好设置 + +> [!note] +> [Rationale for a Browser-Level Color Scheme Preference](https://blog.jim-nielsen.com/2022/browser-level-color-scheme-preference/) + +> [!note] +> [Browsers Should Have a Native Control for Per-Site Color Scheme](https://tylergaw.com/blog/color-scheme-browser-native-control/) + +两篇文章都提出了同一个问题的相似解决方案,即浏览器不应该只能集成操作系统的明暗设置,还应该能调整浏览器本身以及单个站点的明暗设置,也就是允许用户在多个层级自定义 `prefers-color-scheme` 媒体查询的结果,这样网站开发者只需要编写 CSS 就好了,不需要自己用 JavaScript 再实现单站点切换的逻辑。 + +> You can probably imagine the problems associated with every website in the world having to come up with their own bespoke solution to the same fundamental user problem. <br/> +> 你大概能想象,这个问题关联着全世界所有想出了他们自己对同样一个基础的用户问题的解决方案的网站。 + +然而,不同网站的实现会有差异,有的会把切换的按钮放在顶部,有的放在单独的设置里,有的是文字链接,有的是按钮,有的是太阳和月亮的图标,有的用空心和实心的圆表示。总之,明明是相同的操作,在不同的站点之间却不具有一致性。 + +> And some of you psychos put it at the very bottom of an incredibly long page, I think because you’re out to get me.<br/> +> 还有你们有些疯子把它放在很长的网页的最底部。我觉得你们就是想要整我。 + +此外开发者也不好过,要自己实现单站点的明暗方案切换,就必须用到 JavaScript,不仅要编写覆盖 `prefers-color-scheme` 和储存用户偏好的逻辑,还可能要修改 CSS 层面的暗色模式实现方法,而且用于覆盖的 JS 脚本还必须放在网页的最前面,不能异步加载,否则用户就会在切换页面的时候看到网页突然闪一下。更关键的是,无数的人都要为这个不大不小的需求重新造轮子。 + +之前我的博客一直使用媒体查询实现暗色模式(`@media (prefers-color-scheme: dark)`),很简单省心,也应该这样。不过调查后发现不是所有人都会切换操作系统的明暗设置,更不用说浏览器级别的设置了,还有 LibreWolf 等隐私浏览器为了防止追踪器用「用户是否开启了暗色模式」这一信息生成指纹,界面永远都是亮色。[^1]所以,我也不得不重造轮子,先把[媒体查询改成了 CSS 类](https://src.eltr.ac/eltrac/geedeapro/commit/313bd9b9d426080a2c5784026d42a188c43282c0),方便 JavaScript 操作,然后[实现切换站点配色的 UI 和交互逻辑](https://src.eltr.ac/eltrac/geedeapro/commit/52758459a220fde27f1519d3fd3e99f3f2a52f80)。 + +如果有浏览器内置的切换方式,我就可以保留最简单的使用 CSS 媒体查询的实现方案,而不需要重造轮子了。 + +上面提到的两篇文章一篇是 2022 年发布的,一篇是今年三月发布的,三四年的时间里,这个功能都没有成真。不过,这看起来也不应该是 Web 标准,仅仅是浏览器自己的功能,所以仅仅「提议」想必用处不大,也只能寄希望于有人看到之后会给各个浏览器提交 Pull Request 吧。 + +--- + +## 止语 + +{{< music cover="" title="" artist="" apple="" spotify="" netease="" >}} + + +--- + +## 星群 + + +--- + +## 切片 + +## Footnotes + +[^1]: 不过我想就算真的有单站点的色彩方案设置,也有隐私风险,LibreWolf 还是会默认屏蔽的。 + |
