本文へスキップ

ダークモード配色

Dark Mode Palette

色ひとつから50〜950のランプを作り、それを反転させたダークのランプを組にして、対応するトークン同士のコントラストを保ちます。

明るいスケールを鏡写しにしてダークのスケールを導きます。50が950に、100が900に、という具合です。トークンの名前が持つ約束を保てる導き方はこれだけで、ライトモードでWCAGを通った組はダークモードでも同じ比で通り、そのスケールに合わせて書かれた部品は変更が要りません。これは濃淡スケール生成と同じページを、ダークのタブで開いたものです。

🔒 ブラウザの中だけで動きますdark-modepalettethemea11y

基準の色

色相と彩度がランプの種になり、明度はどの段階に「あなたが選んだ色」の印が付くかを決めます。

ランプ

各段階の明度の目標値はここで決めたものではなく、インストール済みの Tailwind パッケージから測った有彩色の系統の平均です。

ダークモード

方式

50 段階が 950 に、100 が 900 に、という具合に入れ替わります。トークン名の意味はそのままで、500 は変わらず中間トーンです。このスケールに合わせて書いたコンポーネントは何も直す必要がありません。

ライト

50

P3

100

P3

200

P3

300

P3

400

P3

500

P3

600

700

800

900

950

ダーク

50

100

200

300

400

500

600

700

800

900

950

反転させる理由: トークンの組み合わせのコントラストが保たれます

  • 900 の上の 50: ライト 8.93 · ダーク 12.73
  • 800 の上の 100: ライト 6.68 · ダーク 7.19
  • 950 の上の 200: ライト 11.16 · ダーク 7.19

トークン名の意味がそのままなので、このスケールに合わせて書いたコンポーネントは何も直す必要がありません。

書き出し

形式

ひとつの色相のランプではなく複数の色相が要るときは、配色パレット生成が調和のとれた配色を作ります。ここで出た色にいちばん近い Tailwind のトークンを探すなら、近い Tailwind カラー検索が ΔE で測ってくれます。

使い方

  1. 基準の色を入れます

    色はひとつです。先に明るいランプを組み立て、そこからダークのランプを導くので、両方が同じ種から出てきます。別々に保守することにはなりません。

  2. 方式を選びます

    既定は鏡写しで、コントラストの根拠があるのもこれです。暗い側にずらす方式は各段を3つ下へ動かすもので、順序が保たれるので明から暗へのグラデーションが反転しませんが、いちばん暗い段を失います。鏡写しして落ち着かせる方式は、鏡写しに加えて彩度をさらに下げます。

  3. 広い塗りには彩度を抑えます

    暗い面の上の彩度の高い色は光って揺れて見え、面積が広いほどひどくなります。彩度を下げるのが手堅い判断です。小さなアクセントと文字にしか使わないスケールなら、100%近くのままで構いません。

  4. 検証パネルを読みます

    鏡写しが有効なら、3組のトークンのWCAG比を両モードで並べて出します。主張するのではなく、目の前で確かめられる形にしたものです。

  5. 2つのスケールを一度に書き出します

    CSS形式では明るいスケールを`:root`に、ダークのスケールを`prefers-color-scheme: dark`のブロックの中に出すので、テーマ全体が1回の貼り付けで済みます。

よくある質問

手元にある明るいパレットを貼り付けられますか。

ひとまとまりとしては貼り付けられません。このページは色ひとつを受け取って両方のランプを組み立てるので、手で調整した段を持つ既存のパレットを1色ずつ入れても生き残りません。得られるのは規則正しい11段であって、あなたの11段ではありません。規則正しさより既存のパレットのほうが大事なら、トークンをひとつずつ変換して、組ごとにコントラスト比チェッカーで確かめてください。

鏡写しはコントラストを厳密に保ちますか。

近い値は保ちますが、厳密には保ちません。ランプはOKLCHの明度について対称ですが、WCAGのコントラストは相対輝度で計算され、それは明度の線形な関数ではありません。だから比は互いに近い値になり、同じにはなりません。検証パネルが両方の数字を出すので、主張を信じる代わりに、自分の色でその差を見られます。

ダークの背景に純黒を使うべきですか。

たいていは使わないほうがよいです。純黒に明るい文字を載せるとコントラストは最大になりますが、液晶ではそこで生じるにじみのせいで、小さな文字はかえって読みにくくなります。ここのダークの帯を非常に暗い灰色の上でプレビューしているのはそのためです。真の黒が実際に何かを買うのは、電力の面で有機ELのスマートフォンの場合だけです。

濃淡スケール生成とは別のページなのはなぜですか。

別ではありません。ダークのタブを最初から開いた同じツールです。「ダークのパレットを作りたい」と「50〜950のランプを作りたい」が、別の人から別の質問として届くからです。片方のページにあるものは、もう片方にもすべてあります。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。