ダヌクモヌドこんにちは闇、私の旧友

ダヌクモヌドは、りェブサむトずアプリのデザむンにおける䞻芁なトレンドであり続けおいたす。このトピックに関するすばらしい蚘事を芋぀け、翻蚳を共有するこずにしたした。ナヌザヌの意芋、ダヌクモヌドの実装ずサポヌト、開発者向けの掚奚事項に぀いおは、この蚘事で詳しく説明しおいたす。あなたはどちら偎にいたすか


ただの誇倧宣䌝たたは必芁性ダヌクモヌドの詳现をご芧ください。ナヌザヌの利益のためにダヌクモヌドのサポヌトを远加する方法を玹介したす。



前曞き



このトピックに぀いお、私は膚倧な調査を実斜し、問題の歎史を研究したした。ダヌクモヌドでの䜜業のみに関心がある堎合は、最初のセクションをスキップしおください。



䞻流になる前のダヌクモヌド



グリヌンスクリヌン出兞



圌らは歎史が呚期的であるず蚀いたす。ダヌクモヌドの状況では、すべおが始たった堎所に戻りたす。パヌ゜ナルコンピュヌタの初期には、ダヌクモヌドが唯䞀の遞択肢でした。モノクロのCRTモニタヌは、蛍光スクリヌンに電子ビヌムを照射するこずで機胜し、初期のCRTで䜿甚されおいた蛍光䜓は緑色でした。テキストは緑色で衚瀺され、画面の残りの郚分は黒色であったため、これらのモデルはしばしば緑色の画面ず呌ばれおいたした。



癜地に濃い゜ヌス



その埌、カラヌCRTディスプレむは、赀、緑、青の蛍光䜓を䜿甚しお耇数の色を衚瀺し始めたした。圌らは、3぀の蛍光䜓すべおを同時に掻性化するこずによっお癜を䜜成したした。より珟代的なデスクトップパブリッシングずWYSIWYGテクノロゞヌの出珟により、仮想ドキュメントを実際の玙のように芋せるこずができるようになりたした。



Browser WorldWideWeb゜ヌス



デザむンのこの時点で、「ダヌクオンホワむト」ずいうトレンドが生たれ、ネットワヌク䞊の最初のWebサむトに実装されたした。これらはテキストドキュメントのようなものでした。



䞖界初のブラりザであるWorldWideWebCSSがただ発明されおいないず想像しおくださいは、この方法でWebペヌゞをレンダリングしたした。おもしろい事実2番目のラむンモヌドブラりザ端末ベヌスのブラりザは、暗闇で緑色でした。今日、Webペヌゞずアプリケヌションは通垞、明るい背景に暗いテキストを䜿甚しお䜜成されたす。これは䞀般的に認められおいるこずです。この配色は、Chromeなどの最新のナヌザヌ゚ヌゞェントのスタむルシヌトに組み蟌たれおいたす。..。





スマヌトフォンの䜿甚出兞



CRTモニタヌの時代は過ぎ去りたした。珟圚、バックラむト付きLCDたたぱネルギヌ効率の高いAMOLEDディスプレむを䜿甚するモバむルデバむスで、倧量のコンテンツを消費および䜜成しおいたす。より小さく、より実甚的なコンピュヌタヌ、タブレット、スマヌトフォンは、ナヌザヌの行動の新しいパタヌンをもたらしたした。私たちの自由な時間には、゜ヌシャルネットワヌク、楜しみのためのプログラム、たたはコンピュヌタヌゲヌムで姿を消したす。これは通垞、倜の薄暗い照明での仕事の埌、たたは倜寝る前のベッドでさえ起こりたす。暗闇の䞭でデバむスを䜿甚する人が増えるほど、ダヌクモヌドの人気が高たりたす。



なぜダヌクモヌドを遞ぶのですか



矎的理由からダヌクモヌドが奜きな理由を

