Skip to content

Commit 01506c5

Browse files
Copilotjongalloway
andauthored
Apply review feedback: clamp ambient-shadow opacity, fix neumorphic offsets, use IsNullOrWhiteSpace for shadow style
Agent-Logs-Url: https://github.com/jongalloway/DiagramForge/sessions/e947f672-253e-4984-bccb-969bbe3c7eca Co-authored-by: jongalloway <68539+jongalloway@users.noreply.github.com>
1 parent ca1a52b commit 01506c5

3 files changed

Lines changed: 5 additions & 3 deletions

File tree

src/DiagramForge/DiagramRenderer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,8 @@ private static void ApplyShadowStyle(Theme theme, string shadowStyle)
548548
theme.UseNodeShadows = true;
549549
theme.ShadowOpacity = Math.Clamp(theme.ShadowOpacity <= 0 ? 0.50 : theme.ShadowOpacity, 0.30, 0.70);
550550
theme.ShadowBlur = Math.Clamp(theme.ShadowBlur <= 0 ? 4.00 : theme.ShadowBlur, 2.00, 6.00);
551+
theme.ShadowOffsetX = 0;
552+
theme.ShadowOffsetY = 0;
551553
break;
552554
case "frosted-glass":
553555
theme.ShadowStyle = "frosted-glass";

src/DiagramForge/Rendering/SvgNodeWriter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ internal static void AppendNode(StringBuilder sb, Node node, Theme theme, int no
6565
&& textOnlyObj is bool isTextOnly
6666
&& isTextOnly;
6767
bool applyNodeShadow = theme.UseNodeShadows
68-
&& !string.IsNullOrEmpty(theme.ShadowStyle)
69-
&& !string.Equals(theme.ShadowStyle, "none", StringComparison.OrdinalIgnoreCase)
68+
&& !string.IsNullOrWhiteSpace(theme.ShadowStyle)
69+
&& !string.Equals(theme.ShadowStyle.Trim(), "none", StringComparison.OrdinalIgnoreCase)
7070
&& !textOnly;
7171

7272
sb.AppendLine($""" <g transform="translate({SvgRenderSupport.F(node.X)},{SvgRenderSupport.F(node.Y)})">""");

src/DiagramForge/Rendering/SvgRenderSupport.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ internal static void AppendShadowFilterDefs(
343343
sb.AppendLine($"{indent} <filter id=\"{shadowFilterId}\" x=\"-16%\" y=\"-12%\" width=\"140%\" height=\"148%\" color-interpolation-filters=\"sRGB\">");
344344
sb.AppendLine($"{indent} <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{F(theme.ShadowBlur * 2.5)}\" result=\"blur\"/>");
345345
sb.AppendLine($"{indent} <feOffset in=\"blur\" dx=\"0\" dy=\"{F(Math.Max(theme.ShadowOffsetY, 3))}\" result=\"offset\"/>");
346-
sb.AppendLine($"{indent} <feFlood flood-color=\"{Escape(theme.ShadowColor)}\" flood-opacity=\"{F(theme.ShadowOpacity * 0.7)}\" result=\"shadow-color\"/>");
346+
sb.AppendLine($"{indent} <feFlood flood-color=\"{Escape(theme.ShadowColor)}\" flood-opacity=\"{F(Math.Clamp(theme.ShadowOpacity * 0.7, 0.0, 1.0))}\" result=\"shadow-color\"/>");
347347
sb.AppendLine($"{indent} <feComposite in=\"shadow-color\" in2=\"offset\" operator=\"in\" result=\"shadow\"/>");
348348
sb.AppendLine($"{indent} <feMerge>");
349349
sb.AppendLine($"{indent} <feMergeNode in=\"shadow\"/>");

0 commit comments

Comments
 (0)