diff --git a/Libraries/LibWeb/CSS/Interpolation.cpp b/Libraries/LibWeb/CSS/Interpolation.cpp index c1d4bd666a6..4e16edda07d 100644 --- a/Libraries/LibWeb/CSS/Interpolation.cpp +++ b/Libraries/LibWeb/CSS/Interpolation.cpp @@ -595,23 +595,36 @@ RefPtr interpolate_transform(DOM::Element& element, CSSStyl return StyleValueList::create({ TransformationStyleValue::create(PropertyID::Transform, TransformFunction::Matrix3d, move(values)) }, StyleValueList::Separator::Comma); } -Color interpolate_color(Color from, Color to, float delta) +Color interpolate_color(Color from, Color to, float delta, ColorSyntax syntax) { + // https://drafts.csswg.org/css-color/#interpolation + // FIXME: Handle all interpolation methods. + // FIXME: Handle "analogous", "missing", and "powerless" components, somehow. + // https://drafts.csswg.org/css-color/#interpolation-space // If the host syntax does not define what color space interpolation should take place in, it defaults to Oklab. // However, user agents must handle interpolation between legacy sRGB color formats (hex colors, named colors, // rgb(), hsl() or hwb() and the equivalent alpha-including forms) in gamma-encoded sRGB space. This provides // Web compatibility; legacy sRGB content interpolates in the sRGB space by default. - // FIXME: Use srgb by default for these, once we can distinguish what form a color was specified in. - auto from_oklab = from.to_oklab(); - auto to_oklab = to.to_oklab(); - auto color = Color::from_oklab( - interpolate_raw(from_oklab.L, to_oklab.L, delta), - interpolate_raw(from_oklab.a, to_oklab.a, delta), - interpolate_raw(from_oklab.b, to_oklab.b, delta)); - color.set_alpha(interpolate_raw(from.alpha(), to.alpha(), delta)); - return color; + Color result; + if (syntax == ColorSyntax::Modern) { + auto from_oklab = from.to_oklab(); + auto to_oklab = to.to_oklab(); + + result = Color::from_oklab( + interpolate_raw(from_oklab.L, to_oklab.L, delta), + interpolate_raw(from_oklab.a, to_oklab.a, delta), + interpolate_raw(from_oklab.b, to_oklab.b, delta)); + } else { + result = Color { + interpolate_raw(from.red(), to.red(), delta), + interpolate_raw(from.green(), to.green(), delta), + interpolate_raw(from.blue(), to.blue(), delta), + }; + } + result.set_alpha(interpolate_raw(from.alpha(), to.alpha(), delta)); + return result; } RefPtr interpolate_box_shadow(DOM::Element& element, CalculationContext const& calculation_context, CSSStyleValue const& from, CSSStyleValue const& to, float delta, AllowDiscrete allow_discrete) @@ -675,8 +688,13 @@ RefPtr interpolate_box_shadow(DOM::Element& element, Calcul auto interpolated_spread_distance = interpolate_value(element, calculation_context, from_shadow.spread_distance(), to_shadow.spread_distance(), delta, allow_discrete); if (!interpolated_offset_x || !interpolated_offset_y || !interpolated_blur_radius || !interpolated_spread_distance) return {}; + auto color_syntax = ColorSyntax::Legacy; + if ((!from_shadow.color()->is_keyword() && from_shadow.color()->as_color().color_syntax() == ColorSyntax::Modern) + || (!to_shadow.color()->is_keyword() && to_shadow.color()->as_color().color_syntax() == ColorSyntax::Modern)) { + color_syntax = ColorSyntax::Modern; + } auto result_shadow = ShadowStyleValue::create( - CSSColorValue::create_from_color(interpolate_color(from_shadow.color()->to_color(layout_node, resolution_context), to_shadow.color()->to_color(layout_node, resolution_context), delta), ColorSyntax::Modern), + CSSColorValue::create_from_color(interpolate_color(from_shadow.color()->to_color(layout_node, resolution_context), to_shadow.color()->to_color(layout_node, resolution_context), delta, color_syntax), ColorSyntax::Modern), *interpolated_offset_x, *interpolated_offset_y, *interpolated_blur_radius, @@ -794,7 +812,12 @@ static RefPtr interpolate_value_impl(DOM::Element& element, resolution_context.length_resolution_context = Length::ResolutionContext::for_layout_node(*node); } - return CSSColorValue::create_from_color(interpolate_color(from.to_color(layout_node, resolution_context), to.to_color(layout_node, resolution_context), delta), ColorSyntax::Modern); + auto color_syntax = ColorSyntax::Legacy; + if ((!from.is_keyword() && from.as_color().color_syntax() == ColorSyntax::Modern) + || (!to.is_keyword() && to.as_color().color_syntax() == ColorSyntax::Modern)) { + color_syntax = ColorSyntax::Modern; + } + return CSSColorValue::create_from_color(interpolate_color(from.to_color(layout_node, resolution_context), to.to_color(layout_node, resolution_context), delta, color_syntax), ColorSyntax::Modern); } case CSSStyleValue::Type::Edge: { auto resolved_from = from.as_edge().resolved_value(calculation_context); diff --git a/Libraries/LibWeb/CSS/Interpolation.h b/Libraries/LibWeb/CSS/Interpolation.h index e272898656e..2dafda9d8de 100644 --- a/Libraries/LibWeb/CSS/Interpolation.h +++ b/Libraries/LibWeb/CSS/Interpolation.h @@ -8,6 +8,7 @@ #include #include +#include #include namespace Web::CSS { @@ -28,6 +29,6 @@ RefPtr interpolate_repeatable_list(DOM::Element&, Calculati RefPtr interpolate_box_shadow(DOM::Element&, CalculationContext const&, CSSStyleValue const& from, CSSStyleValue const& to, float delta, AllowDiscrete); RefPtr interpolate_transform(DOM::Element&, CSSStyleValue const& from, CSSStyleValue const& to, float delta, AllowDiscrete); -Color interpolate_color(Color from, Color to, float delta); +Color interpolate_color(Color from, Color to, float delta, ColorSyntax syntax); } diff --git a/Libraries/LibWeb/CSS/StyleValues/ColorMixStyleValue.cpp b/Libraries/LibWeb/CSS/StyleValues/ColorMixStyleValue.cpp index 70f1e058430..a8f65d1d62e 100644 --- a/Libraries/LibWeb/CSS/StyleValues/ColorMixStyleValue.cpp +++ b/Libraries/LibWeb/CSS/StyleValues/ColorMixStyleValue.cpp @@ -177,13 +177,13 @@ ColorMixStyleValue::PercentageNormalizationResult ColorMixStyleValue::normalize_ // https://drafts.csswg.org/css-color-5/#color-mix-result Color ColorMixStyleValue::to_color(Optional node, CalculationResolutionContext const& resolution_context) const { - // FIXME: Do this in a spec-compliant way. - // Our color interpolation doesn't currently take the color space or hue interpolation method into account. + // FIXME: Take the color space and hue interpolation method into account. + // The current implementation only uses oklab interpolation. auto normalized_percentages = normalize_percentages(); - auto from_color = m_properties.first_component.color->to_color(node, resolution_context); - auto to_color = m_properties.second_component.color->to_color(node, resolution_context); + auto from_color = m_properties.first_component.color; + auto to_color = m_properties.second_component.color; auto delta = normalized_percentages.p2.value() / 100; - return interpolate_color(from_color, to_color, delta); + return interpolate_color(from_color->to_color(node, resolution_context), to_color->to_color(node, resolution_context), delta, ColorSyntax::Modern); } } diff --git a/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt b/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt index 24f19890935..1bdde73fd25 100644 --- a/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt +++ b/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt @@ -6,8 +6,8 @@ At time 400: background-color: rgb(78, 88, 99) background-repeat: repeat-x bottom: auto - box-shadow: rgb(163, 82, 142) 40px 80px 126px 0px inset, rgba(0, 0, 72, 0.4) 20px 4px 8px 12px - color: rgb(163, 82, 142) + box-shadow: rgb(153, 0, 102) 40px 80px 126px 0px inset, rgba(0, 0, 102, 0.4) 20px 4px 8px 12px + color: rgb(153, 0, 102) transform: matrix(1, 0, 0, 1, 40, 40) At time 750: @@ -18,7 +18,7 @@ At time 750: background-color: rgb(147, 157, 168) background-repeat: space bottom: 100% - box-shadow: rgb(81, 71, 210) 75px 150px 227.5px 0px, rgba(0, 0, 174, 0.75) 37.5px 7.5px 15px 22.5px - color: rgb(81, 71, 210) + box-shadow: rgb(63, 0, 191) 75px 150px 227.5px 0px, rgba(0, 0, 191, 0.75) 37.5px 7.5px 15px 22.5px + color: rgb(63, 0, 191) transform: matrix(1, 0, 0, 1, 75, 75) diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-color-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-color-interpolation.txt index 85e88f7c97a..25f2fda547f 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-color-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/background-color-interpolation.txt @@ -2,152 +2,152 @@ Harness status: OK Found 172 tests -70 Pass -102 Fail +108 Pass +64 Fail Pass CSS Transitions: property from neutral to [green] at (-0.3) should be [rgb(0, 0, 0)] Pass CSS Transitions: property from neutral to [green] at (0) should be [rgb(0, 0, 0)] -Fail CSS Transitions: property from neutral to [green] at (0.3) should be [rgb(0, 38, 0)] +Pass CSS Transitions: property from neutral to [green] at (0.3) should be [rgb(0, 38, 0)] Fail CSS Transitions: property from neutral to [green] at (0.6) should be [rgb(0, 77, 0)] Pass CSS Transitions: property from neutral to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Transitions with transition: all: property from neutral to [green] at (-0.3) should be [rgb(0, 0, 0)] Pass CSS Transitions with transition: all: property from neutral to [green] at (0) should be [rgb(0, 0, 0)] -Fail CSS Transitions with transition: all: property from neutral to [green] at (0.3) should be [rgb(0, 38, 0)] +Pass CSS Transitions with transition: all: property from neutral to [green] at (0.3) should be [rgb(0, 38, 0)] Fail CSS Transitions with transition: all: property from neutral to [green] at (0.6) should be [rgb(0, 77, 0)] Pass CSS Transitions with transition: all: property from neutral to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions with transition: all: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions with transition: all: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] Fail CSS Animations: property from neutral to [green] at (-0.3) should be [rgb(0, 0, 0)] Fail CSS Animations: property from neutral to [green] at (0) should be [rgb(0, 0, 0)] Fail CSS Animations: property from neutral to [green] at (0.3) should be [rgb(0, 38, 0)] Fail CSS Animations: property from neutral to [green] at (0.6) should be [rgb(0, 77, 0)] Pass CSS Animations: property from neutral to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Animations: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Animations: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] Fail Web Animations: property from neutral to [green] at (-0.3) should be [rgb(0, 0, 0)] Fail Web Animations: property from neutral to [green] at (0) should be [rgb(0, 0, 0)] Fail Web Animations: property from neutral to [green] at (0.3) should be [rgb(0, 38, 0)] Fail Web Animations: property from neutral to [green] at (0.6) should be [rgb(0, 77, 0)] Pass Web Animations: property from neutral to [green] at (1) should be [rgb(0, 128, 0)] -Fail Web Animations: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass Web Animations: property from neutral to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Transitions: property from [initial] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Transitions: property from [initial] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Transitions: property from [initial] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Transitions: property from [initial] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Transitions: property from [initial] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Transitions with transition: all: property from [initial] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Transitions with transition: all: property from [initial] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Transitions with transition: all: property from [initial] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Transitions with transition: all: property from [initial] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Transitions with transition: all: property from [initial] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions with transition: all: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions with transition: all: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Animations: property from [initial] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Animations: property from [initial] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Animations: property from [initial] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Animations: property from [initial] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Animations: property from [initial] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Animations: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Animations: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass Web Animations: property from [initial] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass Web Animations: property from [initial] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail Web Animations: property from [initial] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail Web Animations: property from [initial] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass Web Animations: property from [initial] to [green] at (1) should be [rgb(0, 128, 0)] -Fail Web Animations: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass Web Animations: property from [initial] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Transitions: property from [inherit] to [green] at (-0.3) should be [rgb(255, 255, 255)] Pass CSS Transitions: property from [inherit] to [green] at (0) should be [rgb(238, 238, 238)] Fail CSS Transitions: property from [inherit] to [green] at (0.3) should be [rgb(167, 205, 167)] -Fail CSS Transitions: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] +Pass CSS Transitions: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] Pass CSS Transitions: property from [inherit] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] +Pass CSS Transitions: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] Pass CSS Transitions with transition: all: property from [inherit] to [green] at (-0.3) should be [rgb(255, 255, 255)] Pass CSS Transitions with transition: all: property from [inherit] to [green] at (0) should be [rgb(238, 238, 238)] Fail CSS Transitions with transition: all: property from [inherit] to [green] at (0.3) should be [rgb(167, 205, 167)] -Fail CSS Transitions with transition: all: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] +Pass CSS Transitions with transition: all: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] Pass CSS Transitions with transition: all: property from [inherit] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions with transition: all: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] +Pass CSS Transitions with transition: all: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] Pass CSS Animations: property from [inherit] to [green] at (-0.3) should be [rgb(255, 255, 255)] Pass CSS Animations: property from [inherit] to [green] at (0) should be [rgb(238, 238, 238)] Fail CSS Animations: property from [inherit] to [green] at (0.3) should be [rgb(167, 205, 167)] -Fail CSS Animations: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] +Pass CSS Animations: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] Pass CSS Animations: property from [inherit] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Animations: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] +Pass CSS Animations: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] Pass Web Animations: property from [inherit] to [green] at (-0.3) should be [rgb(255, 255, 255)] Pass Web Animations: property from [inherit] to [green] at (0) should be [rgb(238, 238, 238)] Fail Web Animations: property from [inherit] to [green] at (0.3) should be [rgb(167, 205, 167)] -Fail Web Animations: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] +Pass Web Animations: property from [inherit] to [green] at (0.6) should be [rgb(95, 172, 95)] Pass Web Animations: property from [inherit] to [green] at (1) should be [rgb(0, 128, 0)] -Fail Web Animations: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] +Pass Web Animations: property from [inherit] to [green] at (1.5) should be [rgb(0, 73, 0)] Pass CSS Transitions: property from [unset] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Transitions: property from [unset] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Transitions: property from [unset] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Transitions: property from [unset] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Transitions: property from [unset] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Transitions with transition: all: property from [unset] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Transitions with transition: all: property from [unset] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Transitions with transition: all: property from [unset] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Transitions with transition: all: property from [unset] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Transitions with transition: all: property from [unset] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions with transition: all: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions with transition: all: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Animations: property from [unset] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Animations: property from [unset] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Animations: property from [unset] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Animations: property from [unset] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Animations: property from [unset] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Animations: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Animations: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass Web Animations: property from [unset] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass Web Animations: property from [unset] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail Web Animations: property from [unset] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail Web Animations: property from [unset] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass Web Animations: property from [unset] to [green] at (1) should be [rgb(0, 128, 0)] -Fail Web Animations: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] -Fail CSS Transitions: property from [white] to [orange] at (-0.3) should be [white] +Pass Web Animations: property from [unset] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions: property from [white] to [orange] at (-0.3) should be [white] Pass CSS Transitions: property from [white] to [orange] at (0) should be [white] Fail CSS Transitions: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Transitions: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Transitions: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Transitions: property from [white] to [orange] at (1) should be [orange] -Fail CSS Transitions: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail CSS Transitions with transition: all: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Transitions: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass CSS Transitions with transition: all: property from [white] to [orange] at (-0.3) should be [white] Pass CSS Transitions with transition: all: property from [white] to [orange] at (0) should be [white] Fail CSS Transitions with transition: all: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Transitions with transition: all: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Transitions with transition: all: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Transitions with transition: all: property from [white] to [orange] at (1) should be [orange] -Fail CSS Transitions with transition: all: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail CSS Animations: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Transitions with transition: all: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass CSS Animations: property from [white] to [orange] at (-0.3) should be [white] Pass CSS Animations: property from [white] to [orange] at (0) should be [white] Fail CSS Animations: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Animations: property from [white] to [orange] at (1) should be [orange] -Fail CSS Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail Web Animations: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass Web Animations: property from [white] to [orange] at (-0.3) should be [white] Pass Web Animations: property from [white] to [orange] at (0) should be [white] Fail Web Animations: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail Web Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass Web Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass Web Animations: property from [white] to [orange] at (1) should be [orange] -Fail Web Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass Web Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] Pass CSS Transitions: property from [transparent] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Transitions: property from [transparent] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Transitions: property from [transparent] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Transitions: property from [transparent] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Transitions: property from [transparent] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Transitions with transition: all: property from [transparent] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Transitions with transition: all: property from [transparent] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Transitions with transition: all: property from [transparent] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Transitions with transition: all: property from [transparent] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Transitions with transition: all: property from [transparent] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Transitions with transition: all: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Transitions with transition: all: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass CSS Animations: property from [transparent] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass CSS Animations: property from [transparent] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail CSS Animations: property from [transparent] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail CSS Animations: property from [transparent] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass CSS Animations: property from [transparent] to [green] at (1) should be [rgb(0, 128, 0)] -Fail CSS Animations: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass CSS Animations: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] Pass Web Animations: property from [transparent] to [green] at (-0.3) should be [rgba(0, 0, 0, 0)] Pass Web Animations: property from [transparent] to [green] at (0) should be [rgba(0, 0, 0, 0)] Fail Web Animations: property from [transparent] to [green] at (0.3) should be [rgba(0, 128, 0, 0.3)] Fail Web Animations: property from [transparent] to [green] at (0.6) should be [rgba(0, 128, 0, 0.6)] Pass Web Animations: property from [transparent] to [green] at (1) should be [rgb(0, 128, 0)] -Fail Web Animations: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] +Pass Web Animations: property from [transparent] to [green] at (1.5) should be [rgb(0, 192, 0)] Fail CSS Transitions: property from [currentcolor] to [rgba(0, 255, 0, 0.75)] at (-0.5) should be [rgba(0, 0, 255, 0.38)] Fail CSS Transitions: property from [currentcolor] to [rgba(0, 255, 0, 0.75)] at (0) should be [rgba(0, 0, 255, 0.5)] Fail CSS Transitions: property from [currentcolor] to [rgba(0, 255, 0, 0.75)] at (0.25) should be [rgba(0, 85, 170, 0.56)] diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-color-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-color-interpolation.txt index f7beb9c763e..5aa6b821885 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-color-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-color-interpolation.txt @@ -2,8 +2,8 @@ Harness status: OK Found 144 tests -50 Pass -94 Fail +76 Pass +68 Fail Fail CSS Transitions: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (-0.3) should be [rgb(23, 33, 43) rgb(40, 50, 60) rgb(17, 27, 37) rgb(37, 47, 57)] Fail CSS Transitions: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0) should be [rgb(20, 30, 40) rgb(40, 50, 60)] Fail CSS Transitions: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0.3) should be [rgb(17, 27, 37) rgb(40, 50, 60) rgb(23, 33, 43) rgb(43, 53, 63)] @@ -21,13 +21,13 @@ Pass CSS Animations: property from [rgb(20, 30, 40) rgb(40, 50, 6 Pass CSS Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0.3) should be [rgb(17, 27, 37) rgb(40, 50, 60) rgb(23, 33, 43) rgb(43, 53, 63)] Pass CSS Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0.6) should be [rgb(14, 24, 34) rgb(40, 50, 60) rgb(26, 36, 46) rgb(46, 56, 66)] Pass CSS Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (1) should be [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] -Fail CSS Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (1.5) should be [rgb(5, 15, 25) rgb(40, 50, 60) rgb(35, 45, 55) rgb(55, 65, 75)] +Pass CSS Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (1.5) should be [rgb(5, 15, 25) rgb(40, 50, 60) rgb(35, 45, 55) rgb(55, 65, 75)] Pass Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (-0.3) should be [rgb(23, 33, 43) rgb(40, 50, 60) rgb(17, 27, 37) rgb(37, 47, 57)] Pass Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0) should be [rgb(20, 30, 40) rgb(40, 50, 60)] Pass Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0.3) should be [rgb(17, 27, 37) rgb(40, 50, 60) rgb(23, 33, 43) rgb(43, 53, 63)] Pass Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (0.6) should be [rgb(14, 24, 34) rgb(40, 50, 60) rgb(26, 36, 46) rgb(46, 56, 66)] Pass Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (1) should be [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] -Fail Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (1.5) should be [rgb(5, 15, 25) rgb(40, 50, 60) rgb(35, 45, 55) rgb(55, 65, 75)] +Pass Web Animations: property from [rgb(20, 30, 40) rgb(40, 50, 60)] to [rgb(10, 20, 30) rgb(40, 50, 60) rgb(30, 40, 50) rgb(50, 60, 70)] at (1.5) should be [rgb(5, 15, 25) rgb(40, 50, 60) rgb(35, 45, 55) rgb(55, 65, 75)] Fail CSS Transitions: property from neutral to [orange] at (-0.3) should be [rgb(0, 0, 181)] Pass CSS Transitions: property from neutral to [orange] at (0) should be [rgb(0, 0, 139)] Fail CSS Transitions: property from neutral to [orange] at (0.3) should be [rgb(77, 50, 97)] @@ -76,30 +76,30 @@ Fail Web Animations: property from [initial] to [orange] at ( Fail Web Animations: property from [initial] to [orange] at (0.6) should be [rgb(153, 99, 0)] Pass Web Animations: property from [initial] to [orange] at (1) should be [rgb(255, 165, 0)] Fail Web Animations: property from [initial] to [orange] at (1.5) should be [rgb(255, 248, 0)] -Fail CSS Transitions: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] +Pass CSS Transitions: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] Pass CSS Transitions: property from [inherit] to [orange] at (0) should be [rgb(255, 255, 255)] Fail CSS Transitions: property from [inherit] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Transitions: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Transitions: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Transitions: property from [inherit] to [orange] at (1) should be [rgb(255, 165, 0)] -Fail CSS Transitions: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail CSS Transitions with transition: all: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] +Pass CSS Transitions: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass CSS Transitions with transition: all: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] Pass CSS Transitions with transition: all: property from [inherit] to [orange] at (0) should be [rgb(255, 255, 255)] Fail CSS Transitions with transition: all: property from [inherit] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Transitions with transition: all: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Transitions with transition: all: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Transitions with transition: all: property from [inherit] to [orange] at (1) should be [rgb(255, 165, 0)] -Fail CSS Transitions with transition: all: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail CSS Animations: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] +Pass CSS Transitions with transition: all: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass CSS Animations: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] Pass CSS Animations: property from [inherit] to [orange] at (0) should be [rgb(255, 255, 255)] Fail CSS Animations: property from [inherit] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Animations: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Animations: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Animations: property from [inherit] to [orange] at (1) should be [rgb(255, 165, 0)] -Fail CSS Animations: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail Web Animations: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] +Pass CSS Animations: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass Web Animations: property from [inherit] to [orange] at (-0.3) should be [rgb(255, 255, 255)] Pass Web Animations: property from [inherit] to [orange] at (0) should be [rgb(255, 255, 255)] Fail Web Animations: property from [inherit] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail Web Animations: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass Web Animations: property from [inherit] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass Web Animations: property from [inherit] to [orange] at (1) should be [rgb(255, 165, 0)] -Fail Web Animations: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass Web Animations: property from [inherit] to [orange] at (1.5) should be [rgb(255, 120, 0)] Fail CSS Transitions: property from [unset] to [orange] at (-0.3) should be [rgb(0, 0, 0)] Fail CSS Transitions: property from [unset] to [orange] at (0) should be [rgb(0, 0, 0)] Fail CSS Transitions: property from [unset] to [orange] at (0.3) should be [rgb(77, 50, 0)] @@ -124,27 +124,27 @@ Fail Web Animations: property from [unset] to [orange] at (0. Fail Web Animations: property from [unset] to [orange] at (0.6) should be [rgb(153, 99, 0)] Pass Web Animations: property from [unset] to [orange] at (1) should be [rgb(255, 165, 0)] Fail Web Animations: property from [unset] to [orange] at (1.5) should be [rgb(255, 248, 0)] -Fail CSS Transitions: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Transitions: property from [white] to [orange] at (-0.3) should be [white] Pass CSS Transitions: property from [white] to [orange] at (0) should be [white] Fail CSS Transitions: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Transitions: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Transitions: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Transitions: property from [white] to [orange] at (1) should be [orange] -Fail CSS Transitions: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail CSS Transitions with transition: all: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Transitions: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass CSS Transitions with transition: all: property from [white] to [orange] at (-0.3) should be [white] Pass CSS Transitions with transition: all: property from [white] to [orange] at (0) should be [white] Fail CSS Transitions with transition: all: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Transitions with transition: all: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Transitions with transition: all: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Transitions with transition: all: property from [white] to [orange] at (1) should be [orange] -Fail CSS Transitions with transition: all: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail CSS Animations: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Transitions with transition: all: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass CSS Animations: property from [white] to [orange] at (-0.3) should be [white] Pass CSS Animations: property from [white] to [orange] at (0) should be [white] Fail CSS Animations: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail CSS Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass CSS Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass CSS Animations: property from [white] to [orange] at (1) should be [orange] -Fail CSS Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] -Fail Web Animations: property from [white] to [orange] at (-0.3) should be [white] +Pass CSS Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] +Pass Web Animations: property from [white] to [orange] at (-0.3) should be [white] Pass Web Animations: property from [white] to [orange] at (0) should be [white] Fail Web Animations: property from [white] to [orange] at (0.3) should be [rgb(255, 228, 179)] -Fail Web Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] +Pass Web Animations: property from [white] to [orange] at (0.6) should be [rgb(255, 201, 102)] Pass Web Animations: property from [white] to [orange] at (1) should be [orange] -Fail Web Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] \ No newline at end of file +Pass Web Animations: property from [white] to [orange] at (1.5) should be [rgb(255, 120, 0)] \ No newline at end of file diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-composition.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-composition.txt index 9b1837ed174..c81e01124dc 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-composition.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-composition.txt @@ -2,13 +2,13 @@ Harness status: OK Found 40 tests -2 Pass -38 Fail -Fail Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (-0.3) should be [rgb(70, 70, 70 ) 7px 14px 21px 28px] +5 Pass +35 Fail +Pass Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (-0.3) should be [rgb(70, 70, 70 ) 7px 14px 21px 28px] Pass Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (0) should be [rgb(100, 100, 100) 10px 20px 30px 40px] -Fail Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (0.5) should be [rgb(150, 150, 150) 15px 30px 45px 60px] +Pass Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (0.5) should be [rgb(150, 150, 150) 15px 30px 45px 60px] Pass Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (1) should be [rgb(200, 200, 200) 20px 40px 60px 80px] -Fail Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (1.5) should be [rgb(250, 250, 250) 25px 50px 75px 100px] +Pass Compositing: property underlying [undefined] from replace [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (1.5) should be [rgb(250, 250, 250) 25px 50px 75px 100px] Fail Compositing: property underlying [rgb(10, 20, 30) 1px 2px 3px 4px] from add [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px] Fail Compositing: property underlying [rgb(10, 20, 30) 1px 2px 3px 4px] from add [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px] Fail Compositing: property underlying [rgb(10, 20, 30) 1px 2px 3px 4px] from add [rgb(100, 100, 100) 10px 20px 30px 40px] to add [rgb(200, 200, 200) 20px 40px 60px 80px] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px] diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-interpolation.txt index 6ae0e73092d..3560860bc9c 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/box-shadow-interpolation.txt @@ -2,8 +2,8 @@ Harness status: OK Found 402 tests -230 Pass -172 Fail +246 Pass +156 Fail Pass CSS Transitions: property from neutral to [20px 20px 20px 20px black] at (-0.3) should be [rgb(0, 0, 0) 7px 33px 7px 33px] Pass CSS Transitions: property from neutral to [20px 20px 20px 20px black] at (0) should be [rgb(0, 0, 0) 10px 30px 10px 30px] Pass CSS Transitions: property from neutral to [20px 20px 20px 20px black] at (0.3) should be [rgb(0, 0, 0) 13px 27px 13px 27px] @@ -198,52 +198,52 @@ Pass Web Animations: property from [15px 10px 5px 6px black inset] Fail Web Animations: property from [15px 10px 5px 6px black inset] to [-15px -10px 25px -4px orange inset] at (1.5) should be [rgb(255, 248, 0) -30px -20px 35px -9px inset] Fail CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] Pass CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px] -Fail CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] +Pass CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] Fail CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px] Pass CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px] -Fail CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] +Pass CSS Transitions: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] Fail CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] Pass CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px] -Fail CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] +Pass CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] Fail CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px] Pass CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px] -Fail CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] +Pass CSS Transitions with transition: all: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] Fail CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] Pass CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px] -Fail CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] +Pass CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] Fail CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px] Pass CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px] -Fail CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] +Pass CSS Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] Fail Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (-0.3) should be [rgb(0, 0, 0) 24px 16px 0px 9px] Pass Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0) should be [rgb(0, 0, 0) 15px 10px 5px 6px] -Fail Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] +Pass Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.3) should be [rgb(0, 38, 0) 6px 4px 11px 3px] Fail Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (0.6) should be [rgb(0, 77, 0) -3px -2px 17px 0px] Pass Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1) should be [rgb(0, 128, 0) -15px -10px 25px -4px] -Fail Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] +Pass Web Animations: property from [15px 10px 5px 6px black] to [-15px -10px 25px -4px] at (1.5) should be [rgb(0, 192, 0) -30px -20px 35px -9px] Pass CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (-0.3) should be [rgb(0, 0, 0) 10px 10px 10px 10px] Pass CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0) should be [rgb(0, 0, 0) 10px 10px 10px 10px] -Fail CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] +Pass CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] Fail CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.6) should be [rgb(0, 77, 0) 10px 10px 10px 10px] Pass CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1) should be [rgb(0, 128, 0) 10px 10px 10px 10px] -Fail CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] +Pass CSS Transitions: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] Pass CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (-0.3) should be [rgb(0, 0, 0) 10px 10px 10px 10px] Pass CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0) should be [rgb(0, 0, 0) 10px 10px 10px 10px] -Fail CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] +Pass CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] Fail CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.6) should be [rgb(0, 77, 0) 10px 10px 10px 10px] Pass CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1) should be [rgb(0, 128, 0) 10px 10px 10px 10px] -Fail CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] +Pass CSS Transitions with transition: all: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] Pass CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (-0.3) should be [rgb(0, 0, 0) 10px 10px 10px 10px] Pass CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0) should be [rgb(0, 0, 0) 10px 10px 10px 10px] -Fail CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] +Pass CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] Fail CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.6) should be [rgb(0, 77, 0) 10px 10px 10px 10px] Pass CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1) should be [rgb(0, 128, 0) 10px 10px 10px 10px] -Fail CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] +Pass CSS Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] Pass Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (-0.3) should be [rgb(0, 0, 0) 10px 10px 10px 10px] Pass Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0) should be [rgb(0, 0, 0) 10px 10px 10px 10px] -Fail Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] +Pass Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.3) should be [rgb(0, 38, 0) 10px 10px 10px 10px] Fail Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (0.6) should be [rgb(0, 77, 0) 10px 10px 10px 10px] Pass Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1) should be [rgb(0, 128, 0) 10px 10px 10px 10px] -Fail Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] +Pass Web Animations: property from [10px 10px 10px 10px black] to [10px 10px 10px 10px currentColor] at (1.5) should be [rgb(0, 192, 0) 10px 10px 10px 10px] Fail CSS Transitions: property from [10px 20px rgba(255, 255, 0, 0.5), inset 5px 10em #008000] to [none] at (-0.3) should be [rgba(255, 255, 0, 0.65) 13px 26px 0px 0px, rgb(0, 166, 0) 6.5px 39px 0px 0px inset] Fail CSS Transitions: property from [10px 20px rgba(255, 255, 0, 0.5), inset 5px 10em #008000] to [none] at (0) should be [rgba(255, 255, 0, 0.5) 10px 20px 0px 0px, rgb(0, 128, 0) 5px 30px 0px 0px inset] Fail CSS Transitions: property from [10px 20px rgba(255, 255, 0, 0.5), inset 5px 10em #008000] to [none] at (0.3) should be [rgba(255, 255, 0, 0.353) 7px 14px 0px 0px, rgba(0, 128, 0, 0.7) 3.5px 21px 0px 0px inset]