返回

Github 是如何做到同步系统主题颜色的?

前端

Github 是一个源代码托管服务,也是一个开发者社区。最近,Github 更新了一个新功能——动态效果:更改主题模式。这个功能允许用户在浅色和深色主题之间切换,而 Github 会自动将界面的颜色与系统主题颜色同步。这一功能的实现涉及多个方面,包括前端开发、后端开发和设计。

前端开发

Github 的前端开发团队负责将设计团队提供的视觉效果转化为现实。为了实现同步系统主题颜色的功能,前端开发团队需要做的第一件事是检测用户的系统主题颜色。这可以通过 JavaScript 来实现。

const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;

如果用户选择了深色主题,那么 prefersDarkMode 的值为 true,否则为 false。

接下来,前端开发团队需要根据用户的系统主题颜色来调整界面的颜色。这可以通过 CSS 来实现。

:root {
  --background-color: #fff;
  --text-color: #000;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background-color: #000;
    --text-color: #fff;
  }
}

这样,Github 的界面就会根据用户的系统主题颜色自动切换颜色。

后端开发

Github 的后端开发团队负责存储和管理用户的数据。为了实现同步系统主题颜色的功能,后端开发团队需要做的是将用户的主题颜色存储到数据库中。这可以通过 SQL 查询来实现。

INSERT INTO users (theme_color) VALUES ('dark');

这样,当用户下次登录 Github 时,后端开发团队就可以从数据库中读取用户的主题颜色,并将其应用到界面的颜色上。

设计

Github 的设计团队负责设计 Github 的视觉效果。为了实现同步系统主题颜色的功能,设计团队需要做的第一件事是创建一个深色主题。这可以通过调整界面的颜色来实现。

:root {
  --background-color: #000;
  --text-color: #fff;
}

接下来,设计团队需要将深色主题添加到 Github 的主题选择器中。这可以通过 HTML 来实现。

<select id="theme-selector">
  <option value="light">浅色主题</option>
  <option value="dark">深色主题</option>
</select>

这样,用户就可以在浅色主题和深色主题之间切换了。

结论

Github 是如何做到同步系统主题颜色的?这一功能的实现涉及多个方面,包括前端开发、后端开发和设计。通过将这三个方面结合起来,Github 实现了同步系统主题颜色的功能,从而为用户提供了更加个性化的使用体验。