Skip to content

Color 颜色方法 API

本文逐项记录 @fast-china/utils 的 Color 颜色公开函数。

parseHexColor 解析

解析可带可不带 #rgbrgbarrggbbrrggbbaa

签名

ts
export function parseHexColor(value: string): RgbaColor;

示例

ts
import { parseHexColor } from "@fast-china/utils";

const result = parseHexColor("#409eff");

输入

输入值输入值类型必填/默认值输入值说明
valuestring十六进制颜色文本。

返回

返回值返回值类型返回值说明
resultRgbaColor标准化的 RGBA 对象;省略 Alpha 时为 1。

formatHexColor 格式化

把 RGB 或 RGBA 对象格式化为小写十六进制颜色。

签名

ts
export function formatHexColor(color: RgbColor | RgbaColor, includeAlpha: boolean = "alpha" in color && color.alpha < 1): string;

示例

ts
import { formatHexColor } from "@fast-china/utils";

const result = formatHexColor({ red: 64, green: 158, blue: 255 });

输入

输入值输入值类型必填/默认值输入值说明
colorRgbColor | RgbaColor颜色通道;RGB 会四舍五入到最近整数。
includeAlphaboolean否,默认 "alpha" in color && color.alpha < 1是否输出 Alpha;默认只在传入 Alpha 且小于 1 时输出。

返回

返回值返回值类型返回值说明
resultstring小写 #rrggbb#rrggbbaa 文本。

mixHexColors 混色

线性混合两种十六进制颜色,包括 Alpha 通道。

签名

ts
export function mixHexColors(first: string, second: string, amount: number): string;

示例

ts
import { mixHexColors } from "@fast-china/utils";

const result = mixHexColors("#000000", "#ffffff", 0.5);

输入

输入值输入值类型必填/默认值输入值说明
firststringamount = 0 时的颜色。
secondstringamount = 1 时的颜色。
amountnumber0 至 1 的混合比例。

返回

返回值返回值类型返回值说明
resultstring小写十六进制颜色;任一输入含透明度时保留 Alpha。

mixHexColorWithBlack 混色

按比例向黑色混合。

签名

ts
export function mixHexColorWithBlack(color: string, amount: number): string;

示例

ts
import { mixHexColorWithBlack } from "@fast-china/utils";

const result = mixHexColorWithBlack("#409eff", 0.5);

输入

输入值输入值类型必填/默认值输入值说明
colorstring合法十六进制颜色。
amountnumber0 至 1 的混合比例。

返回

返回值返回值类型返回值说明
resultstring混入黑色后的十六进制颜色;参数与异常语义见 。

mixHexColorWithWhite 混色

按比例向白色混合。

签名

ts
export function mixHexColorWithWhite(color: string, amount: number): string;

示例

ts
import { mixHexColorWithWhite } from "@fast-china/utils";

const result = mixHexColorWithWhite("#409eff", 0.5);

输入

输入值输入值类型必填/默认值输入值说明
colorstring合法十六进制颜色。
amountnumber0 至 1 的混合比例。

返回

返回值返回值类型返回值说明
resultstring混入白色后的十六进制颜色;参数与异常语义见 。

relativeLuminance 亮度

计算 WCAG sRGB 相对亮度。

签名

ts
export function relativeLuminance(color: string): number;

示例

ts
import { relativeLuminance } from "@fast-china/utils";

const result = relativeLuminance("#409eff");

输入

输入值输入值类型必填/默认值输入值说明
colorstring合法十六进制颜色。

返回

返回值返回值类型返回值说明
resultnumber0 至 1 的相对亮度。

contrastRatio 对比度

计算两种不透明颜色的 WCAG 对比度,范围 1 至 21。

签名

ts
export function contrastRatio(first: string, second: string): number;

示例

ts
import { contrastRatio } from "@fast-china/utils";

const result = contrastRatio("#000000", "#ffffff");

输入

输入值输入值类型必填/默认值输入值说明
firststring第一种十六进制颜色。
secondstring第二种十六进制颜色。

返回

返回值返回值类型返回值说明
resultnumber较亮颜色与较暗颜色的对比度。

pickHigherContrastColor 对比度

从两个候选颜色中选择与背景对比度更高的一项。

签名

ts
export function pickHigherContrastColor(background: string, first = "#000000", second = "#ffffff"): string;

示例

ts
import { pickHigherContrastColor } from "@fast-china/utils";

const result = pickHigherContrastColor("#ffffff", "#000000", "#ffffff");

输入

输入值输入值类型必填/默认值输入值说明
backgroundstring实际不透明背景色。
firstunknown否,默认 "#000000"第一候选,默认黑色。
secondunknown否,默认 "#ffffff"第二候选,默认白色。

返回

返回值返回值类型返回值说明
resultstring对比度较高的原始候选字符串;相同时返回 first