跟随系统更换主题色

84 阅读1分钟

变更主题色思路

  1. 写两套css样式
  2. 设置html的class,当html的class为light,就是浅色模式。当html的class是dark,就是深色模式
  3. 对应渲染不同的CSS,(后续用tailwindcss举例)

跟随系统

利用 Window.matchMedia() 方法。该方法接收一个 mediaQueryString(媒体查询解析的字符串) ,该字符串我们可以传递 prefers-color-scheme ,即 window.matchMedia('(prefers-color-scheme: dark)') 方法

该方法可以返回一个 MediaQueryList 对象:

  1. 同时存在一个 matches 属性,该属性为 boolean 性的值。 true是深色主题 false是浅色主题
  2. 该对象存在一个 change 事件,可以监听 主题发生变更 的行为。一般在这个事件触发变更主题色的方法

Snipaste_2025-02-05_15-36-33.png

图中是浅色主题,还没有开发变更主题色代码、