深色模式

自动深色模式判定

/* 默认样式(通常是浅色) */
body {
  background-color: white;
  color: black;
}

/* 当系统开启深色模式时,自动覆盖上面的样式 */
@media (prefers-color-scheme: dark) {
  body {
    background-color: #121212;
    color: white;
  }
}

TailwindCSS

注意,下面的用法适用于TailwindCSS@v4

自动深色模式

如果希望根据系统的深色模式自动切换,在全局css中:

@custom-variant dark (@media (prefers-color-scheme: dark));

这时候使用下面的class类,会切换到dark:的样式

比如这个样式表示在深色模式下,外层div的背景色为黑色,p文本为白色

<div class="dark:bg-black">
  <p class="dark:text-white">Hello</p>
</div>

手动切换

如果需要手动切换深色模式,可以用根标签来区分深色模式,在全局css中:

@custom-variant dark (&:where(.dark, .dark *));

表示为,如果一个标签有.dark类,或者这个类的所有后代标签都应用深色模式
这里的.dark类可以自定义

Warning

注意,如果使用TailwindCSS来控制深色模式,响应式布局@media (prefers-color-scheme: dark)依然会跟随系统的深色模式
如果需要根据TailwindCSS来应用样式,可以这样.dark .xxx{}

手动监听

TODO