diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go
index 097d38504..90af55fa0 100644
--- a/d2renderers/d2svg/d2svg.go
+++ b/d2renderers/d2svg/d2svg.go
@@ -114,7 +114,10 @@ func arrowheadDimensions(arrowhead d2target.Arrowhead, strokeWidth float64) (wid
case d2target.DiamondArrowhead:
widthMultiplier = 11
heightMultiplier = 9
- case d2target.CfOne, d2target.CfMany, d2target.CfOneRequired, d2target.CfManyRequired, d2target.FilledCircleArrowhead, d2target.CircleArrowhead:
+ case d2target.FilledCircleArrowhead, d2target.CircleArrowhead:
+ widthMultiplier = 14
+ heightMultiplier = 14
+ case d2target.CfOne, d2target.CfMany, d2target.CfOneRequired, d2target.CfManyRequired:
widthMultiplier = 14
heightMultiplier = 15
}
@@ -227,16 +230,16 @@ func arrowheadMarker(isTarget bool, id string, connection d2target.Connection) s
case d2target.FilledCircleArrowhead:
attrs := fmt.Sprintf(`class="connection" fill="%s" stroke-width="%d"`, connection.Stroke, connection.StrokeWidth)
if isTarget {
- path = fmt.Sprintf(``,
+ path = fmt.Sprintf(``,
attrs,
- width/2+5, height/2,
- width/3,
+ width-10.3+strokeWidth/3, height/2,
+ width/2.9,
)
} else {
- path = fmt.Sprintf(``,
+ path = fmt.Sprintf(``,
attrs,
- width/2-5, height/2,
- width/3,
+ width-19+strokeWidth/3, height/2,
+ width/2.9,
)
}
case d2target.CircleArrowhead:
@@ -244,13 +247,13 @@ func arrowheadMarker(isTarget bool, id string, connection d2target.Connection) s
if isTarget {
path = fmt.Sprintf(``,
attrs,
- width/2+5, height/2,
+ width/2+3.6+strokeWidth/3, height/2,
width/3.2,
)
} else {
path = fmt.Sprintf(``,
attrs,
- width/2-5, height/2,
+ width/2-4.9+strokeWidth/3, height/2,
width/3.2,
)
}