ColorPicker 颜色选择器
Forms
智能自动检测
简介
一种高级输入控件,允许用户通过饱和度/亮度区域、色相与透明度滑块、可编辑的通道输入框(HEX、RGBA、HSLA)以及预定义色板来选择和自定义颜色。
ColorPicker 组件已作为交互式 colorPicker 区块完整集成到 Page Builder 中,内容作者和开发者可以直接在 CMS 内轻松配置标签、默认状态、Popover 触发器模式以及尺寸刻度。
用法
以下示例展示了内容编辑者如何绑定并结构化颜色选择器组件。
1. 内联自定义器(标准 Hex 默认值)
一个内联颜色选择器,占据页面布局中块级空间,在加载时立即渲染饱和度区域、色相滑块和通道输入框。
{
"type": "colorPicker",
"label": "Brand Primary Color",
"defaultValue": "#7c3aed",
"interactive": true
}
Brand Primary Color
Hue
262
Alpha
100%
2. 带选中即关闭的 Popover 色板触发器
一种优雅、节省空间的设计方案,渲染一个小型彩色色板触发器。点击色板会在 Popover 层中打开颜色选择面板,在选择预设色板后自动关闭。
{
"type": "colorPicker",
"label": "Choose Theme Accent",
"defaultValue": "#22c55e",
"trigger": true,
"closeOnSelect": true,
"interactive": true
}
Choose Theme Accent
3. 禁用选择器状态
展示一个被锁定或非激活的颜色自定义器。这会禁用所有滑块、输入通道、色板选择按钮和触发器。
{
"type": "colorPicker",
"label": "Accent Tint (Inactive)",
"defaultValue": "#e2e8f0",
"disabled": true,
"interactive": true
}
Accent Tint (Inactive)
Hue
214
Alpha
100%
属性
| 属性 | CMS 字段类型 | 默认值 | 说明 / 可选项 |
|---|---|---|---|
标签文本 (label) | string | - | 位于颜色选择器区域或 Popover 触发器上方的可选可视化伴随文本。 |
默认值 (defaultValue) | string | "#7c3aed" | 初始激活颜色。接受十六进制格式的字符串(例如 "#7c3aed"、"#3b82f6")。 |
触发器(Popover) (trigger) | boolean | false | 为 true 时,将完整的内联选择器布局替换为一个锚定在彩色色板按钮上的浮动 Popover 卡片。 |
选中即关闭 (closeOnSelect) | boolean | false | 为 true 时,在选择预设色板后立即关闭 Popover。(仅当 trigger 为 true 时适用)。 |
禁用 (disabled) | boolean | false | 冻结所有视觉滑块、自定义预设选择、取色器和输入字段。 |
尺寸刻度 (size) | select | "md" | 缩放饱和度面板、色板和边距的宽度与高度。 • 选项: "sm"、"md"、"lg"。 |
开发者说明与无障碍
- 智能水合岛屿: 为了处理饱和度网格上的鼠标拖拽和动态滑块定位,ColorPicker 会在客户端机器上自动水合为 Preact 岛屿。
- 表单集成: 它会输出一个原生隐藏的
<input type="hidden">,携带激活颜色的十六进制字符串值。这保证了原生表单提交开箱即用地捕获到激活值。 - Aria 可访问滑块: 所有滑块字段、滑块面板和输入字段都带有语义化 ARIA 属性(
role="slider"、aria-valuemin、aria-valuemax、aria-valuenow)。标准键盘导航(左/右/上/下方向键)原生完全支持。 - 精确转换: HSVA、HSL、RGB 与 Hex 格式之间的转换在渲染层内部进行。这避免了所选输入格式之间的颜色偏移和舍入不匹配。