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')
}