LibWeb/CSS: Support interpolating filter and backdrop-filter values

This commit is contained in:
Tim Ledbetter 2025-07-28 19:32:47 +01:00 committed by Jelle Raaijmakers
parent 3b63582068
commit ca9364983c
19 changed files with 2877 additions and 0 deletions

View File

@ -3,6 +3,7 @@
* Copyright (c) 2021, the SerenityOS developers.
* Copyright (c) 2021-2024, Sam Atkins <sam@ladybird.org>
* Copyright (c) 2024, Matthew Olsson <mattco@serenityos.org>
* Copyright (c) 2025, Tim Ledbetter <tim.ledbetter@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -120,6 +121,194 @@ static RefPtr<CSSStyleValue const> interpolate_scale(DOM::Element& element, Calc
move(new_values));
}
// https://drafts.fxtf.org/filter-effects/#interpolation-of-filter-functions
static Optional<FilterValue> interpolate_filter_function(DOM::Element& element, CalculationContext calculation_context, FilterValue const& from, FilterValue const& to, float delta, AllowDiscrete allow_discrete)
{
VERIFY(!from.has<URL>());
VERIFY(!to.has<URL>());
if (from.index() != to.index()) {
return {};
}
auto result = from.visit(
[&](FilterOperation::Blur const& from_value) -> Optional<FilterValue> {
auto const& to_value = to.get<FilterOperation::Blur>();
if (auto interpolated_style_value = interpolate_value(element, calculation_context, from_value.radius.as_style_value(), to_value.radius.as_style_value(), delta, allow_discrete)) {
LengthOrCalculated interpolated_radius = interpolated_style_value->is_length() ? LengthOrCalculated { interpolated_style_value->as_length().length() } : LengthOrCalculated { interpolated_style_value->as_calculated() };
return FilterOperation::Blur {
.radius = interpolated_radius
};
}
return {};
},
[&](FilterOperation::HueRotate const& from_value) -> Optional<FilterValue> {
auto const& to_value = to.get<FilterOperation::HueRotate>();
auto const& from_style_value = from_value.angle.has<FilterOperation::HueRotate::Zero>() ? AngleStyleValue::create(Angle::make_degrees(0)) : from_value.angle.get<AngleOrCalculated>().as_style_value();
auto const& to_style_value = to_value.angle.has<FilterOperation::HueRotate::Zero>() ? AngleStyleValue::create(Angle::make_degrees(0)) : to_value.angle.get<AngleOrCalculated>().as_style_value();
if (auto interpolated_style_value = interpolate_value(element, calculation_context, from_style_value, to_style_value, delta, allow_discrete)) {
AngleOrCalculated interpolated_angle = interpolated_style_value->is_angle() ? AngleOrCalculated { interpolated_style_value->as_angle().angle() } : AngleOrCalculated { interpolated_style_value->as_calculated() };
return FilterOperation::HueRotate {
.angle = interpolated_angle,
};
}
return {};
},
[&](FilterOperation::Color const& from_value) -> Optional<FilterValue> {
auto resolve_number_percentage = [](NumberPercentage const& amount) -> ValueComparingNonnullRefPtr<CSSStyleValue const> {
if (amount.is_number())
return NumberStyleValue::create(amount.number().value());
if (amount.is_percentage())
return NumberStyleValue::create(amount.percentage().as_fraction());
if (amount.is_calculated())
return amount.calculated();
VERIFY_NOT_REACHED();
};
auto const& to_value = to.get<FilterOperation::Color>();
auto from_style_value = resolve_number_percentage(from_value.amount);
auto to_style_value = resolve_number_percentage(to_value.amount);
if (auto interpolated_style_value = interpolate_value(element, calculation_context, from_style_value, to_style_value, delta, allow_discrete)) {
auto to_number_percentage = [&](CSSStyleValue const& style_value) -> NumberPercentage {
if (style_value.is_number())
return Number {
Number::Type::Number,
style_value.as_number().number(),
};
if (style_value.is_percentage())
return Percentage { style_value.as_percentage().percentage() };
if (style_value.is_calculated())
return NumberPercentage { style_value.as_calculated() };
VERIFY_NOT_REACHED();
};
return FilterOperation::Color {
.operation = delta >= 0.5f ? to_value.operation : from_value.operation,
.amount = to_number_percentage(*interpolated_style_value)
};
}
return {};
},
[](auto const&) -> Optional<FilterValue> {
// FIXME: Handle interpolating shadow list values
return {};
});
return result;
}
// https://drafts.fxtf.org/filter-effects/#interpolation-of-filters
static RefPtr<CSSStyleValue const> interpolate_filter_value_list(DOM::Element& element, CalculationContext calculation_context, CSSStyleValue const& a_from, CSSStyleValue const& a_to, float delta, AllowDiscrete allow_discrete)
{
auto is_filter_value_list_without_url = [](CSSStyleValue const& value) {
if (!value.is_filter_value_list())
return false;
auto const& filter_value_list = value.as_filter_value_list();
return !filter_value_list.contains_url();
};
auto initial_value_for = [&](FilterValue value) {
return value.visit([&](FilterOperation::Blur const&) -> FilterValue { return FilterOperation::Blur {}; },
[&](FilterOperation::DropShadow const&) -> FilterValue {
return FilterOperation::DropShadow {
.offset_x = Length::make_px(0),
.offset_y = Length::make_px(0),
.radius = Length::make_px(0),
.color = Color::Transparent
};
},
[&](FilterOperation::HueRotate const&) -> FilterValue {
return FilterOperation::HueRotate {};
},
[&](FilterOperation::Color const& color) -> FilterValue {
auto default_value_for_interpolation = [&]() {
switch (color.operation) {
case Gfx::ColorFilterType::Grayscale:
case Gfx::ColorFilterType::Invert:
case Gfx::ColorFilterType::Sepia:
return 0.0;
case Gfx::ColorFilterType::Brightness:
case Gfx::ColorFilterType::Contrast:
case Gfx::ColorFilterType::Opacity:
case Gfx::ColorFilterType::Saturate:
return 1.0;
}
VERIFY_NOT_REACHED();
}();
return FilterOperation::Color { .operation = color.operation, .amount = NumberPercentage { Number { Number::Type::Integer, default_value_for_interpolation } } };
},
[&](auto&) -> FilterValue {
VERIFY_NOT_REACHED();
});
};
auto interpolate_filter_values = [&](CSSStyleValue const& from, CSSStyleValue const& to) -> RefPtr<FilterValueListStyleValue const> {
auto const& from_filter_values = from.as_filter_value_list().filter_value_list();
auto const& to_filter_values = to.as_filter_value_list().filter_value_list();
Vector<FilterValue> interpolated_filter_values;
for (size_t i = 0; i < from.as_filter_value_list().size(); ++i) {
auto const& from_value = from_filter_values[i];
auto const& to_value = to_filter_values[i];
auto interpolated_value = interpolate_filter_function(element, calculation_context, from_value, to_value, delta, allow_discrete);
if (!interpolated_value.has_value())
return {};
interpolated_filter_values.append(interpolated_value.release_value());
}
return FilterValueListStyleValue::create(move(interpolated_filter_values));
};
if (is_filter_value_list_without_url(a_from) && is_filter_value_list_without_url(a_to)) {
auto const& from_list = a_from.as_filter_value_list();
auto const& to_list = a_to.as_filter_value_list();
// If both filters have a <filter-value-list> of same length without <url> and for each <filter-function> for which there is a corresponding item in each list
if (from_list.size() == to_list.size()) {
// Interpolate each <filter-function> pair following the rules in section Interpolation of Filter Functions.
return interpolate_filter_values(a_from, a_to);
}
// If both filters have a <filter-value-list> of different length without <url> and for each <filter-function> for which there is a corresponding item in each list
// 1. Append the missing equivalent <filter-function>s from the longer list to the end of the shorter list. The new added <filter-function>s must be initialized to their initial values for interpolation.
auto append_missing_values_to = [&](FilterValueListStyleValue const& short_list, FilterValueListStyleValue const& longer_list) -> ValueComparingNonnullRefPtr<FilterValueListStyleValue const> {
Vector<FilterValue> new_filter_list = short_list.filter_value_list();
for (size_t i = new_filter_list.size(); i < longer_list.size(); ++i) {
auto const& filter_value = longer_list.filter_value_list()[i];
new_filter_list.append(initial_value_for(filter_value));
}
return FilterValueListStyleValue::create(move(new_filter_list));
};
ValueComparingNonnullRefPtr<CSSStyleValue const> from = from_list.size() < to_list.size() ? append_missing_values_to(from_list, to_list) : a_from;
ValueComparingNonnullRefPtr<CSSStyleValue const> to = to_list.size() < from_list.size() ? append_missing_values_to(to_list, from_list) : a_to;
// 2. Interpolate each <filter-function> pair following the rules in section Interpolation of Filter Functions.
return interpolate_filter_values(from, to);
}
// If one filter is none and the other is a <filter-value-list> without <url>
if ((is_filter_value_list_without_url(a_from) && a_to.to_keyword() == Keyword::None)
|| (is_filter_value_list_without_url(a_to) && a_from.to_keyword() == Keyword::None)) {
// 1. Replace none with the corresponding <filter-value-list> of the other filter. The new <filter-function>s must be initialized to their initial values for interpolation.
auto replace_none_with_initial_filter_list_values = [&](FilterValueListStyleValue const& filter_value_list) {
Vector<FilterValue> initial_values;
for (auto const& filter_value : filter_value_list.filter_value_list()) {
initial_values.append(initial_value_for(filter_value));
}
return FilterValueListStyleValue::create(move(initial_values));
};
ValueComparingNonnullRefPtr<CSSStyleValue const> from = a_from.is_keyword() ? replace_none_with_initial_filter_list_values(a_to.as_filter_value_list()) : a_from;
ValueComparingNonnullRefPtr<CSSStyleValue const> to = a_to.is_keyword() ? replace_none_with_initial_filter_list_values(a_from.as_filter_value_list()) : a_to;
// 2. Interpolate each <filter-function> pair following the rules in section Interpolation of Filter Functions.
return interpolate_filter_values(from, to);
}
// Otherwise:
// Use discrete interpolation
return {};
}
static RefPtr<CSSStyleValue const> interpolate_translate(DOM::Element& element, CalculationContext calculation_context, CSSStyleValue const& a_from, CSSStyleValue const& a_to, float delta, AllowDiscrete allow_discrete)
{
if (a_from.to_keyword() == Keyword::None && a_to.to_keyword() == Keyword::None)
@ -362,6 +551,12 @@ ValueComparingRefPtr<CSSStyleValue const> interpolate_property(DOM::Element& ele
return interpolate_discrete(from, to, delta, allow_discrete);
}
if (property_id == PropertyID::Filter || property_id == PropertyID::BackdropFilter) {
if (auto result = interpolate_filter_value_list(element, calculation_context, from, to, delta, allow_discrete))
return result;
return interpolate_discrete(from, to, delta, allow_discrete);
}
// FIXME: Handle all custom animatable properties
[[fallthrough]];
}

