一行代码实现黑暗模式

2020 年 10 月 13 日 InfoQ

作者丨Dip Vachhani

译者丨王强

策划丨小智

其实黑暗模式可以用一行代码来实现。我们看看具体是怎么做到的。

以这个模板为例:

现在添加神奇的 CSS
   
   
     
html[theme='dark-mode'] {    filter: invert(1) hue-rotate(180deg);}

就这些!你搞定了。

黑暗模式完成,但其实有点不合适。

    说  明    

现在我们试着看看幕后发生了什么。

filter 这个 CSS 属性将模糊或颜色偏移等图形效果应用于某个元素。这些滤镜通常用于调整图像、背景和边框的渲染。

  • 参考:MDN Web 文档

  • https://developer.mozilla.org/en-US/docs/Web/CSS/filter

对于这种黑暗模式,我们将使用两个滤镜,分别是 invert 和 hue-rotate

invert 滤镜用来反转应用程序的配色方案。也就是说黑色会变成白色,白色变成黑色,所有颜色以此类推。invert() 函数作为 filter 属性的值将取 0 到 1 之间的数字,或 0%到 100%的百分比。

hue- rotate 滤镜可以帮助我们处理所有非黑色和白色的颜色。它能将色相旋转 180 度,让我们可以确保应用程序的配色方案不变,而只是减弱其颜色。

使用这种方法的唯一陷阱是,它还将反转应用程序中的所有图像、图片和视频。因此,我们将向所有图像添加相同的规则以反转效果。
   
   
     
html[theme='dark-mode'] img,picture,video{    filter: invert(1) hue-rotate(180deg);}
并且我们要添加一个类,以反转特定标签内的效果。
   
   
     
.invert {    filter: invert(1) hue-rotate(180deg);}

结果:

这样我们就成功实现了黑暗模式。

BBulma 和 Bulma 的模板是基于 Flexbox 的免费开源 CSS 框架。

 延伸阅读:

https://dev.to/dip15739/dark-mode-with-only-1-css-property-17fl


InfoQ 读者交流群上线啦!各位小伙伴可以扫描下方二维码,添加 InfoQ 小助手,回复关键字“进群”申请入群。回复“资料”,获取资料包传送门,注册 InfoQ 网站后,可以任意领取一门极客时间课程,免费滴!大家可以和 InfoQ 读者一起畅所欲言,和编辑们零距离接触,超值的技术礼包等你领取,还有超值活动等你参加,快来加入我们吧!




  • 点个在看少个 bug 👇

登录查看更多
0

相关内容

【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
62+阅读 · 2020年10月15日
【经典书】C语言傻瓜式入门(第二版),411页pdf
专知会员服务
51+阅读 · 2020年8月16日
《常微分方程》笔记,419页pdf
专知会员服务
71+阅读 · 2020年8月2日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
《深度学习》圣经花书的数学推导、原理与Python代码实现
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
SIGGRAPH 2020 | 开源代码实现从草图生成人脸
计算机视觉life
11+阅读 · 2020年7月1日
实战 | OpenCV 实现多张图像拼接
计算机视觉life
5+阅读 · 2019年9月20日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
iOS 多级 UIScrollView 嵌套的实现方案
CocoaChina
4+阅读 · 2018年12月13日
6 个吊炸天的黑科技工具,吊打所有同类软件
高效率工具搜罗
3+阅读 · 2018年11月13日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
Arxiv
0+阅读 · 2020年12月2日
Arxiv
6+阅读 · 2018年4月4日
Arxiv
3+阅读 · 2018年3月21日
VIP会员
相关VIP内容
【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
62+阅读 · 2020年10月15日
【经典书】C语言傻瓜式入门(第二版),411页pdf
专知会员服务
51+阅读 · 2020年8月16日
《常微分方程》笔记,419页pdf
专知会员服务
71+阅读 · 2020年8月2日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
《深度学习》圣经花书的数学推导、原理与Python代码实现
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
相关资讯
SIGGRAPH 2020 | 开源代码实现从草图生成人脸
计算机视觉life
11+阅读 · 2020年7月1日
实战 | OpenCV 实现多张图像拼接
计算机视觉life
5+阅读 · 2019年9月20日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
iOS 多级 UIScrollView 嵌套的实现方案
CocoaChina
4+阅读 · 2018年12月13日
6 个吊炸天的黑科技工具,吊打所有同类软件
高效率工具搜罗
3+阅读 · 2018年11月13日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
Top
微信扫码咨询专知VIP会员