LibWeb: Implement interpolation of font-variation-settings values

This commit is contained in:
Tim Ledbetter 2025-09-19 16:51:41 +01:00 committed by Sam Atkins
parent 83ad5ce8a2
commit f9452b77b7
3 changed files with 551 additions and 0 deletions

View File

@ -24,6 +24,7 @@
#include <LibWeb/CSS/StyleValues/KeywordStyleValue.h>
#include <LibWeb/CSS/StyleValues/LengthStyleValue.h>
#include <LibWeb/CSS/StyleValues/NumberStyleValue.h>
#include <LibWeb/CSS/StyleValues/OpenTypeTaggedStyleValue.h>
#include <LibWeb/CSS/StyleValues/PercentageStyleValue.h>
#include <LibWeb/CSS/StyleValues/RatioStyleValue.h>
#include <LibWeb/CSS/StyleValues/RectStyleValue.h>
@ -635,6 +636,21 @@ ValueComparingRefPtr<StyleValue const> interpolate_property(DOM::Element& elemen
return interpolate_value(element, calculation_context, from_value, to_value, delta, allow_discrete);
}
if (property_id == PropertyID::FontVariationSettings) {
// https://drafts.csswg.org/css-fonts/#font-variation-settings-def
// Two declarations of font-feature-settings can be animated between if they are "like". "Like" declarations
// are ones where the same set of properties appear (in any order). Because successive duplicate properties
// are applied instead of prior duplicate properties, two declarations can be "like" even if they have
// differing number of properties. If two declarations are "like" then animation occurs pairwise between
// corresponding values in the declarations. Otherwise, animation is not possible.
if (!from->is_value_list() || !to->is_value_list())
return interpolate_discrete(from, to, delta, allow_discrete);
// The values in these lists have already been deduplicated and sorted at this point, so we can use
// interpolate_value() to interpolate them pairwise.
return interpolate_value(element, calculation_context, from, to, delta, allow_discrete);
}
// https://drafts.csswg.org/web-animations-1/#animating-visibility
if (property_id == PropertyID::Visibility) {
// For the visibility property, visible is interpolated as a discrete step where values of p between 0 and 1 map to visible and other values of p map to the closer endpoint.
@ -1574,6 +1590,16 @@ static RefPtr<StyleValue const> interpolate_value_impl(DOM::Element& element, Ca
auto interpolated_value = interpolate_raw(from.as_number().number(), to.as_number().number(), delta, calculation_context.accepted_type_ranges.get(ValueType::Number));
return NumberStyleValue::create(interpolated_value);
}
case StyleValue::Type::OpenTypeTagged: {
auto& from_open_type_tagged = from.as_open_type_tagged();
auto& to_open_type_tagged = to.as_open_type_tagged();
if (from_open_type_tagged.tag() != to_open_type_tagged.tag())
return {};
auto interpolated_value = interpolate_value(element, calculation_context, from_open_type_tagged.value(), to_open_type_tagged.value(), delta, allow_discrete);
if (!interpolated_value)
return {};
return OpenTypeTaggedStyleValue::create(OpenTypeTaggedStyleValue::Mode::FontVariationSettings, from_open_type_tagged.tag(), interpolated_value.release_nonnull());
}
case StyleValue::Type::Percentage: {
auto interpolated_value = interpolate_raw(from.as_percentage().percentage().value(), to.as_percentage().percentage().value(), delta, calculation_context.accepted_type_ranges.get(ValueType::Percentage));
return PercentageStyleValue::create(Percentage(interpolated_value));

View File

@ -0,0 +1,364 @@
Harness status: OK
Found 358 tests
354 Pass
4 Fail
Pass CSS Transitions: property <font-variation-settings> from neutral to ["test" 20] at (-0.5) should be ['test' 5]
Pass CSS Transitions: property <font-variation-settings> from neutral to ["test" 20] at (0) should be ['test' 10]
Pass CSS Transitions: property <font-variation-settings> from neutral to ["test" 20] at (0.3) should be ['test' 13]
Pass CSS Transitions: property <font-variation-settings> from neutral to ["test" 20] at (0.7) should be ['test' 17]
Pass CSS Transitions: property <font-variation-settings> from neutral to ["test" 20] at (1) should be ['test' 20]
Pass CSS Transitions: property <font-variation-settings> from neutral to ["test" 20] at (1.5) should be ['test' 25]
Pass CSS Transitions with transition: all: property <font-variation-settings> from neutral to ["test" 20] at (-0.5) should be ['test' 5]
Pass CSS Transitions with transition: all: property <font-variation-settings> from neutral to ["test" 20] at (0) should be ['test' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from neutral to ["test" 20] at (0.3) should be ['test' 13]
Pass CSS Transitions with transition: all: property <font-variation-settings> from neutral to ["test" 20] at (0.7) should be ['test' 17]
Pass CSS Transitions with transition: all: property <font-variation-settings> from neutral to ["test" 20] at (1) should be ['test' 20]
Pass CSS Transitions with transition: all: property <font-variation-settings> from neutral to ["test" 20] at (1.5) should be ['test' 25]
Pass CSS Animations: property <font-variation-settings> from neutral to ["test" 20] at (-0.5) should be ['test' 5]
Pass CSS Animations: property <font-variation-settings> from neutral to ["test" 20] at (0) should be ['test' 10]
Pass CSS Animations: property <font-variation-settings> from neutral to ["test" 20] at (0.3) should be ['test' 13]
Pass CSS Animations: property <font-variation-settings> from neutral to ["test" 20] at (0.7) should be ['test' 17]
Pass CSS Animations: property <font-variation-settings> from neutral to ["test" 20] at (1) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from neutral to ["test" 20] at (1.5) should be ['test' 25]
Pass Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (-0.5) should be ['test' 5]
Pass Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (0) should be ['test' 10]
Pass Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (0.3) should be ['test' 13]
Pass Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (0.7) should be ['test' 17]
Pass Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (1) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from neutral to ["test" 20] at (1.5) should be ['test' 25]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
Pass CSS Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (-0.3) should be [initial]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0) should be [initial]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.3) should be [initial]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.5) should be ['test' 50]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (0.6) should be ['test' 50]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1) should be ['test' 50]
Pass Web Animations: property <font-variation-settings> from [initial] to ['test' 50] at (1.5) should be ['test' 50]
Pass CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
Pass CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30]
Pass CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27]
Pass CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
Pass CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
Pass CSS Transitions: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
Pass CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
Pass CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30]
Pass CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27]
Pass CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
Pass CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
Pass Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (-0.5) should be ['test' 35]
Pass Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0) should be ['test' 30]
Pass Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.3) should be ['test' 27]
Pass Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (0.7) should be ['test' 23]
Pass Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from [inherit] to ['test' 20] at (1.5) should be ['test' 15]
Pass CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
Pass CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
Pass CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
Pass CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
Pass CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
Pass CSS Transitions: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
Pass CSS Transitions with transition: all: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
Pass CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
Pass CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
Pass CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
Pass CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
Pass CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
Pass Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (-0.5) should be ['test' 35]
Pass Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0) should be ['test' 30]
Pass Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.3) should be ['test' 27]
Pass Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (0.7) should be ['test' 23]
Pass Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from [unset] to ['test' 20] at (1.5) should be ['test' 15]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (-0.3) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.3) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.5) should be [normal]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (0.6) should be [normal]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1) should be [normal]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to [normal] at (1.5) should be [normal]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to ['test' 30] at (-0.5) should be ['test' 15]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0) should be ['test' 20]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.3) should be ['test' 23]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.7) should be ['test' 27]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1) should be ['test' 30]
Pass CSS Transitions: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1.5) should be ['test' 35]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to ['test' 30] at (-0.5) should be ['test' 15]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0) should be ['test' 20]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.3) should be ['test' 23]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.7) should be ['test' 27]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1) should be ['test' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1.5) should be ['test' 35]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (-0.5) should be ['test' 15]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0) should be ['test' 20]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.3) should be ['test' 23]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.7) should be ['test' 27]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1) should be ['test' 30]
Pass CSS Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1.5) should be ['test' 35]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (-0.5) should be ['test' 15]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0) should be ['test' 20]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.3) should be ['test' 23]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (0.7) should be ['test' 27]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1) should be ['test' 30]
Pass Web Animations: property <font-variation-settings> from ['test' 20] to ['test' 30] at (1.5) should be ['test' 35]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.5) should be ['aaaa' -5, 'bbbb' 5, 'cccc' 15]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 3, 'bbbb' 13, 'cccc' 23]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.7) should be ['aaaa' 7, 'bbbb' 17, 'cccc' 27]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 15, 'bbbb' 25, 'cccc' 35]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.5) should be ['aaaa' -5, 'bbbb' 5, 'cccc' 15]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 3, 'bbbb' 13, 'cccc' 23]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.7) should be ['aaaa' 7, 'bbbb' 17, 'cccc' 27]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 15, 'bbbb' 25, 'cccc' 35]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.5) should be ['aaaa' -5, 'bbbb' 5, 'cccc' 15]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 3, 'bbbb' 13, 'cccc' 23]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.7) should be ['aaaa' 7, 'bbbb' 17, 'cccc' 27]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 15, 'bbbb' 25, 'cccc' 35]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.5) should be ['aaaa' -5, 'bbbb' 5, 'cccc' 15]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 3, 'bbbb' 13, 'cccc' 23]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.7) should be ['aaaa' 7, 'bbbb' 17, 'cccc' 27]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 15, 'bbbb' 25, 'cccc' 35]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.6) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.5) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (0.6) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1) should be ['aaaa' 0, 'bbbb' 10]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 10, 'bbbb' 20, 'cccc' 30] to ['aaaa' 0, 'bbbb' 10] at (1.5) should be ['aaaa' 0, 'bbbb' 10]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-behavior:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (-0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.3) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (0.6) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Pass Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['dddd' 10, 'eeee' 20, 'ffff' 30] at (1.5) should be ['dddd' 10, 'eeee' 20, 'ffff' 30]
Fail CSS Transitions: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38]
Fail CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38]
Fail CSS Animations: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38]
Fail Web Animations: property <font-variation-settings> from ['aaaa' 30, 'bbbb' 20] to ['aaaa' 20, 'bbbb' 30] at (3.40282e+38) should be ['aaaa' -3.40282e+38, 'bbbb' 3.40282e+38]

