vuetify-swatches
Version:
Color Swatch component for Vuetify3.
160 lines (123 loc) • 5.36 kB
Markdown
[](README.md) | [日本語](README.ja.md)
[](https://www.jsdelivr.com/package/npm/vuetify-swatches)
[](https://www.npmjs.com/package/vuetify-swatches)
[](https://uiwjs.github.io/npm-unpkg/#/pkg/vuetify-swatches/file/README.md)
[](https://www.npmjs.com/package/vuetify-swatches)
[](https://gitpod.io/#https://github.com/logue/vuetify-swatches)
[](https://twitter.com/logue256)

Vuetify 3 向けのカラースウォッチコンポーネントです。
このプロジェクトは [saintplay の vue-swatches](https://saintplay.github.io/vue-swatches/) を
[](https://vuetifyjs.com/) ベースで再構築したものです。
シンプルな API のまま、Vuetify の UI に自然に組み込める設計を目指しています。
- `2.x`: Vuetify 3(現行)
- `1.x`: Vuetify 2
`2.x` は破壊的変更を含み、`swatches` プロパティが必須です。
```bash
pnpm add vuetify-swatches
```
```vue
<script setup lang="ts">
import { ref, type Ref } from 'vue';
import VSwatches from 'vuetify-swatches';
import { basicPalette } from 'vuetify-swatches/presets/basic';
const selected: Ref<string> = ref('#ffffff');
</script>
<template>
<v-swatches v-model="selected" :swatches="basicPalette" />
</template>
<style>
@import 'vuetify-swatches/dist/style.css';
</style>
```
- `basicPalette`: 軽量で一般的な用途向け
- `advancedPalette`: 色バリエーションが豊富な拡張パレット
```ts
import { basicPalette } from 'vuetify-swatches/presets/basic';
import { advancedPalette } from 'vuetify-swatches/presets/advanced';
```
`swatches` にはネストした配列で任意の色パレットを渡せます。
```vue
<script setup lang="ts">
import { ref, type Ref } from 'vue';
import VSwatches from 'vuetify-swatches';
const customPalette: Ref<string[][]> = ref([
[
'#ffb7b7',
'#ffdbb7',
'#ffffb7',
'#b7ffb7',
'#b7ffff',
'#b7b7ff',
'#ffb7ff',
'#ffffff',
],
[
'#ff5555',
'#ffa555',
'#ffff55',
'#55ff55',
'#55ffff',
'#5555ff',
'#ff55ff',
'#aaaaaa',
],
[
'#ff0000',
'#ff7f00',
'#ffff00',
'#00ff00',
'#00ffff',
'#0000ff',
'#ff00ff',
'#555555',
],
[
'#7f0000',
'#7f4c00',
'#7f7f00',
'#007f00',
'#007f7f',
'#00007f',
'#7f007f',
'#000000',
],
]);
const selected: Ref<string> = ref('#ffffff');
</script>
<template>
<v-swatches v-model="selected" :swatches="customPalette" />
</template>
```
スウォッチ固有の項目以外は、基本的に [v-btn](https://vuetifyjs.com/en/api/v-btn/) の仕様に準拠します。
| Prop | Type | Default | 説明 |
| ------------------ | -------------- | ---------------------------- | ---------------------------- |
| `size` | string | `2rem` | スウォッチボタンのサイズ |
| `icon` | string | `mdi-checkbox-marked-circle` | 選択時に表示するアイコン |
| `icon-size` | string | `1rem` | アイコンサイズ |
| `disabled` | boolean | `false` | 操作を無効化 |
| `rounded` | number\|string | `undefined` | 角丸 |
| `variant` | Variant | `undefined` | Vuetify のボタンバリアント |
| `elevation` | number\|string | `undefined` | Vuetify の elevation |
| `border` | number\|string | `undefined` | Vuetify の border |
| `transpose` | boolean | `false` | 行と列を入れ替える |
| `tooltip` | boolean | `false` | ツールチップで色コードを表示 |
| `tooltip-location` | Anchor | `undefined` | ツールチップの表示位置 |
参照:
- Variant: <https://vuetifyjs.com/api/v-btn/#props-variant>
- Tooltip location: <https://vuetifyjs.com/en/components/tooltips/#props-location>
- デモページ: <https://logue.dev/vuetify-swatches>
Copyright (c) 2022-2026 Logue.
[](LICENSE) のもとで公開しています。
このプロジェクトが役に立ったら、スポンサーとしての支援をご検討ください。
[](https://github.com/sponsors/logue)