发布于 2026-01-06 14 阅读
0

使用 CSS 变量实现深色模式 什么是深色模式?深色模式有哪些优势?如何在您的网站中实现深色模式?使用此方法的示例项目:Smartsapp 感谢阅读

使用 CSS 变量的深色模式

什么是深色模式?

深色模式有哪些优势?

如何在网站上实现深色模式?

演示

使用此实施方案的项目

Smartapp

感谢阅读

什么是深色模式?

深色模式,也称为浅色底深色图案配色方案,是一种在深色背景上使用浅色文本、图标和图形用户界面元素的配色方案,经常在计算机用户界面设计和网页设计方面进行讨论。

深色模式背后的理念是,在保持可读性所需的最低色彩对比度的同时,减少设备屏幕发出的光。

深色模式有哪些优势?

  • 使用设备时可以节省能源。
  • 在光线较暗的环境下,可能有助于减轻眼部疲劳和眼睛干涩。
  • 手机辐射减少blue light——睡前使用手机可能会影响睡眠。

如何在网站上实现深色模式?

让我们从一个 HTML 框架、一个按钮、一个链接的样式表和一个脚本开始。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Dark Mode</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <button class="btn" id="toggleBtn">
        Toggle Dark Mode
    </button>
    <script src="script.js"></script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

现在我们来解决主要问题。首先,我们将添加颜色的 CSS 变量(我们称它们为 `colors`primarybackground`colors`),并在深色模式下覆盖所需的颜色。

:root{
    --primary: #4240b4;
    --background: #dddddd;
}

.dark{
    --background: #222222;
}

html,
body{
    background-color: var(--background);
}

.btn{
    background-color: var(--primary);
}
Enter fullscreen mode Exit fullscreen mode

因此,在 JavaScript 代码中,我们只需要切换 HTML 文档主体部分的类列表即可。

const body = document.querySelector("body")
const toggleBtn = document.querySelector("#toggleBtn")

toggleBtn.addEventListener("click", (e) => {
    body.classList.toggle("dark")
})
Enter fullscreen mode Exit fullscreen mode

演示

使用此实施方案的项目

Smartapp

网页应用:https://smartsapp-ba40f.firebaseapp.com

GitHub 标志 ruppysuppy / SmartsApp

💬📱 一款端到端加密的跨平台即时通讯应用。

Smartapp

一款完全跨平台的即时通讯应用,支持端到端加密(E2EE)

演示

注意:演示中展示的功能并不完整,仅展示了核心功能。

支持的平台

  1. 桌面系统: Windows、Linux、MacOS
  2. 移动设备: Android、iOS
  3. 网站:任何带有浏览器的设备

后端设置

该应用程序的后端由……处理Firebase

基本设置

  1. 前往 Firebase 控制台并创建一个名为“”的新项目Smartsapp
  2. 使能够Google Analylitics

应用程序设置

  1. App从概览页面为项目创建项目。
  2. 将配置信息复制并粘贴到指定位置(具体位置请参阅相应应用程序的自述文件)。

身份验证设置

  1. 前往项目Authentication部分
  2. 选择选项Sign-in method
  3. 启用Email/PasswordGoogle登录

Firestore 设置

  1. 前往项目Firestore部分
  2. 为项目创建 Firestore 配置(选择离您位置最近的服务器)
  3. 前往Rules……

感谢阅读

需要一位顶尖的软件开发自由职业者来解决您的开发难题吗?请通过Upwork联系我。

想看看我在做什么吗?请访问我的个人网站GitHub。

想联系我?请在领英上联系我。

关注我的博客,即可Medium上获取每两周更新的精彩内容。

常问问题

以下是一些我经常被问到的问题。希望这个常见问题解答部分能解答您的疑问。

  1. 我是新手,应该如何学习前端Web开发?
    请参考以下文章:

    1. 前端热门词汇
    2. 前端开发路线图
    3. 前端项目构思
    4. 从初级前端开发人员过渡到中级前端开发人员
  2. 您愿意指导我吗?

    抱歉,我已经工作很忙了,没有时间指导任何人。

文章来源:https://dev.to/ruppysuppy/dark-mode-using-css-variables-1m3