---
id: "color-picker"
title: "颜色选择"
category: "选择组件"
document_type: "component-specification"
spec_status: "local-current-draft"
element_ui: "2.15.6"
vue: "2.6.14"
page: "../index.html#spec-color-picker"
source_data: "../component-data.json"
official_components: ["color-picker"]
template_components: ["el-color-picker"]
scenario_count: 7
verification: "scenario-checklist-not-full-test-pass"
---

# 颜色选择

专题 `color-picker` · 选择组件 · Element UI 2.15.6

## 适用范围与组件映射

公共色板及字体基线适用于整个运营后台。本库整理基础组件、组件状态和可复用的组合模式；本轮补齐表单整体验证、页面布局和导航组合；具体业务字段与跨页流程仍在业务场景中说明。专题验收清单包含接入要求，不表示当前示例已实现或已验证全部场景。

官方条目映射：`color-picker`。

本页模板直接使用的 Element UI 标签：`el-color-picker`。

## 通用基线

- 组件库：Element UI **2.15.6**；运行样例 Vue **2.6.14**。
- 系统中文字体：macOS 优先苹方，Windows 通常微软雅黑；工程顺序固定为 `"PingFang SC", "Microsoft YaHei", sans-serif`。不要求安装或加载网络字体，兼容回退不是另一套可选样式。
- 后续仅采用经验证且固定版本的兼容 Element UI 2.x；Element Plus 属于独立迁移路线。
- 正文、数据值、输入及已选值：`14px / 400 / 21px`，`#303133`。
- 表头及组件分组标题：`14px / 600 / 21px`；弹窗标题：`16px / 600 / 24px`，均使用 `#303133`。
- 辅助说明：`12px / 400 / 18px`，`#595959`；错误、链接、状态、禁用与占位按各自语义处理。
- 适用组件的默认尺寸为 `small / 32px`；不得将这一高度机械应用于表格、文本域、浮层等全部组件。
- 规范正文与场景说明使用 `14px / 400 / 24px`、`#303133`，不降成灰蓝小字。
- 筛选文本输入占位统一“请输入”；未选择下拉统一“请选择”；默认全部的下拉显示“全部”。字段标签保留业务含义；日期保留开始/结束语义。
- 次级文字操作（查看更多、编辑、详情、数据中心、更多）：`12px / 400 / 18px`，`#3377BB`；保留点击热区。
- 本规范库的深色目录、蓝色展示区属于文档排版，不是业务组件颜色或业务导航规范。

## 本页用法与分类

默认用法：只有业务内容允许自定义颜色时，才采用当前颜色选择器；当前启用三个预设、面板选色、确认和清除，不用于修改后台公共主题。

| 区分什么 | 本页内容 | 选用或触发条件 |
| --- | --- | --- |
| 用途：业务颜色值 | 色块是字段内容，触发框和弹层仍使用公共样式。 | 业务确需选色时才提供；三个预设是快捷候选，不是三套组件主色方案。 |
| 配置：预设与格式 | 预设提供常用颜色的快捷候选，不限制其他合法颜色输入；颜色格式和透明度属于字段的数据规则。 | 当前未启用透明度，也未制定多种格式的业务校验；确有要求再配置并检查，不能从库能力推定后台均支持。 |
| 自动状态：待确认、无值和非法值 | 确认后应用当前颜色；清除得到无值；非法输入属于校验反馈。 | 清除显示未选择，不自动改回预设。格式校验红字与草稿保留需要接入补充，当前不声称已实现。 |

使用边界：不把预设色当作可任选的公共主题。不把清空和校验失败当作另一套配色样式。

## 组件规则

