颜色是如何工作的以及如何更改它们?

抱歉主题比较宽泛,但我一直在琢磨这个问题,找不到合适的教程或解释。

每当我需要更改 Discourse 中的任何颜色时,我都会遵循以下路径:

  • 颜色是否由主题组件管理?如果不是,
  • 似乎是由 /admin/customize/colors 管理的吗?如果不是,
  • 打开开发者工具并尝试查找匹配的 CSS

但之后我就迷失了,因为我发现了像 var(--primary-low) 这样的东西,我不知道它们在哪里定义的,尽管它们看起来/admin/customize/colors 中的主颜色概念有关。所以:

  • 这些 var() 东西是如何定义的?
  • 如何以一致的方式修改它们是推荐的方法?

颜色在这里(计算):

CSS 变量在这里定义:

如果你想覆盖比如 --primary-medium,你可以在你的主题中添加这个:

:root {
    --primary-high: red;
}

但是,我不知道如何使用 颜色转换函数,这需要 SCSS 变量。

我看到 @import "common/foundation/variables"; 不是必需的,因为 “核心和主题变量现在在任何 SCSS 文件编译之前注入”,但我仍然无法让它工作。我将把话筒交给更有知识的用户 :microphone:

4 个赞

您可以查看样式指南

您也可以查看 colors/styleguide/atoms/colors 以获取颜色。您必须通过搜索“styleguide”在您的站点设置中启用它

例如:https://meta.discourse.org/styleguide/atoms/colors

2 个赞

哇,我第一次听说 styleguide,谢谢。
那么,正如 @Canapin 所说,我理解自定义 CSS 是修改这些样式的唯一方法,对吗?(如果你愿意,请给我一个 :heart: 来确认)

这种方法可能是最简单的,它适用于任何自动生成的颜色

但你也可以像这里介绍的那样,在主题的about.json文件中覆盖颜色:Override values for auto-generated color variables

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.