如何通过 HSB 颜色模式构建夜间模式
中国睡眠研究会发布的《2017 年中国青年睡眠现状报告》显示,大约 90% 的人在睡前离不开电子产品。
不知道大家有没有感觉到普通的亮色界面会让我们在夜间使用的时侯感到刺眼,长时间使用会感觉眼睛疼痛,对眼睛的伤害也非常大。(当然睡前不玩手机是最好的解决方法)
所以对于阅读性或者社交娱乐等等 APP,打造夜间模式的功能会让我们得到更好的体验,减少对眼睛的伤害。
夜间模式 UI 与深色风格 UI 的区别
我们平时使用的不少音乐或视频类产品都采用了深色风格 UI 的设计,深色风格 UI 容易承托娱乐类产品的品牌特性以及氛围感。但深色 UI 并没有针对夜间情景下专门去考虑,在白天与夜间情景下都可以使用。
而夜间模式更加针对夜间无照明的情景下设计,更加全面考虑用户在夜间无照明情景下的体验。并且都是由白天 (亮色) 模式切换成夜间模式,兼顾两种模式设计。
当然这里一般会考虑到成本问题,不少产品直接用深色 UI 当夜间模式。不过作为设计师,必须理解二者的不同。
下面我们来了解一下应该如何设计一个夜间模式:
设计夜间模式的流程
夜间模式的设计主要通过色彩的调性,整体色彩的亮度,整体色彩的对比度,色彩的通用性等不同维度来设计。
1、明确色彩调性
首先,从调性图上来看,低短调(色调深暗,对比微弱),在黑暗的环境中看起来没那么刺眼,比较适合作为夜间模式的使用。
2、选择亮度低的颜色
尼特值 (nit) ,它是用于量化亮度强度的专业术语,意思每平方米烛光的强度:1nit=1 坎德拉/平方米;
其实可以将尼特值简单理解为亮度值。
白天,人的眼睛能适应亮度的值高于 3.4 尼特;夜晚,主体颜色接近 0.034 尼特,最亮元素低于 3.4 尼特的亮度眼睛会比较舒适。
将尼特值换算成 HSB 颜色模式。也就是说主色调颜色(一般指背景色或最暗的颜色)的亮度不超过 20(0<B<20),避免使用极端颜色(纯黑),最亮的颜色亮度尽量不超过 50。
3、选择低纯度的颜色
使用柔和,低纯度的色彩可以使界面看起来更舒服,增加用户的使用时长。
而且低纯度的色系对于色弱以及色盲人群来说,和普通人群的辨色差异不大,更适合大众。
4、选择对比度微弱的颜色
以下图为例:
白天模式
无纯度夜间模式
两个模式的亮度对比:
亮色版本的亮度是(100,90,80,60,10),颜色的对比跳跃比较大,对比强,明亮。
夜间模式的亮度是(10,15,30,40,50),最接近的颜色对比度不小于 5 ,保证颜色的差异辨识度。 颜色的对比跳跃比较小,对比微弱。
内容颜色与背景颜色的比对是 10:50 与 10:30 。
5、彩色明度降低为 B:50 左右,元素添加 50% 黑色遮罩。
6、改变色相,使品牌色更凸显
同样以这张图为例,将整体的颜色的纯度上加了 20 蓝色——色相: 216,整体会感觉加了一个蓝色的滤镜,视觉上看上去就不是无色相的黑白灰颜色。
小结
以上只是举了示例,具体的情况再具体分析。这些原则是为了帮助设计师更明确的做设计,并非限制设计师发挥的条条框框。
如何通过 HSB 颜色模式构建夜间模式的更多相关文章
- DKNightVersion的基本使用(夜间模式)
DKNightVersion下载地址: https://github.com/Draveness/DKNightVersion 基本原理就是利用一个单例对象来存储颜色, 然后通过runtime中的ob ...
- Android实现夜间模式
如今非常多App都有夜间模式,特别是阅读类的App.夜间模式如今已经是阅读类App的标配了,其实,日间模式与夜间模式就是给App定义并应用两套不同颜色的主题,用户能够自己主动或者手动的开启,今天用An ...
- Ionic3学习笔记(十)实现夜间模式功能
本文为原创文章,转载请标明出处 目录 创建主题样式 导入 variables.scss 创建 provider 创建 page 在 App 入口处应用主题 效果图 1. 创建主题样式 在 ./src/ ...
- DKNightVersion 的实现 --- 如何为 iOS 应用添加夜间模式
在很多重阅读或者需要在夜间观看的软件其实都会把夜间模式当做一个 App 所需要具备的特性. 而如何在不改变原有的架构, 甚至不改变原有的代码的基础上, 就能为应用优雅地添加夜间模式就成为一个在很多应用 ...
- android简单的夜间模式
现在android项目values下打 attrs.xml <?xml version="1.0" encoding="utf-8"?> <r ...
- Android白天/夜间模式Day/Night Mode标准原生SDK实现
Android白天/夜间模式Day/Night Mode标准原生SDK实现 章节A:Android实现白天/夜间模式主要控制器在于UiModeManager,UiModeManager是Andr ...
- Android 之夜间模式(多主题)的实现
引言 夜间模式其实属于多主题切换的一种,不过是最麻烦的一种.因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-.-,所以当你夜间 ...
- Android 夜间模式changeskin小结
@author vivian8725118 @CSDN http://blog.csdn.net/vivian8725118 @简书 http://www.jianshu.com/p/832e9776 ...
- Android夜间模式的几种实现
一.直接修改widget颜色,这种方式实现起来最简单,但需要每个控件都去修改,太过复杂.例如: /** * 相应交互,修改控件颜色 * @param view */public void onMeth ...
随机推荐
- BZOJ 3391: [Usaco2004 Dec]Tree Cutting网络破坏(搜索)
这道直接遍历一遍求出每个点的子节点数目就行了= = CODE: #include<cstdio>#include<iostream>#include<algorithm& ...
- springmvc 获取request 和 java路径分隔符 在windows 和linux 下自动判断的方法
//获取requert HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestA ...
- 磁盘工作原理与IO性能分析
最近,在研究如何优化产品设备的磁盘IO性能,需要深入研究磁盘及文件系统原理和工作机制,下面简要总结下关于磁盘方面的东西,下篇文章再分享文件系统的. 机械磁盘结构: 无论哪种机械硬盘,都主要由盘片.磁头 ...
- 每天一个linux命令30)--chgrp命令
在Linux系统里,文件或目录的权限的掌控以拥有者及所属群组来管理.可以使用chgrp 指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以. chgrp 命令就是change gr ...
- CSS常用字体Unicode 编码
在 CSS 中设置字体名称,直接写中文是可以的.但是在文件编码(GB2312.UTF-8 等)不匹配时会产生乱码的错误. 为此,在 CSS 直接使用 Unicode 编码来写字体名称可以避免这些错误. ...
- Hibernate 迫切连接和普通连接的区别
package com.baidu.test; import java.util.ArrayList;import java.util.LinkedHashSet;import java.util.L ...
- spring源码浅析——IOC
=========================================== 原文链接: spring源码浅析--IOC 转载请注明出处! ======================= ...
- KoaHub平台基于Node.js开发的Koa router路由插件代码信息详情
koa-router Router middleware for koa. Provides RESTful resource routing. koa-router Router mid ...
- spring mvc中的拦截器小结 .
在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...
- HTML+CSS-淘宝网页
<html> <head> <meta http-equiv="Content-Type" content="text/html;chars ...