- **COLOR-PICKER-R01**：只适用于业务明确允许自定义颜色的内容，不允许借此改变中控全局语义色。
- **COLOR-PICKER-R02**：当前三个预设是业务颜色的快捷候选，不是三套组件主题；颜色格式与透明度按字段需求另行确定。确认后应用颜色，清除后设置为无值并显示未选择，不自动恢复预设色。
- **COLOR-PICKER-R03**：手动输入色值与色块同时承接当前值；宿主须验证允许格式并为非法值提供就近错误提示、保留待改文本。当前原生示例未添加这类错误文案，不能视为已验证。
- **COLOR-PICKER-R04**：【公共用色】颜色仅从公共色值 引用：主色系 3 个基础色值、辅助功能色 3 个、中性色 10 个，共 16 个基础色值。角色可以多个，实际色值复用；不为每个组件、悬停 或不同字段再新增近似颜色。透明效果仅限遮罩 35% 与阴影 12%，从 外壳深色 派生。
- **COLOR-PICKER-R05**：【统一字体】统一系统中文字体：macOS 优先苹方（PingFang SC），Windows 通常使用微软雅黑（Microsoft YaHei）；工程顺序固定为 "PingFang SC", "Microsoft YaHei", sans-serif。使用设备已有字体，不要求安装或加载网络字体；最后一项仅作兼容回退，不是供页面作者任选的另一套样式。正文 14px/400/21px；表头与分组标题 14px/600/21px，弹窗标题 16px/600/24px；次级文字操作和辅助说明 12px/400/18px。正文与标题同用 #303133；不通过额外加粗或透明度改变正文轻重。
- **COLOR-PICKER-R06**：【叠加优先级】状态叠加规则：禁用阻断交互；输入类控件错误边框覆盖蓝色聚焦边框；输入框不叠加外圈或阴影，其他无边框操作保留键盘焦点提示；选中底覆盖悬停底；只读不等于禁用；加载不等于成功；业务启用/停用的文字结果不等于控件是否可点击。
- **COLOR-PICKER-R07**：【触发与当前颜色】触发框白底、边框灰；内部色块显示当前内容颜色；无值用明确空值标记，不伪造任意默认色。
- **COLOR-PICKER-R08**：【面板与预设】面板白底、正文深灰；选中的预设以主题蓝边框或明确标记表达，不能只依赖色块颜色差异。
- **COLOR-PICKER-R09**：【焦点与禁用】可交互触发器使用操作蓝键盘焦点；禁用外壳浅灰背景、禁用灰并阻止改色，保留原内容颜色供辨认。
- **COLOR-PICKER-R10**：【值校验与清空】格式非法时错误红短提示并保留待改文本；清空是设置无值，按钮按普通动作规则，不冒充图片移除。
- **COLOR-PICKER-R11**：【组件边界】颜色选择器显示的是业务内容颜色，不是图片缩略图；没有缺图、图片加载或上传失败态。用户选色不能改写公共主题。

## 场景与验收清单

以下为需核对的场景组；`[ ]` 不代表已经测试通过。

- [ ] **COLOR-PICKER-S01**：当前样例：颜色面板、三个预设、颜色文本、确认与清除；清除后显示未选择。
- [ ] **COLOR-PICKER-S02**：接入验收：所需格式（HEX/RGB/HSL）、透明度、取消、禁用及非法色值；未启用的格式与透明度不算当前样例能力。
- [ ] **COLOR-PICKER-S03**：非法值的就近红字提示和草稿保留需由宿主补充；不能把原生输入回退当作已实现错误说明。
- [ ] **COLOR-PICKER-S04**：业务内容颜色可以变化，公共主题与组件外壳颜色不随选色改变。
- [ ] **COLOR-PICKER-S05**：共用视觉验收：仅核对本组件实际适用的颜色与组合状态；无此能力标为不适用，不给静态内容添加输入错误、半选或按下状态。
- [ ] **COLOR-PICKER-S06**：共用文字验收：正文14px/400、次级操作12px/400、标题600；检查实际子元素与弹出层。输入焦点只改自身边框，按钮和链接保留键盘焦点轮廓。
- [ ] **COLOR-PICKER-S07**：键盘打开色板、取消或Escape退出后回到入口；确认后保存色值，取消不采纳草稿；色值输入有名称。

### 专题验收重点

当前样例验证预设、手动选色、确认与清除；非法色值提示、透明度及其他格式为接入验收项。

## 当前示例模板

以下来自本专题的结构化示例，使用 Vue 2 模板语法。`v-model`、事件方法、数据列表等依赖 [components.js](../components.js)；完整样式文件及加载顺序见 [通用基线](FOUNDATIONS.md)。自定义组合标签的内部实现由下方依赖文件提供，不能仅复制标签作为完整组件。

### 本示例的运行依赖

