Simonwep/pickr でカラーピッカー(Color picker)
はじめに
Simonwep/pickr でカラーピッカー(Color Picker)を作成する方法
TL;DR
- Simonwep/pickr について簡単に整理した
- テーマが3つ用意されており、細かいカスタマイズも簡単にできる
- イベントが一通り揃っておりユーザー操作に合わせて独自処理を行うなども簡単に対応できる
目次
環境・条件
1 | $ sw_vers |
詳細
セットアップ
npm i
や yarn add
でインストール。
1 | $ npm i @simonwep/pickr |
CDN も利用可能。classic
, monolith
, nano
から好きなテーマを1つ、JS を Modern or ES5 のどちらか1つを読み込む。(わかりやすさのためにコメントアウトしている)
1 | <!-- テーマ --> |
使い方
基本
参考: Usage
カラーピッカーを表示するための要素を作成して、Picker.create
でマウント。
1 | <div id="pickr"></div> |
1 | const picker = Picker.create({ |
詳細設定
参考: Options
上記セクションに詳細設定に関するオプションが書かれている。個人的に使いそうなものを抜粋。
el
: カラーピッカーのマウント先theme
: テーマ(classic
ormonolith
ornano
)sliders
: 透明度(opacity)/彩度(hue) のスライダーの方向comparison
: 変更前後の色の比較(false
にすると色を変えると即反映)default
: 色の初期値swatches
: 色見本セット (ユーザーがお手軽に色変更できるように準備するイメージ)defaultRepresentation
: テキスト入力を受け付ける場合の表示方法デフォルトcomponents
: 表示要素の選択i18n
: ボタンなどのテキストの変更
theme について
参考: Themes
classic
, monolith
, nano
が使用可能。それぞれの見た目の違いは公式画像が分かりやすい。
nano
は CSS の grid
を使っているため、一部ブラウザでは動かないとのことなので注意。
当たり前だが、対応する CSS ファイルを読み込んでおく必要がある。(全部読み込んでいる場合は特に気にしなくて良い)
components について
1 | components: { |
i18n について
UI 部分
'ui:dialog'
: ‘color picker dialog’,'btn:toggle'
: ‘toggle color picker dialog’,'btn:swatch'
: ‘color swatch’,'btn:last-color'
: ‘use previous color’,'btn:save'
: ‘Save’,'btn:cancel'
: ‘Cancel’,'btn:clear'
: ‘Clear’,
aria-labels
参考:
'aria:btn:save'
: ‘save and close’,'aria:btn:cancel'
: ‘cancel and close’,'aria:btn:clear'
: ‘clear and close’,'aria:input'
: ‘color input field’,'aria:palette'
: ‘color selection area’,'aria:hue'
: ‘hue selection slider’,'aria:opacity'
: ‘selection slider’
イベント
参考: Events
イベント | 概要 | 引数 |
---|---|---|
init |
初期化完了時 | PickrInstance |
hide |
カラーピッカーが閉じられた時 | PickrInstance |
show |
カラーピッカーが表示された時 | PickrInstance |
save |
色の保存時。 クリアボタン経由での発火時は色(第一引数) が null |
HSVaColorObject or null , PickrInstance |
clear |
クリアボタン クリック時 | PickrInstance |
change |
色の変更時。保存していなくても発火する。 | HSVaColorObject , PickrInstance |
changestop |
色の変更完了時 | PickrInstance |
cancel |
キャンセルボタン クリック時 | PickrInstance |
swatchselect |
色見本の選択時 | HSVaColorObject , PickrInstance |
Pickr.create
で生成したインスタンスに対して、 .on
でハンドラを設定する。
1 | const pickr = Picker.create({/* ... */}); |
HSVaColorObject について
save
, change
, swatcheselect
のイベントハンドラに渡される HSVaColorObject
について。
toRGBA
などのメソッドを利用可能、Red/Green/Blue/Alpha の各値が Array(配列) で返却される。
toString()
で CSS でそのまま利用可能な文字列として取得できる、toString(3)
とすると有効桁数を変更可能。
1 | // ********** HSVA ********** |
その他のメソッドやプロパティなど
参考:
JS 側からカラーピッカーを表示したり閉じたり、デフォルトオプションを設定したりもできる。詳しくは上記を参照。
まとめ
- Simonwep/pickr について簡単に整理した
- テーマが3つ用意されており、細かいカスタマイズも簡単にできる
- イベントが一通り揃っておりユーザー操作に合わせて独自処理を行うなども簡単に対応できる
参考文献
関連記事
- Vue.js を使ってメインページ側で動作する Chrome 拡張機能を開発する方法
- webpack & Babel を使って Chrome 拡張機能を開発するためのテンプレート(Hot Reload 付き)
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- ツールチップを簡単に表示できる Tippy.js の使い方
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア