diff --git a/d2layouts/d2sequence/sequence_diagram.go b/d2layouts/d2sequence/sequence_diagram.go
index 3ef8377df..51a0d0bd1 100644
--- a/d2layouts/d2sequence/sequence_diagram.go
+++ b/d2layouts/d2sequence/sequence_diagram.go
@@ -460,6 +460,12 @@ func (sd *sequenceDiagram) placeSpans() {
func (sd *sequenceDiagram) routeMessages() error {
startY := sd.maxActorHeight + sd.yStep
for _, message := range sd.messages {
+ for _, note := range sd.notes {
+ if sd.verticalIndices[note.AbsID()] < sd.verticalIndices[message.AbsID()] {
+ startY += note.Height + sd.yStep
+ }
+ }
+
message.ZIndex = 2
var startX, endX float64
if startCenter := getCenter(message.Src); startCenter != nil {
diff --git a/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json
index 3dbb90626..340ba41fc 100644
--- a/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_groups/dagre/board.exp.json
@@ -279,7 +279,7 @@
"y": 1349
},
"width": 633,
- "height": 336,
+ "height": 466,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -919,11 +919,11 @@
"route": [
{
"x": 875,
- "y": 1519
+ "y": 1775
},
{
"x": 475,
- "y": 1519
+ "y": 1775
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg
index 78d21b367..a87b67540 100644
--- a/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_groups/dagre/sketch.exp.svg
@@ -14,12 +14,12 @@ width="1609" height="2311" viewBox="-100 -50 1609 2311">abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay
+abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay
-
+
abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay
+abcdggggroup 1group bchoonested guywhat would arnold saythis note lalaeyokayokay
-
+
abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay
-
-
+abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay
+
+
abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay
-
-
+abcdexplanationanother explanationSome one who believes imaginary things appear right before your i's.The earth is like a tiny grain of sand, only much, much heavier okay
+
+
How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG
-
+How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG
-
+How this is renderedCLId2astd2compilerd2layoutd2exporterd2themesd2rendererd2sequencelayoutd2dagrelayoutmeasurements also take place 'How this is rendered: {...}'tokenized ASTcompile ASTobjects and edgesrun layout enginesrun engine on shape: sequence_diagram, temporarily removerun core engine on rest add back in sequence diagramsdiagram with correct positions and dimensionsexport diagram with chosen theme and rendererget theme stylesrender to SVGresulting SVG
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+