LibWeb: Absolutize keyframe values before interpolating

This commit is contained in:
Tim Ledbetter 2025-06-24 11:11:17 +01:00 committed by Sam Atkins
commit b46378085d
Notes: github-actions[bot] 2025-06-24 11:38:03 +00:00
8 changed files with 1428 additions and 4 deletions

View file

@ -819,7 +819,6 @@ static RefPtr<CSSStyleValue const> interpolate_value_impl(DOM::Element& element,
return IntegerStyleValue::create(round_to<i64>(interpolated_value));
}
case CSSStyleValue::Type::Length: {
// FIXME: Absolutize values
auto const& from_length = from.as_length().length();
auto const& to_length = to.as_length().length();
return LengthStyleValue::create(Length(interpolate_raw(from_length.raw_value(), to_length.raw_value(), delta), from_length.type()));
@ -865,7 +864,6 @@ static RefPtr<CSSStyleValue const> interpolate_value_impl(DOM::Element& element,
if (from_rect.top_edge.is_auto() != to_rect.top_edge.is_auto() || from_rect.right_edge.is_auto() != to_rect.right_edge.is_auto() || from_rect.bottom_edge.is_auto() != to_rect.bottom_edge.is_auto() || from_rect.left_edge.is_auto() != to_rect.left_edge.is_auto())
return {};
// FIXME: Absolutize values
return RectStyleValue::create({
Length(interpolate_raw(from_rect.top_edge.raw_value(), to_rect.top_edge.raw_value(), delta), from_rect.top_edge.type()),
Length(interpolate_raw(from_rect.right_edge.raw_value(), to_rect.right_edge.raw_value(), delta), from_rect.right_edge.type()),

View file

@ -1358,7 +1358,7 @@ void StyleComputer::collect_animation_into(DOM::Element& element, Optional<CSS::
}
// FIXME: Follow https://drafts.csswg.org/web-animations-1/#ref-for-computed-keyframes in whatever the right place is.
auto compute_keyframe_values = [refresh, &computed_properties, &element, &pseudo_element](auto const& keyframe_values) {
auto compute_keyframe_values = [refresh, &computed_properties, &element, &pseudo_element, this](auto const& keyframe_values) {
HashMap<PropertyID, RefPtr<CSSStyleValue const>> result;
HashMap<PropertyID, PropertyID> longhands_set_by_property_id;
auto property_is_set_by_use_initial = MUST(Bitmap::create(to_underlying(last_longhand_property_id) - to_underlying(first_longhand_property_id) + 1, false));
@ -1400,6 +1400,11 @@ void StyleComputer::collect_animation_into(DOM::Element& element, Optional<CSS::
return camel_case_string_from_property_id(a) < camel_case_string_from_property_id(b);
};
compute_font(computed_properties, &element, pseudo_element);
Length::FontMetrics font_metrics {
root_element_font_metrics_for_element(element).font_size,
computed_properties.first_available_computed_font().pixel_metrics()
};
for (auto const& [property_id, value] : keyframe_values.properties) {
bool is_use_initial = false;
@ -1445,7 +1450,7 @@ void StyleComputer::collect_animation_into(DOM::Element& element, Optional<CSS::
longhands_set_by_property_id.set(physical_longhand_id, property_id);
property_is_set_by_use_initial.set(physical_longhand_id_bitmap_index, is_use_initial);
result.set(physical_longhand_id, { longhand_value });
result.set(physical_longhand_id, { longhand_value.absolutized(viewport_rect(), font_metrics, m_root_element_font_metrics) });
});
}
return result;

View file

@ -0,0 +1,462 @@
Harness status: OK
Found 456 tests
404 Pass
52 Fail
Pass CSS Transitions: property <width> from neutral to [40px] at (-0.3) should be [1px]
Pass CSS Transitions: property <width> from neutral to [40px] at (0) should be [10px]
Pass CSS Transitions: property <width> from neutral to [40px] at (0.3) should be [19px]
Pass CSS Transitions: property <width> from neutral to [40px] at (0.6) should be [28px]
Pass CSS Transitions: property <width> from neutral to [40px] at (1) should be [40px]
Pass CSS Transitions: property <width> from neutral to [40px] at (1.5) should be [55px]
Pass CSS Transitions with transition: all: property <width> from neutral to [40px] at (-0.3) should be [1px]
Pass CSS Transitions with transition: all: property <width> from neutral to [40px] at (0) should be [10px]
Pass CSS Transitions with transition: all: property <width> from neutral to [40px] at (0.3) should be [19px]
Pass CSS Transitions with transition: all: property <width> from neutral to [40px] at (0.6) should be [28px]
Pass CSS Transitions with transition: all: property <width> from neutral to [40px] at (1) should be [40px]
Pass CSS Transitions with transition: all: property <width> from neutral to [40px] at (1.5) should be [55px]
Fail CSS Animations: property <width> from neutral to [40px] at (-0.3) should be [1px]
Fail CSS Animations: property <width> from neutral to [40px] at (0) should be [10px]
Fail CSS Animations: property <width> from neutral to [40px] at (0.3) should be [19px]
Fail CSS Animations: property <width> from neutral to [40px] at (0.6) should be [28px]
Pass CSS Animations: property <width> from neutral to [40px] at (1) should be [40px]
Fail CSS Animations: property <width> from neutral to [40px] at (1.5) should be [55px]
Fail Web Animations: property <width> from neutral to [40px] at (-0.3) should be [1px]
Fail Web Animations: property <width> from neutral to [40px] at (0) should be [10px]
Fail Web Animations: property <width> from neutral to [40px] at (0.3) should be [19px]
Fail Web Animations: property <width> from neutral to [40px] at (0.6) should be [28px]
Pass Web Animations: property <width> from neutral to [40px] at (1) should be [40px]
Fail Web Animations: property <width> from neutral to [40px] at (1.5) should be [55px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (-0.3) should be [initial]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (0) should be [initial]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (0.3) should be [initial]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [initial] to [40px] at (1.5) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (-0.3) should be [initial]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (0) should be [initial]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (0.3) should be [initial]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [initial] to [40px] at (1.5) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (-0.3) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (0) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (0.3) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (0.5) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (0.6) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (1) should be [40px]
Pass CSS Transitions: property <width> from [initial] to [40px] at (1.5) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (-0.3) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (0) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (0.3) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [initial] to [40px] at (1.5) should be [40px]
Pass CSS Animations: property <width> from [initial] to [40px] at (-0.3) should be [initial]
Pass CSS Animations: property <width> from [initial] to [40px] at (0) should be [initial]
Pass CSS Animations: property <width> from [initial] to [40px] at (0.3) should be [initial]
Pass CSS Animations: property <width> from [initial] to [40px] at (0.5) should be [40px]
Pass CSS Animations: property <width> from [initial] to [40px] at (0.6) should be [40px]
Pass CSS Animations: property <width> from [initial] to [40px] at (1) should be [40px]
Pass CSS Animations: property <width> from [initial] to [40px] at (1.5) should be [40px]
Pass Web Animations: property <width> from [initial] to [40px] at (-0.3) should be [initial]
Pass Web Animations: property <width> from [initial] to [40px] at (0) should be [initial]
Pass Web Animations: property <width> from [initial] to [40px] at (0.3) should be [initial]
Pass Web Animations: property <width> from [initial] to [40px] at (0.5) should be [40px]
Pass Web Animations: property <width> from [initial] to [40px] at (0.6) should be [40px]
Pass Web Animations: property <width> from [initial] to [40px] at (1) should be [40px]
Pass Web Animations: property <width> from [initial] to [40px] at (1.5) should be [40px]
Pass CSS Transitions: property <width> from [inherit] to [40px] at (-0.3) should be [118px]
Pass CSS Transitions: property <width> from [inherit] to [40px] at (0) should be [100px]
Pass CSS Transitions: property <width> from [inherit] to [40px] at (0.3) should be [82px]
Pass CSS Transitions: property <width> from [inherit] to [40px] at (0.6) should be [64px]
Pass CSS Transitions: property <width> from [inherit] to [40px] at (1) should be [40px]
Pass CSS Transitions: property <width> from [inherit] to [40px] at (1.5) should be [10px]
Pass CSS Transitions with transition: all: property <width> from [inherit] to [40px] at (-0.3) should be [118px]
Pass CSS Transitions with transition: all: property <width> from [inherit] to [40px] at (0) should be [100px]
Pass CSS Transitions with transition: all: property <width> from [inherit] to [40px] at (0.3) should be [82px]
Pass CSS Transitions with transition: all: property <width> from [inherit] to [40px] at (0.6) should be [64px]
Pass CSS Transitions with transition: all: property <width> from [inherit] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [inherit] to [40px] at (1.5) should be [10px]
Pass CSS Animations: property <width> from [inherit] to [40px] at (-0.3) should be [118px]
Pass CSS Animations: property <width> from [inherit] to [40px] at (0) should be [100px]
Pass CSS Animations: property <width> from [inherit] to [40px] at (0.3) should be [82px]
Pass CSS Animations: property <width> from [inherit] to [40px] at (0.6) should be [64px]
Pass CSS Animations: property <width> from [inherit] to [40px] at (1) should be [40px]
Pass CSS Animations: property <width> from [inherit] to [40px] at (1.5) should be [10px]
Pass Web Animations: property <width> from [inherit] to [40px] at (-0.3) should be [118px]
Pass Web Animations: property <width> from [inherit] to [40px] at (0) should be [100px]
Pass Web Animations: property <width> from [inherit] to [40px] at (0.3) should be [82px]
Pass Web Animations: property <width> from [inherit] to [40px] at (0.6) should be [64px]
Pass Web Animations: property <width> from [inherit] to [40px] at (1) should be [40px]
Pass Web Animations: property <width> from [inherit] to [40px] at (1.5) should be [10px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (-0.3) should be [unset]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (0) should be [unset]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (0.3) should be [unset]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [unset] to [40px] at (1.5) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (-0.3) should be [unset]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (0) should be [unset]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (0.3) should be [unset]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [unset] to [40px] at (1.5) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (-0.3) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (0) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (0.3) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (0.5) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (0.6) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (1) should be [40px]
Pass CSS Transitions: property <width> from [unset] to [40px] at (1.5) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (-0.3) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (0) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (0.3) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [unset] to [40px] at (1.5) should be [40px]
Pass CSS Animations: property <width> from [unset] to [40px] at (-0.3) should be [unset]
Pass CSS Animations: property <width> from [unset] to [40px] at (0) should be [unset]
Pass CSS Animations: property <width> from [unset] to [40px] at (0.3) should be [unset]
Pass CSS Animations: property <width> from [unset] to [40px] at (0.5) should be [40px]
Pass CSS Animations: property <width> from [unset] to [40px] at (0.6) should be [40px]
Pass CSS Animations: property <width> from [unset] to [40px] at (1) should be [40px]
Pass CSS Animations: property <width> from [unset] to [40px] at (1.5) should be [40px]
Pass Web Animations: property <width> from [unset] to [40px] at (-0.3) should be [unset]
Pass Web Animations: property <width> from [unset] to [40px] at (0) should be [unset]
Pass Web Animations: property <width> from [unset] to [40px] at (0.3) should be [unset]
Pass Web Animations: property <width> from [unset] to [40px] at (0.5) should be [40px]
Pass Web Animations: property <width> from [unset] to [40px] at (0.6) should be [40px]
Pass Web Animations: property <width> from [unset] to [40px] at (1) should be [40px]
Pass Web Animations: property <width> from [unset] to [40px] at (1.5) should be [40px]
Pass CSS Transitions: property <width> from [0px] to [100px] at (-0.3) should be [0px]
Pass CSS Transitions: property <width> from [0px] to [100px] at (0) should be [0px]
Pass CSS Transitions: property <width> from [0px] to [100px] at (0.3) should be [30px]
Pass CSS Transitions: property <width> from [0px] to [100px] at (0.6) should be [60px]
Pass CSS Transitions: property <width> from [0px] to [100px] at (1) should be [100px]
Pass CSS Transitions: property <width> from [0px] to [100px] at (1.5) should be [150px]
Pass CSS Transitions with transition: all: property <width> from [0px] to [100px] at (-0.3) should be [0px]
Pass CSS Transitions with transition: all: property <width> from [0px] to [100px] at (0) should be [0px]
Pass CSS Transitions with transition: all: property <width> from [0px] to [100px] at (0.3) should be [30px]
Pass CSS Transitions with transition: all: property <width> from [0px] to [100px] at (0.6) should be [60px]
Pass CSS Transitions with transition: all: property <width> from [0px] to [100px] at (1) should be [100px]
Pass CSS Transitions with transition: all: property <width> from [0px] to [100px] at (1.5) should be [150px]
Pass CSS Animations: property <width> from [0px] to [100px] at (-0.3) should be [0px]
Pass CSS Animations: property <width> from [0px] to [100px] at (0) should be [0px]
Pass CSS Animations: property <width> from [0px] to [100px] at (0.3) should be [30px]
Pass CSS Animations: property <width> from [0px] to [100px] at (0.6) should be [60px]
Pass CSS Animations: property <width> from [0px] to [100px] at (1) should be [100px]
Pass CSS Animations: property <width> from [0px] to [100px] at (1.5) should be [150px]
Pass Web Animations: property <width> from [0px] to [100px] at (-0.3) should be [0px]
Pass Web Animations: property <width> from [0px] to [100px] at (0) should be [0px]
Pass Web Animations: property <width> from [0px] to [100px] at (0.3) should be [30px]
Pass Web Animations: property <width> from [0px] to [100px] at (0.6) should be [60px]
Pass Web Animations: property <width> from [0px] to [100px] at (1) should be [100px]
Pass Web Animations: property <width> from [0px] to [100px] at (1.5) should be [150px]
Pass CSS Transitions: property <width> from [10px] to [100%] at (-0.3) should be [0px]
Pass CSS Transitions: property <width> from [10px] to [100%] at (0) should be [10px]
Pass CSS Transitions: property <width> from [10px] to [100%] at (0.3) should be [37px]
Pass CSS Transitions: property <width> from [10px] to [100%] at (0.6) should be [64px]
Pass CSS Transitions: property <width> from [10px] to [100%] at (1) should be [100px]
Pass CSS Transitions: property <width> from [10px] to [100%] at (1.5) should be [145px]
Pass CSS Transitions with transition: all: property <width> from [10px] to [100%] at (-0.3) should be [0px]
Pass CSS Transitions with transition: all: property <width> from [10px] to [100%] at (0) should be [10px]
Pass CSS Transitions with transition: all: property <width> from [10px] to [100%] at (0.3) should be [37px]
Pass CSS Transitions with transition: all: property <width> from [10px] to [100%] at (0.6) should be [64px]
Pass CSS Transitions with transition: all: property <width> from [10px] to [100%] at (1) should be [100px]
Pass CSS Transitions with transition: all: property <width> from [10px] to [100%] at (1.5) should be [145px]
Pass CSS Animations: property <width> from [10px] to [100%] at (-0.3) should be [0px]
Pass CSS Animations: property <width> from [10px] to [100%] at (0) should be [10px]
Pass CSS Animations: property <width> from [10px] to [100%] at (0.3) should be [37px]
Pass CSS Animations: property <width> from [10px] to [100%] at (0.6) should be [64px]
Pass CSS Animations: property <width> from [10px] to [100%] at (1) should be [100px]
Pass CSS Animations: property <width> from [10px] to [100%] at (1.5) should be [145px]
Pass Web Animations: property <width> from [10px] to [100%] at (-0.3) should be [0px]
Pass Web Animations: property <width> from [10px] to [100%] at (0) should be [10px]
Pass Web Animations: property <width> from [10px] to [100%] at (0.3) should be [37px]
Pass Web Animations: property <width> from [10px] to [100%] at (0.6) should be [64px]
Pass Web Animations: property <width> from [10px] to [100%] at (1) should be [100px]
Pass Web Animations: property <width> from [10px] to [100%] at (1.5) should be [145px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (-0.3) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (0) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (0.3) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [40px] at (1.5) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (-0.3) should be [auto]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (0) should be [auto]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (0.3) should be [auto]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [40px] at (1.5) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (-0.3) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (0) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (0.3) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (0.5) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (0.6) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (1) should be [40px]
Pass CSS Transitions: property <width> from [auto] to [40px] at (1.5) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (-0.3) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (0) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (0.3) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (0.5) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (0.6) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (1) should be [40px]
Pass CSS Transitions with transition: all: property <width> from [auto] to [40px] at (1.5) should be [40px]
Pass CSS Animations: property <width> from [auto] to [40px] at (-0.3) should be [auto]
Pass CSS Animations: property <width> from [auto] to [40px] at (0) should be [auto]
Pass CSS Animations: property <width> from [auto] to [40px] at (0.3) should be [auto]
Pass CSS Animations: property <width> from [auto] to [40px] at (0.5) should be [40px]
Pass CSS Animations: property <width> from [auto] to [40px] at (0.6) should be [40px]
Pass CSS Animations: property <width> from [auto] to [40px] at (1) should be [40px]
Pass CSS Animations: property <width> from [auto] to [40px] at (1.5) should be [40px]
Pass Web Animations: property <width> from [auto] to [40px] at (-0.3) should be [auto]
Pass Web Animations: property <width> from [auto] to [40px] at (0) should be [auto]
Pass Web Animations: property <width> from [auto] to [40px] at (0.3) should be [auto]
Pass Web Animations: property <width> from [auto] to [40px] at (0.5) should be [40px]
Pass Web Animations: property <width> from [auto] to [40px] at (0.6) should be [40px]
Pass Web Animations: property <width> from [auto] to [40px] at (1) should be [40px]
Pass Web Animations: property <width> from [auto] to [40px] at (1.5) should be [40px]
Pass CSS Transitions: property <width> from [1em] to [10vw] at (-0.3) should be [0.00px]
Pass CSS Transitions: property <width> from [1em] to [10vw] at (0) should be [16.00px]
Pass CSS Transitions: property <width> from [1em] to [10vw] at (0.3) should be [35.20px]
Pass CSS Transitions: property <width> from [1em] to [10vw] at (0.6) should be [54.40px]
Pass CSS Transitions: property <width> from [1em] to [10vw] at (1) should be [80.00px]
Pass CSS Transitions: property <width> from [1em] to [10vw] at (1.5) should be [112.00px]
Pass CSS Transitions with transition: all: property <width> from [1em] to [10vw] at (-0.3) should be [0.00px]
Pass CSS Transitions with transition: all: property <width> from [1em] to [10vw] at (0) should be [16.00px]
Pass CSS Transitions with transition: all: property <width> from [1em] to [10vw] at (0.3) should be [35.20px]
Pass CSS Transitions with transition: all: property <width> from [1em] to [10vw] at (0.6) should be [54.40px]
Pass CSS Transitions with transition: all: property <width> from [1em] to [10vw] at (1) should be [80.00px]
Pass CSS Transitions with transition: all: property <width> from [1em] to [10vw] at (1.5) should be [112.00px]
Pass CSS Animations: property <width> from [1em] to [10vw] at (-0.3) should be [0.00px]
Pass CSS Animations: property <width> from [1em] to [10vw] at (0) should be [16.00px]
Pass CSS Animations: property <width> from [1em] to [10vw] at (0.3) should be [35.20px]
Pass CSS Animations: property <width> from [1em] to [10vw] at (0.6) should be [54.40px]
Pass CSS Animations: property <width> from [1em] to [10vw] at (1) should be [80.00px]
Pass CSS Animations: property <width> from [1em] to [10vw] at (1.5) should be [112.00px]
Pass Web Animations: property <width> from [1em] to [10vw] at (-0.3) should be [0.00px]
Pass Web Animations: property <width> from [1em] to [10vw] at (0) should be [16.00px]
Pass Web Animations: property <width> from [1em] to [10vw] at (0.3) should be [35.20px]
Pass Web Animations: property <width> from [1em] to [10vw] at (0.6) should be [54.40px]
Pass Web Animations: property <width> from [1em] to [10vw] at (1) should be [80.00px]
Pass Web Animations: property <width> from [1em] to [10vw] at (1.5) should be [112.00px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (-0.3) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (0) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (0.3) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [auto] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (-0.3) should be [auto]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (0) should be [auto]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (0.3) should be [auto]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [auto] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (-0.3) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (0) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (0.3) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions: property <width> from [auto] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (-0.3) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (0) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (0.3) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [auto] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (-0.3) should be [auto]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (0) should be [auto]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (0.3) should be [auto]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (1) should be [fit-content]
Pass CSS Animations: property <width> from [auto] to [fit-content] at (1.5) should be [fit-content]
Pass Web Animations: property <width> from [auto] to [fit-content] at (-0.3) should be [auto]
Pass Web Animations: property <width> from [auto] to [fit-content] at (0) should be [auto]
Pass Web Animations: property <width> from [auto] to [fit-content] at (0.3) should be [auto]
Pass Web Animations: property <width> from [auto] to [fit-content] at (0.5) should be [fit-content]
Pass Web Animations: property <width> from [auto] to [fit-content] at (0.6) should be [fit-content]
Pass Web Animations: property <width> from [auto] to [fit-content] at (1) should be [fit-content]
Pass Web Animations: property <width> from [auto] to [fit-content] at (1.5) should be [fit-content]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (-0.3) should be [stretch]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (0) should be [stretch]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (0.3) should be [stretch]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (0.5) should be [auto]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (0.6) should be [auto]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (1) should be [auto]
Fail CSS Transitions with transition-behavior:allow-discrete: property <width> from [stretch] to [auto] at (1.5) should be [auto]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (-0.3) should be [stretch]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (0) should be [stretch]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (0.3) should be [stretch]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (0.5) should be [auto]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (0.6) should be [auto]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (1) should be [auto]
Fail CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [stretch] to [auto] at (1.5) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (-0.3) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (0) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (0.3) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (0.5) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (0.6) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (1) should be [auto]
Fail CSS Transitions: property <width> from [stretch] to [auto] at (1.5) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (-0.3) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (0) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (0.3) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (0.5) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (0.6) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (1) should be [auto]
Fail CSS Transitions with transition: all: property <width> from [stretch] to [auto] at (1.5) should be [auto]
Fail CSS Animations: property <width> from [stretch] to [auto] at (-0.3) should be [stretch]
Fail CSS Animations: property <width> from [stretch] to [auto] at (0) should be [stretch]
Fail CSS Animations: property <width> from [stretch] to [auto] at (0.3) should be [stretch]
Fail CSS Animations: property <width> from [stretch] to [auto] at (0.5) should be [auto]
Fail CSS Animations: property <width> from [stretch] to [auto] at (0.6) should be [auto]
Fail CSS Animations: property <width> from [stretch] to [auto] at (1) should be [auto]
Fail CSS Animations: property <width> from [stretch] to [auto] at (1.5) should be [auto]
Fail Web Animations: property <width> from [stretch] to [auto] at (-0.3) should be [stretch]
Fail Web Animations: property <width> from [stretch] to [auto] at (0) should be [stretch]
Fail Web Animations: property <width> from [stretch] to [auto] at (0.3) should be [stretch]
Fail Web Animations: property <width> from [stretch] to [auto] at (0.5) should be [auto]
Fail Web Animations: property <width> from [stretch] to [auto] at (0.6) should be [auto]
Fail Web Animations: property <width> from [stretch] to [auto] at (1) should be [auto]
Fail Web Animations: property <width> from [stretch] to [auto] at (1.5) should be [auto]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (-0.3) should be [30px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (0) should be [30px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (0.3) should be [30px]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [30px] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (-0.3) should be [30px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (0) should be [30px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (0.3) should be [30px]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [30px] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (-0.3) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (0) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (0.3) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions: property <width> from [30px] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (-0.3) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (0) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (0.3) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (1) should be [fit-content]
Pass CSS Transitions with transition: all: property <width> from [30px] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (-0.3) should be [30px]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (0) should be [30px]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (0.3) should be [30px]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (0.5) should be [fit-content]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (0.6) should be [fit-content]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (1) should be [fit-content]
Pass CSS Animations: property <width> from [30px] to [fit-content] at (1.5) should be [fit-content]
Pass Web Animations: property <width> from [30px] to [fit-content] at (-0.3) should be [30px]
Pass Web Animations: property <width> from [30px] to [fit-content] at (0) should be [30px]
Pass Web Animations: property <width> from [30px] to [fit-content] at (0.3) should be [30px]
Pass Web Animations: property <width> from [30px] to [fit-content] at (0.5) should be [fit-content]
Pass Web Animations: property <width> from [30px] to [fit-content] at (0.6) should be [fit-content]
Pass Web Animations: property <width> from [30px] to [fit-content] at (1) should be [fit-content]
Pass Web Animations: property <width> from [30px] to [fit-content] at (1.5) should be [fit-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (-0.3) should be [max-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (0) should be [max-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (0.3) should be [max-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (1) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (-0.3) should be [max-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (0) should be [max-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (0.3) should be [max-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (1) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (-0.3) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (0) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (0.3) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (1) should be [min-content]
Pass CSS Transitions: property <width> from [max-content] to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (-0.3) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (0) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (0.3) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (1) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from [max-content] to [min-content] at (1.5) should be [min-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (-0.3) should be [max-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (0) should be [max-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (0.3) should be [max-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (0.5) should be [min-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (0.6) should be [min-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (1) should be [min-content]
Pass CSS Animations: property <width> from [max-content] to [min-content] at (1.5) should be [min-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (-0.3) should be [max-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (0) should be [max-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (0.3) should be [max-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (0.5) should be [min-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (0.6) should be [min-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (1) should be [min-content]
Pass Web Animations: property <width> from [max-content] to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to neutral at (-0.3) should be [max-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to neutral at (0) should be [max-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from [max-content] to neutral at (0.3) should be [max-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to neutral at (-0.3) should be [max-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to neutral at (0) should be [max-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from [max-content] to neutral at (0.3) should be [max-content]
Pass CSS Animations: property <width> from [max-content] to neutral at (-0.3) should be [max-content]
Pass CSS Animations: property <width> from [max-content] to neutral at (0) should be [max-content]
Pass CSS Animations: property <width> from [max-content] to neutral at (0.3) should be [max-content]
Pass Web Animations: property <width> from [max-content] to neutral at (-0.3) should be [max-content]
Pass Web Animations: property <width> from [max-content] to neutral at (0) should be [max-content]
Pass Web Animations: property <width> from [max-content] to neutral at (0.3) should be [max-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from neutral to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from neutral to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from neutral to [min-content] at (1) should be [min-content]
Pass CSS Transitions with transition-behavior:allow-discrete: property <width> from neutral to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from neutral to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from neutral to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from neutral to [min-content] at (1) should be [min-content]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <width> from neutral to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (-0.3) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (0) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (0.3) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (1) should be [min-content]
Pass CSS Transitions: property <width> from neutral to [min-content] at (1.5) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (-0.3) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (0) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (0.3) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (0.5) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (0.6) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (1) should be [min-content]
Pass CSS Transitions with transition: all: property <width> from neutral to [min-content] at (1.5) should be [min-content]
Pass CSS Animations: property <width> from neutral to [min-content] at (0.5) should be [min-content]
Pass CSS Animations: property <width> from neutral to [min-content] at (0.6) should be [min-content]
Pass CSS Animations: property <width> from neutral to [min-content] at (1) should be [min-content]
Pass CSS Animations: property <width> from neutral to [min-content] at (1.5) should be [min-content]
Pass Web Animations: property <width> from neutral to [min-content] at (0.5) should be [min-content]
Pass Web Animations: property <width> from neutral to [min-content] at (0.6) should be [min-content]
Pass Web Animations: property <width> from neutral to [min-content] at (1) should be [min-content]
Pass Web Animations: property <width> from neutral to [min-content] at (1.5) should be [min-content]

View file

@ -0,0 +1,294 @@
Harness status: OK
Found 288 tests
232 Pass
56 Fail
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0px] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0px] at (0.3) should be [11.2px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0px] at (0.6) should be [6.4px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0px] at (1) should be [0px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0px] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0px] at (0.3) should be [11.2px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0px] at (0.6) should be [6.4px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0px] at (1) should be [0px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0px] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0px] at (0.3) should be [11.2px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0px] at (0.6) should be [6.4px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0px] at (1) should be [0px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0px] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0px] at (0.3) should be [11.2px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0px] at (0.6) should be [6.4px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0px] at (1) should be [0px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [32px] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [32px] at (0.3) should be [20.8px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [32px] at (0.6) should be [25.6px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [32px] at (1) should be [32px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [32px] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [32px] at (0.3) should be [20.8px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [32px] at (0.6) should be [25.6px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [32px] at (1) should be [32px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [32px] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [32px] at (0.3) should be [20.8px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [32px] at (0.6) should be [25.6px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [32px] at (1) should be [32px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [32px] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [32px] at (0.3) should be [20.8px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [32px] at (0.6) should be [25.6px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [32px] at (1) should be [32px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0em] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0em] at (0.3) should be [11.2px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0em] at (0.6) should be [6.4px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0em] at (1) should be [0px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0em] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0em] at (0.3) should be [11.2px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0em] at (0.6) should be [6.4px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0em] at (1) should be [0px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0em] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0em] at (0.3) should be [11.2px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0em] at (0.6) should be [6.4px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0em] at (1) should be [0px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0em] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0em] at (0.3) should be [11.2px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0em] at (0.6) should be [6.4px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0em] at (1) should be [0px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [2em] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [2em] at (0.3) should be [20.8px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [2em] at (0.6) should be [25.6px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [2em] at (1) should be [32px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [2em] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [2em] at (0.3) should be [20.8px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [2em] at (0.6) should be [25.6px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [2em] at (1) should be [32px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [2em] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [2em] at (0.3) should be [20.8px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [2em] at (0.6) should be [25.6px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [2em] at (1) should be [32px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [2em] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [2em] at (0.3) should be [20.8px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [2em] at (0.6) should be [25.6px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [2em] at (1) should be [32px]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [0%] at (0) should be [100%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [0%] at (0.3) should be [70%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [0%] at (0.6) should be [40%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [0%] at (1) should be [0%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0%] at (0) should be [100%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0%] at (0.3) should be [70%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0%] at (0.6) should be [40%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0%] at (1) should be [0%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [0%] at (0) should be [100%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [0%] at (0.3) should be [70%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [0%] at (0.6) should be [40%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [0%] at (1) should be [0%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [0%] at (0) should be [100%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [0%] at (0.3) should be [70%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [0%] at (0.6) should be [40%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [0%] at (1) should be [0%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [200%] at (0) should be [100%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [200%] at (0.3) should be [130%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [200%] at (0.6) should be [160%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [200%] at (1) should be [200%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [200%] at (0) should be [100%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [200%] at (0.3) should be [130%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [200%] at (0.6) should be [160%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [200%] at (1) should be [200%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [200%] at (0) should be [100%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [200%] at (0.3) should be [130%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [200%] at (0.6) should be [160%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [200%] at (1) should be [200%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [200%] at (0) should be [100%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [200%] at (0.3) should be [130%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [200%] at (0.6) should be [160%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [200%] at (1) should be [200%]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0em] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0em] at (0.3) should be [11.2px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0em] at (0.6) should be [6.4px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0em] at (1) should be [0px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0em] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0em] at (0.3) should be [11.2px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0em] at (0.6) should be [6.4px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0em] at (1) should be [0px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0em] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0em] at (0.3) should be [11.2px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0em] at (0.6) should be [6.4px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0em] at (1) should be [0px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0em] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0em] at (0.3) should be [11.2px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0em] at (0.6) should be [6.4px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0em] at (1) should be [0px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [2em] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [2em] at (0.3) should be [20.8px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [2em] at (0.6) should be [25.6px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [2em] at (1) should be [32px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [2em] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [2em] at (0.3) should be [20.8px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [2em] at (0.6) should be [25.6px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [2em] at (1) should be [32px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [2em] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [2em] at (0.3) should be [20.8px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [2em] at (0.6) should be [25.6px]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [2em] at (1) should be [32px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [2em] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [2em] at (0.3) should be [20.8px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [2em] at (0.6) should be [25.6px]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [2em] at (1) should be [32px]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail CSS Transitions: property <text-decoration-thickness> from [16px] to [0%] at (1) should be [0%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [0%] at (1) should be [0%]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0%] at (0) should be [calc(0% + 16px)]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail CSS Animations: property <text-decoration-thickness> from [16px] to [0%] at (1) should be [0%]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0%] at (0) should be [calc(0% + 16px)]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail Web Animations: property <text-decoration-thickness> from [16px] to [0%] at (1) should be [0%]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [200%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass CSS Transitions: property <text-decoration-thickness> from [16px] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail CSS Transitions: property <text-decoration-thickness> from [16px] to [200%] at (1) should be [200%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [200%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [16px] to [200%] at (1) should be [200%]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [200%] at (0) should be [calc(0% + 16px)]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass CSS Animations: property <text-decoration-thickness> from [16px] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail CSS Animations: property <text-decoration-thickness> from [16px] to [200%] at (1) should be [200%]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [200%] at (0) should be [calc(0% + 16px)]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass Web Animations: property <text-decoration-thickness> from [16px] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail Web Animations: property <text-decoration-thickness> from [16px] to [200%] at (1) should be [200%]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0px] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0px] at (0.3) should be [11.2px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0px] at (0.6) should be [6.4px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0px] at (1) should be [0px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0px] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0px] at (0.3) should be [11.2px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0px] at (0.6) should be [6.4px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0px] at (1) should be [0px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0px] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0px] at (0.3) should be [11.2px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0px] at (0.6) should be [6.4px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0px] at (1) should be [0px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0px] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0px] at (0.3) should be [11.2px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0px] at (0.6) should be [6.4px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0px] at (1) should be [0px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [32px] at (0) should be [16px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [32px] at (0.3) should be [20.8px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [32px] at (0.6) should be [25.6px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [32px] at (1) should be [32px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [32px] at (0) should be [16px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [32px] at (0.3) should be [20.8px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [32px] at (0.6) should be [25.6px]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [32px] at (1) should be [32px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [32px] at (0) should be [16px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [32px] at (0.3) should be [20.8px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [32px] at (0.6) should be [25.6px]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [32px] at (1) should be [32px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [32px] at (0) should be [16px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [32px] at (0.3) should be [20.8px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [32px] at (0.6) should be [25.6px]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [32px] at (1) should be [32px]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail CSS Transitions: property <text-decoration-thickness> from [1em] to [0%] at (1) should be [0%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [0%] at (1) should be [0%]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0%] at (0) should be [calc(0% + 16px)]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail CSS Animations: property <text-decoration-thickness> from [1em] to [0%] at (1) should be [0%]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0%] at (0) should be [calc(0% + 16px)]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0%] at (0.3) should be [calc(0% + 11.2px)]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [0%] at (0.6) should be [calc(0% + 6.4px)]
Fail Web Animations: property <text-decoration-thickness> from [1em] to [0%] at (1) should be [0%]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [200%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass CSS Transitions: property <text-decoration-thickness> from [1em] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail CSS Transitions: property <text-decoration-thickness> from [1em] to [200%] at (1) should be [200%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [200%] at (0) should be [calc(0% + 16px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [1em] to [200%] at (1) should be [200%]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [200%] at (0) should be [calc(0% + 16px)]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass CSS Animations: property <text-decoration-thickness> from [1em] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail CSS Animations: property <text-decoration-thickness> from [1em] to [200%] at (1) should be [200%]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [200%] at (0) should be [calc(0% + 16px)]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [200%] at (0.3) should be [calc(60% + 11.2px)]
Pass Web Animations: property <text-decoration-thickness> from [1em] to [200%] at (0.6) should be [calc(120% + 6.4px)]
Fail Web Animations: property <text-decoration-thickness> from [1em] to [200%] at (1) should be [200%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0px] at (0) should be [100%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0px] at (0.3) should be [70%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0px] at (0.6) should be [40%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0px] at (1) should be [0%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0px] at (0) should be [100%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0px] at (0.3) should be [70%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0px] at (0.6) should be [40%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0px] at (1) should be [0%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0px] at (0) should be [100%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0px] at (0.3) should be [70%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0px] at (0.6) should be [40%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0px] at (1) should be [0%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0px] at (0) should be [100%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0px] at (0.3) should be [70%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0px] at (0.6) should be [40%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0px] at (1) should be [0%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [32px] at (0) should be [100%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [32px] at (0.3) should be [calc(70% + 9.6px)]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [32px] at (0.6) should be [calc(40% + 19.2px)]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [32px] at (1) should be [calc(0% + 32px)]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [32px] at (0) should be [100%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [32px] at (0.3) should be [calc(70% + 9.6px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [32px] at (0.6) should be [calc(40% + 19.2px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [32px] at (1) should be [calc(0% + 32px)]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [32px] at (0) should be [100%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [32px] at (0.3) should be [calc(70% + 9.6px)]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [32px] at (0.6) should be [calc(40% + 19.2px)]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [32px] at (1) should be [calc(0% + 32px)]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [32px] at (0) should be [100%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [32px] at (0.3) should be [calc(70% + 9.6px)]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [32px] at (0.6) should be [calc(40% + 19.2px)]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [32px] at (1) should be [calc(0% + 32px)]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0em] at (0) should be [100%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0em] at (0.3) should be [70%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0em] at (0.6) should be [40%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [0em] at (1) should be [0%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0em] at (0) should be [100%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0em] at (0.3) should be [70%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0em] at (0.6) should be [40%]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [0em] at (1) should be [0%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0em] at (0) should be [100%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0em] at (0.3) should be [70%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0em] at (0.6) should be [40%]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [0em] at (1) should be [0%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0em] at (0) should be [100%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0em] at (0.3) should be [70%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0em] at (0.6) should be [40%]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [0em] at (1) should be [0%]
Fail CSS Transitions: property <text-decoration-thickness> from [100%] to [2em] at (0) should be [100%]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [2em] at (0.3) should be [calc(70% + 9.6px)]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [2em] at (0.6) should be [calc(40% + 19.2px)]
Pass CSS Transitions: property <text-decoration-thickness> from [100%] to [2em] at (1) should be [calc(0% + 32px)]
Fail CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [2em] at (0) should be [100%]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [2em] at (0.3) should be [calc(70% + 9.6px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [2em] at (0.6) should be [calc(40% + 19.2px)]
Pass CSS Transitions with transition: all: property <text-decoration-thickness> from [100%] to [2em] at (1) should be [calc(0% + 32px)]
Fail CSS Animations: property <text-decoration-thickness> from [100%] to [2em] at (0) should be [100%]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [2em] at (0.3) should be [calc(70% + 9.6px)]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [2em] at (0.6) should be [calc(40% + 19.2px)]
Pass CSS Animations: property <text-decoration-thickness> from [100%] to [2em] at (1) should be [calc(0% + 32px)]
Fail Web Animations: property <text-decoration-thickness> from [100%] to [2em] at (0) should be [100%]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [2em] at (0.3) should be [calc(70% + 9.6px)]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [2em] at (0.6) should be [calc(40% + 19.2px)]
Pass Web Animations: property <text-decoration-thickness> from [100%] to [2em] at (1) should be [calc(0% + 32px)]

View file

@ -0,0 +1,146 @@
Harness status: OK
Found 140 tests
70 Pass
70 Fail
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (-0.25) should be [NaNpx]
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (0) should be [0px]
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (0.25) should be [NaNpx]
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (0.5) should be [NaNpx]
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (0.75) should be [NaNpx]
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (1) should be [NaNpx]
Fail CSS Transitions: property <left> from [0px] to [calc(infinity * 1px)] at (1.25) should be [NaNpx]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (-0.25) should be [NaNpx]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (0) should be [0px]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (0.25) should be [NaNpx]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (0.5) should be [NaNpx]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (0.75) should be [NaNpx]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (1) should be [NaNpx]
Fail CSS Transitions with transition: all: property <left> from [0px] to [calc(infinity * 1px)] at (1.25) should be [NaNpx]
Pass CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (-0.25) should be [NaNpx]
Pass CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0) should be [0px]
Pass CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0.25) should be [NaNpx]
Fail CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0.5) should be [NaNpx]
Fail CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0.75) should be [NaNpx]
Fail CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (1) should be [NaNpx]
Fail CSS Animations: property <left> from [0px] to [calc(infinity * 1px)] at (1.25) should be [NaNpx]
Pass Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (-0.25) should be [NaNpx]
Pass Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0) should be [0px]
Pass Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0.25) should be [NaNpx]
Fail Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0.5) should be [NaNpx]
Fail Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (0.75) should be [NaNpx]
Fail Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (1) should be [NaNpx]
Fail Web Animations: property <left> from [0px] to [calc(infinity * 1px)] at (1.25) should be [NaNpx]
Fail CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [-10px]
Fail CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [0px]
Fail CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [10px]
Fail CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [20px]
Fail CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [30px]
Pass CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [40px]
Fail CSS Transitions: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [50px]
Fail CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [-10px]
Fail CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [0px]
Fail CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [10px]
Fail CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [20px]
Fail CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [30px]
Pass CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [40px]
Fail CSS Transitions with transition: all: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [50px]
Fail CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [-10px]
Pass CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [0px]
Fail CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [10px]
Fail CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [20px]
Fail CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [30px]
Pass CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [40px]
Fail CSS Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [50px]
Fail Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [-10px]
Pass Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [0px]
Fail Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [10px]
Fail Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [20px]
Fail Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [30px]
Pass Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [40px]
Fail Web Animations: property <left> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [50px]
Fail CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [calc(((50% - 25px) * 1.25) + ((100% - 10px) * -0.25))]
Fail CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [calc(50% - 25px)]
Fail CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [calc(((50% - 25px) * 0.75) + ((100% - 10px) * 0.25))]
Fail CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [calc(((50% - 25px) * 0.5) + ((100% - 10px) * 0.5))]
Fail CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [calc(((50% - 25px) * 0.25) + ((100% - 10px) * 0.75))]
Pass CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [calc(100% - 10px)]
Fail CSS Transitions: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [calc(((50% - 25px) * -0.25) + ((100% - 10px) * 1.25))]
Fail CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [calc(((50% - 25px) * 1.25) + ((100% - 10px) * -0.25))]
Fail CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [calc(50% - 25px)]
Fail CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [calc(((50% - 25px) * 0.75) + ((100% - 10px) * 0.25))]
Fail CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [calc(((50% - 25px) * 0.5) + ((100% - 10px) * 0.5))]
Fail CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [calc(((50% - 25px) * 0.25) + ((100% - 10px) * 0.75))]
Pass CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [calc(100% - 10px)]
Fail CSS Transitions with transition: all: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [calc(((50% - 25px) * -0.25) + ((100% - 10px) * 1.25))]
Fail CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [calc(((50% - 25px) * 1.25) + ((100% - 10px) * -0.25))]
Pass CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [calc(50% - 25px)]
Fail CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [calc(((50% - 25px) * 0.75) + ((100% - 10px) * 0.25))]
Fail CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [calc(((50% - 25px) * 0.5) + ((100% - 10px) * 0.5))]
Fail CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [calc(((50% - 25px) * 0.25) + ((100% - 10px) * 0.75))]
Pass CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [calc(100% - 10px)]
Fail CSS Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [calc(((50% - 25px) * -0.25) + ((100% - 10px) * 1.25))]
Fail Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (-0.25) should be [calc(((50% - 25px) * 1.25) + ((100% - 10px) * -0.25))]
Pass Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0) should be [calc(50% - 25px)]
Fail Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.25) should be [calc(((50% - 25px) * 0.75) + ((100% - 10px) * 0.25))]
Fail Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.5) should be [calc(((50% - 25px) * 0.5) + ((100% - 10px) * 0.5))]
Fail Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (0.75) should be [calc(((50% - 25px) * 0.25) + ((100% - 10px) * 0.75))]
Pass Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1) should be [calc(100% - 10px)]
Fail Web Animations: property <text-indent> from [calc(50% - 25px)] to [calc(100% - 10px)] at (1.25) should be [calc(((50% - 25px) * -0.25) + ((100% - 10px) * 1.25))]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (-0.25) should be [-25px]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (0) should be [0em]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (0.25) should be [25px]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (0.5) should be [50px]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (0.75) should be [75px]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (1) should be [100px]
Pass CSS Transitions: property <text-indent> from [0em] to [100px] at (1.25) should be [125px]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (-0.25) should be [-25px]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (0) should be [0em]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (0.25) should be [25px]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (0.5) should be [50px]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (0.75) should be [75px]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (1) should be [100px]
Pass CSS Transitions with transition: all: property <text-indent> from [0em] to [100px] at (1.25) should be [125px]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (-0.25) should be [-25px]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (0) should be [0em]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (0.25) should be [25px]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (0.5) should be [50px]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (0.75) should be [75px]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (1) should be [100px]
Pass CSS Animations: property <text-indent> from [0em] to [100px] at (1.25) should be [125px]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (-0.25) should be [-25px]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (0) should be [0em]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (0.25) should be [25px]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (0.5) should be [50px]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (0.75) should be [75px]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (1) should be [100px]
Pass Web Animations: property <text-indent> from [0em] to [100px] at (1.25) should be [125px]
Pass CSS Transitions: property <text-indent> from [0%] to [100px] at (-0.25) should be [calc(0% + -25px)]
Fail CSS Transitions: property <text-indent> from [0%] to [100px] at (0) should be [0%]
Pass CSS Transitions: property <text-indent> from [0%] to [100px] at (0.25) should be [calc(0% + 25px)]
Pass CSS Transitions: property <text-indent> from [0%] to [100px] at (0.5) should be [calc(0% + 50px)]
Pass CSS Transitions: property <text-indent> from [0%] to [100px] at (0.75) should be [calc(0% + 75px)]
Pass CSS Transitions: property <text-indent> from [0%] to [100px] at (1) should be [calc(0% + 100px)]
Pass CSS Transitions: property <text-indent> from [0%] to [100px] at (1.25) should be [calc(0% + 125px)]
Pass CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (-0.25) should be [calc(0% + -25px)]
Fail CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (0) should be [0%]
Pass CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (0.25) should be [calc(0% + 25px)]
Pass CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (0.5) should be [calc(0% + 50px)]
Pass CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (0.75) should be [calc(0% + 75px)]
Pass CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (1) should be [calc(0% + 100px)]
Pass CSS Transitions with transition: all: property <text-indent> from [0%] to [100px] at (1.25) should be [calc(0% + 125px)]
Pass CSS Animations: property <text-indent> from [0%] to [100px] at (-0.25) should be [calc(0% + -25px)]
Fail CSS Animations: property <text-indent> from [0%] to [100px] at (0) should be [0%]
Pass CSS Animations: property <text-indent> from [0%] to [100px] at (0.25) should be [calc(0% + 25px)]
Pass CSS Animations: property <text-indent> from [0%] to [100px] at (0.5) should be [calc(0% + 50px)]
Pass CSS Animations: property <text-indent> from [0%] to [100px] at (0.75) should be [calc(0% + 75px)]
Pass CSS Animations: property <text-indent> from [0%] to [100px] at (1) should be [calc(0% + 100px)]
Pass CSS Animations: property <text-indent> from [0%] to [100px] at (1.25) should be [calc(0% + 125px)]
Pass Web Animations: property <text-indent> from [0%] to [100px] at (-0.25) should be [calc(0% + -25px)]
Fail Web Animations: property <text-indent> from [0%] to [100px] at (0) should be [0%]
Pass Web Animations: property <text-indent> from [0%] to [100px] at (0.25) should be [calc(0% + 25px)]
Pass Web Animations: property <text-indent> from [0%] to [100px] at (0.5) should be [calc(0% + 50px)]
Pass Web Animations: property <text-indent> from [0%] to [100px] at (0.75) should be [calc(0% + 75px)]
Pass Web Animations: property <text-indent> from [0%] to [100px] at (1) should be [calc(0% + 100px)]
Pass Web Animations: property <text-indent> from [0%] to [100px] at (1.25) should be [calc(0% + 125px)]

View file

@ -0,0 +1,170 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>width interpolation</title>
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#propdef-width">
<meta name="assert" content="width supports animation by computed value">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.parent {
width: 100px;
overflow: visible;
}
.target {
font-size: 16px;
background-color: black;
width: 10px;
height: 10px;
}
.expected {
background-color: green;
}
</style>
<body>
<template id="target-template">
<div class="container">
<div class="target"></div>
</div>
</template>
</body>
<script>
test_interpolation({
property: 'width',
from: neutralKeyframe,
to: '40px',
}, [
{at: -0.3, expect: '1px'},
{at: 0, expect: '10px'},
{at: 0.3, expect: '19px'},
{at: 0.6, expect: '28px'},
{at: 1, expect: '40px'},
{at: 1.5, expect: '55px'},
]);
test_no_interpolation({
property: 'width',
from: 'initial',
to: '40px',
});
test_interpolation({
property: 'width',
from: 'inherit',
to: '40px',
}, [
{at: -0.3, expect: '118px'},
{at: 0, expect: '100px'},
{at: 0.3, expect: '82px'},
{at: 0.6, expect: '64px'},
{at: 1, expect: '40px'},
{at: 1.5, expect: '10px'},
]);
test_no_interpolation({
property: 'width',
from: 'unset',
to: '40px',
});
test_interpolation({
property: 'width',
from: '0px',
to: '100px',
}, [
{at: -0.3, expect: '0px'}, // CSS width can't be negative.
{at: 0, expect: '0px'},
{at: 0.3, expect: '30px'},
{at: 0.6, expect: '60px'},
{at: 1, expect: '100px'},
{at: 1.5, expect: '150px'}
]);
test_interpolation({
property: 'width',
from: '10px',
to: '100%'
}, [
{at: -0.3, expect: '0px'}, // CSS width can't be negative.
{at: 0, expect: '10px'},
{at: 0.3, expect: '37px'},
{at: 0.6, expect: '64px'},
{at: 1, expect: '100px'},
{at: 1.5, expect: '145px'}
]);
test_no_interpolation({
property: 'width',
from: 'auto',
to: '40px',
});
// The "vw" unit equals to 1% of the width of the viewport's initial containing
// block:
// https://developer.mozilla.org/en-US/docs/Web/CSS/length
function vw(x) {
return (x * window.innerWidth / 100);
}
// In here, 16 is the font-size which is the value of 1em, and vw(10) is the
// value of 10vw. The calc here takes the "at" in the next interpolation test
// and computes the expected value.
function calc(x) {
return Math.max(16 + (vw(10) - 16) * x, 0).toFixed(2) + "px";
}
test_interpolation({
property: 'width',
from: '1em',
to: '10vw'
}, [
{at: -0.3, expect: calc(-0.3)},
{at: 0, expect: calc(0)},
{at: 0.3, expect: calc(0.3)},
{at: 0.6, expect: calc(0.6)},
{at: 1, expect: calc(1)},
{at: 1.5, expect: calc(1.5)}
]);
test_no_interpolation({
property: 'width',
from: 'auto',
to: 'fit-content',
});
test_no_interpolation({
property: 'width',
from: 'stretch',
to: 'auto',
});
test_no_interpolation({
property: 'width',
from: '30px',
to: 'fit-content',
});
test_no_interpolation({
property: 'width',
from: 'max-content',
to: 'min-content',
});
test_no_interpolation({
property: 'width',
from: 'max-content',
to: neutralKeyframe,
});
test_no_interpolation({
property: 'width',
from: neutralKeyframe,
to: 'min-content',
});
</script>
</body>

View file

@ -0,0 +1,213 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>text-decoration-thickness interpolation</title>
<link rel="author" title="ChangSeok Oh" href="mailto:changseok@webkit.org">
<link rel="help" href="https://www.w3.org/TR/css-text-decor-4/#text-decoration-thickness-property">
<meta name="test" content="text-decoration-thickness supports animation by the computed value type">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<body>
<template id="target-template">T</template>
</body>
<script>
test_interpolation({
property: 'text-decoration-thickness',
from: '16px',
to: '0px',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '11.2px'},
{at: 0.6, expect: '6.4px'},
{at: 1, expect: '0px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '16px',
to: '32px',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '20.8px'},
{at: 0.6, expect: '25.6px'},
{at: 1, expect: '32px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '1em',
to: '0em',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '11.2px'},
{at: 0.6, expect: '6.4px'},
{at: 1, expect: '0px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '1em',
to: '2em',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '20.8px'},
{at: 0.6, expect: '25.6px'},
{at: 1, expect: '32px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '100%',
to: '0%',
}, [
{at: 0, expect: '100%'},
{at: 0.3, expect: '70%'},
{at: 0.6, expect: '40%'},
{at: 1, expect: '0%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '100%',
to: '200%',
}, [
{at: 0, expect: '100%'},
{at: 0.3, expect: '130%'},
{at: 0.6, expect: '160%'},
{at: 1, expect: '200%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '16px',
to: '0em',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '11.2px'},
{at: 0.6, expect: '6.4px'},
{at: 1, expect: '0px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '16px',
to: '2em',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '20.8px'},
{at: 0.6, expect: '25.6px'},
{at: 1, expect: '32px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '16px',
to: '0%',
}, [
{at: 0, expect: 'calc(0% + 16px)'},
{at: 0.3, expect: 'calc(0% + 11.2px)'},
{at: 0.6, expect: 'calc(0% + 6.4px)'},
{at: 1, expect: '0%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '16px',
to: '200%',
}, [
{at: 0, expect: 'calc(0% + 16px)'},
{at: 0.3, expect: 'calc(60% + 11.2px)'},
{at: 0.6, expect: 'calc(120% + 6.4px)'},
{at: 1, expect: '200%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '1em',
to: '0px',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '11.2px'},
{at: 0.6, expect: '6.4px'},
{at: 1, expect: '0px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '1em',
to: '32px',
}, [
{at: 0, expect: '16px'},
{at: 0.3, expect: '20.8px'},
{at: 0.6, expect: '25.6px'},
{at: 1, expect: '32px'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '1em',
to: '0%',
}, [
{at: 0, expect: 'calc(0% + 16px)'},
{at: 0.3, expect: 'calc(0% + 11.2px)'},
{at: 0.6, expect: 'calc(0% + 6.4px)'},
{at: 1, expect: '0%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '1em',
to: '200%',
}, [
{at: 0, expect: 'calc(0% + 16px)'},
{at: 0.3, expect: 'calc(60% + 11.2px)'},
{at: 0.6, expect: 'calc(120% + 6.4px)'},
{at: 1, expect: '200%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '100%',
to: '0px',
}, [
{at: 0, expect: '100%'},
{at: 0.3, expect: '70%'},
{at: 0.6, expect: '40%'},
{at: 1, expect: '0%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '100%',
to: '32px',
}, [
{at: 0, expect: '100%'},
{at: 0.3, expect: 'calc(70% + 9.6px)'},
{at: 0.6, expect: 'calc(40% + 19.2px)'},
{at: 1, expect: 'calc(0% + 32px)'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '100%',
to: '0em',
}, [
{at: 0, expect: '100%'},
{at: 0.3, expect: '70%'},
{at: 0.6, expect: '40%'},
{at: 1, expect: '0%'},
]);
test_interpolation({
property: 'text-decoration-thickness',
from: '100%',
to: '2em',
}, [
{at: 0, expect: '100%'},
{at: 0.3, expect: 'calc(70% + 9.6px)'},
{at: 0.6, expect: 'calc(40% + 19.2px)'},
{at: 1, expect: 'calc(0% + 32px)'},
]);
</script>

View file

@ -0,0 +1,136 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>calc interpolation</title>
<link rel="help" href="https://drafts.csswg.org/css-values-3/#calc-notation">
<meta name="assert" content="calc supports animation by computed value">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.container {
position: relative;
width: 50px;
height: 50px;
border: black solid 2px;
display: inline-block;
margin-left: 10px;
margin-right: 10px;
background-color: white;
}
.target {
position: absolute;
width: 10px;
height: 50px;
background-color: black;
}
.expected {
background-color: green;
}
</style>
<body>
<template id="target-template">
<div class="container">
<div class="target"></div>
</div>
</template>
<div class="target" id="inf-target"></div>
<script>
const APPROX_INFINITY = (function() {
const target = document.getElementById("inf-target");
target.style.letterSpacing = "calc(1px * infinity)";
const inf = parseFloat(getComputedStyle(target).letterSpacing);
target.remove();
return inf;
}());
test_interpolation({
property: 'left',
from: '0px',
to: 'calc(infinity * 1px)',
target_names:['CSS Transitions', 'CSS Transitions with transition: all']
}, [
{at: -0.25, expect: `${APPROX_INFINITY * -0.25 }px`},
{at: 0, expect: '0px'},
{at: 0.25, expect: `${APPROX_INFINITY * 0.25}px`},
{at: 0.5, expect: `${APPROX_INFINITY * 0.5}px`},
{at: 0.75, expect: `${APPROX_INFINITY * 0.75}px`},
{at: 1, expect: `${APPROX_INFINITY}px`},
{at: 1.25, expect: `${APPROX_INFINITY * 1.25}px`}
]);
test_interpolation({
property: 'left',
from: '0px',
to: 'calc(infinity * 1px)',
target_names:['CSS Animations', 'Web Animations']
}, [
{at: -0.25, expect: `${-APPROX_INFINITY}px`},
{at: 0, expect: `0px`},
{at: 0.25, expect: `${APPROX_INFINITY}px`},
{at: 0.5, expect: `${APPROX_INFINITY}px`},
{at: 0.75, expect: `${APPROX_INFINITY}px`},
{at: 1, expect: `${APPROX_INFINITY}px`},
{at: 1.25, expect: `${APPROX_INFINITY}px`}
]);
test_interpolation({
property: 'left',
from: 'calc(50% - 25px)',
to: 'calc(100% - 10px)'
}, [
{at: -0.25, expect: '-10px'},
{at: 0, expect: '0px'},
{at: 0.25, expect: '10px'},
{at: 0.5, expect: '20px'},
{at: 0.75, expect: '30px'},
{at: 1, expect: '40px'},
{at: 1.25, expect: '50px'}
]);
test_interpolation({
property: 'text-indent',
from: 'calc(50% - 25px)',
to: 'calc(100% - 10px)'
}, [
{at: -0.25, expect: 'calc(((50% - 25px) * 1.25) + ((100% - 10px) * -0.25))'},
{at: 0, expect: 'calc(50% - 25px)'},
{at: 0.25, expect: 'calc(((50% - 25px) * 0.75) + ((100% - 10px) * 0.25))'},
{at: 0.5, expect: 'calc(((50% - 25px) * 0.5) + ((100% - 10px) * 0.5))'},
{at: 0.75, expect: 'calc(((50% - 25px) * 0.25) + ((100% - 10px) * 0.75))'},
{at: 1, expect: 'calc(100% - 10px)'},
{at: 1.25, expect: 'calc(((50% - 25px) * -0.25) + ((100% - 10px) * 1.25))'}
]);
test_interpolation({
property: 'text-indent',
from: '0em',
to: '100px'
}, [
{at: -0.25, expect: '-25px'},
{at: 0, expect: '0em'},
{at: 0.25, expect: '25px'},
{at: 0.5, expect: '50px'},
{at: 0.75, expect: '75px'},
{at: 1, expect: '100px'},
{at: 1.25, expect: '125px'}
]);
test_interpolation({
property: 'text-indent',
from: '0%',
to: '100px'
}, [
{at: -0.25, expect: 'calc(0% + -25px)'},
{at: 0, expect: '0%'},
{at: 0.25, expect: 'calc(0% + 25px)'},
{at: 0.5, expect: 'calc(0% + 50px)'},
{at: 0.75, expect: 'calc(0% + 75px)'},
{at: 1, expect: 'calc(0% + 100px)'},
{at: 1.25, expect: 'calc(0% + 125px)'}
]);
</script>
</body>