服务热线:
0571-86684288

从理论到搭建了解B端色彩系统

来源:爱游戏体育登录平台    发布时间:2023-12-25 21:21:05

在产品设计中,色彩的设定是一个重要的条件,而如果没有设定色彩规范,那么产品在呈现上可能就会出现不统一、杂乱的视觉特征。那么,如何理解色彩系统的存在?B端产品又可以怎样搭建自己的色彩系统?一块儿来看

详细介绍

  在产品设计中,色彩的设定是一个重要的条件,而如果没有设定色彩规范,那么产品在呈现上可能就会出现不统一、杂乱的视觉特征。那么,如何理解色彩系统的存在?B端产品又可以怎样搭建自己的色彩系统?一块儿来看看作者的总结。

  色彩作为设计师的基本功,如何平衡产品的颜色搭配是每位设计师的必修课。如今市面上有种类非常之多的配色工具可以一键生成配色方案,也有成套色卡作为色板参考,但是当面对高度自由且需求多变的设计状况时,如果缺少对色彩规范的系统理解,仅跟随设计师自身喜好进行配色,往往会导致产品杂乱不堪,没有章法。本文结合我自身的工作和学习经验,从理论基础到色彩系统搭建带大家由浅入深学习下B端产品中的色彩体系。

  色彩理论基础是搭建色彩系统的基石,接下来我将从色彩本质开始,为大家介绍设计师要掌握的几种常见色彩模型。

  在小学物理课上我们都学过,色彩是由物体自身发光或反射出的光映射在人眼后所感知的,而光的本质是一种电磁波。自然界中存在不同频率的电磁波,短频的如AM收音机、电视信号,长频的如X光、伽马射线,我们所熟知的可见光则是电磁波中人眼所能接受波长约为380~780nm,也就是从紫色到红色范围的这段色彩。

  反射到人眼中的光,除了光本身的颜色,还会收到物质特性的影响。白色物体在被黄光照射时,反射到人眼中看起来就是黄色的,但蓝色物体在被黄光照射时会呈现黑色,原理是黄色作为蓝色的反色调,黄光本身不包含任何蓝光,因而被蓝色物体完全吸收时并无法反射出其他颜色,导致人眼看起来就是黑色。

  此外,我们最终感受到的颜色除了光和物质特性外,还会收到周围环境、时间和历史经验的影响。下面这张网络图很多人都见过,同一张图片在不同人眼中会识别为不同的颜色。

  综上所述,色彩的本质是一种复合的物理现象,是人眼感知物体表面反射光的结果。

  通过理解色彩本质不难发现,单纯凭借人的色彩感知来描述颜色具有很强的主观性,要如何保证在实际生产中每个人表述的是同一种颜色呢?这就需要找到可以科学且规范描述颜色的方法,在日常生活中我们接触比较多的是色温法。

  色温法的原理是:物体把热量以光的方式辐射出去,当物体处于不一样的温度时会发出不一样的颜色的光:温度比较低时呈现黄色,温度高时呈现蓝色或白色。

  这里标定的色温和大众认知中的冷暖感受正好相反,通常我们会认为红黄色调偏暖,蓝白色调偏冷,但实际上红色的色温最低,然后逐步增加的是橙色、黄色、白色和蓝色,蓝色是最高的色温。因此色温的高低和给人的色调感受是正好相反的。

  熟悉摄影的同学都知道,当我们在清晨或黄昏的户外拍摄时照片时常会发黄,是因为该时间段色温较低,光线呈现为橙黄色。而相机的白平衡模式可以缓解环境光的影响。其原理是通过切换预设场景的色温值抵消当前实景的色温影响,使拍摄出的照片呈现出白色基准更真实。

  色温法是建立在物体可以自身发光的基础上,而在自然界的发光体中,红、黄、蓝色会更为常见,但是绿色和洋红色很少。所以单靠色温法描述颜色不够准确,它更适合用来反映环境冷暖和色彩的倾向关系。

  为了更准确的描述颜色,工程师们引入了色彩模型的概念:将色彩拆分成不一样的属性并进行量化,通过计算机语言更科学准确的表述颜色,而不同维度的拆分方法便是色彩模型。随着科学技术发展和生产制造的需要,色彩模型迭代出了多个版本类型,接下来我将挨个介绍常见模型的差异和功能特点:

  HSB模型也称HSV模型,该模型是建立在人眼识别色彩的基础上,符合人类日常的生活经验,相较其他模型最为直观易理解。该模型主要使应用在图像处理、计算机图形学、色彩管理等领域,用于描述和操作颜色。其属性包括:

  HSL是和HSB原理相同的模型,在工作中很容易会被混淆使用,其不同之处在于:HSB中B指的是【亮度 Brightness】,而HSL中L指的是【明度 Lightness】。为方便大家理解,对于这两种模型的详细区别,我整理了出了以下表格:

  HSB和HSL模型在使用场景上都是用于软件开发应用,在实际在做的工作中我们接触HSB模式的场景会更多,但到底哪种模型更适合人类用户使用的界面设计尚未有定论。对于设计师自身而言必须要格外注意的是,在和开发同步设计资料时确保使用的是同一种模型,避免产生颜色误差。

  虽然HSL模型有诸多好处(HSB、HSL属于同类模型,后文统一用HSL概括),但其缺陷也很明显:HSL模型无法用于工业制造,因为在自然界中基本特别难找到某一属性纯度能够达到标准的物体,也难以控制单一属性变量来改变物体颜色。未解决以上限制,用于屏幕显示的RGB模型和彩色印刷的CMYK模型应运而生。

  RGB模型是依据颜色发光的原理所搭建的,也被称为光的三原色,工业上用于通过红、绿、蓝三色发光单元产生颜色的电子屏幕。

  通常情况下,RGB各有256级亮度,用数字表示为从0、1、2…直到255,虽然数值最高是255,但0也是数值之一,因此共256级。将三种颜色叠加并控制其颜色强度,256级的RGB色彩总共能组合出上千万种色彩,而这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

  RGB模型是我们日常工作接触最频繁的模型,但是不知道你会不会产生过疑惑:为什么偏偏选择【RGB红绿蓝】作为光的三原色,而不用其他色彩呢?

  首先我们要明确,能作为三原色的基础是一定要保证其中任意一色不能通过其他两种颜色混合而成,且这三种颜色混合后能形成足够多的颜色种类。而RGB能作为三原色的色彩主要和人眼的生理结构有关:

  前面我们提到,光的本质是一种电磁波。而视锥细胞共分为三种,分别对长、中、短三种电磁波长最为敏感,而这三种波长的光对应的正是红、绿、蓝三种颜色。当这三种感光细胞收到刺激后,会自动对将感受到的光色进行组合从而形成多种多样的色彩。这也是怎么回事【RGB红绿蓝】被作为三原色的客观原因。

  这里还有个知识点就是HEX色值,听到它大家都不会陌生,在很多拾色器中我们都见到过,工作中也经常将其提供给开发同学作为颜色标识。

  虽然看起来结构不同,但HEX也是采用RGB模型的原理来定义颜色,只是语言上用的是十六进制代码:字节值范围从 0 到 FF,颜色的最低强度为 00,而最高强度为 FF。实际转换时,每位数字范围是 0~15(分为0~9 和 A~F,其中 A~F 表示 10~15),这样每位数字都能代表16个数,而每2位数字相乘即可代表256级,正好对应一个颜色通道。

  相较于长段的RGB表示法,HEX色值表示法只需六位字符,更加紧凑轻量,所以更适合研发人员使用。

  以上RGB模型是针对可自身发光的物体,CMYK模型则是针对依靠反光的物体。CMYK是色料的三原色,也叫印刷的三原色,使用最多的场景是媒介印刷,其原理是基于油墨的光吸收/反射特性,眼睛看到颜色其实就是物体吸收白光中特定频率的光而反射其余光得来。

  通过以上现象我们会发现,将不一样的颜色的物质不断揉合最终会得到黑色物质,而这正好满足了我们工业印刷品上白纸黑字的需求:选择【红、绿、蓝】的补色【青、品红、黄】,通过调整这三种颜色油墨的比例,就能得到反射不一样的颜色的油墨。

  理论来说同比例的这三色油墨可以直接混合出【黑色】,但是现实中由于生产技术的限制,油墨纯度往往不尽人意,混合得到的黑色不够浓郁,只能依靠提纯的黑色加以混合,这样的做法同时也能节约油墨消耗。

  在显示器等发光体下,RGB模式的数值越大则光线越强,最终呈现的亮度也会最大。但是在印刷品等反光体下,其纸张本身的白色即是可以呈现的最高亮度, 所以CMYK模式的数值越大则油墨越多,最终呈现的亮度会越低。也因此:

  以上三种是最常见的通用模型,还有些色彩模型用于更特定的场景,Lab模型便是基于生理特征的一种模型。RGB和CMYK受限于载体,同样的颜色可能会因为材质差异影响呈现不同的颜色,Lab模型则是弥补其不足,摆脱原材料载体对模型的影响。

  Lab模型无法用于实际生产制造,但是其色彩空间比计算机显示器甚至比人类视觉的色域都要大,在转换成其他模型时色彩不会丢失或被替换,所以通常用于图像色彩空间转换、色彩校正、色彩相似度比较等场景。在进行具体的颜色转换时需要复杂的计算公式,作为设计师只需了解其模型用途即可。

  上面我们提到一个词叫色彩空间,它是图像处理和计算机图形学领域中很重要的概念,在图像处理、图形学、图像质量评价和广告设计等众多领域都有涉及。很多人会将它与色彩模型弄混,实际上两者是不同的概念:

  总而言之,色彩模型是用于表示色彩的三维数学模型,色彩空间是对色彩模型的二维或三维映射,方便于显示和比较色彩。色彩空间通常与色彩模型一起使用,并使用特定的数学表示法来定义色彩空间中的颜色。

  HCL模型最早由国际照明协会 CIE 提出,又被称作 CIELch(uv)。该模型是未解决色彩对比度问题而诞生的模型,对颜色识别有障碍的视障人士更友好。

  注意这里HCL模型的【Luminance】与前文HSL模型中的【Lightness】是不同的,我们先来看一个例子,分别通过HSL和HCL推导的色卡在对比度上有何差异?

  很明显,虽然都是控制变量但左图在颜色对比度层次不齐。这是因为HSL模型是基于电子元件的显示亮度进行计算的,但并非人眼感知光的实际感受。所以在配色时如果采用HSL模型,即使【Lightness 明度】值相同,色彩亮度在人眼看来依旧不匹配,需要设计师基于主观意愿做调整,不仅耗费时间和精力,配色流程不够科学标准化。

  HCL模型则很好的解决了以上问题,其初衷就是基于人眼对亮度对感知而创造的:只要【Luminance 照度】保持一致,不同色相的颜色亮度感受始终会保持均匀,这种情景下取色流程会更简单高效,应用到产品上对视障人士也更加友好。

  需要注意的是,HCL模型的色彩空间和其他模型不一定可以完全匹配,所以直接转换有几率存在颜色丢失或被替换的情况,这里为大家提供了几款以HCL色彩模型为基础的色彩转换工具:

  介于中英文语义的差异,Brightness、Lightness、Luminance 都可以翻译为“亮度”,然而在色彩模型中每个词却有更深层次的解释,为方便大家区分理解区分,将三者整理在一起进行对比:

  可以发现前2个都是客观上对颜色亮度的衡量,而【Luminance 照度】才是真正意义上主观感受颜色的标准。

  近年来,随着企业级产品功能体量不断丰富,产品设计体系逐渐趋向于规范化,如何搭建一套标准易用的色彩系统对于提升团队工作效率和产品体验一致性至关重要。通过系统化的颜色管理方法,能够在一定程度上帮助企业统一品牌颜色,提高品牌识别度和统一性。接下来,我将为大家详细讲解B端产品中色彩系统的构成和搭建方法:

  简单来说,色彩系统是指从整个设计系统里抽离出的分支,为方便管理而针对色彩语言搭建的管理体系。

  完整的设计系统由设计语言和模式库构成,在设计原则的指引下,通过统一的协作语言和科学的管理方法组织起来,创建体验一致的用户界面。完整的设计系统能拆解成三部分:

  色彩系统也是如此,并不仅仅是简单的色彩组件库,结合设计系统的内容,我们大家可以将设计原则和设计语言归入色彩规范中,而模式组件库即产品色板(调色板)。这里可以将色彩系统定义为:由色彩规范和产品色板组成,可以科学有效管理色彩的应用程序。

  理解了色彩系统的定义,如何保证搭建的色彩系统科学有效?好的色彩系统应遵循以下三个原则:

  能够体现产品个性,凸显品牌基因,使用户得到满足对产品的认知感受,不同色彩的搭配使用能使用户得到满足的心理预期,提升使用体验。

  色彩系统不单单是给设计师自身使用的,在整个产品周期中,从上游的品牌战略到下游的视觉运营,都要使用到产品配色,优秀的色彩系统应方便小组成员上手,即使没有专业背景也可以很快的理解和使用。

  不同颜色间对比度要匹配 WCAG 的对比度标准,保证内容元素的可识别度。

  在色彩系统搭建之初就考虑色彩无障碍识别问题,可以普适更多场景,有效提升产品信息识别度和易用性。WCAG(Web Content Accessibility Guidelines )内容无障碍指南作为行业普遍的使用的无障碍设计标准,是检验文字颜色可读性的有效依据,只要文本颜色与背景色之间的对比度满足以上标准,就能确保被清晰识别。WCAG 2.0 中将颜色对比等级分为 3 种,等级越高意味着颜色的对比度越高,呈现出来的信息可读性越好:

  这里为大家推荐一款可视化对比度检测工具Color Review:通过将 3、4.5、7 对比度临界点的颜色通过曲线标识,可清晰直观的看到当前色值的对比度在拾色器中的位置,方便进行调整。

  依据色彩的类型和功能不同,产品级色板的内容可分为主色、中性色、辅助色和功能色,其中每种颜色都应有相应的色阶拓展供配色使用。

  产品主色一般是页面中使用最多的颜色,通常被使用在关键行动点、操作状态、重要信息提示、图形化等场合。

  很多设计师会直接将主色和品牌色划等号,即直接将品牌色作为产品主色使用,我们日常接触的C端产品大多也是直接用品牌色作为主色使用,但是B端产品主色也可以直接用品牌色吗?这里需要先理解B端和C端产品的设计差异。

  C端产品设计侧重流量思维,追求尽可能渗透用户的碎片化生活来吸引客户。通过将品牌色作为主色使用能凸显品牌特征,强化用户心理认知,以此来提高用户粘性和活跃度。

  而B端设计侧重的是效率思维,强调提升用户的操作效率帮助其达到使用目标。所以B端产品主色第一先考虑色彩的识别度和视觉感受,尽可能保持用户在使用产品时沉浸感,即使在长时间浏览时也不会感到不适。因此究其根本,B端产品主色不能对用户的使用操作造成干扰,必要时需要在原有品牌视觉的基础上提取品牌色进行修正,使其更符合用户的使用场景。当然能兼具品牌价值传递和操作体验是产品的最优方案。

  中性色又称无彩色,包括黑色、白色及调和后不同深浅的灰色,常被使用在文字、图标、背景、线框等场景。中性色本身不具备颜色属性,没有色相冷暖的区分,因此能更好的衬托其他有彩色,也能拉开信息的层次差距,对于创造结构、表达边界和建立信息层次十分重要。

  有些产品会在中性色中加入适度色彩倾向,在保持中性色本身信息区分度的前提下,增加品牌色基因来强化品牌氛围。

  在搭建中性板时,对于配置文字颜色市面上有2种解决方案:一种是直接控制灰度拓展色阶,另一种是用透明度变化建立色阶,如使用#000并降低其透明度。

  市面上采用透明度方案的并不多,考虑到其根本目的是为了能够更好的保证文字内容信息可以被正确展示,在此针对两种方案的使用场景提供更清晰的使用建议:

  辅助色是在主色基础上衍生出的其他颜色,主要有2个作用:一方面能够平衡色彩系统,缓解用户在使用产品过程中频繁使用单色造成的视觉疲劳,另一方面能丰富色彩系统的可用性,通过和主色对比增加内容区分度。

  根据研究来看,人类可命名的有彩色数量仅为8~9种,更多的颜色分类会增加使用时的筛选负担,同时色彩区分度也会降低。故通常建议在人类可命名的8种颜色中选择6~8种作为辅助色即可,如果有更多用色场景需求可优先考虑加入拓展的颜阶进行交替使用。

  B端产品中会利用色彩的心理暗示来对用户进行状态反馈,以降低用户认知成本,这部分辅助色通常被独立出来称为功能色:遵循用户心智和行业内默认的色彩语义,选择特定颜色向用户传达成功、失败、告警、链接等状态信息。如用红色传达通知、提醒、错误等,绿色传达确认、成功、正确等,橙色传达警告等。

  以上便是色彩系统的主要内容,接下来将详细的介绍如何搭建适合自身业务的色彩系统,大致上可以分为以下五步:

  色相环取色是在主色基础上利用色相环来提取辅助色,具体的操作方法为:以主色的【色相 Hue】为起始点,在色相环上以15°为梯度进行加减,得到24色的色板。再依据自己产品场景,选择其中6~8种的颜色作为辅助色。

  在色相环取色过程中,虽然保持其他变量,只对色相进行了变换,但由于颜色本身在视觉感受上存在亮度差异,故有必要进行颜色校正,一方面保证整个色板保持视觉上的感官同频,另一方面保证视障群体的识别度。

  选择合适数量的辅助色后,需要对单个颜色进行色阶拓展以提供更多的颜色搭配空间,色阶拓展是指将同色相下的颜色由浅到深划分为多个色阶梯度。通常色阶拓展采用 8~12 级进行划分,如果层级过少可能会不足以满足日常的取色需求,而层级过多又会导致色彩区分度下降,在取色时也会增加选色成本。

  市面上有很多种色阶延展的方法,这里为大家理了几种常见的方法:透明叠色、直线等分、工具生成,各位同学可以基于团队情况自行选用:

  顾名思义,透明叠色法是在原来颜色的基础上叠加不同透明梯度的白色/黑色遮罩,由此得到不同色阶梯度的衍生色,再通过取色器吸取叠加后的色值。该方法实现成本低,无需其他工具配合就可以实现,但是操作相对繁琐,当叠加层级较多时可能会导致颜色偏差,有时需要基于真实的情况再做微调。

  直线等分法是通过在拾色器中建立坐标系,之后采用直线等分打点的方法取色。其中拾色器的坐标系是基于当前选择的色彩模型而定,如HSB模型横/纵坐标为饱和度/亮度,HSL模型则是饱和度/明度。直线等分法的操作较为简单,能够最终靠公式算法自动取色,但设计师独立推导的计算成本比较高,通常需配合公式计算。

  在拾色器上标明要延展的颜色,将色值点与左上方纯白和右下方纯黑点连接,得到2条线条线段,所有线个点,计算每个点的色值数,即可得到这11个点组成的色板。

  以现有颜色坐标(X,Y)为基准,采用以下的计算公式即可得到延展色的色值:

  经过多年发展,国内外多家设计系统都开发了直接生成完整色板的开源工具,且经过不断迭代如今算法基本能满足大部分场景下的色板需求,是中小团队的首选方法。但是工具生成也存在一些弊端,其色值生成始终是建立在公式计算的基础上,故在部分极端场景下依旧需要设计师介入调整。

  这一步看似简单,但是真实的操作起来需要设计师对色彩的使用场景和团队取用有深入的理解,很多细节需要推敲和考量。这里推荐参考 Nathan Curtis 的语义模版,作者将设计系统下的命名模版分为了四个部分:命名空间-元素对象-基础样式-修饰备注。

  Nathan 关于设计系统的命名涵盖了包括色彩、控件、文字等一系列元素命名方式,而色彩系统只需要截取其中部分拼装成符合自身场景的语义模版即可。各位可以基于产品规模和团队情况选择正真适合的内容做命名封装,必须要格外注意的是,

  :一方面过细颗粒度的命名会导致过于臃肿,维护成本过高,另一方面粒度过粗的命名会导致元素区分度不够,在团队推进使用时易引起混乱。关于如何验证色彩语义是否清晰有个很简单的方法,即直接将设计的配色方案提供给开发同学,看能否在不借助颜色进行备注和说明的情况下只通过命名即可理解色彩的语义场景,通过不一样的角色视角更容易发现色彩命名的问题。

  到这里色彩系统的基础色板和配色方案基本都搭建完成了,后续就是将其整理到组件库,并输出设计文档同步给团队其他成员使用。这里推荐使用 Figma Tokens 插件来来管理和维护。此外,在同步前端同学建立开发组件库时,尽量采用语义命名对颜色进行封装,而非直接写死固定色值,以便日后在迭代调整时灵活性更好。

在线咨询 联系方式 二维码

服务热线

0571-86684288

扫一扫,联系我们