カラーシェードジェネレーター

色を選んで、明るい色合いと暗い色合いの完全な範囲を生成します。サンプルをクリックして値をコピーします。

10

色合い(明るい)

ベースカラー

影(暗い)

色合いと影

色合いは色を白と混ぜることで得られ、徐々に明るくなります。影は黒と混ぜることで得られ、暗くなります。一緒になって、UIデザイン、グラデーション、ホバー状態、アクセシブルなカラーシステムに役立つ完全な色調スケールを形成します。

よくある質問

これらの影をどのように使用しますか?

明るい色合いを背景、ホバー状態、ボーダーに使用します。暗い影をテキスト、アクティブ状態、強調に使用します。「すべてをCSS変数としてコピー」をクリックして、すぐに使えるCSSスニペットを取得します。

色を個別にコピーできますか?

はい!サンプルをクリックして、そのHEX値をクリップボードにコピーします。

ティント、シェード、トーン:公式定義

3つの用語は緩く使われているが、古典的な色彩理論では正確に区別している:

このジェネレーターはティント(ベースより明るい)とシェード(ベースより暗い)を生成する。トーン(白や黒ではなくグレーを加える)はミュートで洗練されたパレットには便利だが(1970年代のインテリアデザインのカラーシステムを思い浮かべるとよい)、典型的なUIの作業にはほとんど必要ない。

現代のデザインシステムが数値スケールを使う理由

Tailwind CSSは色ごとに50-100-200-…-900-950の数値スケールを普及させた。「500」ストップは慣習的にベースとして扱われる。Material Designは並行する50-100-…-900システムを使用;Bootstrap 5は100-…-900を使用;IBM Carbonはスウォッチあたり10ストップを使用する。共通のアイデア:ブランドカラー1つだけでは不十分で、UIにはホバー状態、背景、ボーダー、フォーカスリング、無効状態、バッジ、ダークモード相当の一貫したバリアントが必要だ。予測可能な数値スケールは、コンポーネントをまたいで移植可能で、ブランドが進化した際にリファクタリングしやすく、コードベースを読む誰にでも発見しやすい方法でそれらのバリアントを提供する。

システム色あたりのストップ数ベースストップ
Tailwind CSS v3+11 (50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950)500
Material Design 313 tonal (0, 10, 20, …, 100)40
Bootstrap 59(100、200、…、900)プラスベース500
IBM Carbonスウォッチあたり1060

スケールを計算するアルゴリズムの違い

ティント/シェードスケールを計算するには3つの一般的な方法があり、視覚的な結果が異なる:

スケールが「フラット」に見える場合(洗い出される黄色のステップ、すべて同じ暗い青に見える青のステップ)は、ほぼ常に基礎の数学がOKLCHベースではなくHSLベースだからだ。モダンなCSS(CSS Color Module Level 4)はoklch()lab()color-mix(in oklch, …)を直接公開しており、外部ツールなしで知覚的に均一なスケールをワンライナーで実現できる。

ユースケース

アクセシビリティとコントラスト

生成されたスケールは、生成するテキスト・背景ペアの有用性によってのみ価値がある。念頭に置くべきWCAG 2.1の最低基準:

ほとんどのよく構築されたスケールで信頼できるルール:50 + 900のペアは本文テキストには常にパスし、100 + 800のペアはほぼ常にパスする。400 + 500のペアはほぼ決してパスしない。使用するつもりの特定のペアをテストする。カラーコントラストチェッカーツールは任意の2つのHEX値のWCAGレートを計算する。

出力をコードベースに組み込む

生成されたスケールを活用する3つの一般的な方法:

/* 1. Plain CSS variables */
:root {
  --brand-50: #f0f9fc;
  --brand-100: #d9eef6;
  --brand-500: #2b7190;
  --brand-900: #0d2935;
}