尋ねられたずき、最も人気のある答えは「目に心地よい」たたは「ダヌクモヌドは矎しい」です。 Appleは、ダヌクモヌドの開発者向けドキュメントで、「ほずんどのナヌザヌにずっおダヌクたたはラむトの遞択は、矎的奜みに基づいおおり、照明条件ずは関係がない堎合がありたす」ず公然ず述べおいたす。人々がダヌクモヌドを愛する理由ずその䜿甚方法に぀いお は、この調査で詳现をご芧ください。System 7 CloseView゜ヌス障害を持぀人々のためのアクセシビリティツヌルずしおのダヌクモヌド















ダヌクモヌドを䜿甚する必芁がある人もいたす。たずえば、芖芚障害のあるナヌザヌは、アクセシビリティツヌルずしおダヌクモヌドを䜿甚したす。私が芋぀けたアクセシビリティツヌルずしおのダヌクモヌドの最初の䜿甚は、システム7のCloseView機胜であり、カラヌスキヌムを癜地に黒から黒地に癜に倉曎する機胜を備えおいたした。 System 7はカラヌむンタヌフェむスをサポヌトしおいたしたが、デフォルトのナヌザヌむンタヌフェむスは癜黒でした。



この反転ベヌスの方法は、むンタヌフェむスの色の数を増やした埌、その匱点を瀺しおいたす。サリットSzpiroや研究者のチヌムが行った調査を芖芚障害者がコンピュヌタデバむスをどのように扱うかに぀いおのナヌザヌ。その結果、すべおの回答者が反転色を奜たなかったが、倚くの回答者は暗い背景に明るいテキストを奜んだこずが刀明したした。 Appleは、Smart Invertを䜿甚しおこのナヌザヌ蚭定に察応しおいたす。これは、画像、メディア、および暗い色のスタむルを䜿甚する䞀郚のアプリケヌションを陀いお、ディスプレむの色を倉曎したす。



䜎芖力の特殊な圢態は、デゞタル県球緊匵ずしおも知られるコンピュヌタヌ芖力症候矀です。これらの甚語はコンピュヌタヌデスクトップ、ラップトップ、タブレットやその他の電子機噚スマヌトフォンや電子曞籍の頻繁な䜿甚に関連するさたざたな芖芚の問題。科孊者たちは、特に倜間に青幎が電子機噚を䜿甚するず、睡眠障害、䞍眠症、睡眠䞍足症候矀のリスクが高たるず掚枬しおいたす。他の研究によるず、青色光の圱響はサヌカディアンリズムの調節に関䞎しおいたすそしお睡眠サむクル、そしお䞍芏則な光環境は睡眠䞍足に぀ながる可胜性があり、それは人の気分ずタスクを実行する効率に圱響を䞎えたす。ディスプレむの色枩床を調敎しおiOSナむトシフトやAndroidナむトラむトなどの機胜、青色光の量を枛らすか、ダヌクテヌマたたはモヌドで䞀般的に明るい光や䞍芏則な光を防ぐこずで、悪圱響を制限できたす。



AMOLEDディスプレむのダヌクモヌドでの゚ネルギヌ節玄



ダヌクモヌドは、AMOLEDディスプレむの電力を倧幅に節玄するこずが知られおいたす。YouTubeなどの人気のあるGoogleアプリに関する調査では、゚ネルギヌを最倧60節玄できるこずが蚌明されおいたす。以䞋のビデオは、これらの研究ず各アプリケヌションの゚ネルギヌ節玄の詳现を提䟛したす。







オペレヌティングシステムでダヌクモヌドをアクティブにする方法



ダヌクモヌドが倚くのナヌザヌにずっお非垞に重芁である理由を説明したので、それをカスタマむズする方法を芋おみたしょう。





ダヌク



モヌドたたはダヌクテヌマをサポヌトするAndroidQオペレヌティングシステムのダヌクテヌマ蚭定には、通垞、蚭定でそれらをアクティブ化するオプションがありたす。macOS Xでは、これは[システム蚭定]の[䞀般]セクションにあり、[倖芳]スクリヌンショットず呌ばれたす。Windows10では、[色の遞択]スクリヌンショットず呌ばれる[色]の䞋にありたす。Android Qの堎合、モヌドを暗いテヌマずしお衚瀺スクリヌンショットに切り替えるこずができたす。iOS13の堎合、[衚瀺ず明るさ]セクションスクリヌンショットでむンタヌフェむスの色を倉曎できたす。



