跳到主要内容

Color 颜色类

Color 是 Alia 的内置颜色类,用于表示和处理颜色数据。支持多种颜色格式的创建和转换。

创建颜色​

构造函数按位置接收 (color, type),数组式调用按形参顺序传参。type 缺省为 'Hex'。

const hexColor = new Color ['#FF5733', 'Hex']
const nameColor = new Color ['red', 'Name']
const rgbArray = [255, 87, 51]
const rgbColor = new Color [rgbArray, 'Rgb']
const oklchArray = [0.6, 0.2, 30]
const oklchColor = new Color [oklchArray, 'Oklch']
const defaultColor = new Color ['#00FF00']

静态方法​

Color.set​

注册自定义颜色名称,之后可通过 new Color ['注册名', 'Name'] 引用该颜色。若注册名与染色类别(Keyword、Variable、KeyArgument、Alias、Type 等)同名,则会在代码高亮时覆盖该类别默认颜色。

语法:

Color.set <String name> to <Color color>

示例:

Color.set 'Accent' to new Color ['#FF00FF', 'Hex']
const accent = new Color ['Accent', 'Name']
print accent.to 'Hex'
print accent.to 'Rgb'
Color.set 'Keyword' to new Color ['#FF0000', 'Hex']

支持的颜色类型​

类型格式示例
Name字符串'red', 'blue', 'white'
Hex字符串'#FF5733', '#00FF00'
Rgb数组[255, 87, 51]
Oklch数组[0.6, 0.2, 30]

实例属性​

raw​

返回颜色的原始值。

const color = new Color ['#FF5733', 'Hex']
print color.raw ~ 输出 '#FF5733'

type​

返回颜色的类型。

const color = new Color ['red', 'Name']
print color.type ~ 输出 'Name'

实例方法​

to​

将颜色转换为指定类型。返回目标类型的原始值。

const color = new Color ['#FF5733', 'Hex']
const rgb = color.to 'Rgb'
print rgb
const oklch = color.to 'Oklch'
print oklch
const hex = color.to 'Hex'
print hex

toString​

将颜色转换为字符串表示。无参数方法经由 call 调用。

const color = new Color ['#FF5733', 'Hex']
print call color.toString ~ 输出 'Color Color(Hex: "#FF5733")'

valueOf​

返回颜色的原始值。无参数方法经由 call 调用。

const color = new Color ['#FF5733', 'Hex']
print call color.valueOf ~ 输出 '#FF5733'

支持的颜色名称​

除下方内置颜色名外,可通过 Color.set 注册自定义颜色名。

基础颜色​

  • white - 白色
  • black - 黑色
  • red - 红色
  • green - 绿色
  • blue - 蓝色
  • yellow - 黄色
  • cyan - 青色
  • magenta - 紫红色

扩展颜色​

  • orange - 橙色
  • purple - 紫色
  • pink - 粉色
  • gray / grey - 灰色
  • brown - 棕色
  • navy - 海军蓝
  • teal - 蓝绿色
  • olive - 橄榄色
  • maroon - 褐红色

其他颜色​

  • aquamarine - 海蓝宝石色
  • coral - 珊瑚色
  • crimson - 深红色
  • gold - 金色
  • indigo - 靛蓝色
  • khaki - 卡其色
  • lavender - 淡紫色
  • lime - 酸橙色
  • salmon - 鲑鱼色
  • silver - 银色
  • tan - 茶色
  • turquoise - 绿松石色
  • violet - 紫罗兰色
  • wheat - 小麦色

颜色转换示例​

格式互转​

const hex = new Color ['#FF5733', 'Hex']
const rgb = hex.to 'Rgb'
const back = new Color [rgb, 'Rgb']
const hexBack = back.to 'Hex'
print rgb
print hexBack

链式转换​

const blue = new Color ['blue', 'Name']
print blue.to 'Hex'
print blue.to 'Rgb'
print blue.to 'Oklch'

示例代码​

const hexColor = new Color ['#FF5733', 'Hex']
const nameColor = new Color ['coral', 'Name']
const rgbArray = [255, 127, 80]
const rgbColor = new Color [rgbArray, 'Rgb']
print call hexColor.toString
print call nameColor.toString
print call rgbColor.toString
print '原始值: ' .. hexColor.raw
print '颜色类型: ' .. hexColor.type
const hexToRgb = hexColor.to 'Rgb'
print 'Hex 转 RGB: ' .. hexToRgb
const hexToOklch = hexColor.to 'Oklch'
print 'Hex 转 Oklch: ' .. hexToOklch
const red = new Color ['red', 'Name']
print '红色 Hex: ' .. (red.to 'Hex')
print '红色 RGB: ' .. (red.to 'Rgb')
const fromRgbArray = [255, 87, 51]
const fromRgb = new Color [fromRgbArray, 'Rgb']
print 'RGB 转 Hex: ' .. (fromRgb.to 'Hex')
const oklchArray = [0.6, 0.2, 30]
const oklchColor = new Color [oklchArray, 'Oklch']
print 'Oklch 转 RGB: ' .. (oklchColor.to 'Rgb')
print 'Oklch 转 Hex: ' .. (oklchColor.to 'Hex')
const color1 = new Color ['#FF5733', 'Hex']
const color2 = new Color ['orange', 'Name']
const rgb1 = color1.to 'Rgb'
const rgb2 = color2.to 'Rgb'
print '颜色 1 RGB: ' .. rgb1
print '颜色 2 RGB: ' .. rgb2
const colorNames = ['red', 'green', 'blue', 'coral', 'gold']
each name in colorNames {
const color = new Color [name, 'Name']
print name .. ': ' .. (color.to 'Hex')
}

下一步​