跳至内容

主题配置

Mermaid 版本 8.7.0 引入了动态且集成的主题配置。

现在可以在网站范围或单个 Mermaid 图表上自定义主题。对于网站范围的主题自定义,使用 initialize 调用。对于特定于图表的自定义,使用 init 指令。

可用主题

  1. default - 这是所有图表的默认主题。

  2. neutral - 此主题非常适合将要打印的黑白文档。

  3. dark - 此主题与深色元素或黑暗模式搭配使用效果很好。

  4. forest - 此主题包含绿色色调。

  5. base - 这是唯一可以修改的主题。将此主题用作自定义的基础。

网站范围的主题

要自定义网站范围的主题,请在 mermaid 上调用 initialize 方法。

theme 设置为 baseinitialize 调用的示例

javascript
mermaid.initialize({
  securityLevel: 'loose',
  theme: 'base',
});

特定于图表的主题

要自定义单个图表的主题,请使用 init 指令。

theme 设置为 forestinit 指令的示例

提醒:唯一可以自定义的主题是 base 主题。以下部分介绍如何使用 themeVariables 进行自定义。

使用 themeVariables 自定义主题

要创建自定义主题,请通过 init 修改 themeVariables

您需要使用 base 主题,因为它是唯一可修改的主题。

参数描述类型属性
themeVariables可以使用 init 指令修改对象primaryColorprimaryTextColorlineColor (查看完整列表)

使用 init 指令修改 themeVariables 的示例

颜色和颜色计算

为了确保图表的可读性,某些变量的默认值是计算或从其他变量派生的。例如,primaryBorderColor 是从 primaryColor 变量派生的。因此,如果自定义了 primaryColor 变量,Mermaid 将自动调整 primaryBorderColor。调整可能意味着颜色反转、色调变化、变暗/变亮 10% 等。

主题引擎只会识别十六进制颜色,而不是颜色名称。因此,#ff0000 值将有效,但 red 将无效。

主题变量

变量默认值描述
darkModefalse影响派生颜色的计算方式。将值设置为 true 以启用黑暗模式。
background#f4f4f4用于计算应为背景色或与背景对比的颜色
fontFamilytrebuchet ms, verdana, arial
fontSize16px以像素为单位的字体大小
primaryColor#fff4dd用作节点背景的颜色,其他颜色将从此颜色派生
primaryTextColor从 darkMode #ddd/#333 计算得出用作使用 primaryColor 的节点中的文本颜色
secondaryColor从 primaryColor 计算得出
primaryBorderColor从 primaryColor 计算得出用作使用 primaryColor 的节点中的边框的颜色
secondaryBorderColor从 secondaryColor 计算得出用作使用 secondaryColor 的节点中的边框的颜色
secondaryTextColor从 secondaryColor 计算得出用作使用 secondaryColor 的节点中的文本颜色
tertiaryColor从 primaryColor 计算得出
tertiaryBorderColor从 tertiaryColor 计算得出用作使用 tertiaryColor 的节点中的边框的颜色
tertiaryTextColor从 tertiaryColor 计算得出用作使用 tertiaryColor 的节点中的文本颜色
noteBkgColor#fff5ad用作注释中的背景颜色
noteTextColor#333注释矩形中的文本颜色
noteBorderColor从 noteBkgColor 计算得出注释矩形中的边框颜色
lineColor从 background 计算得出
textColor从 primaryTextColor 计算得出图表中背景上的文本,例如标签上的文本以及时序图中的信号或甘特图中的标题
mainBkg从 primaryColor 计算得出流程图对象中的背景,如矩形/圆形、类图类、时序图等
errorBkgColortertiaryColor语法错误消息的颜色
errorTextColortertiaryTextColor语法错误消息的颜色

流程图变量

变量默认值描述
nodeBorderprimaryBorderColor节点边框颜色
clusterBkgtertiaryColor子图中的背景
clusterBordertertiaryBorderColor集群边框颜色
defaultLinkColorlineColor链接颜色
titleColortertiaryTextColor标题颜色
edgeLabelBackground从 secondaryColor 计算得出
nodeTextColorprimaryTextColor节点内部文本的颜色

时序图变量

变量默认值描述
actorBkgmainBkg参与者背景颜色
actorBorderprimaryBorderColor参与者边框颜色
actorTextColorprimaryTextColor参与者文本颜色
actorLineColoractorBorder参与者线条颜色
signalColortextColor信号颜色
signalTextColortextColor信号文本颜色
labelBoxBkgColoractorBkg标签框背景颜色
labelBoxBorderColoractorBorder标签框边框颜色
labelTextColoractorTextColor标签文本颜色
loopTextColoractorTextColor循环文本颜色
activationBorderColor从 secondaryColor 计算得出激活边框颜色
activationBkgColorsecondaryColor激活背景颜色
sequenceNumberColor从 lineColor 计算得出序列号颜色

饼图变量

变量默认值描述
pie1primaryColor饼图中第一部分的填充
pie2secondaryColor饼图中第二部分的填充
pie3从 tertiary 计算得出饼图中第三部分的填充
pie4从 primaryColor 计算得出饼图中第四部分的填充
pie5从 secondaryColor 计算得出饼图中第五部分的填充
pie6从 tertiaryColor 计算得出饼图中第六部分的填充
pie7从 primaryColor 计算得出饼图中第七部分的填充
pie8从 primaryColor 计算得出饼图中第八部分的填充
pie9从 primaryColor 计算得出饼图中第九部分的填充
pie10从 primaryColor 计算得出饼图中第十部分的填充
pie11从 primaryColor 计算得出饼图中第十一部分的填充
pie12从 primaryColor 计算得出饼图中第十二部分的填充
pieTitleTextSize25px标题文本大小
pieTitleTextColortaskTextDarkColor标题文本颜色
pieSectionTextSize17px单个部分标签的文本大小
pieSectionTextColortextColor单个部分标签的文本颜色
pieLegendTextSize17px图表图例中标签的文本大小
pieLegendTextColortaskTextDarkColor图表图例中标签的文本颜色
pieStrokeColorblack单个饼图部分的边框颜色
pieStrokeWidth2px单个饼图部分的边框宽度
pieOuterStrokeWidth2px饼图外圆的边框宽度
pieOuterStrokeColorblack饼图外圆的边框颜色
pieOpacity0.7单个饼图部分的不透明度

状态颜色

变量默认值描述
labelColorprimaryTextColor
altBackgroundtertiaryColor用于深层复合状态中的背景

类颜色

变量默认值描述
classTexttextColor类图中文字的颜色

用户旅程颜色

变量默认值描述
fillType0primaryColor旅程图中第一个部分的填充颜色
fillType1secondaryColor旅程图中第二个部分的填充颜色
fillType2从 primaryColor 计算得出旅程图中第三个部分的填充颜色
fillType3从 secondaryColor 计算得出旅程图中第四个部分的填充颜色
fillType4从 primaryColor 计算得出旅程图中第五个部分的填充颜色
fillType5从 secondaryColor 计算得出旅程图中第六个部分的填充颜色
fillType6从 primaryColor 计算得出旅程图中第七个部分的填充颜色
fillType7从 secondaryColor 计算得出旅程图中第八个部分的填充颜色