diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md
index 70ffbdb53..917edff65 100644
--- a/ci/release/changelogs/next.md
+++ b/ci/release/changelogs/next.md
@@ -1,4 +1,5 @@
#### Features 🚀
+- Ability to fade background shape on multiple style [#2509](https://github.com/terrastruct/d2/pull/2509)
- `cross` arrowhead shape is available [#2190](https://github.com/terrastruct/d2/pull/2190)
diff --git a/d2ast/keywords.go b/d2ast/keywords.go
index 65f67b775..65b35e0ae 100644
--- a/d2ast/keywords.go
+++ b/d2ast/keywords.go
@@ -41,6 +41,7 @@ var CompositeReservedKeywords = map[string]struct{}{
"constraint": {},
"label": {},
"icon": {},
+ "multiple": {},
}
// StyleKeywords are reserved keywords which cannot exist outside of the "style" keyword
@@ -75,6 +76,10 @@ var StyleKeywords = map[string]struct{}{
"filled": {},
}
+var CompositeStyleKeywords = map[string]string{
+ "multiple": "opacity",
+}
+
// TODO maybe autofmt should allow other values, and transform them to conform
// e.g. left-center becomes center-left
var NearConstantsArray = []string{
diff --git a/d2compiler/compile.go b/d2compiler/compile.go
index c7030146b..9de79d914 100644
--- a/d2compiler/compile.go
+++ b/d2compiler/compile.go
@@ -756,6 +756,13 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) {
c.errorf(f.LastRef().AST(), `invalid style keyword: "%s"`, f.Name.ScalarString())
return
}
+ if f.Map() != nil {
+ fields := f.Map().Fields
+ for i := 0; i < len(fields); i++ {
+ field := fields[i]
+ c.compileCompositeStyle(styles, field, f.Name.ScalarString())
+ }
+ }
if f.Primary() == nil {
return
}
@@ -768,6 +775,31 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) {
}
}
+func (c *compiler) compileCompositeStyle(styles *d2graph.Style, f *d2ir.Field, parent string) {
+ if _, ok := d2ast.CompositeStyleKeywords[strings.ToLower(parent)]; !(ok && f.Name.IsUnquoted()) {
+ c.errorf(f.LastRef().AST(), `invalid composite style keyword: "%s"`, f.Name.ScalarString())
+ return
+ }
+
+ allowedStyle := d2ast.CompositeStyleKeywords[strings.ToLower(parent)]
+
+ if allowedStyle != strings.ToLower(f.Name.ScalarString()) {
+ c.errorf(f.LastRef().AST(), `invalid style "%s" for composite style keyword: "%s"`, f.Name.ScalarString(), parent)
+ }
+
+ if f.Primary() == nil {
+ return
+ }
+
+ compileCompositeStyleFieldInit(styles, f, parent)
+ scalar := f.Primary().Value
+ err := styles.ApplyComposite(f.Name.ScalarString(), scalar.ScalarString(), parent)
+ if err != nil {
+ c.errorf(scalar, err.Error())
+ return
+ }
+}
+
func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) {
switch f.Name.ScalarString() {
case "opacity":
@@ -813,6 +845,15 @@ func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) {
}
}
+func compileCompositeStyleFieldInit(styles *d2graph.Style, f *d2ir.Field, parent string) {
+ switch f.Name.ScalarString() {
+ case "opacity":
+ if parent == "multiple" {
+ styles.MultipleOpacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()}
+ }
+ }
+}
+
func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) {
edge, err := obj.Connect(e.ID.SrcPath, e.ID.DstPath, e.ID.SrcArrow, e.ID.DstArrow, "")
if err != nil {
diff --git a/d2exporter/export.go b/d2exporter/export.go
index 56f4b9146..36114fc91 100644
--- a/d2exporter/export.go
+++ b/d2exporter/export.go
@@ -172,6 +172,9 @@ func applyStyles(shape *d2target.Shape, obj *d2graph.Object) {
if obj.Style.Multiple != nil {
shape.Multiple, _ = strconv.ParseBool(obj.Style.Multiple.Value)
}
+ if obj.Style.MultipleOpacity != nil {
+ shape.MultipleOpacity, _ = strconv.ParseFloat(obj.Style.MultipleOpacity.Value, 64)
+ }
if obj.Style.BorderRadius != nil {
shape.BorderRadius, _ = strconv.Atoi(obj.Style.BorderRadius.Value)
}
diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go
index ba9a02657..5d4d401c2 100644
--- a/d2graph/d2graph.go
+++ b/d2graph/d2graph.go
@@ -281,26 +281,27 @@ func (r Reference) InEdge() bool {
}
type Style struct {
- Opacity *Scalar `json:"opacity,omitempty"`
- Stroke *Scalar `json:"stroke,omitempty"`
- Fill *Scalar `json:"fill,omitempty"`
- FillPattern *Scalar `json:"fillPattern,omitempty"`
- StrokeWidth *Scalar `json:"strokeWidth,omitempty"`
- StrokeDash *Scalar `json:"strokeDash,omitempty"`
- BorderRadius *Scalar `json:"borderRadius,omitempty"`
- Shadow *Scalar `json:"shadow,omitempty"`
- ThreeDee *Scalar `json:"3d,omitempty"`
- Multiple *Scalar `json:"multiple,omitempty"`
- Font *Scalar `json:"font,omitempty"`
- FontSize *Scalar `json:"fontSize,omitempty"`
- FontColor *Scalar `json:"fontColor,omitempty"`
- Animated *Scalar `json:"animated,omitempty"`
- Bold *Scalar `json:"bold,omitempty"`
- Italic *Scalar `json:"italic,omitempty"`
- Underline *Scalar `json:"underline,omitempty"`
- Filled *Scalar `json:"filled,omitempty"`
- DoubleBorder *Scalar `json:"doubleBorder,omitempty"`
- TextTransform *Scalar `json:"textTransform,omitempty"`
+ Opacity *Scalar `json:"opacity,omitempty"`
+ Stroke *Scalar `json:"stroke,omitempty"`
+ Fill *Scalar `json:"fill,omitempty"`
+ FillPattern *Scalar `json:"fillPattern,omitempty"`
+ StrokeWidth *Scalar `json:"strokeWidth,omitempty"`
+ StrokeDash *Scalar `json:"strokeDash,omitempty"`
+ BorderRadius *Scalar `json:"borderRadius,omitempty"`
+ Shadow *Scalar `json:"shadow,omitempty"`
+ ThreeDee *Scalar `json:"3d,omitempty"`
+ Multiple *Scalar `json:"multiple,omitempty"`
+ MultipleOpacity *Scalar `json:"multipleOpacity,omitempty"`
+ Font *Scalar `json:"font,omitempty"`
+ FontSize *Scalar `json:"fontSize,omitempty"`
+ FontColor *Scalar `json:"fontColor,omitempty"`
+ Animated *Scalar `json:"animated,omitempty"`
+ Bold *Scalar `json:"bold,omitempty"`
+ Italic *Scalar `json:"italic,omitempty"`
+ Underline *Scalar `json:"underline,omitempty"`
+ Filled *Scalar `json:"filled,omitempty"`
+ DoubleBorder *Scalar `json:"doubleBorder,omitempty"`
+ TextTransform *Scalar `json:"textTransform,omitempty"`
}
// NoneTextTransform will return a boolean if the text should not have any
@@ -493,6 +494,25 @@ func (s *Style) Apply(key, value string) error {
return nil
}
+func (s *Style) ApplyComposite(key, value, parent string) error {
+ switch key {
+ case "opacity":
+ f, err := strconv.ParseFloat(value, 64)
+ if err != nil || (f < 0 || f > 1) {
+ return errors.New(`expected "opacity" to be a number between 0.0 and 1.0`)
+ }
+ if parent == "multiple" {
+ if s.MultipleOpacity == nil {
+ break
+ }
+ s.MultipleOpacity.Value = value
+ }
+ default:
+ return fmt.Errorf("unknown style key: %s", key)
+ }
+ return nil
+}
+
type ContainerLevel int
func (l ContainerLevel) LabelSize() int {
diff --git a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg
index 53b9d18c1..f3d98dbb4 100644
--- a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg
@@ -134,7 +134,7 @@
-rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
+rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
diff --git a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg
index 861ac762a..02d37fd0b 100644
--- a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg
@@ -170,7 +170,7 @@
-NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND
+NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND
diff --git a/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg
index 250acb653..f660bd18b 100644
--- a/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg
@@ -1216,7 +1216,7 @@
-NETWORKCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND
+NETWORKCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND
diff --git a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg
index ad191f562..d03b093cb 100644
--- a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg
@@ -148,7 +148,7 @@
-NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST
+NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST
diff --git a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg
index b39a90d5d..ba81b7b51 100644
--- a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg
@@ -862,7 +862,7 @@
-People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etcTimeline mixer
+
People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etcTimeline mixer
- Inject ads, who-to-follow, onboarding
- Conversation module
diff --git a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg
index f89cb16ce..fdc390b99 100644
--- a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg
@@ -862,7 +862,7 @@
-People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etcTimeline mixer
+
People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etcTimeline mixer
- Inject ads, who-to-follow, onboarding
- Conversation module
diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go
index 123c88d49..51a3aabb6 100644
--- a/d2renderers/d2svg/d2svg.go
+++ b/d2renderers/d2svg/d2svg.go
@@ -1371,6 +1371,11 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
opacityStyle = fmt.Sprintf(" style='opacity:%f'", targetShape.Opacity)
}
+ multipleOpacityStyle := ""
+ if targetShape.MultipleOpacity != 1.0 {
+ multipleOpacityStyle = fmt.Sprintf(" opacity:%f", targetShape.MultipleOpacity)
+ }
+
// this clipPath must be defined outside `g` element
if targetShape.BorderRadius != 0 && (targetShape.Type == d2target.ShapeClass || targetShape.Type == d2target.ShapeSQLTable) {
fmt.Fprint(writer, clipPathForBorderRadius(diagramHash, targetShape))
@@ -1458,7 +1463,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
case d2target.ShapeOval:
if targetShape.DoubleBorder {
if targetShape.Multiple {
- fmt.Fprint(writer, renderDoubleOval(multipleTL, width, height, fill, "", stroke, style, inlineTheme))
+ fmt.Fprint(writer, renderDoubleOval(multipleTL, width, height, fill, "", stroke, style+multipleOpacityStyle, inlineTheme))
}
if jsRunner != nil {
out, err := d2sketch.DoubleOval(jsRunner, targetShape)
@@ -1471,7 +1476,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
}
} else {
if targetShape.Multiple {
- fmt.Fprint(writer, renderOval(multipleTL, width, height, fill, "", stroke, style, inlineTheme))
+ fmt.Fprint(writer, renderOval(multipleTL, width, height, fill, "", stroke, style+multipleOpacityStyle, inlineTheme))
}
if jsRunner != nil {
out, err := d2sketch.Oval(jsRunner, targetShape)
@@ -1517,7 +1522,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
el.Height = float64(targetShape.Height)
el.Fill = fill
el.Stroke = stroke
- el.Style = style
+ el.Style = style + multipleOpacityStyle
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
}
@@ -1550,7 +1555,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
el.Fill = fill
el.FillPattern = targetShape.FillPattern
el.Stroke = stroke
- el.Style = style
+ el.Style = style + multipleOpacityStyle
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
@@ -1606,7 +1611,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
el := d2themes.NewThemableElement("path", inlineTheme)
el.Fill = fill
el.Stroke = stroke
- el.Style = style
+ el.Style = style + multipleOpacityStyle
for _, pathData := range multiplePathData {
el.D = pathData
fmt.Fprint(writer, el.Render())
@@ -1638,7 +1643,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
el := d2themes.NewThemableElement("path", inlineTheme)
el.Fill = fill
el.Stroke = stroke
- el.Style = style
+ el.Style = style + multipleOpacityStyle
for _, pathData := range multiplePathData {
el.D = pathData
fmt.Fprint(writer, el.Render())
diff --git a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg
index 904003c5e..f674a6859 100644
--- a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg
@@ -842,7 +842,7 @@
.d2-1329315803 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
-People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etcTimeline mixer
+
People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etcTimeline mixer
- Inject ads, who-to-follow, onboarding
- Conversation module
diff --git a/d2target/d2target.go b/d2target/d2target.go
index 8157cce74..441a820e6 100644
--- a/d2target/d2target.go
+++ b/d2target/d2target.go
@@ -497,11 +497,12 @@ type Shape struct {
FillPattern string `json:"fillPattern,omitempty"`
Stroke string `json:"stroke"`
- Animated bool `json:"animated"`
- Shadow bool `json:"shadow"`
- ThreeDee bool `json:"3d"`
- Multiple bool `json:"multiple"`
- DoubleBorder bool `json:"double-border"`
+ Animated bool `json:"animated"`
+ Shadow bool `json:"shadow"`
+ ThreeDee bool `json:"3d"`
+ Multiple bool `json:"multiple"`
+ MultipleOpacity float64 `json:"multipleOpacity,omitempty"`
+ DoubleBorder bool `json:"double-border"`
Tooltip string `json:"tooltip"`
Link string `json:"link"`
diff --git a/e2etests-cli/testdata/TestCLI_E2E/theme-override.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/theme-override.exp.svg
index fe07dce21..5cabfaeea 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/theme-override.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/theme-override.exp.svg
@@ -103,7 +103,7 @@
.d2-586632521 .color-AA4{color:#42A5F5;}
.d2-586632521 .color-AA5{color:#90CAF9;}
.d2-586632521 .color-AB4{color:#F44336;}
- .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
+ .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
diff --git a/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg b/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg
index 02ff92a14..43b6a2ed2 100644
--- a/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg
+++ b/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg
@@ -122,7 +122,7 @@
-rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
+rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
diff --git a/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg b/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg
index ec0529359..af075cd6d 100644
--- a/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg
+++ b/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg
@@ -145,7 +145,7 @@
-NETWORKcostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND
+NETWORKcostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND
diff --git a/e2etests/testdata/patterns/real/dagre/sketch.exp.svg b/e2etests/testdata/patterns/real/dagre/sketch.exp.svg
index 6d4c7c003..4c173f6c7 100644
--- a/e2etests/testdata/patterns/real/dagre/sketch.exp.svg
+++ b/e2etests/testdata/patterns/real/dagre/sketch.exp.svg
@@ -136,7 +136,7 @@
-NETWORKCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND
+NETWORKCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND
diff --git a/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg
index b2af63aa2..1108ff556 100644
--- a/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-2407724796 .color-AA4{color:#EDF0FD;}
.d2-2407724796 .color-AA5{color:#F7F8FE;}
.d2-2407724796 .color-AB4{color:#EDF0FD;}
- .d2-2407724796 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
+ .d2-2407724796 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
diff --git a/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg
index 11c713c2f..56285325d 100644
--- a/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-637431275 .color-AA4{color:#EDF0FD;}
.d2-637431275 .color-AA5{color:#F7F8FE;}
.d2-637431275 .color-AB4{color:#EDF0FD;}
- .d2-637431275 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
+ .d2-637431275 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud
diff --git a/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg b/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg
index 99bb6bfbf..2e365feb9 100644
--- a/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-448308156 .color-AA4{color:#EDF0FD;}
.d2-448308156 .color-AA5{color:#F7F8FE;}
.d2-448308156 .color-AB4{color:#EDF0FD;}
- .d2-448308156 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
+ .d2-448308156 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
three-dee
diff --git a/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg b/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg
index 7f1545a0c..42f9babe2 100644
--- a/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-2886130221 .color-AA4{color:#EDF0FD;}
.d2-2886130221 .color-AA5{color:#F7F8FE;}
.d2-2886130221 .color-AB4{color:#EDF0FD;}
- .d2-2886130221 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
+ .d2-2886130221 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
three-dee
diff --git a/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg b/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg
index e2bfb33c2..ce743dd08 100644
--- a/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-1236460180 .color-AA4{color:#EDF0FD;}
.d2-1236460180 .color-AA5{color:#F7F8FE;}
.d2-1236460180 .color-AB4{color:#EDF0FD;}
- .d2-1236460180 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
+ .d2-1236460180 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
three-dee
diff --git a/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg b/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg
index 7a7f7ef34..59831a18c 100644
--- a/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-773068003 .color-AA4{color:#EDF0FD;}
.d2-773068003 .color-AA5{color:#F7F8FE;}
.d2-773068003 .color-AB4{color:#EDF0FD;}
- .d2-773068003 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
+ .d2-773068003 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double
three-dee
diff --git a/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg b/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg
index d3e69ba72..7a9edded4 100644
--- a/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg
@@ -103,7 +103,7 @@
.d2-183595053 .color-AA4{color:#EDF0FD;}
.d2-183595053 .color-AA5{color:#F7F8FE;}
.d2-183595053 .color-AB4{color:#EDF0FD;}
- .d2-183595053 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist
+ .d2-183595053 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist
diff --git a/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg b/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg
index 5050d66d5..9c2434a01 100644
--- a/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg
@@ -103,7 +103,7 @@
.d2-2410870253 .color-AA4{color:#EDF0FD;}
.d2-2410870253 .color-AA5{color:#F7F8FE;}
.d2-2410870253 .color-AB4{color:#EDF0FD;}
- .d2-2410870253 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist
+ .d2-2410870253 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist
diff --git a/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg
index 667a59d1f..cfba26a6d 100644
--- a/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg
@@ -91,7 +91,7 @@
.d2-269116138 .color-AB4{color:#EDF0FD;}
.d2-269116138 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-269116138);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-269116138);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-269116138);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-269116138);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-269116138);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-269116138);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-269116138);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>___________________________________container____________________________________amscd plugin
-braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ
+braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ
diff --git a/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg
index 47dacb265..d9fd73568 100644
--- a/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg
@@ -91,7 +91,7 @@
.d2-1333473382 .color-AB4{color:#EDF0FD;}
.d2-1333473382 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1333473382);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1333473382);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1333473382);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1333473382);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1333473382);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1333473382);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1333473382);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>___________________________________container____________________________________amscd plugin
-braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ
+braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ
diff --git a/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg b/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg
index 534d66a50..51d54fc48 100644
--- a/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg
@@ -103,7 +103,7 @@
.d2-3097297157 .color-AA4{color:#EDF0FD;}
.d2-3097297157 .color-AA5{color:#F7F8FE;}
.d2-3097297157 .color-AB4{color:#EDF0FD;}
- .d2-3097297157 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND
+ .d2-3097297157 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND
diff --git a/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg b/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg
index 21f5c447b..8cd004318 100644
--- a/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg
@@ -103,7 +103,7 @@
.d2-3660418575 .color-AA4{color:#EDF0FD;}
.d2-3660418575 .color-AA5{color:#F7F8FE;}
.d2-3660418575 .color-AB4{color:#EDF0FD;}
- .d2-3660418575 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND
+ .d2-3660418575 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND
diff --git a/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg
index 962862f03..427867464 100644
--- a/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg
@@ -96,7 +96,7 @@
.d2-3028019976 .color-AA4{color:#EDF0FD;}
.d2-3028019976 .color-AA5{color:#F7F8FE;}
.d2-3028019976 .color-AB4{color:#EDF0FD;}
- .d2-3028019976 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume
+ .d2-3028019976 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume
diff --git a/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg
index 1e8d24e29..c53015cf5 100644
--- a/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg
@@ -96,7 +96,7 @@
.d2-2029988810 .color-AA4{color:#EDF0FD;}
.d2-2029988810 .color-AA5{color:#F7F8FE;}
.d2-2029988810 .color-AB4{color:#EDF0FD;}
- .d2-2029988810 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume
+ .d2-2029988810 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume
diff --git a/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg
index 7c1899b68..4a1e04b39 100644
--- a/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg
@@ -96,21 +96,21 @@
.d2-3863633706 .color-AA4{color:#EDF0FD;}
.d2-3863633706 .color-AA5{color:#F7F8FE;}
.d2-3863633706 .color-AB4{color:#EDF0FD;}
- .d2-3863633706 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
+ .d2-3863633706 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
-n4n5
+n4n5
-n6n7
+n6n7
-n8n9
+n8n9
-n10aba
+n10aba
-baba
+baba
-bababab
+bababab
-abab
+abab
a
diff --git a/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg
index aaf2ac6d6..0a53f159f 100644
--- a/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg
@@ -96,21 +96,21 @@
.d2-2956067749 .color-AA4{color:#EDF0FD;}
.d2-2956067749 .color-AA5{color:#F7F8FE;}
.d2-2956067749 .color-AB4{color:#EDF0FD;}
- .d2-2956067749 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
+ .d2-2956067749 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
-n4n5
+n4n5
-n6n7
+n6n7
-n8n9
+n8n9
-n10aba
+n10aba
-baba
+baba
-bababab
+bababab
-abab
+abab
a
diff --git a/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg
index 70b2a01fe..130b3941d 100644
--- a/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg
@@ -96,21 +96,21 @@
.d2-1825809757 .color-AA4{color:#EDF0FD;}
.d2-1825809757 .color-AA5{color:#F7F8FE;}
.d2-1825809757 .color-AB4{color:#EDF0FD;}
- .d2-1825809757 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
+ .d2-1825809757 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
-n4n5
+n4n5
-n6n7
+n6n7
-n8n9
+n8n9
-n10aba
+n10aba
-baba
+baba
-bababab
+bababab
-abab
+abab
a
diff --git a/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg
index bbfab5a67..6a3d2d77e 100644
--- a/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg
@@ -96,21 +96,21 @@
.d2-1207717161 .color-AA4{color:#EDF0FD;}
.d2-1207717161 .color-AA5{color:#F7F8FE;}
.d2-1207717161 .color-AB4{color:#EDF0FD;}
- .d2-1207717161 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
+ .d2-1207717161 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3
-n4n5
+n4n5
-n6n7
+n6n7
-n8n9
+n8n9
-n10aba
+n10aba
-baba
+baba
-bababab
+bababab
-abab
+abab
a
diff --git a/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg
index cc74a4c08..cd93dc550 100644
--- a/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-1389951319 .color-AA4{color:#EDF0FD;}
.d2-1389951319 .color-AA5{color:#F7F8FE;}
.d2-1389951319 .color-AB4{color:#EDF0FD;}
- .d2-1389951319 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>あ
+ .d2-1389951319 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>あ
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg
index ef269e2f1..4fb36bc06 100644
--- a/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg
@@ -89,7 +89,7 @@
.d2-3688633770 .color-AA4{color:#EDF0FD;}
.d2-3688633770 .color-AA5{color:#F7F8FE;}
.d2-3688633770 .color-AB4{color:#EDF0FD;}
- .d2-3688633770 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>あ
+ .d2-3688633770 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>あ
\ No newline at end of file
diff --git a/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg b/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg
index a7cfde624..e398ef91c 100644
--- a/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg
@@ -111,7 +111,7 @@
-Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax
+Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax
ya_sequencea_shapesequencefinallybrow 1row 2row 3row 4row 5withasequence diagramyou canchild of is12341234scoreritemResponseitemessayRubricconceptsequencefrom one constant nearhaveanothergridhere andgrandchildscorerconceptessayRubricitemitemOutcomeitemResponse123continuenesting ororruns thisruns thisruns thisA straight edge across straight edge across nested typesdefault layoutdefault layoutdefault layout in styleto inside sequence diagramto inside sequence diagramto inside sequence diagramto constant nearfrom within constant nearto another getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)score
diff --git a/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg b/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg
index 39f3aef5c..5153d691b 100644
--- a/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg
@@ -111,7 +111,7 @@
-Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax
+Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax
ya_sequencea_shapesequencefinallybrow 1row 2row 3row 4row 5withasequence diagramyou canchild of is12341234scoreritemResponseitemessayRubricconceptsequencefrom one constant nearhaveanothergridhere andgrandchildscorerconceptessayRubricitemitemOutcomeitemResponse123continuenesting ororruns thisruns thisruns thisA straight edge across straight edge across nested typesdefault layoutdefault layoutdefault layout in styleto inside sequence diagramto inside sequence diagramto inside sequence diagramto constant nearfrom within constant nearto another getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)score
diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg
index 4b55d19c8..75d05960f 100644
--- a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg
+++ b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg
@@ -856,7 +856,7 @@
.d2-85991054 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
-networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestringA tale
+
networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestringA tale
- of
- two cities
@@ -907,7 +907,7 @@
city2 := City{Name: "CityB", Population: 1200000}
tellTale(city1, city2)
-}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist
+}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist
diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg
index d7227024a..f3c252556 100644
--- a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg
+++ b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg
@@ -856,7 +856,7 @@
.d2-3004075822 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
-networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestringA tale
+
networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestringA tale
- of
- two cities
@@ -907,7 +907,7 @@
city2 := City{Name: "CityB", Population: 1200000}
tellTale(city1, city2)
-}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist
+}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist
diff --git a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg
index a0e043c66..b61dc88e4 100644
--- a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg
+++ b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg
@@ -1167,7 +1167,7 @@
-通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する
+通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する
diff --git a/e2etests/testdata/themes/origami/elk/sketch.exp.svg b/e2etests/testdata/themes/origami/elk/sketch.exp.svg
index 35c7ba950..8975d077c 100644
--- a/e2etests/testdata/themes/origami/elk/sketch.exp.svg
+++ b/e2etests/testdata/themes/origami/elk/sketch.exp.svg
@@ -1167,7 +1167,7 @@
-通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する
+通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する
diff --git a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg
index 6d4f04257..3f80d84d4 100644
--- a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg
+++ b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg
@@ -882,7 +882,7 @@
-NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestringA TALE
+
NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestringA TALE
- OF
- TWO CITIES
@@ -933,7 +933,7 @@
city2 := City{Name: "CityB", Population: 1200000}
tellTale(city1, city2)
-}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
+}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
diff --git a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg
index 580cca876..4ba5bff39 100644
--- a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg
+++ b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg
@@ -882,7 +882,7 @@
-NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestringA TALE
+
NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestringA TALE
- OF
- TWO CITIES
@@ -933,7 +933,7 @@
city2 := City{Name: "CityB", Population: 1200000}
tellTale(city1, city2)
-}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
+}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
diff --git a/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg
index 176d18b51..a65708a8c 100644
--- a/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg
+++ b/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg
@@ -136,7 +136,7 @@
-NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST
+NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST
diff --git a/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg b/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg
index ab6815b16..f3e698f71 100644
--- a/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg
+++ b/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg
@@ -136,7 +136,7 @@
-NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST
+NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST
diff --git a/e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json b/e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json
new file mode 100644
index 000000000..70f9fabc9
--- /dev/null
+++ b/e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json
@@ -0,0 +1,100 @@
+{
+ "name": "",
+ "config": {
+ "sketch": false,
+ "themeID": 0,
+ "darkThemeID": null,
+ "pad": null,
+ "center": null,
+ "layoutEngine": null
+ },
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "a",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "multipleOpacity": 0.5,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg b/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg
new file mode 100644
index 000000000..e93b7433f
--- /dev/null
+++ b/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg
@@ -0,0 +1,95 @@
+a
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json b/e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json
new file mode 100644
index 000000000..a2dd469a4
--- /dev/null
+++ b/e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json
@@ -0,0 +1,100 @@
+{
+ "name": "",
+ "config": {
+ "sketch": false,
+ "themeID": 0,
+ "darkThemeID": null,
+ "pad": null,
+ "center": null,
+ "layoutEngine": null
+ },
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "a",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 22
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "multipleOpacity": 0.5,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg b/e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg
new file mode 100644
index 000000000..e8bb6453d
--- /dev/null
+++ b/e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg
@@ -0,0 +1,95 @@
+a
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg b/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg
index f60d0396f..3c92e45cc 100644
--- a/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg
+++ b/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg
@@ -144,7 +144,7 @@
-NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
+NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
diff --git a/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg b/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg
index 6b662c119..19db9b638 100644
--- a/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg
+++ b/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg
@@ -144,7 +144,7 @@
-NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
+NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST
diff --git a/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg b/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg
index 8b110b2a4..b1d3bff32 100644
--- a/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg
+++ b/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg
@@ -103,7 +103,7 @@
.d2-586632521 .color-AA4{color:#42A5F5;}
.d2-586632521 .color-AA5{color:#90CAF9;}
.d2-586632521 .color-AB4{color:#F44336;}
- .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
+ .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
diff --git a/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg b/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg
index a702e2a78..3894feeda 100644
--- a/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg
+++ b/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg
@@ -103,7 +103,7 @@
.d2-2010673424 .color-AA4{color:#42A5F5;}
.d2-2010673424 .color-AA5{color:#90CAF9;}
.d2-2010673424 .color-AB4{color:#F44336;}
- .d2-2010673424 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
+ .d2-2010673424 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access
diff --git a/e2etests/txtar.txt b/e2etests/txtar.txt
index 19a0c532c..0f77ad071 100644
--- a/e2etests/txtar.txt
+++ b/e2etests/txtar.txt
@@ -1203,3 +1203,11 @@ customer4: |md
| {
shape: c4-person
}
+
+-- multiple opacity --
+a: {
+ style: {
+ multiple: true
+ multiple.opacity: 0.5
+ }
+}