diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp index 03b9540f068..8df9c805990 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp @@ -22,7 +22,7 @@ bool is_animatable_property(JsonObject& properties, StringView property_name); static bool type_name_is_enum(StringView type_name) { return !AK::first_is_one_of(type_name, - "angle"sv, "background-position"sv, "color"sv, "custom-ident"sv, "easing-function"sv, "flex"sv, "frequency"sv, "image"sv, + "angle"sv, "background-position"sv, "basic-shape"sv, "color"sv, "custom-ident"sv, "easing-function"sv, "flex"sv, "frequency"sv, "image"sv, "integer"sv, "length"sv, "number"sv, "paint"sv, "percentage"sv, "position"sv, "ratio"sv, "rect"sv, "resolution"sv, "string"sv, "time"sv, "url"sv); } @@ -180,6 +180,7 @@ NonnullRefPtr property_initial_value(JS::Realm&, PropertyID); enum class ValueType { Angle, BackgroundPosition, + BasicShape, Color, CustomIdent, EasingFunction, @@ -699,6 +700,8 @@ bool property_accepts_type(PropertyID property_id, ValueType value_type) property_generator.appendln(" case ValueType::Angle:"); } else if (type_name == "background-position") { property_generator.appendln(" case ValueType::BackgroundPosition:"); + } else if (type_name == "basic-shape") { + property_generator.appendln(" case ValueType::BasicShape:"); } else if (type_name == "color") { property_generator.appendln(" case ValueType::Color:"); } else if (type_name == "custom-ident") { diff --git a/Userland/Libraries/LibWeb/CSS/CSSNumericType.cpp b/Userland/Libraries/LibWeb/CSS/CSSNumericType.cpp index 76245257034..65349ca6574 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSNumericType.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSNumericType.cpp @@ -34,6 +34,7 @@ Optional CSSNumericType::base_type_from_value_type(Val return BaseType::Time; case ValueType::BackgroundPosition: + case ValueType::BasicShape: case ValueType::Color: case ValueType::CustomIdent: case ValueType::EasingFunction: diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 510780946ee..71a256c25a2 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -6587,6 +6587,11 @@ Optional Parser::parse_css_value_for_properties(Readon return PropertyAndValue { *property, maybe_position }; } + if (auto property = any_property_accepts_type(property_ids, ValueType::BasicShape); property.has_value()) { + if (auto maybe_basic_shape = parse_basic_shape_value(tokens)) + return PropertyAndValue { *property, maybe_basic_shape }; + } + if (auto property = any_property_accepts_type(property_ids, ValueType::Ratio); property.has_value()) { if (auto maybe_ratio = parse_ratio_value(tokens)) return PropertyAndValue { *property, maybe_ratio };