ColorPicker 颜色选择器用于让用户选择颜色,支持 OKLCH、RGB、HEX 三种颜色模式。适用于主题定制、颜色配置等场景。
ColorPicker 支持三种颜色模式:
通过 modes 属性可以配置支持的模式,数组中的第一个模式为初始显示模式。
ColorPicker 支持三种格式的初始颜色值:
// OKLCH 格式
value = { l: 0.7, c: 0.15, h: 250 }
// RGB 格式
value = [255, 100, 50]
// HEX 格式
value = '#FF6432'
传入的初始值格式应与 modes[0] 对应,以确保类型一致性。
如果不传入初始颜色,ColorPicker 会自动使用当前主题颜色作为默认值:
--color-primary 主题色--color-dark 主题色ColorPicker 支持两种显示模式:
通过 visible 属性控制显示隐藏,颜色选择器会以弹出层形式展示。关闭时通过 onclose 回调返回选中的颜色。
<ColorPicker bind:visible={visible} onclose={(colors) => console.log(colors)} />
将 popup 设置为 null,颜色选择器会直接嵌入页面显示。颜色变化时通过 onchange 回调实时返回。
<ColorPicker popup={null} onchange={(colors) => console.log(colors)} />
ColorPicker 返回的颜色数据是一个字符串数组,包含当前颜色在各模式下的表示:
colors = [
'#FF6432', // HEX 格式
'rgb(255, 100, 50)', // RGB 格式
'oklch(0.700 0.150 250.0)' // OKLCH 格式
]
预览区域的颜色值支持点击复制,复制成功后会显示提示。可通过 showCopy 属性控制是否显示复制功能,通过 oncopy 回调监听复制事件。
panelHeight 和 sliderHeight 可以调整颜色面板和滑动条的高度。radius 可以设置圆角大小。injClass 可以注入自定义 CSS 类名。tab 可以自定义 Tab 切换的样式。ColorPicker 选择器在 Popup 模式下是基于 Popup 组件封装的,因此可以通过 popup 属性传入 Popup 的配置来调整弹出层样式。
如果只需要单一模式,可以将 modes 设置为只包含一个模式的数组,此时不会显示模式切换 Tab。