View File

@ -108,4 +108,13 @@ String FilterValueListStyleValue::to_string(SerializationMode) const
return MUST(builder.to_string());
}
bool FilterValueListStyleValue::contains_url() const
{
for (auto const& filter_value : m_filter_value_list) {
if (filter_value.has<URL>())
return true;
}
return false;
}
}

View File

@ -66,6 +66,9 @@ public:
}
Vector<FilterValue> const& filter_value_list() const { return m_filter_value_list; }
size_t size() const { return m_filter_value_list.size(); }
bool contains_url() const;
virtual String to_string(SerializationMode) const override;

View File

@ -0,0 +1,280 @@
Harness status: OK
Found 274 tests
222 Pass
52 Fail
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Fail CSS Transitions: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail CSS Transitions: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail CSS Transitions: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail CSS Transitions: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail CSS Transitions: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Fail CSS Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail CSS Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail CSS Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail CSS Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail CSS Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Fail Web Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail Web Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail Web Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail Web Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail Web Animations: property <backdrop-filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Pass CSS Transitions: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Pass CSS Transitions: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Pass CSS Transitions: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Pass CSS Transitions: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass CSS Transitions: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Fail CSS Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Fail CSS Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Fail CSS Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Fail CSS Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass CSS Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Fail CSS Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Fail Web Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Fail Web Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Fail Web Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Fail Web Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass Web Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Fail Web Animations: property <backdrop-filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass Web Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass Web Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass Web Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass Web Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass Web Animations: property <backdrop-filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass CSS Transitions: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass CSS Transitions: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass CSS Transitions: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass CSS Transitions: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass CSS Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass CSS Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass CSS Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass CSS Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass CSS Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass Web Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass Web Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass Web Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass Web Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass Web Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass Web Animations: property <backdrop-filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass CSS Transitions: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass Web Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass Web Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass Web Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass Web Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass Web Animations: property <backdrop-filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Pass CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Pass Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Fail CSS Transitions: property <backdrop-filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions: property <backdrop-filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail Web Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass Web Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass Web Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass Web Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail Web Animations: property <backdrop-filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]

View File

@ -0,0 +1,88 @@
Harness status: OK
Found 82 tests
78 Pass
4 Fail
Fail CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Fail CSS Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Fail Web Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Pass CSS Transitions: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass CSS Transitions: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass CSS Transitions: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass CSS Transitions: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass CSS Transitions: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass CSS Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass CSS Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass CSS Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass CSS Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass CSS Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass Web Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass Web Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass Web Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass Web Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass Web Animations: property <backdrop-filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]

View File

@ -0,0 +1,208 @@
Harness status: OK
Found 202 tests
142 Pass
60 Fail
Fail CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Animations: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Animations: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Animations: property <backdrop-filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail Web Animations: property <backdrop-filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass Web Animations: property <backdrop-filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass Web Animations: property <backdrop-filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass Web Animations: property <backdrop-filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions: property <backdrop-filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail CSS Animations: property <backdrop-filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail Web Animations: property <backdrop-filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions: property <backdrop-filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail CSS Animations: property <backdrop-filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail Web Animations: property <backdrop-filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass CSS Transitions: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail CSS Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail CSS Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass CSS Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail Web Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail Web Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass Web Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail Web Animations: property <backdrop-filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Fail CSS Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass CSS Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass CSS Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail CSS Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Fail Web Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass Web Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass Web Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail Web Animations: property <backdrop-filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass Web Animations: property <backdrop-filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail CSS Animations: property <backdrop-filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass CSS Animations: property <backdrop-filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass CSS Animations: property <backdrop-filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail CSS Animations: property <backdrop-filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail Web Animations: property <backdrop-filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass Web Animations: property <backdrop-filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass Web Animations: property <backdrop-filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail Web Animations: property <backdrop-filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail CSS Transitions: property <backdrop-filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass CSS Transitions: property <backdrop-filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass CSS Transitions: property <backdrop-filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Fail CSS Transitions: property <backdrop-filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail CSS Animations: property <backdrop-filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass CSS Animations: property <backdrop-filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass CSS Animations: property <backdrop-filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Fail CSS Animations: property <backdrop-filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail Web Animations: property <backdrop-filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass Web Animations: property <backdrop-filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass Web Animations: property <backdrop-filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Fail Web Animations: property <backdrop-filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail CSS Transitions: property <backdrop-filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail CSS Animations: property <backdrop-filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail Web Animations: property <backdrop-filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions: property <backdrop-filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Animations: property <backdrop-filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Animations: property <backdrop-filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Animations: property <backdrop-filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Animations: property <backdrop-filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail Web Animations: property <backdrop-filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass Web Animations: property <backdrop-filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass Web Animations: property <backdrop-filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail Web Animations: property <backdrop-filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (-0.3) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.3) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (-0.3) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.3) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass Web Animations: property <backdrop-filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]

View File

@ -0,0 +1,206 @@
Harness status: OK
Found 200 tests
136 Pass
64 Fail
Fail CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions: property <backdrop-filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass CSS Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail Web Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass Web Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass Web Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass Web Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass Web Animations: property <backdrop-filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions: property <backdrop-filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass CSS Transitions: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail CSS Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass CSS Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail Web Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass Web Animations: property <backdrop-filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions: property <backdrop-filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass CSS Transitions: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail CSS Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass CSS Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail Web Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass Web Animations: property <backdrop-filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail CSS Transitions: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail CSS Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail Web Animations: property <backdrop-filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail CSS Transitions: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail CSS Transitions: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Fail CSS Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass CSS Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail CSS Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Fail Web Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass Web Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail Web Animations: property <backdrop-filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass Web Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass Web Animations: property <backdrop-filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Fail CSS Transitions: property <backdrop-filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass CSS Transitions: property <backdrop-filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass CSS Transitions: property <backdrop-filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail CSS Transitions: property <backdrop-filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail CSS Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass CSS Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass CSS Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass CSS Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail CSS Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail Web Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass Web Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass Web Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass Web Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail Web Animations: property <backdrop-filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail CSS Transitions: property <backdrop-filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass CSS Transitions: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass CSS Transitions: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail CSS Transitions: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail CSS Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass CSS Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass CSS Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass CSS Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail CSS Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail Web Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass Web Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass Web Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass Web Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail Web Animations: property <backdrop-filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail CSS Transitions: property <backdrop-filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass CSS Transitions: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail CSS Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass CSS Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail Web Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass Web Animations: property <backdrop-filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions: property <backdrop-filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass CSS Transitions: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass CSS Transitions: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail CSS Transitions: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions with transition: all: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail CSS Transitions with transition: all: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]
Fail CSS Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass CSS Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass CSS Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass CSS Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail CSS Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]
Fail Web Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass Web Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass Web Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass Web Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail Web Animations: property <backdrop-filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]

View File

