Safari 12.1から外観モード(ライト/ダーク)の判定をCSSで行えるように!

Safari 12.1から、Macの外観モードの状態に応じてメディアクエリで判定できるようになりました。
ちなみに、外観モードはmacOS Mojave以降で[システム環境設定]→[一般]→「外観モード:」で変更できる、UIの色を選択できる機能の事です。

対応ブラウザが現状Safariの12.1でないと使えないので、わざわざ実装する機会は少ないと思いますが、Macのシステム環境内の状態を判定できるのは面白いので紹介しておきます。
実際の動作
Safari 12.1からCSSでダークモードの判定が出来るようになった。メディアクエリで「prefers-color-scheme: dark」を指定する。https://t.co/d9EeFLze3x pic.twitter.com/yX3E1NPNef
— サイトウ マサカズ (@31mskz10) February 2, 2019
実際の動作を確認するためにはSafariのバージョンが12.1以上の必要があるため、AppleのDeveloperサイトよりSafariの12.1のベータ番をダウンロード(もしくはSadari Technology Previewをダウンロード)してください。
Safari12.1で下のプレビューを見ながらダークモードに切り替えると、それに合わせてスタイルが変わります。
実装方法
実装方法は非常に簡単で、メディアクエリで「prefers-color-scheme: dark」または「prefers-color-scheme: light」を指定するだけです。Safari 12.1のRelease Notesにもそのように書かれています。
Added support for the CSS media queries prefers-color-scheme: light and prefers-color-scheme: dark.
@media (prefers-color-scheme: dark){
ダークモード時の内容
}
@media (prefers-color-scheme: light){
ライトモード時の内容
}この感じだと、iOSにもダークモードが搭載されそうですね。
そうなってくると、ブログやニュースサイトなどの読み物系のサイトには、どんどんダークモードが実装されていきそうです。


scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法
gulpでPostCSSを使う方法
iOSシミュレーターを使ってWebサイトを開発者ツールを見ながら実機表示で開発する方法
Visual Studio Codeとスニペット・ドキュメント検索アプリの「Dash」連携を行うプラグイン
Visual Studio Codeで簡易的なローカルサーバーを起動して、コード保存時に自動でブラウザをリロードする拡張機能「Live Server」
Visual Studio Codeで対応する括弧に色を付けて見やすくする環境設定
Google Maps APIでマップの見た目をカスタマイズする方法
npm-scriptsでSCSSをコンパイルする環境を構築する方法
サイトを運営する時必ず登録しておきたいGoogle Search Console(サーチコンソール)の登録方法
Visual Studio Codeで読み込んだCSSで設定されているclass名の入力補完をしてくれる拡張機能「HTML CSS Support」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Bartender ProのTop Shelf機能でできること
高機能なスクリーンショットアプリ「CleanShot X」
macOSの効率化に関するDiscordコミュニティ「CMD-F」を立ち上げました
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する