ToolHub
View All Posts

ダークモードWebデザイン:ベストプラクティスと実装するガイド

ダークモードすでにから開発者設定演に変わる主ストリーム設計する期望。超たことがある 80% の開発者で其 IDE 中使用ダークモード,主に操作する系统今すべてを含む系统级ダークテーマ。用户期望Webサイトと適用する尊重彼らの設定。このガイドではた作成する有効ダークモード体验所需の設計する原すなわち、色彩理論、CSS実装とアクセシビリティ考慮する。

なぜダークモードとても重する必要がある

ダークモードだけでなく仅は审美選択する。それのために用户提供するた切实の良处。で低光環境中,暗色背景を通じて減らす屏幕发出の光量来减軽眼睛疲劳。に対して OLED と AMOLED 表示する屏,暗色ピクセル消耗の电量远少于明色ピクセル,延長た移动设备の电プール续航。ダークモードまだを通じて比較创造視覚的階層,する注意する力吸引まで内容と交互元素上。

しかし,実装する不時にのダークモードかもしれない比ないダークモードより糟糕。纯白文本と纯黒背景の間の高コントラストできるをもたらす光晕效应,即文本看起来模糊または发光。閉键は見つけるコントラストと舒適度なの間の正しく平衡。

ダークモードの色彩理論

ダークモードデザイン中最も一般的の間違いは簡単に反转浅色方案。これ種類方法理由は失敗,はなぜなら色感知で暗色背景上できる发生变化。で白色上看起来鲜艳の色で暗色サーフェス上かもしれない显て刺眼または压倒性,そして浅色シャドウ中の細微差异で暗色上变てできない见。

背景色

避ける使用纯黒色 (#000000) として背景。纯黒色と白色文本生み出す過度の比較,をもたらす眼睛疲劳。逆に,使用带あり軽微色调の深グレー,増やす奥行きと视觉趣味。

背景レイヤーユースケース
ベース#0f172aページ背景
サーフェス#1e293bカード、模态框
浮き上がり#334155ホバーするステート、ドロップダウン
オーバーレイrgba(0,0,0,0.5)模态框背景

文本色

同样,避ける使用纯白色 (#ffffff) として正文文本。使用保持可読性同時に減らす眩光の米白色调。する纯白色予約に見出しと強调。

アクセントカラー

アクセントカラー通常必要とするのためにダークモード入行调全体。で白色背景上效果良良の饱と色で暗色サーフェス上かもしれない看起来で振动。略微下げるアクセントカラーの彩度かつ増やす其明度,もってで不引き起こす视觉疲劳の情况下保持可见性。

CSS実装

最もメンテナンス可能のダークモード方法はCSSカスタムプロパティの使用(变量)配合 prefers-color-scheme 媒体クエリする。これは以下を許可しますあなた定義する一次色かつを通じてより変革する量值来切り替えるテーマ。

CSSカスタムプロパティの使用

:root {
  --bg: #f8fafc;
  --bg-card: #ffffff;
  --text: #1e293b;
  --text-muted: #64748b;
  --primary: #3b82f6;
  --border: #e2e8f0;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f172a;
    --bg-card: #1e293b;
    --text: #e2e8f0;
    --text-muted: #94a3b8;
    --primary: #60a5fa;
    --border: #334155;
  }
}

body {
  background: var(--bg);
  color: var(--text);
}

JavaScriptによる手動切替

だが prefers-color-scheme 処理する系统設定,用户も必要とする手动切り替える。する設定保存するで localStorage 中かつを通じて根元素上の data 属性適用する。

function toggleTheme() {
  const current = document.documentElement.dataset.theme;
  const next = current === 'dark' ? 'light' : 'dark';
  document.documentElement.dataset.theme = next;
  localStorage.setItem('theme', next);
}

// On page load
const saved = localStorage.getItem('theme');
if (saved) {
  document.documentElement.dataset.theme = saved;
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
  document.documentElement.dataset.theme = 'dark';
}

それからで CSS 中と媒体クエリする方法一起使用属性選択する器:

[data-theme="dark"] {
  --bg: #0f172a;
  --bg-card: #1e293b;
  --text: #e2e8f0;
}

階層と奥行きの処理

でライトモード中,シャドウ传达階層。でダークモード中,シャドウで暗色サーフェス上不あまりにも可见。逆に,使用逐グラデーション浅の背景色来表示階層。毎一层应比其下一层稍浅,创造模仿光线落で浮き上がりサーフェス上の視覚的階層。

ダークモードでの画像とメディア

明明の画像で暗色背景上かもしれない显て突兀。使用 CSS フィルターでダークモード中正画像略微下げる明度。に対して logo とアイコン,提供する浅色の代わりに代バージョン。

[data-theme="dark"] img {
  filter: brightness(0.9);
}

[data-theme="dark"] .logo-dark {
  display: inline-block;
}

[data-theme="dark"] .logo-light {
  display: none;
}

アクセシビリティ考慮する

ダークモード必須満たすとライトモード同じのアクセシビリティ標準。WCAG 2.1 ガイド要件通常テキストの最低コントラストのために 4.5:1,大きなテキストのために 3:1。使用コントラスト確認するツールテストするあなたのダークテーマもって確保する合规。

常见のダークモード間違い

確認する必要がありますダークモードデザインのコントラストか?無料のコントラスト確認するツール,確保するあなたの色適合する WCAG アクセシビリティ標準。

直ちに確認するコントラスト

よくある質問

ダークモードの背景使用すべき纯黒色か?

すべきでない,纯黒色 (#000000) と白色文本コントラストたことがある大,できるをもたらす眼睛疲劳と光晕效应。使用 #121212、#1e293b または #0f172a など深グレー代の代わりに。これらの色提供する十分なのコントラストもって保証する可読性,同時に正眼睛より温と。

どのようにで CSS 中検出用户のダークモード設定?

使用 prefers-color-scheme 媒体クエリする:@media (prefers-color-scheme: dark) { /* ダークモードスタイル */ }。時に用户で操作する系统設定する中有効化ダークモード时,これできる自动適用する暗色スタイル。

ダークモード文本すべきありどのくらいのコントラスト?

WCAG 2.1 要件通常テキストの最低コントラストのために 4.5:1,大きなテキストのために 3:1。でダークモード中,使用浅グレー文本(#e2e8f0 または #f1f5f9)搭配深色背景そして非纯白色,もって減らす眩光同時に保持十分なのコントラスト。

ダークモードすべきは默认オプションか?

使用 prefers-color-scheme 従う用户の系统設定。もし未検出まで設定,ライトモードはより安全の默认選択する,なぜならそれを持つより広くの互換性,かつ大多数の用户で白天使用时より設定ライトモード。常に提供する切り替えるボタンさせる用户できる手动切り替える。

どのように処理するダークモードでの画像?

でダークモード中使用 CSS filter: brightness(0.9) 略微下げる画像明度,防止するそれ们で暗色背景上显てたことがある明。に対して logo とアイコン,提供する浅色バージョン。考慮する正装饰性画像使用透明度调全体。