Skip to content

颜色选择器 ColorPicker

用于选择和展示颜色

基本使用

基本用法


代码事例
vue
<template>
  <fk-space>
    <fk-color-picker  v-model="value" />
    <fk-color-picker default-value="#165DFF" show-text disabled-alpha/>
  </fk-space>
</template>

<script setup>
import { ref } from 'vue';
const value = ref('#165DFF')
</script>

尺寸

颜色选择器定义了四种尺寸(mini,small, medium, large),分别为 24px,28px,32px,36px。


代码事例
vue
<template>
  <fk-space>
    <fk-color-picker default-value="#165DFF" size="mini" />
    <fk-color-picker default-value="#165DFF" size="small" />
    <fk-color-picker default-value="#165DFF" size="medium" />
    <fk-color-picker default-value="#165DFF" size="large" />
  </fk-space>
</template>

禁用

设置 disabled 禁用选择器。


代码事例
vue
<template>
  <fk-space>
    <fk-color-picker default-value="#165DFF" disabled />
    <fk-color-picker default-value="#165DFF" show-text disabled />
  </fk-space>
</template>

颜色格式

通过 format 设置颜色值的格式,支持 hexrgb


代码事例
vue
<template>
  <fk-space direction="vertical">
    <fk-radio-group v-model="format" type="button">
      <fk-radio v-for="item in formatList" :key="item" :value="item">{{item}}</fk-radio>
    </fk-radio-group>
    <fk-color-picker default-value="#165DFF" :format="format" show-text />
  </fk-space>
</template>

<script setup>
import { ref } from 'vue';

const format = ref('hex')
const formatList = ['hex', 'rgb']
</script>

预设颜色和历史颜色

通过 showPresetshowHistory 开启预设颜色和历史颜色区域。历史颜色需要用户自行控制展示内容。


代码事例
vue
<template>
  <fk-color-picker
    default-value="#165DFF"
    :history-colors="history"
    show-history
    show-preset
    @popup-visible-change="addHistory"
  />
</template>

<script setup>
import { ref } from 'vue';

const history = ref(['#165DFF'])
const addHistory = (visible, color) => {
  if (!visible) {
    const index = history.value.indexOf(color);
    if (index !== -1) {
      history.value.splice(index, 1);
    }
    history.value.unshift(color);
  }
}
</script>

触发器

可以通过 trigger-props 设置触发器的所有属性。


代码事例
vue
<template>
  <fk-space direction="vertical">
    <fk-switch v-model="triggerProps.popupVisible">
      <template #checked> ON </template>
      <template #unchecked>OFF</template>
    </fk-switch>
    <fk-color-picker default-value="#165DFF" :trigger-props="triggerProps" />
  </fk-space>
</template>

<script setup>
import { ref } from 'vue';

const triggerProps = ref({
  popupVisible: false,
  unmountOnClose: true,
  position: 'rt'
})
</script>

自定义触发元素

自定义触发元素。


代码事例
vue
<template>
  <fk-space>
    <fk-color-picker v-model="value" size="mini" >
      <fk-tag :color="value">
        <template #icon>
          <icon-bg-colors style="color: #fff" />
        </template>
        {{value}}
      </fk-tag>
    </fk-color-picker>
  </fk-space>
</template>

<script setup>
import { ref } from 'vue';

const value = ref('#165DFF');
</script>

只使用面板

只用颜色选择面板。


代码事例
vue
<template>
  <fk-space :size="32">
    <fk-color-picker default-value="#165DFF" hide-trigger show-history show-preset/>
    <fk-color-picker default-value="#12D2AC" disabled hide-trigger show-preset/>
  </fk-space>
</template>

API

<color-picker> Props

参数名描述类型默认值
model-value (v-model)绑定值string-
default-value默认值(非受控状态)string-
format颜色值的格式'hex' | 'rgb'-
size尺寸'mini' | 'small' | 'medium' | 'large''medium'
show-text显示颜色值booleanfalse
show-history显示历史颜色booleanfalse
show-preset显示预设颜色booleanfalse
disabled禁用booleanfalse
disabled-alpha禁用透明通道booleanfalse
hide-trigger没有触发元素,只显示颜色面板booleanfalse
trigger-props接受所有 Trigger 组件的PropsPartial<TriggerProps>-
history-colors历史颜色的颜色数组string[]-
preset-colors预设颜色的颜色数组string[]() => colors

<color-picker> Events

事件名描述参数
change颜色值改变时触发value: string
popup-visible-change颜色面板展开和收起时触发visible: boolean
value: string

基于 MIT 许可发布