diff --git a/packages/org.gamecult.eve.unity-uitoolkit/Runtime/EveUiToolkitSurfaceLowerer.cs b/packages/org.gamecult.eve.unity-uitoolkit/Runtime/EveUiToolkitSurfaceLowerer.cs index edebc77..662c227 100644 --- a/packages/org.gamecult.eve.unity-uitoolkit/Runtime/EveUiToolkitSurfaceLowerer.cs +++ b/packages/org.gamecult.eve.unity-uitoolkit/Runtime/EveUiToolkitSurfaceLowerer.cs @@ -362,7 +362,7 @@ namespace GameCult.Eve.UnityUIToolkit if (TryGet(style, "color", out var color) && TryParseColor(color, out var textColor)) element.style.color = textColor; if (TryGet(style, "borderWidth", out var borderWidth)) - ApplyBoxLength(borderWidth, value => + ApplyBoxFloat(borderWidth, value => { element.style.borderTopWidth = value; element.style.borderRightWidth = value; @@ -416,11 +416,26 @@ namespace GameCult.Eve.UnityUIToolkit return StyleKeyword.Null; } + private static StyleFloat ParseFloat(string value) + { + value = FirstToken(value); + if (value.EndsWith("px", StringComparison.OrdinalIgnoreCase)) + value = value.Substring(0, value.Length - 2); + return float.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out var pixels) + ? pixels + : StyleKeyword.Null; + } + private static void ApplyBoxLength(string value, Action apply) { apply(ParseLength(value)); } + private static void ApplyBoxFloat(string value, Action apply) + { + apply(ParseFloat(value)); + } + private static bool TryParseColor(string value, out Color color) { value = value.Trim();