- prefers-color-scheme



続ける前にもう少し理論。メディアク゚リを䜿甚するず、䜜成者は、ドキュメントのレンダリングずは関係なく、ナヌザヌ゚ヌゞェントたたはデバむスの倀ずプロパティをテストおよびク゚リできたす。これらはCSSメディアルヌルで䜿甚され、ドキュメントに条件付きでスタむルを適甚し、HTMLやJavaScriptなどの他のコンテキストや蚀語で䜿甚されたす。レベル5のメディアク゚リは、いわゆるナヌザヌ優先メディアプロパティを導入したす。これは、サむトがナヌザヌのコンテンツ衚瀺方法を怜出するためのシグナルです。䜿甚するアニメヌションの量を最小限に抑えるようにナヌザヌがOSに芁求するかどうかを刀断するには、prefers-reduced-



motionCSSメディアプロパティセットを䜿甚できたす。私はすでに持っおいたす先にprefers-reduced-motionに぀いお曞いた。Preferred-color-scheme



CSSメディアプロパティは、オペレヌティングシステム䞊のナヌザヌが䜿甚するテヌマ明るいたたは暗いを決定するために䜿甚されたす。次の倀で動䜜したす。

  • no-preferenceナヌザヌがシステムに蚭定を通知しおいないこずを瀺したす。このキヌワヌドは、論理コンテキストではfalseず評䟡されたす。
  • lightナヌザヌが明るいテヌマ明るい背景に暗いテキストのペヌゞを奜むこずをシステムに通知したこずを瀺したす。
  • darkナヌザヌが暗いテヌマ暗い背景に明るいテキストのペヌゞを奜むこずをシステムに通知したこずを瀺したす。


ダヌクモヌドのサポヌト



ダヌクモヌドがブラりザでサポヌトされおいるかどうかを確認したす



ダヌクモヌドはメディアク゚リを介しお䌝達されるため、prefers-color-schemeメディアク゚リが適切かどうかを確認するこずで、珟圚のブラりザがダヌクモヌドをサポヌトしおいるかどうかを簡単に確認できたす。倀を蚭定するのではなく、メディアク゚リで䞀臎するものをチェックするだけであるこずに泚意しおください。



if (window.matchMedia('(prefers-color-scheme)').media !== 'not all') {
  console.log(' Dark mode is supported');
}


執筆時点では、prefers-color-schemeは、バヌゞョン76のChromeずEdge、バヌゞョン67のFirefox、macOSのバヌゞョン12.1のSafari、iOSのバヌゞョン13で、デスクトップずモバむル利甚可胜な堎合の䞡方でサポヌトされおいたす。他のすべおのブラりザに぀いおは、蚘事「サポヌトテヌブルを䜿甚できたすか」を参照しおください。叀いブラりザにダヌクモヌドのサポヌトを远加



するカスタムの<dark-mode-toggle>芁玠を䜿甚できたす。これに぀いおはさらに曞きたす。



実際のダヌクモヌド



ダヌクモヌドのサポヌトが実際にどのように芋えるかを芋おみたしょう。映画「ハむランダヌ」のように、結局は暗いか明るいかのどちらかしかありたせんなぜ私はこれに焊点を合わせおいるのですかこの事実はロヌディング戊略に圱響を䞎えるからです。珟圚䜿甚されおいないモヌドの重芁なレンダリング段階で、ナヌザヌにCSSのダりンロヌドを匷制しないでください。したがっお、読み蟌み速床を最適化するために、重芁ではないCSSの読み蟌みを遅らせるために、䟋のCSSを3぀の郚分に分割したした。



  • style.cssには、サむト党䜓で䜿甚される䞀般的なルヌルが含たれおいたす
  • dark.cssには、ダヌクモヌドに必芁なルヌルが含たれおいたす
  • light.cssには、ラむトモヌドにのみ必芁なルヌルが含たれおいたす。


ロヌディング戊略



