mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibWeb: Parse transition property as a coordinating list shorthand
We don't need all this specific logic for parsing the `transition` property - we also now maintain `none` as such until use time which gains us a couple extra tests
This commit is contained in:
parent
94c788f2e0
commit
8417d74328
Notes:
github-actions[bot]
2025-10-23 09:11:05 +00:00
Author: https://github.com/Calme1709
Commit: 8417d74328
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6508
Reviewed-by: https://github.com/AtkinsSJ ✅
10 changed files with 27 additions and 247 deletions
|
|
@ -76,7 +76,6 @@
|
|||
#include <LibWeb/CSS/StyleValues/SuperellipseStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/TimeStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/TransformationStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/TransitionStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/UnresolvedStyleValue.h>
|
||||
#include <LibWeb/DOM/Attr.h>
|
||||
#include <LibWeb/DOM/Document.h>
|
||||
|
|
@ -712,42 +711,6 @@ void StyleComputer::for_each_property_expanding_shorthands(PropertyID property_i
|
|||
return;
|
||||
}
|
||||
|
||||
if (property_id == CSS::PropertyID::Transition) {
|
||||
if (value.to_keyword() == Keyword::None) {
|
||||
// Handle `none` as a shorthand for `all 0s ease 0s`.
|
||||
set_longhand_property(CSS::PropertyID::TransitionProperty, KeywordStyleValue::create(Keyword::All));
|
||||
set_longhand_property(CSS::PropertyID::TransitionDuration, TimeStyleValue::create(CSS::Time::make_seconds(0)));
|
||||
set_longhand_property(CSS::PropertyID::TransitionDelay, TimeStyleValue::create(CSS::Time::make_seconds(0)));
|
||||
set_longhand_property(CSS::PropertyID::TransitionTimingFunction, KeywordStyleValue::create(Keyword::Ease));
|
||||
set_longhand_property(CSS::PropertyID::TransitionBehavior, KeywordStyleValue::create(Keyword::Normal));
|
||||
} else if (value.is_transition()) {
|
||||
auto const& transitions = value.as_transition().transitions();
|
||||
Array<Vector<ValueComparingNonnullRefPtr<StyleValue const>>, 5> transition_values;
|
||||
for (auto const& transition : transitions) {
|
||||
transition_values[0].append(*transition.property_name);
|
||||
transition_values[1].append(transition.duration.as_style_value());
|
||||
transition_values[2].append(transition.delay.as_style_value());
|
||||
if (transition.easing)
|
||||
transition_values[3].append(*transition.easing);
|
||||
transition_values[4].append(KeywordStyleValue::create(to_keyword(transition.transition_behavior)));
|
||||
}
|
||||
|
||||
set_longhand_property(CSS::PropertyID::TransitionProperty, StyleValueList::create(move(transition_values[0]), StyleValueList::Separator::Comma));
|
||||
set_longhand_property(CSS::PropertyID::TransitionDuration, StyleValueList::create(move(transition_values[1]), StyleValueList::Separator::Comma));
|
||||
set_longhand_property(CSS::PropertyID::TransitionDelay, StyleValueList::create(move(transition_values[2]), StyleValueList::Separator::Comma));
|
||||
set_longhand_property(CSS::PropertyID::TransitionTimingFunction, StyleValueList::create(move(transition_values[3]), StyleValueList::Separator::Comma));
|
||||
set_longhand_property(CSS::PropertyID::TransitionBehavior, StyleValueList::create(move(transition_values[4]), StyleValueList::Separator::Comma));
|
||||
} else {
|
||||
set_longhand_property(CSS::PropertyID::TransitionProperty, value);
|
||||
set_longhand_property(CSS::PropertyID::TransitionDuration, value);
|
||||
set_longhand_property(CSS::PropertyID::TransitionDelay, value);
|
||||
set_longhand_property(CSS::PropertyID::TransitionTimingFunction, value);
|
||||
set_longhand_property(CSS::PropertyID::TransitionBehavior, value);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (property_is_shorthand(property_id)) {
|
||||
// ShorthandStyleValue was handled already, as were unresolved shorthands.
|
||||
// That means the only values we should see are the CSS-wide keywords, or the guaranteed-invalid value.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue