# 颜色

> 颜色素材库：十种有名字的系统颜色和它们的值与地址、你自己的色块、检视面板、创建和编辑一种颜色、顶掉一种系统颜色，以及一种颜色用在哪里。

**Colors** 是 Assets 根下面的第三个类别：产品随附的那份固定调色板，加上你添的色块，每一种都是一个名称配一个 `#RRGGBB` 值。面板标题是“颜色”，配一行“由颜色输出变量返回的、命名的 #RRGGBB 颜色。同一地址上，操作员颜色会覆盖系统颜色。”，还有一枚数量胶囊。读它需要**查看 Logic**；创建、编辑和删除你的颜色需要**配置 Logic**。

## 系统调色板 {#the-system-palette}

| 名称 | 地址 | 值 |
| --- | --- | --- |
| Brand | `Assets.Colors.Brand` | `#0369A1` |
| Brand light | `Assets.Colors.Brand_light` | `#38BDF8` |
| Brand tint | `Assets.Colors.Brand_tint` | `#E0F2FE` |
| Red | `Assets.Colors.Red` | `#C42B1C` |
| Amber | `Assets.Colors.Amber` | `#C19C00` |
| Green | `Assets.Colors.Green` | `#0F7B0F` |
| Blue | `Assets.Colors.Blue` | `#005FB8` |
| Gray | `Assets.Colors.Gray` | `#8A8A8A` |
| Black | `Assets.Colors.Black` | `#000000` |
| White | `Assets.Colors.White` | `#FFFFFF` |

一种颜色只有一个值，在浅色主题和深色主题里原样使用；调色板不随主题切换。

## 目录和检视面板 {#the-catalog-and-the-inspector}

你的颜色排在前面，然后才是调色板；筛选项：**来源**和**每页**。一张卡片显示色块、名称、十六进制值和来源。检视面板把色块放大显示，配上它的十六进制值、名称，以及地址、来源（系统调色板，或者我的素材库）和格式（`#RRGGBB`）。调色板里的颜色显示“系统颜色是只读的。”；你的颜色为能配置的角色提供**编辑**和**删除**。

## 新建颜色 {#new-color}

Colors 那一行上的命令会在网格的位置上打开“新建颜色”（“选定一个稳定的地址，以及它的六位 RGB 值。”）。

| 字段 | 它是什么 | 取值 / 默认值 | 效果 |
| --- | --- | --- | --- |
| 名称 | 显示名称；它规整出来的那一段就是地址。 | 必填。 | 变量持有的正是这个地址。之后可以在编辑里重命名，指向旧地址的每一处引用都会跟着走。名称规整之后等于某个调色板颜色的那一段时，它在那个地址上、也在列表里顶掉那种颜色。 |
| 选择器 | 浏览器自带的取色器。 | 从 `#0369A1` 开始。 | 写进十六进制字段。 |
| 十六进制 | 以文本表示的那个值。 | 严格写成 `#RRGGBB`；默认是 `#0369A1`。 | 别的写法都会得到“请严格按 #RRGGBB 书写。”；值以大写存下。 |

右边的预览显示色块和规范化之后的十六进制值。“必须填写名称。”和“请严格按 #RRGGBB 书写。”会让**创建颜色**一直置灰；**取消**或者**返回**会不创建就离开。成功之后那张卡片会被露出来，操作记录条说“颜色已创建。”。

## 编辑与删除 {#edit-and-delete}

**编辑**打开“编辑 `<name>`”（“重命名在按回车或焦点离开该字段时保存，并会一并带走引用；有效的颜色更改会自动保存。”）：一个**名称**字段，它是一个重命名字段，下面是取色器和十六进制字段。你打名称的时候有一行预览影响范围（“重命名会更新读取这个地址的 2 处位置。”“没有任何引用使用当前地址。”，或者“有效地址不会改变，没有引用需要更新。”）。按回车，或者离开这个字段，就提交：颜色保留它的 id 和它的值，指向旧地址的每一处带根引用都被改写，操作记录条说“颜色已重命名，更新了 N 处引用。”。已经被占用的名称就地在字段下面被拒绝。一次合法的更改会在最后一次编辑之后半秒保存（“颜色已保存。”）。**删除**会问“要删除‘X’吗？指向它地址的引用会变成无法解析。 此操作无法撤销。”，而这种颜色原先顶掉了某个调色板条目时，那个条目重新露出来。

## 一种颜色用在哪里 {#where-a-color-is-used}

一个输出为颜色的[变量](logic-variables#output-types)返回 `Assets.Colors.<name>`（`Variables.Level.Value > 50 ? Assets.Colors.Red : Assets.Colors.Green`），绑上去的组件就画那种颜色；一个[图元](assets-symbols)的填充颜色和描边颜色输入接受一个颜色素材或者一个颜色变量；[仪表画面编辑器](view-editor)在任何一个接受颜色的属性上都提供这些地址。

## 这个素材库不做的事 {#what-the-library-does-not-do}

它不接受带透明度的、三位的或者按名字写的颜色，不编辑调色板，也不为每个主题各存一版。
