美文网首页
React实现暗黑模式

React实现暗黑模式

作者: Poppy11 | 来源:发表于2022-05-19 13:14 被阅读0次

使用css变量控制整体样式

1、首先创建一个hook,这个Hook主要是存储LocalStorage和给根节点添加或者删除class名

import React from "react";

function useAppearance() {
  const isAuto = (val) => !val || val === "auto";

  const getAppearance = (value) => {
    let appearance = value || window.localStorage.getItem("appearance");
    if (isAuto(appearance)) {
      return "light";
    }
    return value;
  };

  const [state, setState] = React.useState(getAppearance);
  const setStateWithLocalStorage = (value) => {
    if (value === "dark") {
      document.documentElement.classList.add("dark");
    } else {
      document.documentElement.classList.remove("dark");
    }
    window.localStorage.setItem("appearance", value);
    setState(getAppearance(value));
  };

  return [state, setStateWithLocalStorage];
}

export default useAppearance;

2、css文件中在root中创建变量,在其它class中统一使用该变量

:root {
  --background-color: red;
}
:root.dark {
  --background-color: black;
}
.app {
  font-family: sans-serif;
  text-align: center;
}

.text {
  color: var(--background-color);
}

相关文章

  • React实现暗黑模式

    使用css变量控制整体样式 1、首先创建一个hook,这个Hook主要是存储LocalStorage和给根节点添加...

  • 禁用iOS13暗黑模式

    如果手机开启暗黑模式,没有做暗黑模式的app显示会有问题,如果不打算支持暗黑模式,需要将暗黑模式禁止。在plist...

  • 暗黑模式开发

    iOS13暗黑模式适配(项目开发版) iOS 13 DarkMode 暗黑模式 IOS 暗黑模式适配---基础适配

  • Xcode 升级11 适配 ⚠️记录~

    1、关闭暗黑模式 ,如果没有适配暗黑模式,在暗黑模式下会很丑 2、 报错 library not found fo...

  • Android 10 暗黑模式适配,你需要知道的一切

    暗黑模式 在 Android 10 里,Dark theme 暗黑模式得到了系统级的支持。暗黑模式不仅酷炫,而且有...

  • iOS 暗黑模式适配

    DarkModeAdapter 简介 iOS 暗黑模式适配懒人版 普通模式(light)下: 暗黑模式(dark)...

  • ios - 暗黑模式color的分类常用方法之一

    给你的UIColor添加一个Category实现iOS13暗黑模式的颜色适配

  • ios13适配不断更新

    1. 暗黑模式 iOS13使用暗黑模式时,UIView默认背景色会变成暗黑色。适配暗黑模式的工作量较大,改为强制使...

  • iOS13 适配总结

    1. 暗黑模式 iOS13使用暗黑模式时,UIView默认背景色会变成暗黑色。适配暗黑模式的工作量较大,改为强制使...

  • iOS 开发之关闭暗黑模式

    对于现在很多应用不想适配暗黑模式或者来不及适配的,可以关闭暗黑模式。 全局关闭暗黑模式: 在 Info.plist...

网友评论

      本文标题:React实现暗黑模式

      本文链接:https://www.haomeiwen.com/subject/bmxtprtx.html