tinycolor 是一个用于操作和转换颜色的 JavaScript 库,它能够处理 RGB、HSV、HSL、CMYK 和 HEX 等多种颜色格式,并支持颜色的明暗度、透明度和饱和度等属性的调整。这个库非常小巧,压缩后只有 5KB 左右,但功能十分强大,可用于前端开发中的众多场景,比如自定义主题、配色方案等。
安装
使用 npm 进行安装:
npm install tinycolor2 --save
引入
在代码中引入 tinycolor:
const tinycolor = require('tinycolor2');
或者使用 ES6 的 import 语法:
import tinycolor from 'tinycolor2';
基本使用
创建颜色对象
可以通过以下方式创建一个 tinycolor 对象:
const color1 = tinycolor('red'); // 字符串表示法 const color2 = tinycolor({ r: 255, g: 0, b: 0 }); // RGB 对象表示法 const color3 = tinycolor('#f00'); // HEX 表示法 const color4 = tinycolor.fromRatio({ r: 1, g: 0, b: 0 }); // 颜色比例表示法
其中,字符串表示法支持 CSS 中所有的颜色名称、16 进制颜色、RGB 颜色值和 HSL 颜色值。RGB 对象表示法的属性包括 r、g、b 三个分量,每个分量的取值范围为 0-255。HEX 表示法可以使用 3 位或 6 位的颜色值表示。颜色比例表示法中的 r、g、b 属性是一个 0 到 1 的小数,代表 red、green、blue 三种颜色在混合时所占的比例。
颜色转换
可以使用 to
方法将当前颜色对象转换成其他格式的颜色:
const color = tinycolor('red'); color.toRgb(); // { r: 255, g: 0, b: 0 } color.toHsl(); // { h: 0, s: 1, l: 0.5 } color.toHexString(); // #ff0000
颜色操作
可以使用一系列方法对颜色进行操作,比如调整亮度、饱和度、透明度等:
const color = tinycolor('#ff0000'); color.lighten(10); // #ff1a1a color.saturate(20); // #ff3333 color.setAlpha(0.5); // rgba(255, 0, 0, 0.5)
此外,还可以使用 mix
方法来混合两种颜色:
tinycolor.mix('#ff0000', '#00ff00', 50); // #ffff00
颜色判断
可以使用一系列方法来判断当前颜色对象的属性,比如是否为亮色、暗色、可读性等:
const color = tinycolor('#ff0000'); color.isLight(); // false color.isDark(); // true color.isReadable(); // false color.getLuminance(); // 0.2126
示例代码
下面是一个简单的示例代码,用于生成随机颜色并将其应用到页面元素中:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- ---------------- ---------- ------- ---- - ------ ------ ------- ------ -------- ------------- - -------- ------- ------ ---- ------------------ ---- ------------------ ---- ------- - ----------------------------------------------------------- -------- ----------------------------------------------------------------------------------