背景
颜色选择器在日常开发中会经常使用到,例如Chrome自带的取色器、Photoshop颜色选择器等。对于scratch3.0中颜色展示块也存在着颜色选择器,但是在移动端体验上面很差,所以交互对这个颜色选择器进行了修改,变成了一个弹框,加上几种默认的颜色,这对于在移动端上面的体验也会变得很好,尤其是针对小朋友使用scratch3.0进行创作编程的时候。
在github上面搜索了一些比较成熟的颜色选择器库,但发现对于这样一个简单的功能未免还是有点重了,有相当不错的库,比如react-color,这个库提供了相当丰富的选择器,例如Sketch、Photoshop、Chrome等颜色选择器,如果大家在开发中需要用到这类组件,可以试试casesandberg的库。
rc-slider
对于滑条的滑动,这里使用rc-slider库,也可以自己写一个,如果不想自己整的话,推荐用这个库来解决滑动问题。
HSB[V]
HSB为色相(Hue),饱和度(Saturation),明度(Brightness)
HSV为色相(Hue),饱和度(Saturation),明度(Value)
HSL为色相(Hue),饱和度(Saturation),亮度(Lightness)
其中HSB和HSV这两个只是叫法不一样,但基本用法是一致[下面统一用HSB表示]。其中H的值为0-359,B和L的值是0-100,具体的解释可以参考该文章。对于rgb转hsb、rgb转十六进制的一些算法,可以参考网上的一些文章。Hue的一个颜色渐变分布[#ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000]。
参考文章
JavaScript进行RGB和HEX(16进制)颜色转换
JS实现RGB,HSL,HSB相互转换