Skip to content

使用例子

基础用法

html
<template>
  <div :style="{ display: 'flex', alignItems: 'center', gap: '16px' }">
    <ColorPicker v-model:value="curColor" @change="onChange" />
    <div
      :style="{
        width: '50px',
        height: '50px',
        borderRadius: '10px',
        background: curColor,
      }"
    />
  </div>
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import { ColorPicker } from 'color-gradient-picker-vue3'
  import 'color-gradient-picker-vue3/dist/style.css'

  const curColor = ref('rgba(175, 51, 242, 1)')
  const onChange = (val: any) => {
    console.log(val, 'colorpicker 回调')
  }
</script>

多语言配置

支持中文 ('zh') 和英文 ('en'),默认英文。

html
<template>
  <div :style="{ display: 'flex', alignItems: 'center', gap: '16px' }">
    <ColorPicker
      v-model:value="curColor"
      :locale="curLocale"
      @change="onChange"
    />
    <button @click="toggleLocale">切换语言</button>
  </div>
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import { ColorPicker } from 'color-gradient-picker-vue3'
  import type { ILocales } from 'color-gradient-picker-vue3'
  import 'color-gradient-picker-vue3/dist/style.css'

  const curColor = ref('rgba(175, 51, 242, 1)')
  const curLocale = ref<ILocales>('zh')
  const toggleLocale = () => {
    curLocale.value = curLocale.value === 'en' ? 'zh' : 'en'
  }
  const onChange = (val: any) => {
    console.log(val, 'colorpicker 回调')
  }
</script>

自定义预设颜色

传入 presetColors 数组自定义预设颜色(最多 18 个)。

html
<template>
  <ColorPicker v-model:value="curColor" :preset-colors="customColors" />
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import { ColorPicker } from 'color-gradient-picker-vue3'
  import 'color-gradient-picker-vue3/dist/style.css'

  const curColor = ref('rgba(255, 0, 0, 1)')
  const customColors = [
    'rgba(255, 0, 0, 1)',
    'rgba(0, 255, 0, 1)',
    'rgba(0, 0, 255, 1)',
    'rgba(255, 255, 0, 1)',
    'rgba(255, 0, 255, 1)',
    'rgba(0, 255, 255, 1)',
  ]
</script>

隐藏部分功能

html
<template>
  <!-- 仅纯色模式 -->
  <ColorPicker v-model:value="color" hide-gradient />

  <!-- 隐藏透明度 -->
  <ColorPicker v-model:value="color" hide-opacity />

  <!-- 隐藏输入框 -->
  <ColorPicker v-model:value="color" hide-inputs />

  <!-- 隐藏预设颜色 -->
  <ColorPicker v-model:value="color" hide-presets />
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import { ColorPicker } from 'color-gradient-picker-vue3'
  import 'color-gradient-picker-vue3/dist/style.css'

  const color = ref('rgba(175, 51, 242, 1)')
</script>

初始渐变色

传入渐变 CSS 字符串即可初始化为渐变模式。

html
<template>
  <ColorPicker v-model:value="gradientColor" @change="onChange" />
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import { ColorPicker } from 'color-gradient-picker-vue3'
  import 'color-gradient-picker-vue3/dist/style.css'

  const gradientColor = ref(
    'linear-gradient(90deg, rgba(245, 66, 245, 1) 0%, rgba(0, 0, 255, 1) 100%)',
  )
  const onChange = (val: any) => {
    console.log(val)
  }
</script>

显示高级滑块

启用后显示饱和度、亮度、明度滑块。

html
<template>
  <ColorPicker v-model:value="color" show-advanced-sliders />
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import { ColorPicker } from 'color-gradient-picker-vue3'
  import 'color-gradient-picker-vue3/dist/style.css'

  const color = ref('rgba(175, 51, 242, 1)')
</script>