diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts index 5dcda944d..0815ab6c5 100644 --- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts +++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/erBox.ts @@ -59,6 +59,13 @@ export async function erBox(parent: D3Selection node.width = config.er!.minEntityWidth; } const shapeSvg = await drawRect(parent, node, options); + + // drawRect doesn't center non-htmlLabels correctly as of now, so translate label + if (!evaluate(config.htmlLabels)) { + const textElement = shapeSvg.select('text'); + const bbox = (textElement.node() as SVGTextElement)?.getBBox(); + textElement.attr('transform', `translate(${-bbox.width / 2}, 0)`); + } return shapeSvg; }