diff --git a/d2themes/sketch_overlay.go b/d2themes/sketch_overlay.go index f1557c623..65ccde356 100644 --- a/d2themes/sketch_overlay.go +++ b/d2themes/sketch_overlay.go @@ -24,9 +24,15 @@ func (o *ThemableSketchOverlay) Render() (string, error) { if color.IsThemeColor(o.fill) { o.el.ClassName += fmt.Sprintf(" sketch-overlay-%s", o.fill) // e.g. sketch-overlay-B3 } else { - lc, err := color.LuminanceCategory(o.fill) - if err != nil { - return "", err + var lc string + if color.IsUrlGradientId(o.fill) { + lc = "normal" + } else { + var err error + lc, err = color.LuminanceCategory(o.fill) + if err != nil { + return "", err + } } o.el.ClassName += fmt.Sprintf(" sketch-overlay-%s", lc) // e.g. sketch-overlay-dark } diff --git a/lib/color/gradient.go b/lib/color/gradient.go index 29f29acc3..6b308b440 100644 --- a/lib/color/gradient.go +++ b/lib/color/gradient.go @@ -246,3 +246,9 @@ var GradientRegex = regexp.MustCompile(`^(linear|radial)-gradient\((.+)\)$`) func IsGradient(color string) bool { return GradientRegex.MatchString(color) } + +var UrlGradientId = regexp.MustCompile(`^url\('#grad-[a-f0-9]{40}'\)$`) + +func IsUrlGradientId(color string) bool { + return UrlGradientId.MatchString(color) +}