Skip to content

toHex

将任意合法的颜色字符串或颜色对象转换为十六进制 (HEX) 字符串。

示例

基本用法

typescript
toHex('rgb(255, 0, 0)')
// => '#ff0000'

toHex({ h: 0, s: 100, l: 50, mode: 'hsl' })
// => '#ff0000'

// 能够解析并格式化短格式的十六进制
toHex('#f00')
// => '#ff0000'

处理透明度

typescript
// 当颜色包含透明度时,会自动输出 8 位的十六进制字符串 (HEXA)
toHex('rgba(255, 0, 0, 0.5)')
// => '#ff000080'

// 完全不透明时,则输出标准的 6 位十六进制
toHex('rgba(0, 0, 255, 1)')
// => '#0000ff'

签名与说明

typescript
/**
 * 将任意合法的颜色字符串或颜色对象转换为十六进制 (HEX) 颜色字符串。
 *
 * 如果输入颜色包含透明度(alpha < 1),函数会自动返回一个 8 位的
 * 十六进制字符串(HEXA);否则,返回标准的 6 位字符串。
 *
 * @param color 任意合法的颜色字符串(如 'rgb(255,0,0)', '#f00')或颜色对象。
 * @returns 一个以 '#' 开头的 6 位或 8 位十六进制颜色字符串,如果输入无效则返回 null。
 */
export function toHex(color: string | EsdoraColor): string | null

注意事项与边界情况

  • 自动格式选择: 函数会根据颜色的 alpha (透明度) 值自动决定输出格式。如果 alpha 小于 1,则输出 #rrggbbaa 格式;否则输出 #rrggbb 格式。
  • 关于无效输入: 当 color 参数为无效颜色字符串(如 'invalid-color')、空字符串、nullundefined 时,函数将返回 null
  • 输入灵活性: 函数内部使用强大的颜色解析器,可以接受多种格式的输入,包括但不限于 HEX、RGB、HSL、颜色名称以及各类颜色对象。

相关链接

基于 MIT 许可证发布