diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp index 95bf12ab82c..f2c5a9abe85 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPropertyID.cpp @@ -22,7 +22,7 @@ static bool type_name_is_enum(StringView type_name) { return !AK::first_is_one_of(type_name, "angle"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, "ratio"sv, "rect"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); } @@ -638,6 +638,8 @@ bool property_accepts_type(PropertyID property_id, ValueType value_type) property_generator.appendln(" case ValueType::Paint:"); } else if (type_name == "percentage") { property_generator.appendln(" case ValueType::Percentage:"); + } else if (type_name == "position") { + property_generator.appendln(" case ValueType::Position:"); } else if (type_name == "ratio") { property_generator.appendln(" case ValueType::Ratio:"); } else if (type_name == "rect") { diff --git a/Userland/Libraries/LibWeb/CSS/Enums.json b/Userland/Libraries/LibWeb/CSS/Enums.json index 91bd687afff..a3be4e339eb 100644 --- a/Userland/Libraries/LibWeb/CSS/Enums.json +++ b/Userland/Libraries/LibWeb/CSS/Enums.json @@ -319,13 +319,6 @@ "all", "none" ], - "position": [ - "left", - "right", - "top", - "bottom", - "center" - ], "positioning": [ "absolute", "fixed", diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 8a88d3080d8..82e0c65030e 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -5930,12 +5930,6 @@ Parser::ParseErrorOr> Parser::parse_css_value(Property if (auto parsed_value = parse_math_depth_value(component_values)) return parsed_value.release_nonnull(); return ParseError::SyntaxError; - case PropertyID::ObjectPosition: - // FIXME: This should use a parse_position compatible to VALUES-4 - // and not the background position, which is almost the same. - if (auto parsed_value = parse_comma_separated_value_list(component_values, [this](auto& tokens) { return parse_single_background_position_value(tokens); })) - return parsed_value.release_nonnull(); - return ParseError::SyntaxError; case PropertyID::Overflow: if (auto parsed_value = parse_overflow_value(component_values)) return parsed_value.release_nonnull(); @@ -6130,6 +6124,11 @@ Optional Parser::parse_css_value_for_properties(Readon } } + if (auto property = any_property_accepts_type(property_ids, ValueType::Position); property.has_value()) { + if (auto maybe_position = parse_position_value(tokens)) + return PropertyAndValue { *property, maybe_position }; + } + 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 }; diff --git a/Userland/Libraries/LibWeb/CSS/Properties.json b/Userland/Libraries/LibWeb/CSS/Properties.json index 9b21c7e38f0..37d0e70ff29 100644 --- a/Userland/Libraries/LibWeb/CSS/Properties.json +++ b/Userland/Libraries/LibWeb/CSS/Properties.json @@ -1628,13 +1628,9 @@ "affects-layout": false, "inherited": false, "initial": "50% 50%", - "max-values": 2, "valid-types": [ - "length [-∞,∞]", - "percentage [-∞,∞]", "position" - ], - "percentages-resolve-to": "length" + ] }, "opacity": { "affects-layout": false,