Skip to content

Commit

Permalink
Meta: Add basic-shape as a CSS property value type
Browse files Browse the repository at this point in the history
  • Loading branch information
MacDue authored and awesomekling committed May 26, 2024
1 parent 1209150 commit 0135af6
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -180,6 +180,7 @@ NonnullRefPtr<StyleValue> property_initial_value(JS::Realm&, PropertyID);
enum class ValueType {
Angle,
BackgroundPosition,
BasicShape,
Color,
CustomIdent,
EasingFunction,
Expand Down Expand Up @@ -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") {
Expand Down
1 change: 1 addition & 0 deletions Userland/Libraries/LibWeb/CSS/CSSNumericType.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Optional<CSSNumericType::BaseType> 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:
Expand Down
5 changes: 5 additions & 0 deletions Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6587,6 +6587,11 @@ Optional<Parser::PropertyAndValue> 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 };
Expand Down

0 comments on commit 0135af6

Please sign in to comment.