>_devtools-hub
カラーデザインCSS

配色をコードに落とす手順 — 形式変換・階調生成・トークン化

決めた配色を実装に落とす手順を、形式の変換→階調の生成→トークンとしての整理→コントラスト確認の流れで解説します。色名の付け方や、ダークモードを見据えた設計も整理します。

デザインで決めた色を実装に落とすとき、意外と手間がかかります。デザインツールはHSLやRGBで表示されるのにCSSではHEXで書きたい、ボタンのホバー用に少し暗い色が必要になる、同じ色が何箇所にも直接書かれて後から変更できない——こうした問題は、最初に色の扱い方を決めておけば防げます。この記事では、決めた配色をコードに落とす手順を、形式の変換から階調の生成、トークン化、コントラスト確認まで順番に紹介します。

1. 色の形式を理解して変換する

まず、色の表現形式を押さえます。HEXは実装で最も使われる形式で簡潔ですが、人間には「少し明るくしたい」といった調整がしづらい形式です。RGBは光の三原色の値で、透明度を扱うrgba形式もあります。HSLは色相・彩度・明度で表すため、色味を保ったまま明るさだけを変える、といった調整が直感的にできます。CMYKは印刷向けです。実務では、調整はHSLで考え、最終的にHEXで書く、という流れが扱いやすくなります。Color Format Converter では、いずれかの形式を入力すると他の形式に一括変換でき、CSSの名前付き色にも対応しています。デザインツールから受け取った値をそのまま貼り付けて、実装で使う形式に変換する、という使い方が基本になります。まずは主要な色をこの段階で確定させます。

この手順で使うツール

Color Format Converter

HEX / RGB / HSL / CMYK を瞬時に相互変換

2. 階調(シェード)を生成する

UIを作ると、決めた1色だけでは足りません。ボタンのホバー時の色、押されたときの色、背景に薄く敷く色、無効状態の色——同じ色相で明るさの違うバリエーションが必要になります。これを毎回手作業で作ると、色ごとにばらつきが出て統一感が失われます。Color Shade Generator では、基準色から明度の異なる階調をまとめて生成できます。よく使われるのが、50から900までの段階で並べる方式で、薄い色を背景に、濃い色を文字や強調に使います。ここでのコツは、生成した階調をそのまま使うのではなく、実際にUIに当てて確認することです。特に、隣り合う段階が見分けられないほど近い場合は間引き、逆に飛びすぎている場合は間を足す、といった調整をすると実用的な階調になります。

この手順で使うツール

Color Shade Generator

ベースカラーから Tints / Shades / Tones を自動生成・CSS変数/Tailwind出力

3. 色をトークンとして整理する

階調ができたら、それを直接コードに書き散らさずトークンとして整理します。トークンとは、色に役割ベースの名前を付けて一箇所で管理する考え方です。ここで重要なのが名前の付け方で、blue-500 のような見た目そのままの名前だけだと、後で色を変えるときに名前と実態がずれます。推奨されるのは二段構えで、まず素材としての色(例:ブランドカラーの各階調)を定義し、その上に役割の名前(背景、文字、境界線、危険を示す色、成功を示す色など)を割り当てます。こうしておくと、ダークモード対応が容易になります。役割名はそのままに、参照する素材の色だけを切り替えればよいからです。Color Token Generator では、色をトークンとして整理し、CSSカスタムプロパティなどの形で出力できます。実装ではこのトークンだけを参照するようにすると、後からの変更が一箇所で済みます。

この手順で使うツール

Color Token Generator

カラーパレットを CSS変数 / Tailwind / Sass / Style Dictionary で一括出力

4. 読みやすさを確認する

配色が決まったら、必ず文字が読めるかを確認します。見た目が良くても、コントラストが不足していると、明るい場所や視力の状況によっては読めなくなります。WCAGの基準では、通常サイズの文字で4.5対1以上、大きい文字で3対1以上のコントラスト比が求められます。Color Contrast Checker で、文字色と背景色の組み合わせを入力すると、比率と基準の合否が確認できます。特に注意が必要なのが、薄いグレーの補助テキスト、色付き背景の上のボタン文字、そして無効状態の表示です。これらは意図的に目立たせない要素なので、つい基準を下回りがちです。あわせて、情報を色だけで伝えていないかも確認します。エラーを赤字だけで示すのではなく、アイコンや文言も添えると、色の見え方に関わらず伝わります。

この手順で使うツール

Color Contrast Checker

WCAG 2.1 準拠のコントラスト比をリアルタイムチェック

5. ダークモードを見据えて仕上げる

最後に、ダークモードへの備えです。単純に色を反転させるとうまくいきません。明るい背景では影で立体感を出しますが、暗い背景では影がほとんど見えないため、代わりに背景の明るさの差で階層を表現します。また、明るい背景で使っていた鮮やかな色は、暗い背景では眩しく見えることがあるため、彩度を少し落とした値を用意します。純粋な黒(#000000)を背景にすると、コントラストが強すぎて目が疲れやすいため、少し明るい暗色を使うのが一般的です。手順3でトークンを役割ベースで作っておけば、ダークモード用に素材の色を差し替えるだけで対応できます。実装ではCSSカスタムプロパティを使い、prefers-color-schemeで参照する値を切り替えるのが定番の方法です。両方のモードで、手順4のコントラスト確認を改めて行うことも忘れないようにします。

まとめ

配色の実装は「形式を変換して主要色を確定する → 階調を生成する → 役割ベースのトークンとして整理する → コントラストを確認する → ダークモードを見据える」という流れで進めると、後からの変更に強い作りになります。特に「トークンを二段構えにする」「色だけで情報を伝えない」「ダークモードは単純な反転ではない」の3点は、実装前に押さえておくと手戻りを防げます。

このツールで試す

Color Palette Generator

ベースカラーから5種のカラーハーモニーを即生成

カラーデザイン開発者向け

使ってみる →

BOOTH

Color Contrast Checker

WCAG 2.1 準拠のコントラスト比をリアルタイムチェック

開発者向けカラーアクセシビリティ

使ってみる →

BOOTH

Color Format Converter

HEX / RGB / HSL / CMYK を瞬時に相互変換

カラーCSSデザイン

使ってみる →

BOOTH

Color Shade Generator

ベースカラーから Tints / Shades / Tones を自動生成・CSS変数/Tailwind出力

カラーデザインCSS

使ってみる →

BOOTH

Color Token Generator

カラーパレットを CSS変数 / Tailwind / Sass / Style Dictionary で一括出力

カラーデザイン開発者向け

使ってみる →

BOOTH

関連ガイド