🎨 なぜ Color Kit を作ったのか

Webサイトのカラー指定といえば、これまでは #000000#ffffff のようなHEXコードが定番でした。

ですが最近は CSS の新構文 rgb(0 0 0 / .5) のように透明度付きの modern rgb を使うことが増えました。

たとえば次のようなスタイルを使いたいとき:

.title {
  color: rgb(0 0 0 / 1);
}
.title-sub {
  color: rgb(0 0 0 / .5);
}

このように、透明度で色の強弱をコントロールしたい場面が増えたのです。

でもHEXコードから手動で変換するのはちょっと面倒… そんなニーズから生まれたのが Dottiq Color Kit です。

💡 機能紹介

Color Kitでは以下のような変換をワンクリックで実現できます:

  • HEX → rgba
  • HEX → modern rgb
  • rgba → HEX
  • modern rgb → HEX

しかも変換した色はその場でプレビュー可能。背景が透けて見えるチェック模様付きなので、透明度の差もひと目でわかります。

「見て・変換して・コピーする」を一画面で完結できるUXを目指しました。

🔧 入力の柔軟性

# 自動補完

たとえば「fff」と入力したら、自動で「#fff」に補完されます。

if (!input.startsWith('#')) {
  input = '#' + input;
}

全角→半角変換

「#FFFFFF」など、全角で入力されても以下の処理で自動修正:

function toHalfWidth(str) {
  return str.replace(/[!-~]/g, function(c) {
    return String.fromCharCode(c.charCodeAt(0) - 0xFEE0);
  }).replace(/\u3000/g, ' ');
}

try/catchでエラー防止

「#ggg」や「rgba(255,255)」のような不正な形式もクラッシュせず処理します。

try {
  const color = parseColor(input);
} catch (e) {
  console.warn('Invalid color:', e.message);
}

ユーザーがストレスを感じずに試せるように、入力にはかなり柔軟性を持たせています。

🎛 背景処理とプレビューの演出

Color Kit の大きな特徴のひとつが「プレビューの美しさと分かりやすさ」です。

なぜ市松模様なのか?

透明度が含まれるカラーを見分けやすくするには、背景に「濃淡のある模様」が必要です。

PhotoshopやFigmaでもおなじみの「市松模様(チェッカー柄)」は、透明度を視覚的に判断するのに最も適しています。

background-color ではなく background を使う理由

プレビューの背景は background-color ではなく background プロパティを使っています。

その理由は background-image との併用。チェッカー柄をCSSグラデーションで描画しており、background で一括指定することで正しく重ねて表示できます。

!important の必要性

プレビュー表示の色を上書きするために、!important を使ってCSSの競合を防止。

.preview {
  background: var(--converted-color) !important;
}

transition でふわっと変化

変換ボタンを押したときに色がパッと変わるのではなく、transition を使ってスムーズに変化します。

transition: background 0.2s ease;

わずかな演出ですが、これだけで使用感が一段上がります。

📋 コピーUIの工夫

「コピーしました!」という手応えのないツールはストレスになります。Color Kitではコピーの演出にもこだわりました。

クリック時のアニメーション再発火

コピーアイコンをクリックすると、一瞬拡大するようなアニメーションが発生。

これを毎回確実に起こすために、一度クラスを外して再付与しています:

button.classList.remove('animated');
void button.offsetWidth; // 再計算で再発火
button.classList.add('animated');

navigator.clipboard.writeText() の使い方

クリップボードに文字列をコピーするには、以下のように非同期で処理します:

navigator.clipboard.writeText(text).then(() => {
  showSuccessMessage();
});

📋 コピーしました!の演出

コピー成功時には一瞬だけメッセージが出現。これにより「本当にコピーされた?」という不安を解消し、安心して使える設計にしています。

🔍 よくある失敗と工夫

色に関する入力ミスは意外と多く、「#ggg」「rgba(255,255)」「rgb(255 255)」など、形式の揺らぎがよく見られます。

少々のミスは寛容に受け止める

Color Kit では完全一致を強制せず、「これは多分こうだよね」と判断して変換処理を試みます。

たとえば、

  • カンマ抜けの rgba(255 255 255 0.5)
  • 空白多めの rgb( 255 , 255 ,255 )
  • 一桁HEXの #f

なども正しく処理できるよう工夫してあります。

失敗しても落ちない

もちろんどうしても処理できない場合は、エラーとして処理しつつツール全体が止まらないよう try/catch を導入しています。

🛠 カラー指定Tips(テンプレート集)

変換だけでなく、実際に使える色のテンプレートも参考になるはず。

  • モーダル用の透明黒
    rgb(0 0 0 / .6)
    背景に動画や写真があるとき、モーダルの背面として最適。画面を暗くしすぎず、自然な重なり感を出せます。
  • 淡いアクセント
    rgb(255 255 255 / .05)
    ボーダーや背景にほんのり効果を加えたいとき。白っぽく見せたいけど主張はさせたくない、そんな場面に。
  • Tailwindカラーに寄せた色指定
    #0ea5e9(sky-500)、#facc15(yellow-400)など
    デザインシステムと合わせたい人にも便利。Tailwindのカラー名で使っているコードを貼っても変換できます。

🔄 Code Kit / Text Kit とのつながり

Dottiqシリーズとして、Color KitはText KitやCode Kitと同じ思想・同じ設計で作られています。

なぜ統一UIにしているのか?

ボタンの見た目やレイアウト、コピー機能のUIなどを共通にすることで、「初めてでも迷わない」「別のツールに移っても使い勝手が変わらない」体験を提供できます。

たとえば Code Kit では CSSのビューティファイやミニファイ、Text Kit では文字数カウントや改行削除など、機能は違ってもUIは共通。

育てるツールという発想

一度作って終わりではなく、実際に使いながら育てていく。フィードバックをもとに機能を拡張し、UIを改善する。

そんな「育てるツール」としてColor Kitも進化を続けています。

🚀 今後追加したい機能

現状でも実用的ですが、Color Kitはまだまだ伸びしろのあるツールです。今後追加したい機能を紹介します。

  • グラデーション生成
    2色以上を選んで、線形・円形のグラデーションを自動生成。CSSコードも即コピーできるように。
  • カラーピッカー
    カラーホイールやスポイトツールで直感的に選べるUIを追加予定。
  • アクセシビリティチェック
    文字色と背景色の組み合わせでWCAG基準を満たすか自動で評価。スコア表示付きで改善提案も。
  • Tailwindカラー名への変換
    HEXやrgbコードから、近いTailwindの色名を逆引きする機能。デザイナーと開発者の連携をスムーズに。

✏️ おわりに

Dottiq Color Kit は、ただ色を変換するだけのツールではありません。

「その場で確認できて」「ストレスなく使えて」「デザインの流れを止めない」──そういう体験を届けるために設計しました。

今後もDottiqシリーズの一員として、より実践的に、より気持ちよく使えるようアップデートしていきます。

あなたの制作現場でも、きっと役立ってくれるはず。ぜひ使い倒して、意見も聞かせてください!

Dottiq Color Kit をぜひ一度使ってみてください。