mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
Cause: the interior styles were blended over the layer body with the content's coverage folded into their opacity. On an edge pixel at 50 % coverage a Gradient or Color Overlay went over the half-transparent body as a half-transparent layer, so the result kept a quarter of the layer's own fill and its alpha rose to 0.75: a light rim (the white fill showing through) on styled text. Fix: blend_clipped composites the interior styles (Gradient Overlay, Color Overlay, Satin, Inner Glow, Inner Shadow and the inside of Stroke) onto the layer within its shape: the body is divided by the content coverage, blended with the style at its own opacity, and multiplied back, so the alpha is kept and an edge pixel mixes the style with the layer's colour inside the shape only, as a clipped layer does. Fill Opacity and Blend Interior Styles as Group behave as before. Tests: tests_styles::overlays_leave_antialiased_edges_clean (a masked square with half-covered edge columns; Color Overlay, Gradient Overlay and an inside Stroke now match a plain layer of the overlay colour; Color Overlay's edge was 0.41 red against 0.23 before). Co-Authored-By: Claude Opus 5.5 <[email protected]>