Web制作やデザインの現場では、色の指定と調整は日々の作業の中でも非常に重要です。

HTMLやCSSでは、色を指定するためにさまざまな記法が用意されていますが、複数の書き方が混在しているため、場面によって使い分ける必要があります。

今回、Dottiqの無料ツール「Color Kit」において、日本語版・英語版ともにカラーコード変換の新機能を追加しました。

これにより、ただの変換ツールから一歩進んで、「色から広がるデザイン作業」を支援する存在へと進化しています。

🎨 rgbやhexなど、カラーコードの書き方って?

まず、カラーコードにはどんな種類があるのかを振り返ってみましょう。以下はWeb制作でよく使われる代表的な形式です:

  • HEX(16進数)#ffcc00 のような形式。3桁や6桁で色を指定する最も基本的な方法です。
  • rgb()rgb(255, 204, 0) のように、Red / Green / Blue の値を0〜255で指定します。
  • rgba()rgba(255, 204, 0, 0.5) のように、rgbに加えて透明度(alpha)も設定できる形式です。
  • modern rgb(新構文)rgb(255 204 0 / 1) のように、スペース区切り+スラッシュで透明度を表現するCSSの新しい記法です。

例えば、FigmaやPhotoshopなどのデザインツールから得られる色指定がHEX形式なのに、CSSフレームワーク(Tailwindなど)ではmodern rgbを求められる──そんなとき、変換ツールが役立ちます。

🚫 rgba()は非推奨?削除した理由について

今回のバージョンアップにあたり、従来表示していたrgba()形式は削除しました。理由は、modern rgb(例:rgb(255 204 0 / 1))の登場によって、rgbaは事実上その上位互換に置き換わりつつあるためです。

modern rgbは、スペース区切りとスラッシュで構成されるCSSの新構文であり、透明度を指定しながらも構文がシンプルで、読みやすく、最新のブラウザではすでに広くサポートされています。

一方で、rgba()は構文が古く、カッコ内のカンマ区切りなどが冗長であるうえ、modern rgbと役割が重複しているため、今後のCSS設計においては優先度が下がっています。

Color Kitでは今後も、よりモダンで実用的な記法を優先して扱っていく方針です。

🌈 新機能:関連カラーの自動生成

今回のバージョンアップで最も大きな変更は、入力した色をもとに自動で関連カラーを生成できるようになった点です。生成されるのは次の5種類:

  • 補色(Complementary):色相を180度反転させた、対になる色
  • 明るめ(Lighter):明度を上げて明るい印象にした同系統色
  • 暗め(Darker):明度を下げた落ち着いたバリエーション
  • 類似色+:色相を+30度した近似色
  • 類似色−:色相を−30度した近似色

これらの色は、HEX形式とmodern rgb形式の両方で表示され、コピーボタンですぐに値を取得できます。もちろん、各色の横にはプレビュー用のミニサンプルも表示されており、ビジュアル的にも分かりやすくなっています。

📋 Copyボタンのフォーマット切り替えに対応

これまでのColor KitではHEX形式のみコピーできましたが、今回から「HEX」または「rgb」形式をトグルで切り替えてコピーできるようになりました。たとえば:

  • デザインツールに貼り付けたい → HEX形式
  • CSSコードに埋め込みたい → rgb形式

このように、目的に合わせて柔軟に使い分けられるようになったのは、日々の細かい作業を効率化する上で大きな改善です。トグルの状態はリアルタイムで反映され、どのボタンを押しても現在の形式でコピーされるという仕組みです。

🛠️ 補色などはどうやって計算してる?

ここからは少し技術的な話になりますが、「関連カラーの生成」は単純な配列やテンプレートではなく、HSL(Hue, Saturation, Lightness)という色空間に変換してから演算しています。

たとえば、HEXやrgbからRGB値を取得し、次のようにHSLへ変換します:

function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255;
  const max = Math.max(r, g, b), min = Math.min(r, g, b);
  let h, s, l = (max + min) / 2;
  if (max === min) {
    h = s = 0;
  } else {
    const d = max - min;
    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
    switch (max) {
      case r: h = (g - b) / d + (g < b ? 6 : 0); break;
      case g: h = (b - r) / d + 2; break;
      case b: h = (r - g) / d + 4; break;
    }
    h *= 60;
  }
  return [Math.round(h), Math.round(s * 100), Math.round(l * 100)];
}

ここで得られた「h(色相)」に対して +180, ±30 などの補正を行い、明度(l)を ±20 して「明るめ」「暗め」を作成。これらを再びrgbに戻し、変換結果として出力しています。

🔁 今後も少しずつ育てていきます

このアップデートにより、Color Kitは「入力した色をただ別形式に変換するだけ」のツールから、「そこから得られる色のバリエーションを提案してくれるツール」へと進化しました。今後は、

  • グラデーションの自動生成
  • アクセシビリティチェック(コントラスト比など)
  • Tailwind CSSなど外部ツールとの連携支援

といった機能も視野に入れながら、少しずつ育てていきたいと考えています。

Dottiq Color Kit