.btn { background: var(--brand-500); }
.btn:hover { background: var(--brand-600); }
// 2. Tailwind config (tailwind.config.js)
module.exports = {
  theme: {
    extend: {
      colors: {
        brand: {
          50:  '#f0f9fc',
          100: '#d9eef6',
          500: '#2b7190',
          900: '#0d2935',
        },
      },
    },
  },
};

// then in markup
<button class="bg-brand-500 hover:bg-brand-600">Click</button>
// 3. Sass / SCSS map
$brand: (
  50:  #f0f9fc,
  500: #2b7190,
  900: #0d2935,
);

.btn { background: map-get($brand, 500); }

よくある間違い

  1. 多すぎるストップを生成する。Tailwindの11はスイートスポットだ。20ストップは過剰で、ほとんどは視覚的に見分けがつかず、使うことはない。
  2. 黄色/オレンジ/蛍光色にHSLベースのスケールを使う。明るいストップで洗い出され、きれいに暗くならない。ブランドカラーが「難しい」色相範囲に入る場合はOKLCHベースの生成を使う。
  3. テキストコントラストを確認せずにスケールを最終決定する。美しいカラー関係でも400ストップに白いテキストを合わせてWCAG 4.5:1に失敗することがある。実際に使用するすべてのペアをテストする。
  4. ライトパレットを反転してダークモードパレットを作る。数学的には魅力的だが視覚的に誤り。白の上でバランスが取れたカラーは黒に近い背景では派手に感じられる。並行するダークモードスケールを生成するか手動で調整する。
  5. ベースカラーを「500」として扱うが、知覚的には別のストップに相当する場合。ブランドカラーが実際に暗い場合、スケールの700かもしれない;慣習ではなく知覚的な関係によってどのスロットを占めるかを決める。
  6. 50ストップを忘れる。最も明るいティントは背景と微妙なハイライトに最も便利だ。スケールを100で切り捨てない。

よくある質問

スケールがフラットに見えるのはなぜか?

2つの一般的な原因:(1)狭い範囲に多すぎるステップ:カラーがすでにミッド輝度の場合は特に、ステップを減らす;(2)HSLが適切に較正されていない色相(黄色、オレンジ、ネオンカラー)でのHSLベースのスケーリング。OKLCHベースのパレットジェネレーターに切り替えると通常両方が修正される。

ライトモードスケールからダークモードパレットを生成するにはどうするか?

単純に反転しない。ナイーブな反転(ライトとダークのストップを入れ替える)はダークモードパレットが派手だったり洗い出されたりする結果になる。Material 3、Radix Colors、Tailwindのダークバリアントの慣習は、暗い背景に向けて調整された並行スケールを生成することだ。通常は彩度をわずかに下げ、色相をシフトして暗い面に対するカラーの知覚を補正する。ほとんどの大きなデザインシステムは両方のパレットを並べて公開している。

生成されたカラーは商業利用できるか?

はい。カラー値は著作権で保護されない;HEXコードはピクセルに関する事実だ。生成されたパレットをオープンソースプロジェクト、商業サイト、ブランドシステム、印刷、パッケージングなどどこでも使用できる。

適切なストップ数は?

UIデザインでは、色あたり9〜11ストップが確立された慣習だ(Tailwind、Bootstrap、CarbonはすべてそのRange内に入る)。Material Designは13を使用する。7ストップ未満ではスケールが不十分に感じられ;13を超えるとストップが互いに区別しにくくなる。

何かサーバーに送信されるか?

いいえ。カラー計算はブラウザ内で実行される;入力HEX、生成されたストップ、コピーされたCSSはサーバーに触れることはない。ブランドカラーが未公開またはエンバーゴ下にある場合に便利だ。

カラーパレットジェネレーターとどう違うか?

パレットジェネレーターは複数の異なる色相を選ぶ(補色、類似色、三角形など)、まったく異なる色相だ。シェードジェネレーター(これ)は1つの色相を保持し、その明るいバリアントと暗いバリアントを生成する。用途が異なる:パレットジェネレーターはブランドプライマリとアクセントを与え;シェードジェネレーターはそれらのカラーの1つのバリエーションを与える。

関連ツール