mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-29 12:19:54 +00:00
LibWeb: Implement the transition-behavior
CSS property
This specifies whether transitions should be started for transitions whose animation behavior is discrete.
This commit is contained in:
parent
e57e38dafc
commit
542c3cbe51
Notes:
github-actions[bot]
2025-05-02 10:08:20 +00:00
Author: https://github.com/tcl3
Commit: 542c3cbe51
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4508
Reviewed-by: https://github.com/AtkinsSJ ✅
20 changed files with 289 additions and 47 deletions
|
@ -177,13 +177,13 @@ ValueComparingRefPtr<CSSStyleValue const> interpolate_property(DOM::Element& ele
|
|||
}
|
||||
|
||||
// https://drafts.csswg.org/css-transitions/#transitionable
|
||||
bool property_values_are_transitionable(PropertyID property_id, CSSStyleValue const& old_value, CSSStyleValue const& new_value)
|
||||
bool property_values_are_transitionable(PropertyID property_id, CSSStyleValue const& old_value, CSSStyleValue const& new_value, TransitionBehavior transition_behavior)
|
||||
{
|
||||
// When comparing the before-change style and after-change style for a given property,
|
||||
// the property values are transitionable if they have an animation type that is neither not animatable nor discrete.
|
||||
|
||||
auto animation_type = animation_type_from_longhand_property(property_id);
|
||||
if (animation_type == AnimationType::None || animation_type == AnimationType::Discrete)
|
||||
if (animation_type == AnimationType::None || (transition_behavior != TransitionBehavior::AllowDiscrete && animation_type == AnimationType::Discrete))
|
||||
return false;
|
||||
|
||||
// FIXME: Even when a property is transitionable, the two values may not be. The spec uses the example of inset/non-inset shadows.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue