n-color-picker 颜色选择器
取值控件:预设色板点选 + 色相滑杆派生新色 + 当前值回显,纵向三段一次排开。适合"让用户给出一 个颜色"的表单场景(自定义主题色、标注色、分类色),预设里没有想要的颜色时拖动色相滑杆即可在 当前色基础上派生任意色相的新色。
与 n-color 的分工:n-color 是纯点选展示色板(只能选预设里的色);本组件是取值控件,多了色相 滑杆与取值回显。只需要从有限的几个颜色里挑一个时用 n-color,需要派生新色时用本组件。
组件支持 v-model,也可使用显式绑定:
:model-value+@update:model-value
平台兼容性
| App | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ小程序 |
|---|---|---|---|---|---|---|
| √ | √ | √ | × | × | × | × |
API
属性
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
| model-value | 当前色值(#rrggbb,输入 #rgb / #rrggbbaa 归一为 #rrggbb 小写输出),空串 = 未选色 | String | "" | - |
| presets | 预设色板色值数组,非法色值不渲染;空数组 = 使用内置默认色板(16 色) | Array | [] | - |
| columns | 色板每行列数;cell 宽度按列数等分(命名沿用 n-color 的同义 prop) | Number | 8 | - |
| size | 色块边长(px);点击区固定 ≥44px | Number | 28 | - |
| disabled | 禁用(保留配色降透明度,拦截点选与色相拖动) | Boolean | false | true<br/>false |
| custom-class | 挂到根节点的额外 class(需是组件样式表内已定义的类) | String | "" | - |
| custom-style | 根节点行内样式 | String | "" | 与 css 相同 |
事件
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| update:model-value | 色值变化时触发(点选色块或拖动色相滑杆);配合 :model-value 手动双向绑定 | 色值字符串(#rrggbb 小写) |
| change | 色值变化时触发(语义化入口,与 update:model-value 同时发出) | 色值字符串(#rrggbb 小写) |
定制通道
- 主题令牌:
--n-color-picker-swatch-radius(色块圆角)/--n-color-picker-ring-width(选中环 宽度)/--n-color-picker-check-width(对勾线宽)/--n-color-picker-disabled-opacity(禁用 透明度),或编译时在 uni.scss 覆盖同名$n-变量。 - 根节点:customClass / customStyle。
- 内部节点行内样式由组件自管(色块底色、滑块位置随值逐项变化),不开放样式 prop。