From 0e069bd4388e21174a1da06015372f26f4ad2493 Mon Sep 17 00:00:00 2001 From: Face <69168154+face-hh@users.noreply.github.com> Date: Sun, 10 Aug 2025 14:52:35 +0300 Subject: [PATCH] scale and rotate --- flumi/Scripts/B9/CSSParser.gd | 12 ++ flumi/Scripts/Constants.gd | 137 +++++++++++++++- flumi/Scripts/StyleManager.gd | 93 +++++++++++ flumi/Scripts/Utils/BackgroundUtils.gd | 19 +++ flumi/Scripts/Utils/TransformUtils.gd | 158 +++++++++++++++++++ flumi/Scripts/Utils/TransformUtils.gd.uid | 1 + flumi/Scripts/Utils/UtilityClassValidator.gd | 4 + 7 files changed, 422 insertions(+), 2 deletions(-) create mode 100644 flumi/Scripts/Utils/TransformUtils.gd create mode 100644 flumi/Scripts/Utils/TransformUtils.gd.uid diff --git a/flumi/Scripts/B9/CSSParser.gd b/flumi/Scripts/B9/CSSParser.gd index a5b45a5..c147413 100644 --- a/flumi/Scripts/B9/CSSParser.gd +++ b/flumi/Scripts/B9/CSSParser.gd @@ -897,6 +897,18 @@ static func parse_utility_class_internal(rule: CSSRule, utility_name: String) -> "object-contain": rule.properties["object-fit"] = "contain"; return "object-cover": rule.properties["object-fit"] = "cover"; return + if utility_name.begins_with("scale-") or utility_name.begins_with("scale-x-") or utility_name.begins_with("scale-y-"): + var transform_properties = TransformUtils.parse_scale_utility(utility_name) + for property in transform_properties: + rule.properties[property] = transform_properties[property] + return + + if utility_name.begins_with("rotate-") or utility_name.begins_with("rotate-x-") or utility_name.begins_with("rotate-y-"): + var transform_properties = TransformUtils.parse_rotation_utility(utility_name) + for property in transform_properties: + rule.properties[property] = transform_properties[property] + return + # Handle more utility classes as needed # Add more cases here for other utilities diff --git a/flumi/Scripts/Constants.gd b/flumi/Scripts/Constants.gd index 0f73ec0..3fbf404 100644 --- a/flumi/Scripts/Constants.gd +++ b/flumi/Scripts/Constants.gd @@ -2523,6 +2523,139 @@ var HTML_CONTENT = """
""".to_utf8_buffer() -# Set the active HTML content to use the tween demo +var HTML_CONTENT_TRANSFORM_TEST = """ +Scale utilities: scale-{value}, scale-x-{value}, scale-y-{value}
+Named values: 0, 50, 75, 90, 95, 100, 105, 110, 125, 150, 200
+Custom values: scale-[{number}] where number is percentage (100 = 1.0)
+Rotation utilities: rotate-{degrees}, rotate-x-{degrees}, rotate-y-{degrees}
+Named degrees: 0, 1, 2, 3, 6, 12, 45, 90, 180, 270
+Custom rotations: rotate-[{value}deg], rotate-[{value}rad], rotate-[{value}turn]
+