
Product
Socket Now Protects the Chrome Extension Ecosystem
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
github.com/xiaokaike/vue-color
A collection of efficient and customizable color pickers built with Vue 3, designed for modern web development.
Explore the components in action: 👉 Open Live Demo
Modular & Tree-Shakable – Import only what you use
TypeScript Ready – Full typings for better DX
SSR-Friendly – Compatible with Nuxt and other SSR frameworks
Optimized for Accessibility – Built with keyboard navigation and screen readers in mind.
npm install vue-color
# or
yarn add vue-color
// main.ts
import { createApp } from 'vue'
import App from './App.vue'
// Import styles
import 'vue-color/style.css';
createApp(App).mount('#app')
<template>
<ChromePicker v-model="color" />
</template>
<script setup lang="ts">
import { ChromePicker } from 'vue-color'
const color = defineModel({
default: '#68CCCA'
});
</script>
📘 For a full list of available components, see the Documentation.
All color pickers listed below can be imported as named exports from vue-color
.
import { ChromePicker, CompactPicker, HueSlider /** ...etc */ } from 'vue-color';
Component Name | Docs |
---|---|
ChromePicker | View |
CompactPicker | View |
GrayscalePicker | View |
MaterialPicker | - |
PhotoshopPicker | View |
SketchPicker | View |
SliderPicker | View |
SwatchesPicker | View |
TwitterPicker | View |
HueSlider | View |
AlphaSlider | - |
All color picker components (expect for <HueSlider />
) in vue-color
share a set of common props and events for handling color updates and synchronization.
Below we'll take <ChromePicker />
as an example to illustrate how to work with v-model
.
v-model
<template>
<ChromePicker v-model="color" />
</template>
<script setup>
import { ChromePicker } from 'vue-color'
const color = defineModel({
default: 'rgb(50, 168, 82)'
});
</script>
The v-model
of vue-color
accepts a variety of color formats as input. It will preserve the format you provide, which is especially useful if you need format consistency throughout your app.
const color = defineModel({
default: 'hsl(136, 54%, 43%)'
// or
default: '#32a852'
// or
default: '#32a852ff'
// or
default: { r: 255, g: 255, b: 255, a: 1 }
});
Under the hood, vue-color
uses tinycolor2
to handle color parsing and conversion.
This means you can pass in any color format that tinycolor2
supports—and it will just work.
v-model:tinyColor
<template>
<ChromePicker v-model:tinyColor="tinyColor" />
</template>
<script setup>
import { ChromePicker, tinycolor } from 'vue-color';
const tinyColor = defineModel('tinyColor', {
default: tinycolor('#F5F7FA')
});
</script>
In addition to plain color values, you can also bind a tinycolor2
instance using v-model:tinyColor
.
This gives you full control and utility of the tinycolor
API.
⚠️ Note: You must use the
tinycolor
exported fromvue-color
to ensure compatibility with the library's internal handling.
Since vue-color
relies on DOM interaction, components must be rendered client-side. Example for Nuxt:
<template>
<ClientOnly>
<ChromePicker />
</ClientOnly>
</template>
<script setup lang="ts">
import { ClientOnly } from '#components';
import {ChromePicker } from 'vue-color';
</script>
Error / Symptom | Related Issue |
---|---|
TS2742: The inferred type of 'default' cannot be named without a reference to ... (commonly triggered when using pnpm ) | #278 |
Contributions are welcome! Please open issues or pull requests as needed.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.
Product
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.