Skip to content

主题配置

动态和集成的主题配置在Mermaid版本8.7.0中引入。

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

可用主题

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

  2. neutral - 这个主题非常适合用于打印的黑白文档。

  3. dark - 这个主题与深色元素或深色模式搭配得很好。

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

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

全站主题

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

设置themebaseinitialize调用示例:

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

特定图表主题

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

示例:使用init指令将theme设置为forest

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

使用 themeVariables 自定义主题

要制作自定义主题,请通过init修改themeVariables

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

参数描述类型属性
themeVariables可通过init指令修改ObjectprimaryColor, primaryTextColor, lineColor (查看完整列表)

使用 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从背景计算得出
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从第三级计算填充饼图中的第三部分
pie4从primaryColor计算得出饼图中第四部分的填充颜色
pie5从secondaryColor计算得出饼图中第五部分的填充
pie6从tertiaryColor计算得出饼图中第6部分的填充
pie7从primaryColor计算得出饼图中第7部分的填充颜色
pie8从primaryColor计算得出饼图中第8部分的填充颜色
pie9从primaryColor计算得出饼图中第9部分的填充颜色
pie10从primaryColor计算得出饼图中第10部分的填充颜色
pie11从primaryColor计算得出饼图中第11部分的填充颜色
pie12从primaryColor计算得出饼图中第12部分的填充颜色
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计算得出旅程图中第6部分的填充
fillType6从primaryColor计算得出旅程图中第7部分的填充
fillType7从secondaryColor计算得出旅程图中第8部分的填充