View File

@ -0,0 +1,161 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>font-variation-settings interpolation</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts-4/#propdef-font-variation-settings">
<meta name="assert" content="font-variation-settings supports animation pairwise by 'like' properties">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../css/support/interpolation-testcommon.js"></script>
<style>
.parent {
font-variation-settings: "test" 30;
}
.target {
font-variation-settings: "test" 10;
}
</style>
<body></body>
<script>
// Because font-variation-settings is specced as a map rather than a list
// (https://github.com/w3c/csswg-drafts/issues/1959), browsers are allowed to
// reorder the output as they see fit.
function compareFontVariationSettings(actual, expected) {
// This is not perfect, but should serve as a reasonable comparison. We split
// the inputs into arrays and trim each characteristic, then sort the array
// and compare them.
const actual_arr = actual.split(',').map(x => x.trim()).sort();
const expected_arr = expected.split(',').map(x => x.trim()).sort();
assert_array_equals(actual_arr, expected_arr);
}
test_interpolation({
property: 'font-variation-settings',
from: neutralKeyframe,
to: '"test" 20',
comparisonFunction: compareFontVariationSettings,
}, [
{at: -0.5, expect: "'test' 5"},
{at: 0, expect: "'test' 10"},
{at: 0.3, expect: "'test' 13"},
{at: 0.7, expect: "'test' 17"},
{at: 1, expect: "'test' 20"},
{at: 1.5, expect: "'test' 25"},
]);
test_no_interpolation({
property: 'font-variation-settings',
from: 'initial',
to: "'test' 50",
});
test_interpolation({
property: 'font-variation-settings',
from: 'inherit',
to: "'test' 20",
comparisonFunction: compareFontVariationSettings,
}, [
{at: -0.5, expect: "'test' 35"},
{at: 0, expect: "'test' 30"},
{at: 0.3, expect: "'test' 27"},
{at: 0.7, expect: "'test' 23"},
{at: 1, expect: "'test' 20"},
{at: 1.5, expect: "'test' 15"},
]);
test_interpolation({
property: 'font-variation-settings',
from: 'unset',
to: "'test' 20",
comparisonFunction: compareFontVariationSettings,
}, [
{at: -0.5, expect: "'test' 35"},
{at: 0, expect: "'test' 30"},
{at: 0.3, expect: "'test' 27"},
{at: 0.7, expect: "'test' 23"},
{at: 1, expect: "'test' 20"},
{at: 1.5, expect: "'test' 15"},
]);
test_no_interpolation({
property: 'font-variation-settings',
from: "'test' 20",
to: "normal",
});
test_interpolation({
property: 'font-variation-settings',
from: "'test' 20",
to: "'test' 30",
comparisonFunction: compareFontVariationSettings,
}, [
{at: -0.5, expect: "'test' 15"},
{at: 0, expect: "'test' 20"},
{at: 0.3, expect: "'test' 23"},
{at: 0.7, expect: "'test' 27"},
{at: 1, expect: "'test' 30"},
{at: 1.5, expect: "'test' 35"},
]);
test_interpolation({
property: 'font-variation-settings',
from: "'aaaa' 0, 'bbbb' 10, 'cccc' 20",
to: "'aaaa' 10, 'bbbb' 20, 'cccc' 30",
comparisonFunction: compareFontVariationSettings,
}, [
{at: -0.5, expect: "'aaaa' -5, 'bbbb' 5, 'cccc' 15"},
{at: 0, expect: "'aaaa' 0, 'bbbb' 10, 'cccc' 20"},
{at: 0.3, expect: "'aaaa' 3, 'bbbb' 13, 'cccc' 23"},
{at: 0.7, expect: "'aaaa' 7, 'bbbb' 17, 'cccc' 27"},
{at: 1, expect: "'aaaa' 10, 'bbbb' 20, 'cccc' 30"},
{at: 1.5, expect: "'aaaa' 15, 'bbbb' 25, 'cccc' 35"},
]);
// font-variation-settings is a map, so any order works.
test_interpolation({
property: 'font-variation-settings',
from: "'aaaa' 0, 'bbbb' 10, 'cccc' 20",
to: "'cccc' 10, 'bbbb' 20, 'aaaa' 30",
comparisonFunction: compareFontVariationSettings,
}, [
{at: -0.5, expect: "'aaaa' -15, 'bbbb' 5, 'cccc' 25"},
{at: 0, expect: "'aaaa' 0, 'bbbb' 10, 'cccc' 20"},
{at: 0.3, expect: "'aaaa' 9, 'bbbb' 13, 'cccc' 17"},
{at: 0.7, expect: "'aaaa' 21, 'bbbb' 17, 'cccc' 13"},
{at: 1, expect: "'aaaa' 30, 'bbbb' 20, 'cccc' 10"},
{at: 1.5, expect: "'aaaa' 45, 'bbbb' 25, 'cccc' 5"},
]);
test_no_interpolation({
property: 'font-variation-settings',
from: "'aaaa' 0, 'bbbb' 10",
to: "'aaaa' 10, 'bbbb' 20, 'cccc' 30",
});
test_no_interpolation({
property: 'font-variation-settings',
from: "'aaaa' 10, 'bbbb' 20, 'cccc' 30",
to: "'aaaa' 0, 'bbbb' 10",
});
test_no_interpolation({
property: 'font-variation-settings',
from: "'aaaa' 0, 'bbbb' 10, 'cccc' 20",
to: "'dddd' 10, 'eeee' 20, 'ffff' 30",
});
// crbug.com/910118: Test that ApplyStandardPropertyValue doesn't overflow.
test_interpolation({
property: 'font-variation-settings',
from: "'aaaa' 30, 'bbbb' 20",
to: "'aaaa' 20, 'bbbb' 30",
comparisonFunction: compareFontVariationSettings,
}, [
{at: 3.40282e+38, expect: "'aaaa' -3.40282e+38, 'bbbb' 3.40282e+38"},
]);
</script>