diff --git a/.changeset/stupid-dots-do.md b/.changeset/stupid-dots-do.md new file mode 100644 index 000000000..594fa9536 --- /dev/null +++ b/.changeset/stupid-dots-do.md @@ -0,0 +1,5 @@ +--- +'mermaid': patch +--- + +fix: Gantt, Sankey and User Journey diagram are now able to pick font-family from mermaid config. diff --git a/packages/mermaid/src/diagrams/gantt/styles.js b/packages/mermaid/src/diagrams/gantt/styles.js index 626ed4e0f..5b53a1b07 100644 --- a/packages/mermaid/src/diagrams/gantt/styles.js +++ b/packages/mermaid/src/diagrams/gantt/styles.js @@ -1,7 +1,7 @@ const getStyles = (options) => ` .mermaid-main-font { - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + font-family: ${options.fontFamily}; } .exclude-range { @@ -45,7 +45,7 @@ const getStyles = (options) => .sectionTitle { text-anchor: start; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + font-family: ${options.fontFamily}; } @@ -86,13 +86,13 @@ const getStyles = (options) => .taskText { text-anchor: middle; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + font-family: ${options.fontFamily}; } .taskTextOutsideRight { fill: ${options.taskTextDarkColor}; text-anchor: start; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + font-family: ${options.fontFamily}; } .taskTextOutsideLeft { @@ -248,7 +248,7 @@ const getStyles = (options) => text-anchor: middle; font-size: 18px; fill: ${options.titleColor || options.textColor}; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + font-family: ${options.fontFamily}; } `; diff --git a/packages/mermaid/src/diagrams/sankey/sankeyDiagram.ts b/packages/mermaid/src/diagrams/sankey/sankeyDiagram.ts index 6fed435ac..54aa40a78 100644 --- a/packages/mermaid/src/diagrams/sankey/sankeyDiagram.ts +++ b/packages/mermaid/src/diagrams/sankey/sankeyDiagram.ts @@ -4,11 +4,13 @@ import parser from './parser/sankey.jison'; import db from './sankeyDB.js'; import renderer from './sankeyRenderer.js'; import { prepareTextForParsing } from './sankeyUtils.js'; +import sankeyStyles from './styles.js'; const originalParse = parser.parse.bind(parser); parser.parse = (text: string) => originalParse(prepareTextForParsing(text)); export const diagram: DiagramDefinition = { + styles: sankeyStyles, parser, db, renderer, diff --git a/packages/mermaid/src/diagrams/sankey/sankeyRenderer.ts b/packages/mermaid/src/diagrams/sankey/sankeyRenderer.ts index a981a346e..5e3f04173 100644 --- a/packages/mermaid/src/diagrams/sankey/sankeyRenderer.ts +++ b/packages/mermaid/src/diagrams/sankey/sankeyRenderer.ts @@ -136,7 +136,6 @@ export const draw = function (text: string, id: string, _version: string, diagOb svg .append('g') .attr('class', 'node-labels') - .attr('font-family', 'sans-serif') .attr('font-size', 14) .selectAll('text') .data(graph.nodes) diff --git a/packages/mermaid/src/diagrams/sankey/styles.js b/packages/mermaid/src/diagrams/sankey/styles.js new file mode 100644 index 000000000..eafb62b05 --- /dev/null +++ b/packages/mermaid/src/diagrams/sankey/styles.js @@ -0,0 +1,6 @@ +const getStyles = (options) => + `.label { + font-family: ${options.fontFamily}; + }`; + +export default getStyles; diff --git a/packages/mermaid/src/diagrams/user-journey/styles.js b/packages/mermaid/src/diagrams/user-journey/styles.js index 998a73894..9cdbcd12e 100644 --- a/packages/mermaid/src/diagrams/user-journey/styles.js +++ b/packages/mermaid/src/diagrams/user-journey/styles.js @@ -1,7 +1,6 @@ const getStyles = (options) => `.label { - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); + font-family: ${options.fontFamily}; color: ${options.textColor}; } .mouth { @@ -79,8 +78,7 @@ const getStyles = (options) => text-align: center; max-width: 200px; padding: 2px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); + font-family: ${options.fontFamily}; font-size: 12px; background: ${options.tertiaryColor}; border: 1px solid ${options.border2};