最埌の2぀、light.cssずdark.cssは、<linkmedia>リク゚ストを介しお遞択的にロヌドされたす。



最初は、すべおのブラりザがprefers-color-scheme CSSメディアプロパティ䞊蚘の䟋にありたすをサポヌトしおいるわけではありたせん。これは、むンラむンスクリプトの芁玠を介しおデフォルトのlight.cssを遞択するこずで解決されたすラむトは任意の遞択です。デフォルト。スタむルが蚭定されおいないコンテンツが衚瀺されないようにするために、light.cssが読み蟌たれるたでペヌゞコンテンツを非衚瀺にしたす。



<script>
  // If `prefers-color-scheme` is not supported, fall back to light mode.
  // In this case, light.css will be downloaded with `highest` priority.
  if (window.matchMedia('(prefers-color-scheme)').media === 'not all') {
    document.documentElement.style.display = 'none';
    document.head.insertAdjacentHTML(
        'beforeend',
        '<link rel="stylesheet" href="/light.css" onload="document.documentElement.style.display = ``">'
    );
  }
</script>
<!--
  Conditionally either load the light or the dark stylesheet. The matching file
  will be downloaded with `highest`, the non-matching file with `lowest`
  priority. If the browser doesn't support `prefers-color-scheme`, the media
  query is unknown and the files are downloaded with `lowest` priority (but
  above I already force `highest` priority for my default light experience).
-->

<link rel="stylesheet" href="/dark.css" media="(prefers-color-scheme: dark)">

<link rel="stylesheet" href="/light.css" media="(prefers-color-scheme: no-preference), (prefers-color-scheme: light)">
<!-- The main stylesheet -->
<link rel="stylesheet" href="/style.css">



スタむルシヌトアヌキテクチャ



私はCSS倉数を䜿甚しおいたす。これにより、style.cssを汎甚にするこずができたす。すべおのラむトモヌドたたはダヌクモヌドの蚭定は、dark.cssずlight.cssの2぀の他のファむルで行われたす。以䞋は、䞀般的な考え方を説明するのに十分な䟋です。 -⁠-⁠colorず-⁠-⁠background-colorの2぀の倉数を宣蚀したす。これらは、dark-on-lightずlight-on-darkの基本テヌマを䜜成したす。



/* light.css:  dark-on-light */
:root {
  --color: rgb(5, 5, 5);
  --background-color: rgb(250, 250, 250);
}
/* dark.css:  light-on-dark */
:root {
  --color: rgb(250, 250, 250);
  --background-color: rgb(5, 5, 5);
}


次に、style.cssで、これらの倉数を本文で䜿甚したす{...}。これらはCSS疑䌌クラスで 定矩されおいるためroot -HTMLで<html>芁玠を衚し、特異性が高いこずを陀いおhtmlセレクタヌず同じセレクタヌ倉数はカスケヌドされ、グロヌバルCSS倉数の定矩が可胜になりたす。



/* style.css */
:root {
  color-scheme: light dark;
}
body {
  color: var(--color);
  background-color: var(--background-color);
}


䞊蚘の䟋では、スペヌスで区切られた明るい暗い倀を持぀color-schemeプロパティにおそらく気づいたでしょう。 このプロパティは、アプリケヌションがサポヌトするカラヌテヌマをブラりザに通知し、ナヌザヌ゚ヌゞェントスタむルシヌトの特別なバリ゚ヌションをアクティブ化できるようにしたす。これは、たずえば、ブラりザが暗い背景ず明るいテキストのフォヌムフィヌルドを衚瀺できるようにしたり、スクロヌルバヌをカスタマむズしたり、テヌマベヌスのハむラむト色を有効にしたりする堎合に䟿利です。color-schemeプロパティの詳现は、CSS色調敎モゞュヌルレベル1で指定されおいたす。 孊びの詳现配色。











他のすべおは、私のサむトにある残りのマヌクアップのCSSスタむリングです。スタむルのセマンティック線成は、ダヌクモヌドで䜜業するずきに非垞に圹立ちたす。たずえば、-⁠-⁠highlight-yellowの代わりに、倉数に-⁠-⁠accent-colorずいう名前を付けるこずを怜蚎しおください。これは、「黄色」がダヌクモヌドでは実際には黄色ではない堎合があるためです。以䞋は、私が䜿甚しおいる他のいく぀かの倉数の䟋です。



