Skip to content

颜色类型

Color 类型用于 Iconify Utils 中解析颜色的函数。

你可以在 Iconify Utils 源代码src/colors/types.ts 中找到此类型。

该类型是一个对象,其中 type 属性表示它属于哪种颜色类型,随后是该类型对应的可选属性。

浏览器支持各种复杂的颜色,这些颜色可能包含 CSS 变量和函数。 Iconify Utils 的解析器非常基础,仅支持多年来所有浏览器都已广泛支持的常用格式。

RGB

RGB 颜色,通常由十六进制颜色(如 "#ff8080")、颜色关键字(如 "red")或 RGBA 颜色(如 "rgba(255, 128, 128, 0.5)")转换而来。

它具有以下属性:

  • type = "rgb"。
  • rgb 表示红、绿、蓝颜色分量(0 - 255)。
  • alpha 表示透明度(0 - 1)。

HSL

HSL 颜色,通常由 HSL 或 HSLA 颜色(如 "hsla(90, 50%, 50%, 0.5)")转换而来。

它具有以下属性:

  • type = "hsl"。
  • h 色相,可以是任意数字,但通常位于 0 - 360 范围内。
  • sl 表示饱和度和亮度分量(0 - 100)。
  • alpha 表示透明度(0 - 1)。

LAB

Lab 颜色目前正由浏览器逐步实现,由类似 "lab(50% 50 50 / 1)" 的颜色字符串转换而来。

它具有以下属性:

  • type = "lab"。
  • l 表示亮度(0 - 100)。
  • ab 表示在 Lab 色彩空间中沿 ab 轴的距离。
  • alpha 表示透明度(0 - 1)。

LCH

LCH 颜色目前正由浏览器逐步实现,由类似 "lch(50% 50 50 / 1)" 的颜色字符串转换而来。

它具有以下属性:

  • type = "lab"。
  • l 表示亮度(0 - 100)。
  • c 表示色度,通常位于 0 - 230 范围内,但也可能更高。
  • h 表示色相角。
  • alpha 表示透明度(0 - 1)。

关键字

部分关键字拥有自己的类型,用于表示特殊颜色。

它们的存在是因为颜色解析函数可用于清理和解析各种图标,而在这些场景中,识别 "currentColor" 和 "none" 等值可能非常重要。

transparent

透明颜色具有一种特殊类型,仅包含一个属性:

  • type = "transparent"。

在转换类似 "rgba(0, 0, 0, 0)" 的透明颜色时, 转换函数将返回 transparent 类型,从而更便于比较各种颜色。

none

"none" 同样具有一种特殊类型,仅包含一个属性:

  • type = "none"。

currentColor

"currentColor" 同样具有一种特殊类型,仅包含一个属性:

  • type = "current"。

其他颜色

该类型旨在解析 SVG 中的基本颜色,而非进行完整的颜色解析, 因此它仅限于简单颜色以及在解析图标时至关重要的关键字。