ウェブ機能:
prefers-color-scheme メディアクエリ
color-scheme
prefers-contrast メディアクエリ
強制色
システムカラー
color-mix()
Oklab と OkLCh
Lab と LCH
相対色
アクセシブルな色
ユーザー インターフェース コンポーネントの存在や状態を示すために色だけを使用しないでください。アイコンや形状を使用して区別できるようにします。成功 / エラーを色だけで示さないでください。アイコンまたはテキストを使用します。
<!-- Good: Denotes state without colors alone -->
<div class="error-msg">
<span aria-hidden="true">❌</span>
<span>The password entered was invalid.</span>
</div>
コントラスト
- 最小コントラスト基準: 通常のテキストでは 4.5:1、大きいテキストやアイコンでは 3:1 を維持します。
- テキスト以外のコントラスト基準を確保する: ユーザー インターフェース コンポーネントの境界と状態のコントラスト比を 3:1 以上に維持します。
- これには、UI コンポーネントの境界を形成したり、存在を示したりする視覚要素(枠線、背景、ボックスシャドウ、下線)が含まれます(例: 入力フィールドの枠線)。
- これには、コンポーネント内のアクティブな状態を示す視覚要素(チェックボックスのチェックマークやスイッチのつまみなど)も含まれます。
- 注意: 3:1 の非テキスト コントラストを満たすことは、ミニマリスト デザインにとって課題となる可能性があります。ソフトなグラデーションや、控えめなインセット / アウトセット シャドウを使用すると、ユーザー補助の要件を満たしながら、視覚的な境界を和らげることができます。
prefers-contrastは必要な場合にのみ使用する:@media (prefers-contrast: more)は、デザインで低コントラストのアクセント(繊細な枠線、控えめなセカンダリ テキストなど)が使用されており、それを強調する必要がある場合に使用します。すでにベースラインのコントラストを満たしているほとんどのサイトでは、この機能は必要ありません。
ライトとダークのカラーパターン
- ライトとダークのカラーパターンをサポートする:
@media (prefers-color-scheme: dark)を優先し、color-schemeCSS プロパティと組み合わせて、フォーム コントロール、スクロールバー、その他の UA レンダリング サーフェスが一致するようにします。詳しくは、ダークモードをご覧ください。
強制カラーモード
- 強制カラーモードのサポート: 強制カラーモード(Windows のハイ コントラスト)では、ブラウザは作成者の色をシステム キーワードでオーバーライドし、
background-image、box-shadow、border-imageを削除します。@media (forced-colors: active)を使用して、カラー トークンのシステムカラー フォールバックを定義します。 forced-color-adjust: noneは、色が重要な情報である場合にのみ使用します(構文ハイライト表示、カラー選択ツールの見本)。見た目を整えるためだけにforced-color-adjust: noneを使用しないでください。- 枠線、区切り線、状態を伝えるために
background-image、box-shadow、border-imageに依存しない: これらは強制色(多くの場合、印刷でも)では表示されません。どうしても必要な場合は、強制カラーモードで代替手段(outlineや、システムカラー キーワード(CanvasText、LinkText、ButtonText、Highlight、GrayTextなど)を使用したborderなど)を用意してください。
色合いを生成しています
色合いを動的に生成する前に、既存の事前定義されたデザイン トークンを使用できるかどうかを確認してください。これにより、デザイナーがより細かく制御できるようになり、一貫性が確保されます。
明るい色または暗い色を動的に生成する必要がある場合:
oklch/oklabまたはlch/lab(oklab(from var(--primary) 0.9 a b)など)の明度チャンネルを調整するだけでは不十分です。理論的にはこれが正しい方法ですが、ブラウザはまだ色域マッピングを実装していないため、結果の色は予測できません。color-mix()を使用して白または黒と混合できます(oklabが望ましい)。これにより、色は安全に色域内に収まりますが、彩度が過度に低下し、色合いや陰影が薄くなる傾向があります。- 明度調整を他の方法(
color-mix(in oklab, oklch(from var(--primary) 0.9 c h), white 30%)など)と組み合わせて、両者のバランスを取っても構いませんが、明度調整は 30% を超えないようにしてください。