5.25.2

ColorPicker
颜色选择器

用于选择颜色。
使用import { ColorPicker } from "antd";
版本自 5.5.0 起支持

何时使用

当用户需要自定义颜色选择的时候使用。

代码演示

最简单的使用方法。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

通过 valueonChange 设置组件为受控模式,如果通过 onChangeComplete 受控则会锁定展示颜色。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
#1677FF
Custom Text (#1677ff)

渲染触发器的默认文本, showTexttrue 时生效。自定义文本时,可以使用 showText 为函数的方式,返回自定义的文本。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

禁用颜色透明度。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

自定义颜色面板的触发器。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
HEX: #1677ff
HSB: hsb(215, 91%, 100%)
RGB: rgb(22, 119, 255)

编码格式,支持HEXHSBRGB

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
Add title:
Horizontal layout:

通过 panelRender 自由控制面板的渲染。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
#1677FF
#1677FF
#1677FF

触发器有大、中、小三种尺寸。

通过设置 sizelarge small 分别把触发器设为大、小尺寸。若不设置 size,则尺寸默认为中。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
rgb(16,142,233) 0%rgb(135,208,104) 100%
rgb(16,142,233) 0%rgb(135,208,104) 100%

通过 mode 设置颜色为单一颜色还是渐变色。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code
5.20.0
#1677FF

设置为禁用状态。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

清除已选择的颜色。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

自定义颜色面板的触发事件,提供 clickhover 两个选项。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

设置颜色选择器的预设颜色。

CodeSandbox Icon
codeblock
codepen icon
External Link Icon
expand codeexpand code

API

通用属性参考:通用属性

antd@5.5.0 版本开始提供该组件。

参数说明类型默认值版本
allowClear允许清除选择的颜色booleanfalse
arrow配置弹出的箭头boolean | { pointAtCenter: boolean }true
children颜色选择器的触发器React.ReactNode-
defaultValue颜色默认的值string | Color-
defaultFormat颜色格式默认的值rgb | hex | hsbhex5.9.0
disabled禁用颜色选择器boolean-
disabledAlpha禁用透明度boolean-5.8.0
disabledFormat禁用选择颜色格式boolean-
destroyTooltipOnHide关闭后是否销毁弹窗booleanfalse5.7.0
destroyOnHidden关闭后是否销毁弹窗booleanfalse5.25.0
format颜色格式rgb | hex | hsb-
mode选择器模式,用于配置单色与渐变'single' | 'gradient' | ('single' | 'gradient')[]single5.20.0
open是否显示弹出窗口boolean-
presets预设的颜色{ label: ReactNode, colors: Array<string | Color>, defaultOpen?: boolean, key?: React.Key }[]-defaultOpen: 5.11.0, key: 5.23.0
placement弹出窗口的位置Tooltips 组件的 placement 参数设计bottomLeft
panelRender自定义渲染面板(panel: React.ReactNode, extra: { components: { Picker: FC; Presets: FC } }) => React.ReactNode-5.7.0
showText显示颜色文本boolean | (color: Color) => React.ReactNode-5.7.0
size设置触发器大小large | middle | smallmiddle5.7.0
trigger颜色选择器的触发模式hover | clickclick
value颜色的值string | Color-
onChange颜色变化的回调(value: Color, css: string) => void-
onChangeComplete颜色选择完成的回调,通过 onChangeCompletevalue 受控时拖拽不会改变展示颜色(value: Color) => void-5.7.0
onFormatChange颜色格式变化的回调(format: 'hex' | 'rgb' | 'hsb') => void-
onOpenChangeopen 被改变时的回调(open: boolean) => void-
onClear清除的回调() => void-5.6.0

Color

参数说明类型版本
toCssString转换成 CSS 支持的格式() => string5.20.0
toHex转换成 hex 格式字符,返回格式如:1677ff() => string-
toHexString转换成 hex 格式颜色字符串,返回格式如:#1677ff() => string-
toHsb转换成 hsb 对象() => ({ h: number, s: number, b: number, a number })-
toHsbString转换成 hsb 格式颜色字符串,返回格式如:hsb(215, 91%, 100%)() => string-
toRgb转换成 rgb 对象() => ({ r: number, g: number, b: number, a number })-
toRgbString转换成 rgb 格式颜色字符串,返回格式如:rgb(22, 119, 255)() => string-

FAQ

关于颜色赋值的问题

颜色选择器的值同时支持字符串色值和选择器生成的 Color 对象,但由于不同格式的颜色字符串互相转换会有精度误差问题,所以受控场景推荐使用选择器生成的 Color 对象来进行赋值操作,这样可以避免精度问题,保证取值是精准的,选择器也可以按照预期工作。