DbGate 中全新的主题系统

Published: 2026-01-23

在过去的几年里,DbGate 一直使用同一套主题系统。随着 7.0.0 版本的发布,我们引入了一个完全基于 JSON 文件的全新主题系统。不幸的是,之前以插件形式实现的旧自定义主题将不再受支持。

我们非常感谢 DbGate 社区成员为 DbGate 创建的各种主题,也非常遗憾此前创建的主题将不再受支持。正因为如此,我们很长时间都在推迟这个决定。然而,随着时间推移,无法演进界面设计的问题变得越来越难以为继。最终,我们决定做出一次激进的改变,彻底重构主题系统。

在这篇文章中,我会解释我们为什么要做出这个改变,以及新的主题系统是如何工作的。

DbGate 在 6.x 版本之前被冻结的主题系统

在 6.x 版本之前,DbGate 使用的是一个相对简单的主题系统。它通过少量 CSS 变量来定义颜色。这些 CSS 变量并不对应具体的界面元素,而是比较通用(例如 --font-color-1--font-color-2--background-color-1--background-color-2 等)。这种系统虽然让创建新主题变得很容易,但功能相当有限。无法为特定的 UI 元素单独定义样式。这个系统也在某种程度上“冻结”了应用的设计,因为只要修改某个颜色 CSS 变量,就会影响整个应用,而不是某个特定部分。

DbGate 7.0.0 中基于元素的主题系统

在 DbGate 7.0.0 中,我们引入了一个完全基于 JSON 文件的全新主题系统。在这个新系统中,每个 UI 元素都有自己的一组 CSS 变量,用来定义颜色、边框以及其他样式属性。这为定义主题提供了更大的灵活性。现在的主题由数量更多的 CSS 变量组成,每个变量都与具体的 UI 元素相关(例如 --data-browser-font-color--data-browser-background-color--button-font-color--button-background-color 等)。

在 AI 生成内容的时代,我们希望能够方便地使用 AI 创建自定义主题,这就需要对应用外观进行更加细致的控制。此外,由于 AI 可以帮助处理这类工作,维护更多 CSS 变量的成本几乎可以忽略不计,而在设计灵活性方面带来的收益却非常可观。

自定义主题文档

DbGate - solarized theme

使用 AI 生成主题

DbGate Premium 版本包含一个全新的主题 AI 助手功能。通过这个功能,用户可以使用 AI 创建自定义主题。你只需用自然语言描述你想要的主题,AI 助手就会根据你的描述生成一个主题。你也可以对生成的主题进行修改,只需描述你想要做出的更改即可。

DbGate - generated green theme

通过 DbGate Cloud 分享主题

我们增强了 DbGate 公共知识库,以支持分享自定义主题。你只需创建自己的主题(在 JSON 文件中定义 CSS 变量)。你可以参考 Solarized 浅色主题的源代码获取灵感。我们也鼓励你使用 AI 助手来创建主题的第一个版本。 在发布时,只需向 DbGate 公共知识库仓库创建一个 pull request。合并之后,你的主题就会出现在所有 DbGate 用户的主题选择器中(还会根据主题中的颜色生成预览)。