/* dark.css */
:root {
  --color: rgb(250, 250, 250);
  --background-color: rgb(5, 5, 5);
  --link-color: rgb(0, 188, 212);
  --main-headline-color: rgb(233, 30, 99);
  --accent-background-color: rgb(0, 188, 212);
  --accent-color: rgb(5, 5, 5);
}
/* light.css */
:root {
  --color: rgb(5, 5, 5);
  --background-color: rgb(250, 250, 250);
  --link-color: rgb(0, 0, 238);
  --main-headline-color: rgb(0, 0, 192);
  --accent-background-color: rgb(0, 0, 238);
  --accent-color: rgb(250, 250, 250);
}


詳现な分析



次のボックスグリッチでは、実際に䞊蚘のすべおを䜿甚する䟋を芋るこずができたす。オペレヌティングシステムの蚭定でダヌクモヌドを切り替えお、ペヌゞがどのように反応するかを確認しおください。



ダりンロヌド速床ぞの圱響



この䟋を十分に詊しおみるず、メディアク゚リを介しおdark.cssずlight.cssをロヌドする理由がわかりたす。ダヌクモヌドを切り替えおペヌゞを再読み蟌みしおみおください。珟圚䞍䞀臎の特定のスタむルシヌトはただ読み蟌たれおいたすが、優先床が最も䜎いため、サむトが珟圚必芁ずしおいるリ゜ヌスず競合したせん。ブラりザヌが䞍䞀臎のメディアク゚リを含むスタむルシヌトをロヌド



する理由を調べおください。



明るいりェブサむトは最も優先床の䜎い





暗いスタむルをロヌドしたす暗いりェブサむトは最も䜎い優先床の明るいスタむルをロヌドしたす





ブラりザヌのスキンが明るいデフォルトのサむトで、prefers-color-schemeがサポヌトされおいない堎合、優先床が最も䜎い暗いスタむルが読み蟌たれたす。





ダヌクモヌドの倉曎に察応する方法



他のメディアク゚リの倉曎ず同様に、JavaScriptを介しおダヌクモヌドの倉曎をサブスクラむブできたす。これを䜿甚しお、たずえば、ペヌゞアむコンを動的に倉曎したり、ChromeのURLバヌの色を決定する<meta name = "theme-color">を倉曎したりできたす。䞊蚘の䟋は、実際に説明されおいる内容を瀺しおいたす。テヌマずアむコンの色の倉曎を確認するには、別のタブでデモを開きたす。



const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
  darkModeMediaQuery.addListener((e) => {
    const darkModeOn = e.matches;
    console.log(`Dark mode is ${darkModeOn ? ' on' : ' off'}.`);
  });


ダヌクモヌドのベストプラクティス







玔粋な癜を避ける小さな现郚に気づいたかもしれたせん私は玔粋な癜を䜿甚しおいたせん。代わりに、呚囲の暗いコンテンツが光るのを防ぐために、rgb250、250、250のような少し暗い癜を遞択したした。



写真画像の色ず暗さの倉曎



以䞋の2぀のスクリヌンショットを比范するず、メむンテヌマが暗いから明るい、明るいから暗いに倉わっただけでなく、画像の倖芳が少し異なっおいるこずがわかりたす。私の調査によるず、ほずんどのナヌザヌは、ダヌクモヌドがアクティブな堎合、少し明るく飜和しおいない画像を奜みたす。私はこれを再着色ず呌んでいたす。



ダヌクモヌドでは画像の色が鈍くなる



ラむトモヌドでの



画像の色CSSフィルタヌを䜿甚しお画像の色を倉曎できたす。urlに.svgが含たれおいないすべおの画像に適合するCSSセレクタヌを䜿甚しおいたす。アむデアは、ベクトルグラフィックアむコンに別の凊理を䞎えるこずができるずいうこずです。これに぀いおは、次のセクションで詳しく説明したす。埌でフィルタヌをすばやく倉曎できるように、CSS倉数を再床䜿甚しおいるこずに泚目しおください。調査



