Merge pull request #1006 from Poivey/border-radius-percent

Accept higher value in border-radius to be able to render a pill shaped rectangle
This commit is contained in:
Alexander Wang 2023-04-20 09:35:59 -07:00 committed by GitHub
commit 20c945248b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 765 additions and 18 deletions

View file

@ -2257,6 +2257,14 @@ layers: {
}`,
expErr: `d2/testdata/d2compiler/TestCompile/link-board-underscore-not-found.d2:7:9: invalid underscore usage`,
},
{
name: "border-radius-negative",
text: `x
x: {
style.border-radius: -1
}`,
expErr: `d2/testdata/d2compiler/TestCompile/border-radius-negative.d2:3:24: expected "border-radius" to be a number greater or equal to 0`,
},
{
name: "text-transform",
text: `direction: right

View file

@ -271,8 +271,8 @@ func (s *Style) Apply(key, value string) error {
break
}
f, err := strconv.Atoi(value)
if err != nil || (f < 0 || f > 20) {
return errors.New(`expected "border-radius" to be a number between 0 and 20`)
if err != nil || (f < 0) {
return errors.New(`expected "border-radius" to be a number greater or equal to 0`)
}
s.BorderRadius.Value = value
case "shadow":

View file

@ -990,11 +990,9 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
// TODO should standardize "" to rectangle
case d2target.ShapeRectangle, d2target.ShapeSequenceDiagram, "":
// TODO use Rx property of NewThemableElement instead
// DO
rx := ""
borderRadius := math.MaxFloat64
if targetShape.BorderRadius != 0 {
rx = fmt.Sprintf(` rx="%d"`, targetShape.BorderRadius)
borderRadius = float64(targetShape.BorderRadius)
}
if targetShape.ThreeDee {
fmt.Fprint(writer, render3dRect(targetShape))
@ -1009,7 +1007,7 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
el.Fill = fill
el.Stroke = stroke
el.Style = style
el.Attributes = rx
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
}
if sketchRunner != nil {
@ -1028,7 +1026,7 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
el.FillPattern = targetShape.FillPattern
el.Stroke = stroke
el.Style = style
el.Attributes = rx
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
}
} else {
@ -1042,7 +1040,7 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
el.FillPattern = targetShape.FillPattern
el.Stroke = stroke
el.Style = style
el.Attributes = rx
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
el = d2themes.NewThemableElement("rect")
@ -1053,7 +1051,7 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
el.Fill = fill
el.Stroke = stroke
el.Style = style
el.Attributes = rx
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
}
if sketchRunner != nil {
@ -1072,7 +1070,7 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
el.FillPattern = targetShape.FillPattern
el.Stroke = stroke
el.Style = style
el.Attributes = rx
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
el = d2themes.NewThemableElement("rect")
@ -1083,7 +1081,7 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
el.Fill = "transparent"
el.Stroke = stroke
el.Style = style
el.Attributes = rx
el.Rx = borderRadius
fmt.Fprint(writer, el.Render())
}
}

View file

