学习TS+Vue3 过程中... 切换主题色功能(一)

39 阅读2分钟

颜色模型

RGB和HEX

RGB

电子显示屏中最常用的颜色模型,它采用三维直角坐标系,红、绿、蓝原色是加性原色,各个原色混合在一起可以产生复合色。
在css中,我们用rgb(red,green,blue)将颜色指定为RGB值。

image.png

HEX

16进位色彩,将RGB中颜色值范围0~255这256个值用十六进制来表示。
在css中,我们在#后面加上对应的六位(或三位)字符来表示HEX值。

HSL和HSV/B

HSL和HSV/B两个颜色模型中前两个字母代表的含义是相同的,皆为色相和饱和度,最后一个字母L代表的是亮度,V/B代表的是明度。
H: 色相(Hue)取值范围为0°~360°。若从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°
S: 饱和度(Saturation)取值范围为0.0~1.0。
L: 亮度(Lightness),取0.0~1.0。
V/B: 明度(Value/Brightness),取0.0~1.0


因为RGB模型中的三种颜色分量的取值与所生成的颜色之间的联系并不直观,所以人们更倾向于用一种更直观,更符合人类感觉的方式来表示颜色,即“什么颜色?是深是浅?多明多暗”

HSL

在css中,我们用hsl(huesaturationlightness)来表示hsl值(其中s和l的取值范围皆为0%~100%)

image.png

HSV

image.png

两者之间的区别

以上两张图可以直观的看出两个模型的区别:

  1. HSL中的亮度跨越从黑色过选择的色相到白色的完整范围,HSV只有中一半即:黑色到你选择的色相。
  2. HSL中的饱和度分量总是从完全饱和色变化到等价的灰色,在HSV中,在极大值V的时候,饱和度从全饱和色变化到白色。