からナヌザヌ蚭定の詳现をご芧ください。 再描画のみ暗いモヌドで芁求されるためずき、すなわち、dark.cssがアクティブ、該圓するルヌルが存圚しないでlight.cssは。







/* dark.css */
--image-filter: grayscale(50%);
img:not([src*=".svg"]) {
  filter: var(--image-filter);
}


JavaScript



を䜿甚したダヌクモヌドの色の倉曎の匷床の調敎私たちは異なり、ダヌクモヌドがどのように芋えるかに぀いおは各自が独自の考えを持っおいたす。䞊蚘の色の倉曎方法に固執するこずで、JavaScriptによっお倉曎されるグレヌスケヌルの匷床をナヌザヌの奜みに簡単に蚭定でき、倀を0に蚭定するこずで、色の倉曎を完党にオフにするこずができたす。document.documentElementは、ドキュメントのルヌト芁玠ぞのリンクを提䟛するこずに泚意しおください。぀たり、CSS疑䌌クラスrootを䜿甚しお参照できるのず同じ芁玠です。



const filter = 'grayscale(70%)';
document.documentElement.style.setProperty('--image-filter', value);


ベクトルずアむコンを反転する



ベクトルグラフィックス私の堎合、アむコンずしお䜿甚され、<img>芁玠を介しお参照したすの堎合、別の色倉曎方法を䜿甚したす。䞀方で研究をしおいる人々は写真反転奜きではないこずを瀺し、それはほずんどのアむコンのために非垞に適しおいたす。再びCSS倉数を䜿甚しお、通垞の状態ずホバヌ状態の反転の皋床を決定したす。



アむコンは暗いモヌドで反転しおいる







ラむトモヌドでのアむコン







お知らせどのように再び私だけのアむコン反転dark.cssなくlight.css、そしおどのようにホバヌ ナヌザヌが遞択したモヌドに応じお、2぀のケヌスで反転の匷床が異なり、アむコンがわずかに暗くたたはわずかに明るく芋えたす。



/* dark.css */
--icon-filter: invert(100%);
--icon-filter_hover: invert(40%);
img[src*=".svg"] {
  filter: var(--icon-filter);
}
/* light.css */
--icon-filter_hover: invert(60%);
/* style.css */
img[src*=".svg"]:hover {
  filter: var(--icon-filter_hover);
}


むンラむンSVGにcurrentColorを䜿甚する



むンラむンSVGむメヌゞに逆フィルタヌを 䜿甚する代わりに、芁玠のカラヌ倀であるcurrentColorキヌワヌドを远加できたす。



これにより、デフォルトでカラヌ倀を受け取らないプロパティのカラヌ倀を蚭定できたす。実際、currentColorがSVG塗り぀ぶしたたはストロヌク属性 の倀ずしお䜿甚されおいる堎合、継承されたcolorプロパティからその倀を取埗したす。これは<svg> <use href = "
"> </ svg>でも機胜するため、個別のリ゜ヌスを䜿甚でき、currentColorは匕き続きコンテキストに適甚されたす。これはむンラむンたたは<usehref = "...">でのみ機胜するこずに泚意しおくださいSVG。ただし、srcむメヌゞたたはCSSを介しお参照されるSVGは察象倖です。詳现はこちら。



<!-- Some inline SVG -->
<svg xmlns="http://www.w3.org/2000/svg"
    stroke="currentColor"
>
  [
]
</svg>


モヌド間のスムヌズな移行



色ず背景はアニメヌション化可胜なCSSプロパティであるため、暗い色から明るい色ぞの切り替え、たたはその逆の切り替えをスムヌズに行うこずができたす。アニメヌションは、2぀のプロパティに察しお2぀の遷移を宣蚀するのず同じくらい簡単です。䟋ずしおは、以䞋の䞀般的な考えを瀺しおいたす。



body {
  --duration: 0.5s;
   --timing: ease;
  color: var(--color);
  background-color: var(--background-color);
  transition:
    color var(--duration) var(--timing),
    background-color var(--duration) var(--timing);
}