@ -0,0 +1,150 @@
Harness status: OK
Found 144 tests
114 Pass
30 Fail
Pass CSS Transitions: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass CSS Transitions: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass CSS Transitions: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass CSS Transitions: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass CSS Transitions: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass CSS Transitions: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Pass CSS Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass CSS Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass CSS Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass CSS Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass CSS Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass CSS Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Pass Web Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (-0.5) should be [hue-rotate(-90deg) blur(4px)]
Pass Web Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0) should be [hue-rotate(0deg) blur(6px)]
Pass Web Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.25) should be [hue-rotate(45deg) blur(7px)]
Pass Web Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (0.5) should be [hue-rotate(90deg) blur(8px)]
Pass Web Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1) should be [hue-rotate(180deg) blur(10px)]
Pass Web Animations: property <filter> from [hue-rotate(0deg) blur(6px)] to [hue-rotate(180deg) blur(10px)] at (1.5) should be [hue-rotate(270deg) blur(12px)]
Fail CSS Transitions: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass CSS Transitions: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail CSS Transitions: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail CSS Transitions: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail CSS Transitions: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail CSS Transitions: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Fail CSS Transitions with transition: all: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail CSS Transitions with transition: all: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail CSS Transitions with transition: all: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail CSS Transitions with transition: all: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail CSS Transitions with transition: all: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Fail CSS Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass CSS Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail CSS Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail CSS Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail CSS Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail CSS Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Fail Web Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (-0.5) should be [hue-rotate(75deg) blur(4mm)]
Pass Web Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0) should be [hue-rotate(80deg) blur(6mm)]
Fail Web Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.25) should be [hue-rotate(82.5deg) blur(7mm)]
Fail Web Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (0.5) should be [hue-rotate(85deg) blur(8mm)]
Fail Web Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1) should be [hue-rotate(90deg) blur(10mm)]
Fail Web Animations: property <filter> from [hue-rotate(80deg) blur(6mm)] to [hue-rotate(100grad) blur(1cm)] at (1.5) should be [hue-rotate(95deg) blur(12mm)]
Pass CSS Transitions: property <filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Pass CSS Transitions: property <filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Pass CSS Transitions: property <filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Pass CSS Transitions: property <filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass CSS Transitions: property <filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Pass CSS Transitions with transition: all: property <filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Pass CSS Transitions with transition: all: property <filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Pass CSS Transitions with transition: all: property <filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Pass CSS Transitions with transition: all: property <filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass CSS Transitions with transition: all: property <filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Fail CSS Animations: property <filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Fail CSS Animations: property <filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Fail CSS Animations: property <filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Fail CSS Animations: property <filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass CSS Animations: property <filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Fail CSS Animations: property <filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Fail Web Animations: property <filter> from neutral to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(5deg)]
Fail Web Animations: property <filter> from neutral to [hue-rotate(20deg)] at (0) should be [hue-rotate(10deg)]
Fail Web Animations: property <filter> from neutral to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(13deg)]
Fail Web Animations: property <filter> from neutral to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(16deg)]
Pass Web Animations: property <filter> from neutral to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Fail Web Animations: property <filter> from neutral to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(25deg)]
Pass CSS Transitions: property <filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions: property <filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions: property <filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions: property <filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass Web Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass Web Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass Web Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass Web Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass Web Animations: property <filter> from [initial] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions: property <filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass CSS Transitions: property <filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass CSS Transitions: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass CSS Transitions: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass CSS Transitions: property <filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass CSS Transitions with transition: all: property <filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass CSS Transitions with transition: all: property <filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass CSS Transitions with transition: all: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass CSS Transitions with transition: all: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass CSS Transitions with transition: all: property <filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass CSS Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass CSS Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass CSS Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass CSS Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass CSS Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass Web Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(35deg)]
Pass Web Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (0) should be [hue-rotate(30deg)]
Pass Web Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(27deg)]
Pass Web Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(24deg)]
Pass Web Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass Web Animations: property <filter> from [inherit] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(15deg)]
Pass CSS Transitions: property <filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions: property <filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions: property <filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions: property <filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions: property <filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Transitions with transition: all: property <filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Transitions with transition: all: property <filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Transitions with transition: all: property <filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Transitions with transition: all: property <filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Transitions with transition: all: property <filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass CSS Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass CSS Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass CSS Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass CSS Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass CSS Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]
Pass Web Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (-0.5) should be [hue-rotate(-10deg)]
Pass Web Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (0.3) should be [hue-rotate(6deg)]
Pass Web Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (0.6) should be [hue-rotate(12deg)]
Pass Web Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (1) should be [hue-rotate(20deg)]
Pass Web Animations: property <filter> from [unset] to [hue-rotate(20deg)] at (1.5) should be [hue-rotate(30deg)]

View File

