From d614b4902f1f78c1779d8d73861bb3494871a9db Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 18 Feb 2026 07:57:13 +0100 Subject: [PATCH] :bug: Fix blur 0 artifacts --- render-wasm/src/shapes/shadows.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/render-wasm/src/shapes/shadows.rs b/render-wasm/src/shapes/shadows.rs index 71e09a493c..e39a1b907d 100644 --- a/render-wasm/src/shapes/shadows.rs +++ b/render-wasm/src/shapes/shadows.rs @@ -48,6 +48,17 @@ impl Shadow { } pub fn get_drop_shadow_filter(&self) -> Option { + if self.blur <= 0.0 && self.spread <= 0.0 { + // Avoid Skia's DropShadowOnly path for hard shadows because it can + // introduce soft alpha on the contour even with zero blur. + let filter = image_filters::offset((self.offset.0, self.offset.1), None, None); + return image_filters::color_filter( + skia::color_filters::blend(self.color, skia::BlendMode::SrcIn).unwrap(), + filter, + None, + ); + } + let mut filter = image_filters::drop_shadow_only( (self.offset.0, self.offset.1), (self.blur, self.blur),