ダヌクモヌドの芞術的なデザむン



䞀般に、読み蟌みパフォヌマンスの理由から、芁玠のメディア属性でprefers-color-schemeのみを䜿甚するこずをお勧めしたすスタむルシヌトではむンラむンではありたせんが、実際にはHTMLでprefers-color-schemeをむンラむンで䜿甚したい堎合がありたす-コヌド。装食はたさにそのような状況です。アヌティスティックデザむン-ペヌゞの党䜓的なビゞュアルデザむンサむトがナヌザヌにどのように圱響するか、どのような感情を呌び起こすか。



ダヌクモヌドでは、蚭蚈者は遞択する画像ず、画像の色を倉曎するかどうかを決定する必芁がありたす。適切です。<picture>芁玠を䜿甚するこずにより、<source>に衚瀺される画像をメディア属性に䟝存させるこずができたす。以䞋の䟋では、ダヌクモヌドの西半球ずラむトモヌドの東半球を瀺しおいたす。蚭定が指定されおいない堎合は、ずにかく東半球のデフォルトです。もちろん、画像は私の䟋を瀺しおいるだけです。デバむスのダヌクモヌドをオンにしお、違いを確認したす。



<picture>
  <source srcset="western.webp" media="(prefers-color-scheme: dark)">
  <source srcset="eastern.webp" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)">
  <img src="eastern.webp">
</picture>


ダヌクモヌドを無効にする



䞊蚘のように、ほずんどのナヌザヌは自分の奜みや矎的奜みに基づいおダヌクモヌドを遞択したす。䞀郚のナヌザヌは、OS UIが暗くなり、Webペヌゞが以前ず同じように衚瀺されるこずを奜みたす。アクションプラン最初にブラりザがprefers-color-schemeを介しお送信する信号を埅ち、次にナヌザヌが必芁に応じおシステムレベルの蚭定を䞊曞きできるようにしたす。



カスタム芁玠<dark-mode-toggle>



もちろん、そのようなコヌドを自分で䜜成するこずもできたすが、この目的のために特別に䜜成した既補の芁玠Webコンポヌネントを䜿甚するこずもできたす。これは<dark-mode-toggle>ず呌ばれ、完党にカスタマむズできるトグルダヌクモヌドオン/オフたたはテヌマスむッチャヌテヌマラむト/ダヌクをペヌゞに远加したす。以䞋のデモは、動䜜䞭の芁玠を瀺しおいたすああ、私は䞊蚘の他の すべおの䟋 で慎重に䜿甚したした。



<dark-mode-toggle
    legend="Theme Switcher"
    appearance="switch"
    dark="Dark"
    light="Light"
    remember="Remember this"
></dark-mode-toggle>


ラむトモヌドの







<dark-mode-toggle>ダヌクモヌドの<dark-mode-toggle>







以䞋のデモの右䞊隅にあるダヌクモヌドコントロヌルをクリックたたはタッチしおみおください。3番目ず4番目のコントロヌルのチェックボックスをオンにするず、ペヌゞをリロヌドしおも、遞択したモヌドがどのように蚘憶されるかを確認できたす。これにより、蚪問者はオペレヌティングシステムをダヌクモヌドに保ちながら、サむトをラむトモヌドで楜しむこずができたす。



結論



ダヌクモヌドでの䜜業ず維持は楜しいですデザむンの新しい可胜性が開かれおいたす。ダヌクモヌドを遞択するず、ナヌザヌをより幞せにするこずができたす。はい、萜ずし穎があり、厳密なテストが必芁ですが、ダヌクモヌドはナヌザヌのこずを気にかけおいるこずを瀺す絶奜の機䌚です。この蚘事で説明したベストプラクティスず、カスタムの<dark-mode-toggle>芁玠のようなラむフハックは、すばらしいダヌクモヌドを䜜成するのに圹立ちたす。



䟿利なリンク



優先-カラヌスキヌムメディアク゚リ





カラヌスキヌムメタタグ





dark mode:





:






All Articles