@ -0,0 +1,168 @@
Harness status: OK
Found 162 tests
140 Pass
22 Fail
Fail CSS Transitions: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass CSS Transitions: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0) should be [opacity(1) hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass CSS Transitions: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass CSS Transitions: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass CSS Transitions: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0) should be [opacity(1) hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Fail CSS Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass CSS Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0) should be [opacity(1) hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass CSS Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass CSS Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass CSS Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Fail Web Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (-0.5) should be [opacity(1) hue-rotate(-90deg)]
Pass Web Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0) should be [opacity(1) hue-rotate(0deg)]
Pass Web Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.25) should be [opacity(0.875) hue-rotate(45deg)]
Pass Web Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (0.5) should be [opacity(0.75) hue-rotate(90deg)]
Pass Web Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1) should be [opacity(0.5) hue-rotate(180deg)]
Pass Web Animations: property <filter> from [none] to [opacity(0.5) hue-rotate(180deg)] at (1.5) should be [opacity(0.25) hue-rotate(270deg)]
Pass CSS Transitions: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass CSS Transitions: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0) should be [blur(6px) hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass CSS Transitions: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass CSS Transitions: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass CSS Transitions: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass CSS Transitions with transition: all: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0) should be [blur(6px) hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass CSS Transitions with transition: all: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass CSS Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass CSS Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0) should be [blur(6px) hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass CSS Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass CSS Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass CSS Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass Web Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (-0.5) should be [blur(4px) hue-rotate(-90deg)]
Pass Web Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0) should be [blur(6px) hue-rotate(0deg)]
Pass Web Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.25) should be [blur(7px) hue-rotate(45deg)]
Pass Web Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (0.5) should be [blur(8px) hue-rotate(90deg)]
Pass Web Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1) should be [blur(10px) hue-rotate(180deg)]
Pass Web Animations: property <filter> from [blur(6px)] to [blur(10px) hue-rotate(180deg)] at (1.5) should be [blur(12px) hue-rotate(270deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(180deg)] at (-0.5) should be [hue-rotate(-90deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(180deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(180deg)] at (0.25) should be [hue-rotate(45deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(180deg)] at (0.5) should be [hue-rotate(90deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(180deg)] at (1) should be [hue-rotate(180deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(180deg)] at (1.5) should be [hue-rotate(270deg)]
Pass CSS Transitions: property <filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass CSS Transitions: property <filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass CSS Transitions: property <filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions: property <filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Pass CSS Animations: property <filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass CSS Animations: property <filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass CSS Animations: property <filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass CSS Animations: property <filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass CSS Animations: property <filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Pass Web Animations: property <filter> from [hue-rotate(180deg)] to [none] at (-0.5) should be [hue-rotate(270deg)]
Pass Web Animations: property <filter> from [hue-rotate(180deg)] to [none] at (0) should be [hue-rotate(180deg)]
Pass Web Animations: property <filter> from [hue-rotate(180deg)] to [none] at (0.25) should be [hue-rotate(135deg)]
Pass Web Animations: property <filter> from [hue-rotate(180deg)] to [none] at (0.5) should be [hue-rotate(90deg)]
Pass Web Animations: property <filter> from [hue-rotate(180deg)] to [none] at (1) should be [hue-rotate(0deg)]
Pass Web Animations: property <filter> from [hue-rotate(180deg)] to [none] at (1.5) should be [hue-rotate(-90deg)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass CSS Transitions: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Pass CSS Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass CSS Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px white)]
Pass Web Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px currentcolor)]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px #80C080)]
Pass Web Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px 0px currentcolor)] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #004100)]
Fail CSS Transitions: property <filter> from [drop-shadow(20px 10px blue)] to [drop-shadow(20px 10px green)] at (2147483648) should be [drop-shadow(20px 10px #00FF00]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(20px 10px blue)] to [drop-shadow(20px 10px green)] at (2147483648) should be [drop-shadow(20px 10px #00FF00]
Fail CSS Animations: property <filter> from [drop-shadow(20px 10px blue)] to [drop-shadow(20px 10px green)] at (2147483648) should be [drop-shadow(20px 10px #00FF00]
Fail Web Animations: property <filter> from [drop-shadow(20px 10px blue)] to [drop-shadow(20px 10px green)] at (2147483648) should be [drop-shadow(20px 10px #00FF00]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (-0.3) should be [grayscale(0) blur(0px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0) should be [grayscale(0) blur(0px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.3) should be [grayscale(0) blur(0px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.5) should be [blur(10px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (0.6) should be [blur(10px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1) should be [blur(10px)]
Pass Web Animations: property <filter> from [grayscale(0) blur(0px)] to [blur(10px)] at (1.5) should be [blur(10px)]

View File

@ -0,0 +1,310 @@
Harness status: OK
Found 304 tests
232 Pass
72 Fail
Fail CSS Transitions: property <filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions: property <filter> from [none] to [blur(10px)] at (0) should be [blur(0px)]
Pass CSS Transitions: property <filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [blur(10px)] at (0) should be [blur(0px)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Animations: property <filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Animations: property <filter> from [none] to [blur(10px)] at (0) should be [blur(0px)]
Pass CSS Animations: property <filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Animations: property <filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Animations: property <filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail Web Animations: property <filter> from [none] to [blur(10px)] at (-1) should be [blur(0px)]
Pass Web Animations: property <filter> from [none] to [blur(10px)] at (0) should be [blur(0px)]
Pass Web Animations: property <filter> from [none] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass Web Animations: property <filter> from [none] to [blur(10px)] at (1) should be [blur(10px)]
Pass Web Animations: property <filter> from [none] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions: property <filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [none] at (1) should be [brightness(1)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions with transition: all: property <filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [none] at (1) should be [brightness(1)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail CSS Animations: property <filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass CSS Animations: property <filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass CSS Animations: property <filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass CSS Animations: property <filter> from [brightness(0)] to [none] at (1) should be [brightness(1)]
Pass CSS Animations: property <filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail Web Animations: property <filter> from [brightness(0)] to [none] at (-1) should be [brightness(0)]
Pass Web Animations: property <filter> from [brightness(0)] to [none] at (0) should be [brightness(0)]
Pass Web Animations: property <filter> from [brightness(0)] to [none] at (0.5) should be [brightness(0.5)]
Pass Web Animations: property <filter> from [brightness(0)] to [none] at (1) should be [brightness(1)]
Pass Web Animations: property <filter> from [brightness(0)] to [none] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions: property <filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [none] at (1) should be [contrast(1)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions with transition: all: property <filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [none] at (1) should be [contrast(1)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail CSS Animations: property <filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass CSS Animations: property <filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass CSS Animations: property <filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass CSS Animations: property <filter> from [contrast(0)] to [none] at (1) should be [contrast(1)]
Pass CSS Animations: property <filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail Web Animations: property <filter> from [contrast(0)] to [none] at (-1) should be [contrast(0)]
Pass Web Animations: property <filter> from [contrast(0)] to [none] at (0) should be [contrast(0)]
Pass Web Animations: property <filter> from [contrast(0)] to [none] at (0.5) should be [contrast(0.5)]
Pass Web Animations: property <filter> from [contrast(0)] to [none] at (1) should be [contrast(1)]
Pass Web Animations: property <filter> from [contrast(0)] to [none] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions: property <filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail CSS Transitions: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px transparent)]
Fail CSS Transitions: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass CSS Transitions: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px transparent)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass CSS Transitions with transition: all: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail CSS Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail CSS Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px transparent)]
Fail CSS Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass CSS Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail CSS Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail Web Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (-1) should be [drop-shadow(-20px -10px transparent)]
Fail Web Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0) should be [drop-shadow(0px 0px 0px transparent)]
Fail Web Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (0.5) should be [drop-shadow(10px 5px rgba(0, 128, 0, 0.5))]
Pass Web Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1) should be [drop-shadow(20px 10px green)]
Fail Web Animations: property <filter> from [none] to [drop-shadow(20px 10px green)] at (1.5) should be [drop-shadow(30px 15px #00C000)]
Fail CSS Transitions: property <filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass CSS Transitions: property <filter> from [none] to [grayscale(1)] at (0) should be [grayscale(0)]
Pass CSS Transitions: property <filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions: property <filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail CSS Transitions: property <filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [grayscale(1)] at (0) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Fail CSS Animations: property <filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass CSS Animations: property <filter> from [none] to [grayscale(1)] at (0) should be [grayscale(0)]
Pass CSS Animations: property <filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass CSS Animations: property <filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail CSS Animations: property <filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Fail Web Animations: property <filter> from [none] to [grayscale(1)] at (-1) should be [grayscale(0)]
Pass Web Animations: property <filter> from [none] to [grayscale(1)] at (0) should be [grayscale(0)]
Pass Web Animations: property <filter> from [none] to [grayscale(1)] at (0.5) should be [grayscale(0.5)]
Pass Web Animations: property <filter> from [none] to [grayscale(1)] at (1) should be [grayscale(1)]
Fail Web Animations: property <filter> from [none] to [grayscale(1)] at (1.5) should be [grayscale(1)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(360deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions: property <filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(360deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(360deg)] at (0) should be [hue-rotate(0deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Animations: property <filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(360deg)] at (0) should be [hue-rotate(0deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass Web Animations: property <filter> from [none] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Fail CSS Transitions: property <filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass CSS Transitions: property <filter> from [none] to [invert(1)] at (0) should be [invert(0)]
Pass CSS Transitions: property <filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass CSS Transitions: property <filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail CSS Transitions: property <filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [invert(1)] at (0) should be [invert(0)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail CSS Animations: property <filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass CSS Animations: property <filter> from [none] to [invert(1)] at (0) should be [invert(0)]
Pass CSS Animations: property <filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass CSS Animations: property <filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail CSS Animations: property <filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail Web Animations: property <filter> from [none] to [invert(1)] at (-1) should be [invert(0)]
Pass Web Animations: property <filter> from [none] to [invert(1)] at (0) should be [invert(0)]
Pass Web Animations: property <filter> from [none] to [invert(1)] at (0.5) should be [invert(0.5)]
Pass Web Animations: property <filter> from [none] to [invert(1)] at (1) should be [invert(1)]
Fail Web Animations: property <filter> from [none] to [invert(1)] at (1.5) should be [invert(1)]
Fail CSS Transitions: property <filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass CSS Transitions: property <filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass CSS Transitions: property <filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Pass CSS Transitions: property <filter> from [opacity(0)] to [none] at (1) should be [opacity(1)]
Fail CSS Transitions: property <filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail CSS Transitions with transition: all: property <filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [opacity(0)] to [none] at (1) should be [opacity(1)]
Fail CSS Transitions with transition: all: property <filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail CSS Animations: property <filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass CSS Animations: property <filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass CSS Animations: property <filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Pass CSS Animations: property <filter> from [opacity(0)] to [none] at (1) should be [opacity(1)]
Fail CSS Animations: property <filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail Web Animations: property <filter> from [opacity(0)] to [none] at (-1) should be [opacity(0)]
Pass Web Animations: property <filter> from [opacity(0)] to [none] at (0) should be [opacity(0)]
Pass Web Animations: property <filter> from [opacity(0)] to [none] at (0.5) should be [opacity(0.5)]
Pass Web Animations: property <filter> from [opacity(0)] to [none] at (1) should be [opacity(1)]
Fail Web Animations: property <filter> from [opacity(0)] to [none] at (1.5) should be [opacity(1)]
Fail CSS Transitions: property <filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [none] at (1) should be [saturate(1)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions with transition: all: property <filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [none] at (1) should be [saturate(1)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail CSS Animations: property <filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass CSS Animations: property <filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass CSS Animations: property <filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass CSS Animations: property <filter> from [saturate(0)] to [none] at (1) should be [saturate(1)]
Pass CSS Animations: property <filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail Web Animations: property <filter> from [saturate(0)] to [none] at (-1) should be [saturate(0)]
Pass Web Animations: property <filter> from [saturate(0)] to [none] at (0) should be [saturate(0)]
Pass Web Animations: property <filter> from [saturate(0)] to [none] at (0.5) should be [saturate(0.5)]
Pass Web Animations: property <filter> from [saturate(0)] to [none] at (1) should be [saturate(1)]
Pass Web Animations: property <filter> from [saturate(0)] to [none] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions: property <filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions: property <filter> from [none] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Transitions: property <filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions: property <filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions: property <filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Animations: property <filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Animations: property <filter> from [none] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Animations: property <filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Animations: property <filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Animations: property <filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail Web Animations: property <filter> from [none] to [sepia(1)] at (-1) should be [sepia(0)]
Pass Web Animations: property <filter> from [none] to [sepia(1)] at (0) should be [sepia(0)]
Pass Web Animations: property <filter> from [none] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass Web Animations: property <filter> from [none] to [sepia(1)] at (1) should be [sepia(1)]
Fail Web Animations: property <filter> from [none] to [sepia(1)] at (1.5) should be [sepia(1)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (-0.3) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (0) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (0.3) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (-0.3) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (0) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (0.3) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (-0.3) should be [url("#svgfilter")]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (0) should be [url("#svgfilter")]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (0.3) should be [url("#svgfilter")]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (0.5) should be [none]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (0.6) should be [none]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (1) should be [none]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [none] at (1.5) should be [none]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions with transition-behavior:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass CSS Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (-0.3) should be [url("#svgfilter")]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0) should be [url("#svgfilter")]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.3) should be [url("#svgfilter")]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.5) should be [blur(5px)]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (0.6) should be [blur(5px)]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1) should be [blur(5px)]
Pass Web Animations: property <filter> from [url("#svgfilter")] to [blur(5px)] at (1.5) should be [blur(5px)]
Fail CSS Transitions: property <filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions: property <filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Transitions: property <filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions: property <filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions: property <filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail CSS Animations: property <filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass CSS Animations: property <filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass CSS Animations: property <filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass CSS Animations: property <filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail CSS Animations: property <filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]
Fail Web Animations: property <filter> from [initial] to [sepia(1)] at (-1) should be [sepia(0)]
Pass Web Animations: property <filter> from [initial] to [sepia(1)] at (0) should be [sepia(0)]
Pass Web Animations: property <filter> from [initial] to [sepia(1)] at (0.5) should be [sepia(0.5)]
Pass Web Animations: property <filter> from [initial] to [sepia(1)] at (1) should be [sepia(1)]
Fail Web Animations: property <filter> from [initial] to [sepia(1)] at (1.5) should be [sepia(1)]

View File

@ -0,0 +1,206 @@
Harness status: OK
Found 200 tests
136 Pass
64 Fail
Fail CSS Transitions: property <filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions: property <filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass CSS Transitions: property <filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions: property <filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions: property <filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions with transition: all: property <filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Transitions with transition: all: property <filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass CSS Transitions with transition: all: property <filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Transitions with transition: all: property <filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Transitions with transition: all: property <filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Animations: property <filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass CSS Animations: property <filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass CSS Animations: property <filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass CSS Animations: property <filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass CSS Animations: property <filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail Web Animations: property <filter> from [blur()] to [blur(10px)] at (-1) should be [blur(0px)]
Pass Web Animations: property <filter> from [blur()] to [blur(10px)] at (0) should be [blur()]
Pass Web Animations: property <filter> from [blur()] to [blur(10px)] at (0.5) should be [blur(5px)]
Pass Web Animations: property <filter> from [blur()] to [blur(10px)] at (1) should be [blur(10px)]
Pass Web Animations: property <filter> from [blur()] to [blur(10px)] at (1.5) should be [blur(15px)]
Fail CSS Transitions: property <filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions: property <filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass CSS Transitions: property <filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions with transition: all: property <filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass CSS Transitions with transition: all: property <filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail CSS Animations: property <filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass CSS Animations: property <filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass CSS Animations: property <filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass CSS Animations: property <filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass CSS Animations: property <filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail Web Animations: property <filter> from [brightness(0)] to [brightness()] at (-1) should be [brightness(0)]
Pass Web Animations: property <filter> from [brightness(0)] to [brightness()] at (0) should be [brightness(0)]
Pass Web Animations: property <filter> from [brightness(0)] to [brightness()] at (0.5) should be [brightness(0.5)]
Pass Web Animations: property <filter> from [brightness(0)] to [brightness()] at (1) should be [brightness()]
Pass Web Animations: property <filter> from [brightness(0)] to [brightness()] at (1.5) should be [brightness(1.5)]
Fail CSS Transitions: property <filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions: property <filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass CSS Transitions: property <filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions with transition: all: property <filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass CSS Transitions with transition: all: property <filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail CSS Animations: property <filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass CSS Animations: property <filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass CSS Animations: property <filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass CSS Animations: property <filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass CSS Animations: property <filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail Web Animations: property <filter> from [contrast(0)] to [contrast()] at (-1) should be [contrast(0)]
Pass Web Animations: property <filter> from [contrast(0)] to [contrast()] at (0) should be [contrast(0)]
Pass Web Animations: property <filter> from [contrast(0)] to [contrast()] at (0.5) should be [contrast(0.5)]
Pass Web Animations: property <filter> from [contrast(0)] to [contrast()] at (1) should be [contrast()]
Pass Web Animations: property <filter> from [contrast(0)] to [contrast()] at (1.5) should be [contrast(1.5)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass CSS Transitions: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail CSS Transitions: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail CSS Transitions with transition: all: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass CSS Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail CSS Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (-1) should be [drop-shadow(-20px -10px blue)]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0) should be [drop-shadow(0px 0px blue)]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (0.5) should be [drop-shadow(10px 5px 15px rgb(0, 64, 128))]
Pass Web Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1) should be [drop-shadow(20px 10px 30px green)]
Fail Web Animations: property <filter> from [drop-shadow(0px 0px)] to [drop-shadow(20px 10px 30px green)] at (1.5) should be [drop-shadow(30px 15px 45px rgb(0, 192, 0))]
Fail CSS Transitions: property <filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass CSS Transitions: property <filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass CSS Transitions: property <filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions: property <filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail CSS Transitions: property <filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Fail CSS Transitions with transition: all: property <filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail CSS Transitions with transition: all: property <filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Fail CSS Animations: property <filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass CSS Animations: property <filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass CSS Animations: property <filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass CSS Animations: property <filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail CSS Animations: property <filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Fail Web Animations: property <filter> from [grayscale(0)] to [grayscale()] at (-1) should be [grayscale(0)]
Pass Web Animations: property <filter> from [grayscale(0)] to [grayscale()] at (0) should be [grayscale(0)]
Pass Web Animations: property <filter> from [grayscale(0)] to [grayscale()] at (0.5) should be [grayscale(0.5)]
Pass Web Animations: property <filter> from [grayscale(0)] to [grayscale()] at (1) should be [grayscale()]
Fail Web Animations: property <filter> from [grayscale(0)] to [grayscale()] at (1.5) should be [grayscale(1)]
Pass CSS Transitions: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass CSS Transitions: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Transitions with transition: all: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass CSS Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass CSS Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass CSS Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass CSS Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass CSS Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Pass Web Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (-1) should be [hue-rotate(-360deg)]
Pass Web Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0) should be [hue-rotate()]
Pass Web Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (0.5) should be [hue-rotate(180deg)]
Pass Web Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1) should be [hue-rotate(360deg)]
Pass Web Animations: property <filter> from [hue-rotate()] to [hue-rotate(360deg)] at (1.5) should be [hue-rotate(540deg)]
Fail CSS Transitions: property <filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass CSS Transitions: property <filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass CSS Transitions: property <filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass CSS Transitions: property <filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail CSS Transitions: property <filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail CSS Transitions with transition: all: property <filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass CSS Transitions with transition: all: property <filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass CSS Transitions with transition: all: property <filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail CSS Transitions with transition: all: property <filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail CSS Animations: property <filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass CSS Animations: property <filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass CSS Animations: property <filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass CSS Animations: property <filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail CSS Animations: property <filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail Web Animations: property <filter> from [invert(0)] to [invert()] at (-1) should be [invert(0)]
Pass Web Animations: property <filter> from [invert(0)] to [invert()] at (0) should be [invert(0)]
Pass Web Animations: property <filter> from [invert(0)] to [invert()] at (0.5) should be [invert(0.5)]
Pass Web Animations: property <filter> from [invert(0)] to [invert()] at (1) should be [invert()]
Fail Web Animations: property <filter> from [invert(0)] to [invert()] at (1.5) should be [invert(1)]
Fail CSS Transitions: property <filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass CSS Transitions: property <filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass CSS Transitions: property <filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass CSS Transitions: property <filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail CSS Transitions: property <filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail CSS Transitions with transition: all: property <filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass CSS Transitions with transition: all: property <filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail CSS Transitions with transition: all: property <filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail CSS Animations: property <filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass CSS Animations: property <filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass CSS Animations: property <filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass CSS Animations: property <filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail CSS Animations: property <filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail Web Animations: property <filter> from [opacity(0)] to [opacity()] at (-1) should be [opacity(0)]
Pass Web Animations: property <filter> from [opacity(0)] to [opacity()] at (0) should be [opacity(0)]
Pass Web Animations: property <filter> from [opacity(0)] to [opacity()] at (0.5) should be [opacity(0.5)]
Pass Web Animations: property <filter> from [opacity(0)] to [opacity()] at (1) should be [opacity()]
Fail Web Animations: property <filter> from [opacity(0)] to [opacity()] at (1.5) should be [opacity(1)]
Fail CSS Transitions: property <filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions: property <filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass CSS Transitions: property <filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions with transition: all: property <filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass CSS Transitions with transition: all: property <filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail CSS Animations: property <filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass CSS Animations: property <filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass CSS Animations: property <filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass CSS Animations: property <filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass CSS Animations: property <filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail Web Animations: property <filter> from [saturate(0)] to [saturate()] at (-1) should be [saturate(0)]
Pass Web Animations: property <filter> from [saturate(0)] to [saturate()] at (0) should be [saturate(0)]
Pass Web Animations: property <filter> from [saturate(0)] to [saturate()] at (0.5) should be [saturate(0.5)]
Pass Web Animations: property <filter> from [saturate(0)] to [saturate()] at (1) should be [saturate()]
Pass Web Animations: property <filter> from [saturate(0)] to [saturate()] at (1.5) should be [saturate(1.5)]
Fail CSS Transitions: property <filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass CSS Transitions: property <filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass CSS Transitions: property <filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions: property <filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail CSS Transitions: property <filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]
Fail CSS Transitions with transition: all: property <filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass CSS Transitions with transition: all: property <filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass CSS Transitions with transition: all: property <filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail CSS Transitions with transition: all: property <filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]
Fail CSS Animations: property <filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass CSS Animations: property <filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass CSS Animations: property <filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass CSS Animations: property <filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail CSS Animations: property <filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]
Fail Web Animations: property <filter> from [sepia(0)] to [sepia()] at (-1) should be [sepia(0)]
Pass Web Animations: property <filter> from [sepia(0)] to [sepia()] at (0) should be [sepia(0)]
Pass Web Animations: property <filter> from [sepia(0)] to [sepia()] at (0.5) should be [sepia(0.5)]
Pass Web Animations: property <filter> from [sepia(0)] to [sepia()] at (1) should be [sepia()]
Fail Web Animations: property <filter> from [sepia(0)] to [sepia()] at (1.5) should be [sepia(1)]

View File

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>backdrop-filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<meta name="assert" content="Matching lists interpolate.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.parent {
backdrop-filter: hue-rotate(30deg);
}
.target {
display: inline-block;
width: 50px;
height: 50px;
background-color: green;
color: white;
margin-right: 2px;
backdrop-filter: hue-rotate(10deg);
}
.expected {
margin-right: 20px;
}
.test {
padding-bottom: 10px;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'backdrop-filter',
from: 'hue-rotate(0deg) blur(6px)',
to: 'hue-rotate(180deg) blur(10px)'
}, [
{at: -0.5, expect: 'hue-rotate(-90deg) blur(4px)'},
{at: 0, expect: 'hue-rotate(0deg) blur(6px)'},
{at: 0.25, expect: 'hue-rotate(45deg) blur(7px)'},
{at: 0.5, expect: 'hue-rotate(90deg) blur(8px)'},
{at: 1, expect: 'hue-rotate(180deg) blur(10px)'},
{at: 1.5, expect: 'hue-rotate(270deg) blur(12px)'}
]);
// Matching lists with differing units:
test_interpolation({
property: 'backdrop-filter',
from: 'hue-rotate(80deg) blur(6mm)',
to: 'hue-rotate(100grad) blur(1cm)'
}, [
{at: -0.5, expect: 'hue-rotate(75deg) blur(4mm)'},
{at: 0, expect: 'hue-rotate(80deg) blur(6mm)'},
{at: 0.25, expect: 'hue-rotate(82.5deg) blur(7mm)'},
{at: 0.5, expect: 'hue-rotate(85deg) blur(8mm)'},
{at: 1, expect: 'hue-rotate(90deg) blur(10mm)'},
{at: 1.5, expect: 'hue-rotate(95deg) blur(12mm)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: neutralKeyframe,
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(5deg)'},
{at: 0, expect: 'hue-rotate(10deg)'},
{at: 0.3, expect: 'hue-rotate(13deg)'},
{at: 0.6, expect: 'hue-rotate(16deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(25deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'initial',
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(-10deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.3, expect: 'hue-rotate(6deg)'},
{at: 0.6, expect: 'hue-rotate(12deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(30deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'inherit',
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(35deg)'},
{at: 0, expect: 'hue-rotate(30deg)'},
{at: 0.3, expect: 'hue-rotate(27deg)'},
{at: 0.6, expect: 'hue-rotate(24deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(15deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'unset',
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(-10deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.3, expect: 'hue-rotate(6deg)'},
{at: 0.6, expect: 'hue-rotate(12deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(30deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'none',
to: 'hue-rotate(180deg)'
}, [
{at: -0.5, expect: 'hue-rotate(-90deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.25, expect: 'hue-rotate(45deg)'},
{at: 0.5, expect: 'hue-rotate(90deg)'},
{at: 1, expect: 'hue-rotate(180deg)'},
{at: 1.5, expect: 'hue-rotate(270deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'hue-rotate(180deg)',
to: 'none'
}, [
{at: -0.5, expect: 'hue-rotate(270deg)'},
{at: 0, expect: 'hue-rotate(180deg)'},
{at: 0.25, expect: 'hue-rotate(135deg)'},
{at: 0.5, expect: 'hue-rotate(90deg)'},
{at: 1, expect: 'hue-rotate(0deg)'},
{at: 1.5, expect: 'hue-rotate(-90deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'drop-shadow(0px 0px 0px currentcolor)',
to: 'drop-shadow(20px 10px green)'
}, [
{at: -1, expect: 'drop-shadow(-20px -10px white)'},
{at: 0, expect: 'drop-shadow(0px 0px 0px currentcolor)'},
{at: 0.5, expect: 'drop-shadow(10px 5px #80C080)'},
{at: 1, expect: 'drop-shadow(20px 10px green)'},
{at: 1.5, expect: 'drop-shadow(30px 15px #004100)'}
]);
test_no_interpolation({
property: 'backdrop-filter',
from: 'url("#svgfilter")',
to: 'blur(5px)',
});
test_interpolation({
property: 'backdrop-filter',
from: 'initial', // lacuna is 0
to: 'sepia(1)'
}, [
{at: -1, expect: 'sepia(0)'}, // Negative values are not allowed.
{at: 0, expect: 'sepia(0)'},
{at: 0.5, expect: 'sepia(0.5)'},
{at: 1, expect: 'sepia(1)'},
{at: 1.5, expect: 'sepia(1)'} // Should clamp values to 1.
]);
</script>
</body>
</html>

View File

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>backdrop-filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<meta name="assert" content="Partially matching lists interpolate.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
body {
color: blue;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'backdrop-filter',
from: 'none',
to: 'opacity(0.5) hue-rotate(180deg)',
}, [
{at: -0.5, expect: 'opacity(1) hue-rotate(-90deg)'},
{at: 0.25, expect: 'opacity(0.875) hue-rotate(45deg)'},
{at: 0.5, expect: 'opacity(0.75) hue-rotate(90deg)'},
{at: 1, expect: 'opacity(0.5) hue-rotate(180deg)'},
{at: 1.5, expect: 'opacity(0.25) hue-rotate(270deg)'},
]);
test_interpolation({
property: 'backdrop-filter',
from: 'blur(6px)',
to: 'blur(10px) hue-rotate(180deg)'
}, [
{at: -0.5, expect: 'blur(4px) hue-rotate(-90deg)'},
{at: 0.25, expect: 'blur(7px) hue-rotate(45deg)'},
{at: 0.5, expect: 'blur(8px) hue-rotate(90deg)'},
{at: 1, expect: 'blur(10px) hue-rotate(180deg)'},
{at: 1.5, expect: 'blur(12px) hue-rotate(270deg)'},
]);
// Mismatched lists:
test_no_interpolation({
property: 'backdrop-filter',
from: 'grayscale(0) blur(0px)',
to: 'blur(10px)'
});
</script>
</body>
</html>

View File

@ -0,0 +1,138 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>backdrop-filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<meta name="assert" content="lacuna matches spec.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
body {
color: blue;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'backdrop-filter',
from: 'none', // lacuna is 0px
to: 'blur(10px)'
}, [
{at: -1, expect: 'blur(0px)'}, // Negative values are not allowed.
{at: 0.5, expect: 'blur(5px)'},
{at: 1, expect: 'blur(10px)'},
{at: 1.5, expect: 'blur(15px)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'brightness(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'brightness(0)'}, // Negative values are not allowed.
{at: 0, expect: 'brightness(0)'},
{at: 0.5, expect: 'brightness(0.5)'},
{at: 1.5, expect: 'brightness(1.5)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'contrast(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'contrast(0)'}, // Negative values are not allowed.
{at: 0, expect: 'contrast(0)'},
{at: 0.5, expect: 'contrast(0.5)'},
{at: 1.5, expect: 'contrast(1.5)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'none', // lacuna is drop-shadow(0px 0px 0px transparent)
to: 'drop-shadow(20px 10px green)'
}, [
{at: -1, expect: 'drop-shadow(-20px -10px transparent)'},
{at: 0.5, expect: 'drop-shadow(10px 5px rgba(0, 128, 0, 0.5))'},
{at: 1, expect: 'drop-shadow(20px 10px green)'},
{at: 1.5, expect: 'drop-shadow(30px 15px #00C000)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'none', // lacuna is 0
to: 'grayscale(1)'
}, [
{at: -1, expect: 'grayscale(0)'}, // Negative values are not allowed.
{at: 0.5, expect: 'grayscale(0.5)'},
{at: 1, expect: 'grayscale(1)'},
{at: 1.5, expect: 'grayscale(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'backdrop-filter',
from: 'none', // lacuna is 0deg
to: 'hue-rotate(360deg)'
}, [
{at: -1, expect: 'hue-rotate(-360deg)'},
{at: 0.5, expect: 'hue-rotate(180deg)'},
{at: 1, expect: 'hue-rotate(360deg)'},
{at: 1.5, expect: 'hue-rotate(540deg)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'none', // lacuna is 0
to: 'invert(1)'
}, [
{at: -1, expect: 'invert(0)'}, // Negative values are not allowed.
{at: 0.5, expect: 'invert(0.5)'},
{at: 1, expect: 'invert(1)'},
{at: 1.5, expect: 'invert(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'backdrop-filter',
from: 'opacity(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'opacity(0)'}, // Negative values are not allowed.
{at: 0, expect: 'opacity(0)'},
{at: 0.5, expect: 'opacity(0.5)'},
{at: 1.5, expect: 'opacity(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'backdrop-filter',
from: 'saturate(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'saturate(0)'}, // Negative values are not allowed.
{at: 0, expect: 'saturate(0)'},
{at: 0.5, expect: 'saturate(0.5)'},
{at: 1.5, expect: 'saturate(1.5)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'none', // lacuna is 0
to: 'sepia(1)'
}, [
{at: -1, expect: 'sepia(0)'}, // Negative values are not allowed.
{at: 0.5, expect: 'sepia(0.5)'},
{at: 1, expect: 'sepia(1)'},
{at: 1.5, expect: 'sepia(1)'} // Should clamp values to 1.
]);
test_no_interpolation({
property: 'backdrop-filter',
from: 'url("#svgfilter")',
to: 'none', // lacuna is not defined
});
</script>
</body>
</html>

View File

@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>backdrop-filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
<meta name="assert" content="Default value when omitted matches spec.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
body {
color: blue;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'backdrop-filter',
from: 'blur()', // Default value when omitted is 0px.
to: 'blur(10px)'
}, [
{at: -1, expect: 'blur(0px)'}, // Negative values are not allowed.
{at: 0, expect: 'blur()'},
{at: 0.5, expect: 'blur(5px)'},
{at: 1, expect: 'blur(10px)'},
{at: 1.5, expect: 'blur(15px)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'brightness(0)',
to: 'brightness()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'brightness(0)'}, // Negative values are not allowed.
{at: 0, expect: 'brightness(0)'},
{at: 0.5, expect: 'brightness(0.5)'},
{at: 1, expect: 'brightness()'},
{at: 1.5, expect: 'brightness(1.5)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'contrast(0)',
to: 'contrast()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'contrast(0)'}, // Negative values are not allowed.
{at: 0, expect: 'contrast(0)'},
{at: 0.5, expect: 'contrast(0.5)'},
{at: 1, expect: 'contrast()'},
{at: 1.5, expect: 'contrast(1.5)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'drop-shadow(0px 0px)', // The default value for omitted values is missing length values set to 0 and the missing used color is taken from the color property.
to: 'drop-shadow(20px 10px 30px green)'
}, [
{at: -1, expect: 'drop-shadow(-20px -10px blue)'},
{at: 0, expect: 'drop-shadow(0px 0px blue)'},
{at: 0.5, expect: 'drop-shadow(10px 5px 15px rgb(0, 64, 128))'},
{at: 1, expect: 'drop-shadow(20px 10px 30px green)'},
{at: 1.5, expect: 'drop-shadow(30px 15px 45px rgb(0, 192, 0))'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'grayscale(0)',
to: 'grayscale()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'grayscale(0)'}, // Negative values are not allowed.
{at: 0, expect: 'grayscale(0)'},
{at: 0.5, expect: 'grayscale(0.5)'},
{at: 1, expect: 'grayscale()'},
{at: 1.5, expect: 'grayscale(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'backdrop-filter',
from: 'hue-rotate()', // Default value when omitted is 0deg.
to: 'hue-rotate(360deg)'
}, [
{at: -1, expect: 'hue-rotate(-360deg)'},
{at: 0, expect: 'hue-rotate()'},
{at: 0.5, expect: 'hue-rotate(180deg)'},
{at: 1, expect: 'hue-rotate(360deg)'},
{at: 1.5, expect: 'hue-rotate(540deg)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'invert(0)',
to: 'invert()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'invert(0)'}, // Negative values are not allowed.
{at: 0, expect: 'invert(0)'},
{at: 0.5, expect: 'invert(0.5)'},
{at: 1, expect: 'invert()'},
{at: 1.5, expect: 'invert(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'backdrop-filter',
from: 'opacity(0)',
to: 'opacity()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'opacity(0)'}, // Negative values are not allowed.
{at: 0, expect: 'opacity(0)'},
{at: 0.5, expect: 'opacity(0.5)'},
{at: 1, expect: 'opacity()'},
{at: 1.5, expect: 'opacity(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'backdrop-filter',
from: 'saturate(0)',
to: 'saturate()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'saturate(0)'}, // Negative values are not allowed.
{at: 0, expect: 'saturate(0)'},
{at: 0.5, expect: 'saturate(0.5)'},
{at: 1, expect: 'saturate()'},
{at: 1.5, expect: 'saturate(1.5)'}
]);
test_interpolation({
property: 'backdrop-filter',
from: 'sepia(0)',
to: 'sepia()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'sepia(0)'}, // Negative values are not allowed.
{at: 0, expect: 'sepia(0)'},
{at: 0.5, expect: 'sepia(0.5)'},
{at: 1, expect: 'sepia()'},
{at: 1.5, expect: 'sepia(1)'} // Should clamp values to 1.
]);
</script>
</body>
</html>

View File

@ -0,0 +1,116 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
<meta name="assert" content="Matching lists interpolate.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.parent {
filter: hue-rotate(30deg);
}
.target {
display: inline-block;
width: 50px;
height: 50px;
background-color: green;
color: white;
margin-right: 2px;
filter: hue-rotate(10deg);
}
.expected {
margin-right: 20px;
}
.test {
padding-bottom: 10px;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'filter',
from: 'hue-rotate(0deg) blur(6px)',
to: 'hue-rotate(180deg) blur(10px)'
}, [
{at: -0.5, expect: 'hue-rotate(-90deg) blur(4px)'},
{at: 0, expect: 'hue-rotate(0deg) blur(6px)'},
{at: 0.25, expect: 'hue-rotate(45deg) blur(7px)'},
{at: 0.5, expect: 'hue-rotate(90deg) blur(8px)'},
{at: 1, expect: 'hue-rotate(180deg) blur(10px)'},
{at: 1.5, expect: 'hue-rotate(270deg) blur(12px)'}
]);
// Matching lists with differing units:
test_interpolation({
property: 'filter',
from: 'hue-rotate(80deg) blur(6mm)',
to: 'hue-rotate(100grad) blur(1cm)'
}, [
{at: -0.5, expect: 'hue-rotate(75deg) blur(4mm)'},
{at: 0, expect: 'hue-rotate(80deg) blur(6mm)'},
{at: 0.25, expect: 'hue-rotate(82.5deg) blur(7mm)'},
{at: 0.5, expect: 'hue-rotate(85deg) blur(8mm)'},
{at: 1, expect: 'hue-rotate(90deg) blur(10mm)'},
{at: 1.5, expect: 'hue-rotate(95deg) blur(12mm)'}
]);
test_interpolation({
property: 'filter',
from: neutralKeyframe,
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(5deg)'},
{at: 0, expect: 'hue-rotate(10deg)'},
{at: 0.3, expect: 'hue-rotate(13deg)'},
{at: 0.6, expect: 'hue-rotate(16deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(25deg)'},
]);
test_interpolation({
property: 'filter',
from: 'initial',
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(-10deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.3, expect: 'hue-rotate(6deg)'},
{at: 0.6, expect: 'hue-rotate(12deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(30deg)'},
]);
test_interpolation({
property: 'filter',
from: 'inherit',
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(35deg)'},
{at: 0, expect: 'hue-rotate(30deg)'},
{at: 0.3, expect: 'hue-rotate(27deg)'},
{at: 0.6, expect: 'hue-rotate(24deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(15deg)'},
]);
test_interpolation({
property: 'filter',
from: 'unset',
to: 'hue-rotate(20deg)',
}, [
{at: -0.5, expect: 'hue-rotate(-10deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.3, expect: 'hue-rotate(6deg)'},
{at: 0.6, expect: 'hue-rotate(12deg)'},
{at: 1, expect: 'hue-rotate(20deg)'},
{at: 1.5, expect: 'hue-rotate(30deg)'},
]);
</script>
</body>
</html>

View File

@ -0,0 +1,113 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
<meta name="assert" content="Partially matching lists interpolate.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.target {
display: inline-block;
width: 50px;
height: 50px;
background-color: green;
color: white;
margin-right: 2px;
}
.expected {
margin-right: 20px;
}
.test {
padding-bottom: 10px;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'filter',
from: 'none',
to: 'opacity(0.5) hue-rotate(180deg)',
}, [
{at: -0.5, expect: 'opacity(1) hue-rotate(-90deg)'},
{at: 0, expect: 'opacity(1) hue-rotate(0deg)'},
{at: 0.25, expect: 'opacity(0.875) hue-rotate(45deg)'},
{at: 0.5, expect: 'opacity(0.75) hue-rotate(90deg)'},
{at: 1, expect: 'opacity(0.5) hue-rotate(180deg)'},
{at: 1.5, expect: 'opacity(0.25) hue-rotate(270deg)'},
]);
test_interpolation({
property: 'filter',
from: 'blur(6px)',
to: 'blur(10px) hue-rotate(180deg)'
}, [
{at: -0.5, expect: 'blur(4px) hue-rotate(-90deg)'},
{at: 0, expect: 'blur(6px) hue-rotate(0deg)'},
{at: 0.25, expect: 'blur(7px) hue-rotate(45deg)'},
{at: 0.5, expect: 'blur(8px) hue-rotate(90deg)'},
{at: 1, expect: 'blur(10px) hue-rotate(180deg)'},
{at: 1.5, expect: 'blur(12px) hue-rotate(270deg)'},
]);
test_interpolation({
property: 'filter',
from: 'none',
to: 'hue-rotate(180deg)'
}, [
{at: -0.5, expect: 'hue-rotate(-90deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.25, expect: 'hue-rotate(45deg)'},
{at: 0.5, expect: 'hue-rotate(90deg)'},
{at: 1, expect: 'hue-rotate(180deg)'},
{at: 1.5, expect: 'hue-rotate(270deg)'},
]);
test_interpolation({
property: 'filter',
from: 'hue-rotate(180deg)',
to: 'none'
}, [
{at: -0.5, expect: 'hue-rotate(270deg)'},
{at: 0, expect: 'hue-rotate(180deg)'},
{at: 0.25, expect: 'hue-rotate(135deg)'},
{at: 0.5, expect: 'hue-rotate(90deg)'},
{at: 1, expect: 'hue-rotate(0deg)'},
{at: 1.5, expect: 'hue-rotate(-90deg)'},
]);
test_interpolation({
property: 'filter',
from: 'drop-shadow(0px 0px 0px currentcolor)',
to: 'drop-shadow(20px 10px green)'
}, [
{at: -1, expect: 'drop-shadow(-20px -10px white)'},
{at: 0, expect: 'drop-shadow(0px 0px 0px currentcolor)'},
{at: 0.5, expect: 'drop-shadow(10px 5px #80C080)'},
{at: 1, expect: 'drop-shadow(20px 10px green)'},
{at: 1.5, expect: 'drop-shadow(30px 15px #004100)'}
]);
// crbug.com/904333: Test that ResolveInterpolableColor doesn't overflow.
test_interpolation({
property: 'filter',
from: 'drop-shadow(20px 10px blue)',
to: 'drop-shadow(20px 10px green)'
}, [
{at: 2147483648, expect: 'drop-shadow(20px 10px #00FF00'}
]);
// Mismatched lists:
test_no_interpolation({
property: 'filter',
from: 'grayscale(0) blur(0px)',
to: 'blur(10px)'
});
</script>
</body>
</html>

View File

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
<meta name="assert" content="lacuna matches spec.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.target {
display: inline-block;
width: 50px;
height: 50px;
background-color: green;
color: white;
margin-right: 2px;
filter: hue-rotate(10deg);
}
.expected {
margin-right: 20px;
}
.test {
padding-bottom: 10px;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'filter',
from: 'none', // lacuna is 0px
to: 'blur(10px)'
}, [
{at: -1, expect: 'blur(0px)'}, // Negative values are not allowed.
{at: 0, expect: 'blur(0px)'},
{at: 0.5, expect: 'blur(5px)'},
{at: 1, expect: 'blur(10px)'},
{at: 1.5, expect: 'blur(15px)'}
]);
test_interpolation({
property: 'filter',
from: 'brightness(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'brightness(0)'}, // Negative values are not allowed.
{at: 0, expect: 'brightness(0)'},
{at: 0.5, expect: 'brightness(0.5)'},
{at: 1, expect: 'brightness(1)'},
{at: 1.5, expect: 'brightness(1.5)'}
]);
test_interpolation({
property: 'filter',
from: 'contrast(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'contrast(0)'}, // Negative values are not allowed.
{at: 0, expect: 'contrast(0)'},
{at: 0.5, expect: 'contrast(0.5)'},
{at: 1, expect: 'contrast(1)'},
{at: 1.5, expect: 'contrast(1.5)'}
]);
test_interpolation({
property: 'filter',
from: 'none', // lacuna is drop-shadow(0px 0px 0px transparent)
to: 'drop-shadow(20px 10px green)'
}, [
{at: -1, expect: 'drop-shadow(-20px -10px transparent)'},
{at: 0, expect: 'drop-shadow(0px 0px 0px transparent)'},
{at: 0.5, expect: 'drop-shadow(10px 5px rgba(0, 128, 0, 0.5))'},
{at: 1, expect: 'drop-shadow(20px 10px green)'},
{at: 1.5, expect: 'drop-shadow(30px 15px #00C000)'}
]);
test_interpolation({
property: 'filter',
from: 'none', // lacuna is 0
to: 'grayscale(1)'
}, [
{at: -1, expect: 'grayscale(0)'}, // Negative values are not allowed.
{at: 0, expect: 'grayscale(0)'},
{at: 0.5, expect: 'grayscale(0.5)'},
{at: 1, expect: 'grayscale(1)'},
{at: 1.5, expect: 'grayscale(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'filter',
from: 'none', // lacuna is 0deg
to: 'hue-rotate(360deg)'
}, [
{at: -1, expect: 'hue-rotate(-360deg)'},
{at: 0, expect: 'hue-rotate(0deg)'},
{at: 0.5, expect: 'hue-rotate(180deg)'},
{at: 1, expect: 'hue-rotate(360deg)'},
{at: 1.5, expect: 'hue-rotate(540deg)'}
]);
test_interpolation({
property: 'filter',
from: 'none', // lacuna is 0
to: 'invert(1)'
}, [
{at: -1, expect: 'invert(0)'}, // Negative values are not allowed.
{at: 0, expect: 'invert(0)'},
{at: 0.5, expect: 'invert(0.5)'},
{at: 1, expect: 'invert(1)'},
{at: 1.5, expect: 'invert(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'filter',
from: 'opacity(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'opacity(0)'}, // Negative values are not allowed.
{at: 0, expect: 'opacity(0)'},
{at: 0.5, expect: 'opacity(0.5)'},
{at: 1, expect: 'opacity(1)'},
{at: 1.5, expect: 'opacity(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'filter',
from: 'saturate(0)',
to: 'none' // lacuna is 1
}, [
{at: -1, expect: 'saturate(0)'}, // Negative values are not allowed.
{at: 0, expect: 'saturate(0)'},
{at: 0.5, expect: 'saturate(0.5)'},
{at: 1, expect: 'saturate(1)'},
{at: 1.5, expect: 'saturate(1.5)'}
]);
test_interpolation({
property: 'filter',
from: 'none', // lacuna is 0
to: 'sepia(1)'
}, [
{at: -1, expect: 'sepia(0)'}, // Negative values are not allowed.
{at: 0, expect: 'sepia(0)'},
{at: 0.5, expect: 'sepia(0.5)'},
{at: 1, expect: 'sepia(1)'},
{at: 1.5, expect: 'sepia(1)'} // Should clamp values to 1.
]);
test_no_interpolation({
property: 'filter',
from: 'url("#svgfilter")',
to: 'none', // lacuna is not defined
});
test_no_interpolation({
property: 'filter',
from: 'url("#svgfilter")',
to: 'blur(5px)',
});
test_interpolation({
property: 'filter',
from: 'initial', // lacuna is 0
to: 'sepia(1)'
}, [
{at: -1, expect: 'sepia(0)'}, // Negative values are not allowed.
{at: 0, expect: 'sepia(0)'}, // Equivalent to sepia(0)
{at: 0.5, expect: 'sepia(0.5)'},
{at: 1, expect: 'sepia(1)'},
{at: 1.5, expect: 'sepia(1)'} // Should clamp values to 1.
]);
</script>
</body>
</html>

View File

@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>filter interpolation</title>
<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty">
<meta name="assert" content="Default value when omitted matches spec.">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
body {
color: blue;
}
</style>
</head>
<body>
<script>
'use strict';
test_interpolation({
property: 'filter',
from: 'blur()', // Default value when omitted is 0px.
to: 'blur(10px)'
}, [
{at: -1, expect: 'blur(0px)'}, // Negative values are not allowed.
{at: 0, expect: 'blur()'},
{at: 0.5, expect: 'blur(5px)'},
{at: 1, expect: 'blur(10px)'},
{at: 1.5, expect: 'blur(15px)'}
]);
test_interpolation({
property: 'filter',
from: 'brightness(0)',
to: 'brightness()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'brightness(0)'}, // Negative values are not allowed.
{at: 0, expect: 'brightness(0)'},
{at: 0.5, expect: 'brightness(0.5)'},
{at: 1, expect: 'brightness()'},
{at: 1.5, expect: 'brightness(1.5)'}
]);
test_interpolation({
property: 'filter',
from: 'contrast(0)',
to: 'contrast()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'contrast(0)'}, // Negative values are not allowed.
{at: 0, expect: 'contrast(0)'},
{at: 0.5, expect: 'contrast(0.5)'},
{at: 1, expect: 'contrast()'},
{at: 1.5, expect: 'contrast(1.5)'}
]);
test_interpolation({
property: 'filter',
from: 'drop-shadow(0px 0px)', // The default value for omitted values is missing length values set to 0 and the missing used color is taken from the color property.
to: 'drop-shadow(20px 10px 30px green)'
}, [
{at: -1, expect: 'drop-shadow(-20px -10px blue)'},
{at: 0, expect: 'drop-shadow(0px 0px blue)'},
{at: 0.5, expect: 'drop-shadow(10px 5px 15px rgb(0, 64, 128))'},
{at: 1, expect: 'drop-shadow(20px 10px 30px green)'},
{at: 1.5, expect: 'drop-shadow(30px 15px 45px rgb(0, 192, 0))'}
]);
test_interpolation({
property: 'filter',
from: 'grayscale(0)',
to: 'grayscale()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'grayscale(0)'}, // Negative values are not allowed.
{at: 0, expect: 'grayscale(0)'},
{at: 0.5, expect: 'grayscale(0.5)'},
{at: 1, expect: 'grayscale()'},
{at: 1.5, expect: 'grayscale(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'filter',
from: 'hue-rotate()', // Default value when omitted is 0deg.
to: 'hue-rotate(360deg)'
}, [
{at: -1, expect: 'hue-rotate(-360deg)'},
{at: 0, expect: 'hue-rotate()'},
{at: 0.5, expect: 'hue-rotate(180deg)'},
{at: 1, expect: 'hue-rotate(360deg)'},
{at: 1.5, expect: 'hue-rotate(540deg)'}
]);
test_interpolation({
property: 'filter',
from: 'invert(0)',
to: 'invert()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'invert(0)'}, // Negative values are not allowed.
{at: 0, expect: 'invert(0)'},
{at: 0.5, expect: 'invert(0.5)'},
{at: 1, expect: 'invert()'},
{at: 1.5, expect: 'invert(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'filter',
from: 'opacity(0)',
to: 'opacity()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'opacity(0)'}, // Negative values are not allowed.
{at: 0, expect: 'opacity(0)'},
{at: 0.5, expect: 'opacity(0.5)'},
{at: 1, expect: 'opacity()'},
{at: 1.5, expect: 'opacity(1)'} // Should clamp values to 1.
]);
test_interpolation({
property: 'filter',
from: 'saturate(0)',
to: 'saturate()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'saturate(0)'}, // Negative values are not allowed.
{at: 0, expect: 'saturate(0)'},
{at: 0.5, expect: 'saturate(0.5)'},
{at: 1, expect: 'saturate()'},
{at: 1.5, expect: 'saturate(1.5)'}
]);
test_interpolation({
property: 'filter',
from: 'sepia(0)',
to: 'sepia()' // Default value when omitted is 1.
}, [
{at: -1, expect: 'sepia(0)'}, // Negative values are not allowed.
{at: 0, expect: 'sepia(0)'},
{at: 0.5, expect: 'sepia(0.5)'},
{at: 1, expect: 'sepia()'},
{at: 1.5, expect: 'sepia(1)'} // Should clamp values to 1.
]);
</script>
</body>
</html>