From 8f64c02dd8dc40f7fd7a8212bc5a69881dc7d27a Mon Sep 17 00:00:00 2001 From: melsonic Date: Tue, 8 Apr 2025 20:33:10 +0530 Subject: [PATCH] fix: made gradients work in sketch mode --- d2themes/sketch_overlay.go | 12 +++++++++--- lib/color/gradient.go | 6 ++++++ 2 files changed, 15 insertions(+), 3 deletions(-) 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) +}