@ -140,10 +140,10 @@ func (el *ThemableElement) Render() string {
out += fmt.Sprintf(` r="%f"`, el.R)
}
if el.Rx != math.MaxFloat64 {
out += fmt.Sprintf(` rx="%f"`, el.Rx)
out += fmt.Sprintf(` rx="%f"`, calculateAxisRadius(el.Rx, el.Width, el.Height))
}
if el.Ry != math.MaxFloat64 {
out += fmt.Sprintf(` ry="%f"`, el.Ry)
out += fmt.Sprintf(` ry="%f"`, calculateAxisRadius(el.Ry, el.Width, el.Height))
}
if el.Cx != math.MaxFloat64 {
out += fmt.Sprintf(` cx="%f"`, el.Cx)
@ -227,3 +227,9 @@ func (el *ThemableElement) Render() string {
}
return out
}
func calculateAxisRadius(borderRadius, width, height float64) float64 {
minimumSideSize := math.Min(width, height)
maximumBorderRadiusValue := minimumSideSize / 2.0
return math.Min(borderRadius, maximumBorderRadiusValue)
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -2445,6 +2445,29 @@ three-dee: {
style.border-radius: 6
style.3d: true
}
`,
},
{
name: "border-radius-pill-shape",
script: `
x: {
style.border-radius: 999
}
y: {
style.border-radius: 999
}
multiple2: {
style.border-radius: 999
style.multiple: true
}
double: {
style.border-radius: 999
style.double-border: true
}
three-dee: {
style.border-radius: 999
style.3d: true
}
`,
},
{

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,253 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "x",
"type": "rectangle",
"pos": {
"x": 0,
"y": 0
},
"width": 53,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "x",
"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
},
{
"id": "y",
"type": "rectangle",
"pos": {
"x": 113,
"y": 0
},
"width": 54,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "y",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 9,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "multiple2",
"type": "rectangle",
"pos": {
"x": 227,
"y": 0
},
"width": 112,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": true,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "multiple2",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 67,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "double",
"type": "rectangle",
"pos": {
"x": 399,
"y": 0
},
"width": 94,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": true,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "double",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 49,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "three-dee",
"type": "rectangle",
"pos": {
"x": 553,
"y": 0
},
"width": 114,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": true,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "three-dee",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 69,
"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": "",
"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
}
}

View file

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.4.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 685 84"><svg id="d2-svg" class="d2-841842780" width="685" height="84" viewBox="-1 -17 685 84"><rect x="-1.000000" y="-17.000000" width="685.000000" height="84.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-841842780 .text-bold {
font-family: "d2-841842780-font-bold";
}
@font-face {
font-family: d2-841842780-font-bold;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-841842780 .fill-N1{fill:#0A0F25;}
.d2-841842780 .fill-N2{fill:#676C7E;}
.d2-841842780 .fill-N3{fill:#9499AB;}
.d2-841842780 .fill-N4{fill:#CFD2DD;}
.d2-841842780 .fill-N5{fill:#DEE1EB;}
.d2-841842780 .fill-N6{fill:#EEF1F8;}
.d2-841842780 .fill-N7{fill:#FFFFFF;}
.d2-841842780 .fill-B1{fill:#0D32B2;}
.d2-841842780 .fill-B2{fill:#0D32B2;}
.d2-841842780 .fill-B3{fill:#E3E9FD;}
.d2-841842780 .fill-B4{fill:#E3E9FD;}
.d2-841842780 .fill-B5{fill:#EDF0FD;}
.d2-841842780 .fill-B6{fill:#F7F8FE;}
.d2-841842780 .fill-AA2{fill:#4A6FF3;}
.d2-841842780 .fill-AA4{fill:#EDF0FD;}
.d2-841842780 .fill-AA5{fill:#F7F8FE;}
.d2-841842780 .fill-AB4{fill:#EDF0FD;}
.d2-841842780 .fill-AB5{fill:#F7F8FE;}
.d2-841842780 .stroke-N1{stroke:#0A0F25;}
.d2-841842780 .stroke-N2{stroke:#676C7E;}
.d2-841842780 .stroke-N3{stroke:#9499AB;}
.d2-841842780 .stroke-N4{stroke:#CFD2DD;}
.d2-841842780 .stroke-N5{stroke:#DEE1EB;}
.d2-841842780 .stroke-N6{stroke:#EEF1F8;}
.d2-841842780 .stroke-N7{stroke:#FFFFFF;}
.d2-841842780 .stroke-B1{stroke:#0D32B2;}
.d2-841842780 .stroke-B2{stroke:#0D32B2;}
.d2-841842780 .stroke-B3{stroke:#E3E9FD;}
.d2-841842780 .stroke-B4{stroke:#E3E9FD;}
.d2-841842780 .stroke-B5{stroke:#EDF0FD;}
.d2-841842780 .stroke-B6{stroke:#F7F8FE;}
.d2-841842780 .stroke-AA2{stroke:#4A6FF3;}
.d2-841842780 .stroke-AA4{stroke:#EDF0FD;}
.d2-841842780 .stroke-AA5{stroke:#F7F8FE;}
.d2-841842780 .stroke-AB4{stroke:#EDF0FD;}
.d2-841842780 .stroke-AB5{stroke:#F7F8FE;}
.d2-841842780 .background-color-N1{background-color:#0A0F25;}
.d2-841842780 .background-color-N2{background-color:#676C7E;}
.d2-841842780 .background-color-N3{background-color:#9499AB;}
.d2-841842780 .background-color-N4{background-color:#CFD2DD;}
.d2-841842780 .background-color-N5{background-color:#DEE1EB;}
.d2-841842780 .background-color-N6{background-color:#EEF1F8;}
.d2-841842780 .background-color-N7{background-color:#FFFFFF;}
.d2-841842780 .background-color-B1{background-color:#0D32B2;}
.d2-841842780 .background-color-B2{background-color:#0D32B2;}
.d2-841842780 .background-color-B3{background-color:#E3E9FD;}
.d2-841842780 .background-color-B4{background-color:#E3E9FD;}
.d2-841842780 .background-color-B5{background-color:#EDF0FD;}
.d2-841842780 .background-color-B6{background-color:#F7F8FE;}
.d2-841842780 .background-color-AA2{background-color:#4A6FF3;}
.d2-841842780 .background-color-AA4{background-color:#EDF0FD;}
.d2-841842780 .background-color-AA5{background-color:#F7F8FE;}
.d2-841842780 .background-color-AB4{background-color:#EDF0FD;}
.d2-841842780 .background-color-AB5{background-color:#F7F8FE;}
.d2-841842780 .color-N1{color:#0A0F25;}
.d2-841842780 .color-N2{color:#676C7E;}
.d2-841842780 .color-N3{color:#9499AB;}
.d2-841842780 .color-N4{color:#CFD2DD;}
.d2-841842780 .color-N5{color:#DEE1EB;}
.d2-841842780 .color-N6{color:#EEF1F8;}
.d2-841842780 .color-N7{color:#FFFFFF;}
.d2-841842780 .color-B1{color:#0D32B2;}
.d2-841842780 .color-B2{color:#0D32B2;}
.d2-841842780 .color-B3{color:#E3E9FD;}
.d2-841842780 .color-B4{color:#E3E9FD;}
.d2-841842780 .color-B5{color:#EDF0FD;}
.d2-841842780 .color-B6{color:#F7F8FE;}
.d2-841842780 .color-AA2{color:#4A6FF3;}
.d2-841842780 .color-AA4{color:#EDF0FD;}
.d2-841842780 .color-AA5{color:#F7F8FE;}
.d2-841842780 .color-AB4{color:#EDF0FD;}
.d2-841842780 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ><rect x="0.000000" y="0.000000" width="53.000000" height="66.000000" rx="26.500000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="26.500000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="113.000000" y="0.000000" width="54.000000" height="66.000000" rx="27.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="140.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="multiple2"><g class="shape" ><rect x="237.000000" y="-10.000000" width="112.000000" height="66.000000" rx="33.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="227.000000" y="0.000000" width="112.000000" height="66.000000" rx="33.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="283.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">multiple2</text></g><g id="double"><g class="shape" ><rect x="399.000000" y="0.000000" width="94.000000" height="66.000000" rx="33.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="404.000000" y="5.000000" width="84.000000" height="56.000000" rx="28.000000" fill="transparent" class=" stroke-B1" style="stroke-width:2;" /></g><text x="446.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">double</text></g><g id="three-dee"><g class="shape" ><defs><mask id="border-mask-three-dee" maskUnits="userSpaceOnUse" x="553" y="-15" width="129" height="81">
<rect x="553" y="-15" width="129" height="81" fill="white"></rect>
<path d="M553,0L568,-15L682,-15L682,51L667,66L553,66L553,0L667,0L667,66M667,0L682,-15" style="stroke-width:2;;stroke:#000;fill:none;opacity:1;"/></mask></defs><rect x="553.000000" y="0.000000" width="114.000000" height="66.000000" mask="url(#border-mask-three-dee)" stroke="none" class=" fill-B6" style="stroke-width:2;" /><polygon mask="url(#border-mask-three-dee)" points="553,0 568,-15 682,-15 682,51 667,66 667,0" class=" fill-B5" style="stroke-width:2;" /><path d="M553,0 L568,-15 L682,-15 L682,51 L667,66 L553,66 L553,0 L667,0 L667,66 M667,0 L682,-15" fill="none" class=" stroke-B1" style="stroke-width:2;" /></g><text x="610.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">three-dee</text></g><mask id="d2-841842780" maskUnits="userSpaceOnUse" x="-1" y="-17" width="685" height="84">
<rect x="-1" y="-17" width="685" height="84" fill="white"></rect>
</mask></svg></svg>

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,253 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "x",
"type": "rectangle",
"pos": {
"x": 12,
"y": 12
},
"width": 53,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "x",
"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
},
{
"id": "y",
"type": "rectangle",
"pos": {
"x": 85,
"y": 12
},
"width": 54,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "y",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 9,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "multiple2",
"type": "rectangle",
"pos": {
"x": 159,
"y": 12
},
"width": 112,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": true,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "multiple2",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 67,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "double",
"type": "rectangle",
"pos": {
"x": 291,
"y": 12
},
"width": 94,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": true,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "double",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 49,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "three-dee",
"type": "rectangle",
"pos": {
"x": 405,
"y": 12
},
"width": 114,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 999,
"fill": "B6",
"stroke": "B1",
"shadow": false,
"3d": true,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "three-dee",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 69,
"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": "",
"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
}
}

View file

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.4.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 525 84"><svg id="d2-svg" class="d2-2772170457" width="525" height="84" viewBox="11 -5 525 84"><rect x="11.000000" y="-5.000000" width="525.000000" height="84.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-2772170457 .text-bold {
font-family: "d2-2772170457-font-bold";
}
@font-face {
font-family: d2-2772170457-font-bold;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-2772170457 .fill-N1{fill:#0A0F25;}
.d2-2772170457 .fill-N2{fill:#676C7E;}
.d2-2772170457 .fill-N3{fill:#9499AB;}
.d2-2772170457 .fill-N4{fill:#CFD2DD;}
.d2-2772170457 .fill-N5{fill:#DEE1EB;}
.d2-2772170457 .fill-N6{fill:#EEF1F8;}
.d2-2772170457 .fill-N7{fill:#FFFFFF;}
.d2-2772170457 .fill-B1{fill:#0D32B2;}
.d2-2772170457 .fill-B2{fill:#0D32B2;}
.d2-2772170457 .fill-B3{fill:#E3E9FD;}
.d2-2772170457 .fill-B4{fill:#E3E9FD;}
.d2-2772170457 .fill-B5{fill:#EDF0FD;}
.d2-2772170457 .fill-B6{fill:#F7F8FE;}
.d2-2772170457 .fill-AA2{fill:#4A6FF3;}
.d2-2772170457 .fill-AA4{fill:#EDF0FD;}
.d2-2772170457 .fill-AA5{fill:#F7F8FE;}
.d2-2772170457 .fill-AB4{fill:#EDF0FD;}
.d2-2772170457 .fill-AB5{fill:#F7F8FE;}
.d2-2772170457 .stroke-N1{stroke:#0A0F25;}
.d2-2772170457 .stroke-N2{stroke:#676C7E;}
.d2-2772170457 .stroke-N3{stroke:#9499AB;}
.d2-2772170457 .stroke-N4{stroke:#CFD2DD;}
.d2-2772170457 .stroke-N5{stroke:#DEE1EB;}
.d2-2772170457 .stroke-N6{stroke:#EEF1F8;}
.d2-2772170457 .stroke-N7{stroke:#FFFFFF;}
.d2-2772170457 .stroke-B1{stroke:#0D32B2;}
.d2-2772170457 .stroke-B2{stroke:#0D32B2;}
.d2-2772170457 .stroke-B3{stroke:#E3E9FD;}
.d2-2772170457 .stroke-B4{stroke:#E3E9FD;}
.d2-2772170457 .stroke-B5{stroke:#EDF0FD;}
.d2-2772170457 .stroke-B6{stroke:#F7F8FE;}
.d2-2772170457 .stroke-AA2{stroke:#4A6FF3;}
.d2-2772170457 .stroke-AA4{stroke:#EDF0FD;}
.d2-2772170457 .stroke-AA5{stroke:#F7F8FE;}
.d2-2772170457 .stroke-AB4{stroke:#EDF0FD;}
.d2-2772170457 .stroke-AB5{stroke:#F7F8FE;}
.d2-2772170457 .background-color-N1{background-color:#0A0F25;}
.d2-2772170457 .background-color-N2{background-color:#676C7E;}
.d2-2772170457 .background-color-N3{background-color:#9499AB;}
.d2-2772170457 .background-color-N4{background-color:#CFD2DD;}
.d2-2772170457 .background-color-N5{background-color:#DEE1EB;}
.d2-2772170457 .background-color-N6{background-color:#EEF1F8;}
.d2-2772170457 .background-color-N7{background-color:#FFFFFF;}
.d2-2772170457 .background-color-B1{background-color:#0D32B2;}
.d2-2772170457 .background-color-B2{background-color:#0D32B2;}
.d2-2772170457 .background-color-B3{background-color:#E3E9FD;}
.d2-2772170457 .background-color-B4{background-color:#E3E9FD;}
.d2-2772170457 .background-color-B5{background-color:#EDF0FD;}
.d2-2772170457 .background-color-B6{background-color:#F7F8FE;}
.d2-2772170457 .background-color-AA2{background-color:#4A6FF3;}
.d2-2772170457 .background-color-AA4{background-color:#EDF0FD;}
.d2-2772170457 .background-color-AA5{background-color:#F7F8FE;}
.d2-2772170457 .background-color-AB4{background-color:#EDF0FD;}
.d2-2772170457 .background-color-AB5{background-color:#F7F8FE;}
.d2-2772170457 .color-N1{color:#0A0F25;}
.d2-2772170457 .color-N2{color:#676C7E;}
.d2-2772170457 .color-N3{color:#9499AB;}
.d2-2772170457 .color-N4{color:#CFD2DD;}
.d2-2772170457 .color-N5{color:#DEE1EB;}
.d2-2772170457 .color-N6{color:#EEF1F8;}
.d2-2772170457 .color-N7{color:#FFFFFF;}
.d2-2772170457 .color-B1{color:#0D32B2;}
.d2-2772170457 .color-B2{color:#0D32B2;}
.d2-2772170457 .color-B3{color:#E3E9FD;}
.d2-2772170457 .color-B4{color:#E3E9FD;}
.d2-2772170457 .color-B5{color:#EDF0FD;}
.d2-2772170457 .color-B6{color:#F7F8FE;}
.d2-2772170457 .color-AA2{color:#4A6FF3;}
.d2-2772170457 .color-AA4{color:#EDF0FD;}
.d2-2772170457 .color-AA5{color:#F7F8FE;}
.d2-2772170457 .color-AB4{color:#EDF0FD;}
.d2-2772170457 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ><rect x="12.000000" y="12.000000" width="53.000000" height="66.000000" rx="26.500000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="38.500000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="85.000000" y="12.000000" width="54.000000" height="66.000000" rx="27.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="112.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="multiple2"><g class="shape" ><rect x="169.000000" y="2.000000" width="112.000000" height="66.000000" rx="33.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="159.000000" y="12.000000" width="112.000000" height="66.000000" rx="33.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="215.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">multiple2</text></g><g id="double"><g class="shape" ><rect x="291.000000" y="12.000000" width="94.000000" height="66.000000" rx="33.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="296.000000" y="17.000000" width="84.000000" height="56.000000" rx="28.000000" fill="transparent" class=" stroke-B1" style="stroke-width:2;" /></g><text x="338.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">double</text></g><g id="three-dee"><g class="shape" ><defs><mask id="border-mask-three-dee" maskUnits="userSpaceOnUse" x="405" y="-3" width="129" height="81">
<rect x="405" y="-3" width="129" height="81" fill="white"></rect>
<path d="M405,12L420,-3L534,-3L534,63L519,78L405,78L405,12L519,12L519,78M519,12L534,-3" style="stroke-width:2;;stroke:#000;fill:none;opacity:1;"/></mask></defs><rect x="405.000000" y="12.000000" width="114.000000" height="66.000000" mask="url(#border-mask-three-dee)" stroke="none" class=" fill-B6" style="stroke-width:2;" /><polygon mask="url(#border-mask-three-dee)" points="405,12 420,-3 534,-3 534,63 519,78 519,12" class=" fill-B5" style="stroke-width:2;" /><path d="M405,12 L420,-3 L534,-3 L534,63 L519,78 L405,78 L405,12 L519,12 L519,78 M519,12 L534,-3" fill="none" class=" stroke-B1" style="stroke-width:2;" /></g><text x="462.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">three-dee</text></g><mask id="d2-2772170457" maskUnits="userSpaceOnUse" x="11" y="-5" width="525" height="84">
<rect x="11" y="-5" width="525" height="84" fill="white"></rect>
</mask></svg></svg>

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -89,7 +89,7 @@
.d2-441686790 .color-AA4{color:#EDF0FD;}
.d2-441686790 .color-AA5{color:#F7F8FE;}
.d2-441686790 .color-AB4{color:#EDF0FD;}
.d2-441686790 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ><rect x="0.000000" y="0.000000" width="53.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="4" /></g><text x="26.500000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="113.000000" y="0.000000" width="54.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="10" /></g><text x="140.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="multiple2"><g class="shape" ><rect x="237.000000" y="-10.000000" width="112.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="6" /><rect x="227.000000" y="0.000000" width="112.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="6" /></g><text x="283.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">multiple2</text></g><g id="double"><g class="shape" ><rect x="399.000000" y="0.000000" width="94.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="6" /><rect x="404.000000" y="5.000000" width="84.000000" height="56.000000" fill="transparent" class=" stroke-B1" style="stroke-width:2;" rx="6" /></g><text x="446.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">double</text></g><g id="three-dee"><g class="shape" ><defs><mask id="border-mask-three-dee" maskUnits="userSpaceOnUse" x="553" y="-15" width="129" height="81">
.d2-441686790 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ><rect x="0.000000" y="0.000000" width="53.000000" height="66.000000" rx="4.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="26.500000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="113.000000" y="0.000000" width="54.000000" height="66.000000" rx="10.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="140.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="multiple2"><g class="shape" ><rect x="237.000000" y="-10.000000" width="112.000000" height="66.000000" rx="6.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="227.000000" y="0.000000" width="112.000000" height="66.000000" rx="6.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="283.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">multiple2</text></g><g id="double"><g class="shape" ><rect x="399.000000" y="0.000000" width="94.000000" height="66.000000" rx="6.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="404.000000" y="5.000000" width="84.000000" height="56.000000" rx="6.000000" fill="transparent" class=" stroke-B1" style="stroke-width:2;" /></g><text x="446.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">double</text></g><g id="three-dee"><g class="shape" ><defs><mask id="border-mask-three-dee" maskUnits="userSpaceOnUse" x="553" y="-15" width="129" height="81">
<rect x="553" y="-15" width="129" height="81" fill="white"></rect>
<path d="M553,0L568,-15L682,-15L682,51L667,66L553,66L553,0L667,0L667,66M667,0L682,-15" style="stroke-width:2;;stroke:#000;fill:none;opacity:1;"/></mask></defs><rect x="553.000000" y="0.000000" width="114.000000" height="66.000000" mask="url(#border-mask-three-dee)" stroke="none" class=" fill-B6" style="stroke-width:2;" /><polygon mask="url(#border-mask-three-dee)" points="553,0 568,-15 682,-15 682,51 667,66 667,0" class=" fill-B5" style="stroke-width:2;" /><path d="M553,0 L568,-15 L682,-15 L682,51 L667,66 L553,66 L553,0 L667,0 L667,66 M667,0 L682,-15" fill="none" class=" stroke-B1" style="stroke-width:2;" /></g><text x="610.000000" y="38.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">three-dee</text></g><mask id="d2-441686790" maskUnits="userSpaceOnUse" x="-1" y="-17" width="685" height="84">
<rect x="-1" y="-17" width="685" height="84" fill="white"></rect>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -89,7 +89,7 @@
.d2-2541858325 .color-AA4{color:#EDF0FD;}
.d2-2541858325 .color-AA5{color:#F7F8FE;}
.d2-2541858325 .color-AB4{color:#EDF0FD;}
.d2-2541858325 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ><rect x="12.000000" y="12.000000" width="53.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="4" /></g><text x="38.500000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="85.000000" y="12.000000" width="54.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="10" /></g><text x="112.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="multiple2"><g class="shape" ><rect x="169.000000" y="2.000000" width="112.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="6" /><rect x="159.000000" y="12.000000" width="112.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="6" /></g><text x="215.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">multiple2</text></g><g id="double"><g class="shape" ><rect x="291.000000" y="12.000000" width="94.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" rx="6" /><rect x="296.000000" y="17.000000" width="84.000000" height="56.000000" fill="transparent" class=" stroke-B1" style="stroke-width:2;" rx="6" /></g><text x="338.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">double</text></g><g id="three-dee"><g class="shape" ><defs><mask id="border-mask-three-dee" maskUnits="userSpaceOnUse" x="405" y="-3" width="129" height="81">
.d2-2541858325 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="x"><g class="shape" ><rect x="12.000000" y="12.000000" width="53.000000" height="66.000000" rx="4.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="38.500000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="85.000000" y="12.000000" width="54.000000" height="66.000000" rx="10.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="112.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="multiple2"><g class="shape" ><rect x="169.000000" y="2.000000" width="112.000000" height="66.000000" rx="6.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="159.000000" y="12.000000" width="112.000000" height="66.000000" rx="6.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="215.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">multiple2</text></g><g id="double"><g class="shape" ><rect x="291.000000" y="12.000000" width="94.000000" height="66.000000" rx="6.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /><rect x="296.000000" y="17.000000" width="84.000000" height="56.000000" rx="6.000000" fill="transparent" class=" stroke-B1" style="stroke-width:2;" /></g><text x="338.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">double</text></g><g id="three-dee"><g class="shape" ><defs><mask id="border-mask-three-dee" maskUnits="userSpaceOnUse" x="405" y="-3" width="129" height="81">
<rect x="405" y="-3" width="129" height="81" fill="white"></rect>
<path d="M405,12L420,-3L534,-3L534,63L519,78L405,78L405,12L519,12L519,78M519,12L534,-3" style="stroke-width:2;;stroke:#000;fill:none;opacity:1;"/></mask></defs><rect x="405.000000" y="12.000000" width="114.000000" height="66.000000" mask="url(#border-mask-three-dee)" stroke="none" class=" fill-B6" style="stroke-width:2;" /><polygon mask="url(#border-mask-three-dee)" points="405,12 420,-3 534,-3 534,63 519,78 519,12" class=" fill-B5" style="stroke-width:2;" /><path d="M405,12 L420,-3 L534,-3 L534,63 L519,78 L405,78 L405,12 L519,12 L519,78 M519,12 L534,-3" fill="none" class=" stroke-B1" style="stroke-width:2;" /></g><text x="462.000000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">three-dee</text></g><mask id="d2-2541858325" maskUnits="userSpaceOnUse" x="11" y="-5" width="525" height="84">
<rect x="11" y="-5" width="525" height="84" fill="white"></rect>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,12 @@
{
"graph": null,
"err": {
"ioerr": null,
"errs": [
{
"range": "d2/testdata/d2compiler/TestCompile/border-radius-negative.d2,2:23:30-2:25:32",
"errmsg": "d2/testdata/d2compiler/TestCompile/border-radius-negative.d2:3:24: expected \"border-radius\" to be a number greater or equal to 0"
}
]
}
}