Skip to content

ColorPicker-Demo

#4F6BEDCC
>
>
Red
>
Green
>
Blue
>
Opacity
>
vue
<script setup lang="ts">
import { ref } from 'vue';

const color = ref('#4F6BEDCC');
const colorMode = ref<'ring' | 'box'>('ring');
</script>

<template>
  <fv-color-picker
    v-model="color"
    :type="colorMode"
  />
</template>

ColorPicker-Color Info

`v-model` 仍然返回十六进制字符串。如果你需要更多颜色信息,可以通过 `update:modelValue` 的第二个参数拿到 `hex`、`rgba`、`hsla`,也可以直接监听 `color-info`。

>
>
Red
>
Green
>
Blue
>
Opacity
>
{
  "hex": "#6B69D6CC",
  "rgba": {
    "r": 107,
    "g": 105,
    "b": 214,
    "a": 0.8
  },
  "hsla": {
    "h": 241.1,
    "s": 57.59,
    "l": 62.55,
    "a": 0.8
  }
}
vue
<script setup lang="ts">
import { ref } from 'vue';

const color = ref('#6B69D6CC');

function handleUpdate(value: string, info?: {
  hex: string;
  rgba: { r: number; g: number; b: number; a: number };
  hsla: { h: number; s: number; l: number; a: number };
}) {
  console.log(value);
  console.log(info);
}
</script>

<template>
  <fv-color-picker
    v-model="color"
    @update:modelValue="handleUpdate"
  />
</template>

ColorPicker-Hide Fields

`hideFields` 可以隐藏下方的数值编辑区和颜色模式切换,让组件更适合紧凑布局。

vue
<fv-color-picker
  v-model="color"
  hideFields
/>

ColorPicker-Control Sliders

`value`、`saturation`、`alpha` 三个滑条可以分别控制显示状态,适合按业务场景做简化。

vue
<fv-color-picker
  v-model="color"
  hideFields
  :showValueSlider="false"
  :showSaturationSlider="false"
  :showAlphaSlider="true"
/>

ColorPicker-Ring Only

`type="ring"` 会把颜色区域切换成圆环取色形式,适合更强调 Hue 选择的场景。

>
>
Red
>
Green
>
Blue
>
Opacity
>
vue
<fv-color-picker
  v-model="color"
  type="ring"
/>

属性

属性类型必填默认值说明
disabledbooleanfalse是否禁用组件。
langstring"global"继承全局语言配置。
modelValuestringundefined绑定的颜色字符串,支持 #RRGGBB#RRGGBBAA
themestring'global'主题风格,支持 globallightdarksystemcustom
type'box' | 'ring''box'颜色区域的交互模式。
foregroundstring''内部输入控件使用的强调色。
hideFieldsbooleanfalse是否隐藏下方的 fields 数值编辑区域。
showValueSliderbooleantrue是否显示明度滑条。
showSaturationSliderbooleantrue是否显示饱和度滑条。
showAlphaSliderbooleantrue是否显示透明度滑条。

事件

事件名参数说明
update:modelValuevalue: string, info?: { hex, rgba, hsla }更新 v-model 字符串,同时可通过第二个参数拿到结构化颜色对象。
color-infoinfo: { hex, rgba, hsla }仅返回结构化颜色对象。

MIT Licensed