- 下方只展示专题内部模板，不包含外层宿主。当前适配要求将它置于唯一的 `<article id="spec-color-picker">` 中；只复制内部标签不会自动获得这里规定的键盘与语义行为。
- 使用 Vue **2.6.14**、Element UI **2.15.6**，接入 [components.js](../components.js) 中本例所需的数据和方法，并按 [通用基线](FOUNDATIONS.md) 加载公共样式。
- 键盘与读屏语义依赖 [choice-semantics.js](../choice-semantics.js)，可见焦点依赖 [global-component-contract.css](../global-component-contract.css)。共享字段名称另由 [form-semantics.js](../form-semantics.js) 补充。适配安装前必须存在上述专题宿主及已挂载组件。
- 保留`spec-color-picker-label`，用于关联可见名称。适配提供 Enter/Space 打开、进入颜色值输入、Escape 取消草稿并返回触发器，以及确认/清空后的焦点返回；点击外部关闭保留新的点击焦点。
- 此脚本读取 Vue 的 `__vue__`、实例引用和内部状态，绑定上述精确版本及固定 `spec-*` 作用域；这些不是公共 API。升级、多个实例或业务路由接入时，应改为组件生命周期内的实例引用方案，重新分配唯一标签 ID，并重新验证，不能仅复制脚本或更改外层 ID。
- 本片段及文档不是独立运行包。实际接入还需核对名称、键盘、边界、动态挂载与销毁；本地逻辑检查不代替浏览器及读屏验收。

```html
<p id="spec-color-picker-label" class="audit-field-label">选择颜色</p>
<div class="demo-line">
<el-color-picker aria-labelledby="spec-color-picker-label" v-model="chosenColor" :predefine="['#409EFF','#67C23A','#F56C6C']">
</el-color-picker>
<code>{{ chosenColor || '未选择' }}</code>
</div>
```

## 交付与使用边界

- 规范条款、示例代码与待验收场景分开理解；有示例不等于已覆盖所有样式、交互状态和使用场景。
- 业务接口、权限、时区、金额精度、数据规模等依赖应从实际项目读取，不使用演示值代替生产约定。
- 发生样式或文案变更时，同步专题数据、页面与 Markdown，避免规范和样例分离。

## 来源与关联

- 来源线索：本次补充。
- [打开本专题页面](../index.html#spec-color-picker)
- [通用基线](FOUNDATIONS.md)
- [规范总索引](README.md)
- [结构化规范数据](../component-data.json)（记录 id：`color-picker`）
- [原始历史样板](../original-20260621.html)
- [历史规范条目](../spec-notes.json)

## 本组件颜色状态表

| 状态 / 条件 | 统一规则 |
| --- | --- |
| 触发与当前颜色 | 触发框白底、边框灰；内部色块显示当前内容颜色；无值用明确空值标记，不伪造任意默认色。 |
| 面板与预设 | 面板白底、正文深灰；选中的预设以主题蓝边框或明确标记表达，不能只依赖色块颜色差异。 |
| 焦点与禁用 | 可交互触发器使用操作蓝键盘焦点；禁用外壳浅灰背景、禁用灰并阻止改色，保留原内容颜色供辨认。 |
| 值校验与清空 | 格式非法时错误红短提示并保留待改文本；清空是设置无值，按钮按普通动作规则，不冒充图片移除。 |

颜色选择器显示的是业务内容颜色，不是图片缩略图；没有缺图、图片加载或上传失败态。用户选色不能改写公共主题。

[公共颜色与字体 token](../color-tokens.json) · [公共组件样式](../color-contract.css) · [系统字体合同（最后加载）](../font-contract.css)

## 业务落地场景

**当前业务：暂未采用。** 当前后台使用固定公共色值，尚未出现需要用户自行选色的业务字段。

本页保留组件示例和接入规则。已核实的参考截图尚未提供合适业务落点，不链接无关首页，不为覆盖组件而新增业务字段。

**适用条件**：只有业务内容允许自定义颜色时，才采用当前颜色选择器；当前启用三个预设、面板选色、确认和清除，不用于修改后台公共主题。

**采用边界**：不把预设色当作可任选的公共主题。不把清空和校验失败当作另一套配色样式。

[竞品组件拆解](../../reference-review/竞品组件反推规范.html) · [业务场景分类](../../业务场景分类清单.md)
