diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go
index 434b97bc2..3fb83496c 100644
--- a/d2renderers/d2svg/d2svg.go
+++ b/d2renderers/d2svg/d2svg.go
@@ -1732,23 +1732,31 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape
render = strings.ReplaceAll(render, "
", "
")
mdEl := d2themes.NewThemableElement("div", inlineTheme)
- mdEl.ClassName = "md"
mdEl.Content = render
// We have to set with styles since within foreignObject, we're in html
// land and not SVG attributes
var styles []string
+ var classes []string = []string{"md"}
if targetShape.FontSize != textmeasure.MarkdownFontSize {
styles = append(styles, fmt.Sprintf("font-size:%vpx", targetShape.FontSize))
}
+
if targetShape.Fill != "" && targetShape.Fill != "transparent" {
- styles = append(styles, fmt.Sprintf(`background-color:%s`, targetShape.Fill))
+ if color.IsThemeColor(targetShape.Fill) {
+ classes = append(classes, fmt.Sprintf("fill-%s", targetShape.Fill))
+ } else {
+ styles = append(styles, fmt.Sprintf(`background-color:%s`, targetShape.Fill))
+ }
}
+
if !color.IsThemeColor(targetShape.Color) {
styles = append(styles, fmt.Sprintf(`color:%s`, targetShape.Color))
- } else if inlineTheme != nil {
- styles = append(styles, fmt.Sprintf(`color:%s`, d2themes.ResolveThemeColor(*inlineTheme, targetShape.Color)))
+ } else {
+ classes = append(classes, fmt.Sprintf("color-%s", targetShape.Color))
}
+
+ mdEl.ClassName = strings.Join(classes, " ")
// When using dark theme, inlineTheme is nil and we rely on CSS variables
mdEl.Style = strings.Join(styles, ";")
@@ -1948,6 +1956,7 @@ func EmbedFonts(buf *bytes.Buffer, diagramHash, source string, fontFamily *d2fon
`class="text"`,
`class="text `,
`class="md"`,
+ `class="md `,
},
fmt.Sprintf(`
.%s .text {
@@ -1967,7 +1976,10 @@ func EmbedFonts(buf *bytes.Buffer, diagramHash, source string, fontFamily *d2fon
appendOnTrigger(
buf,
source,
- []string{`class="md"`},
+ []string{
+ `class="md"`,
+ `class="md `,
+ },
fmt.Sprintf(`
@font-face {
font-family: %s-font-semibold;
diff --git a/d2renderers/d2svg/github-markdown.css b/d2renderers/d2svg/github-markdown.css
index c271b67d7..53a7e2102 100644
--- a/d2renderers/d2svg/github-markdown.css
+++ b/d2renderers/d2svg/github-markdown.css
@@ -26,7 +26,6 @@
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
margin: 0;
- color: var(--color-fg-default);
background-color: transparent; /* we don't want to define the background color */
font-family: "font-regular";
font-size: 16px;
diff --git a/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json b/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json
index 4b80ded31..b8a4d8dd5 100644
--- a/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json
+++ b/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json
@@ -3,7 +3,7 @@
"config": {
"sketch": false,
"themeID": 303,
- "darkThemeID": null,
+ "darkThemeID": 200,
"pad": null,
"center": null,
"layoutEngine": null
diff --git a/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg b/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg
index fb2279b45..e3cab1bd5 100644
--- a/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg
+++ b/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg
@@ -1,20 +1,20 @@
-