diff --git a/Libraries/LibWeb/CSS/Interpolation.cpp b/Libraries/LibWeb/CSS/Interpolation.cpp index 98ae1e7b1eb..2d4da1846de 100644 --- a/Libraries/LibWeb/CSS/Interpolation.cpp +++ b/Libraries/LibWeb/CSS/Interpolation.cpp @@ -1239,6 +1239,20 @@ static RefPtr interpolate_value_impl(DOM::Element& element, Ca return {}; return Rect { *interpolated_rect_box }; }, + [&](Circle const& from_circle) -> Optional { + // If both shapes are the same type, that type is ellipse() or circle(), and the radiuses are specified + // as (rather than keywords), interpolate between each value in the shape functions. + auto const& to_circle = to_shape.get(); + if (!from_circle.radius.has() || !to_circle.radius.has()) + return {}; + auto interpolated_radius = interpolate_length_percentage(calculation_context, from_circle.radius.get(), to_circle.radius.get(), delta); + if (!interpolated_radius.has_value()) + return {}; + auto interpolated_position = interpolate_value(element, calculation_context, from_circle.position, to_circle.position, delta, allow_discrete); + if (!interpolated_position) + return {}; + return Circle { *interpolated_radius, interpolated_position->as_position() }; + }, [&](Polygon const& from_polygon) -> Optional { // If both shapes are of type polygon(), both polygons have the same number of vertices, and use the // same <'fill-rule'>, interpolate between each value in the shape functions. diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-001.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-001.txt index 67f49323ce2..33bcf786a9e 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-001.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-001.txt @@ -2,32 +2,32 @@ Harness status: OK Found 366 tests -282 Pass -84 Fail -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +336 Pass +30 Fail +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass CSS Transitions: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Transitions with transition: all: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] +Pass CSS Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (-0.3) should be [circle(66% at 7% 33%)] Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0) should be [circle(60% at 10% 30%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.3) should be [circle(54% at 13% 27%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (0.6) should be [circle(48% at 16% 24%)] Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] +Pass Web Animations: property from neutral to [circle(40% at 20% 20%)] at (1.5) should be [circle(30% at 25% 15%)] Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (-0.3) should be [initial] Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0) should be [initial] Pass CSS Transitions with transition-behavior:allow-discrete: property from [initial] to [circle(40% at 20% 20%)] at (0.3) should be [initial] @@ -70,30 +70,30 @@ Pass Web Animations: property from [initial] to [circle(40% at 20% 2 Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] Pass Web Animations: property from [initial] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass CSS Transitions: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Transitions with transition: all: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] +Pass CSS Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (-0.3) should be [circle(92% at 33% 7%)] Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0) should be [circle(80% at 30% 10%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.3) should be [circle(68% at 27% 13%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (0.6) should be [circle(56% at 24% 16%)] Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] -Fail Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] +Pass Web Animations: property from [inherit] to [circle(40% at 20% 20%)] at (1.5) should be [circle(20% at 15% 25%)] Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (-0.3) should be [unset] Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0) should be [unset] Pass CSS Transitions with transition-behavior:allow-discrete: property from [unset] to [circle(40% at 20% 20%)] at (0.3) should be [unset] @@ -136,30 +136,30 @@ Pass Web Animations: property from [unset] to [circle(40% at 20% 20% Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (0.6) should be [circle(40% at 20% 20%)] Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1) should be [circle(40% at 20% 20%)] Pass Web Animations: property from [unset] to [circle(40% at 20% 20%)] at (1.5) should be [circle(40% at 20% 20%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass CSS Transitions: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Transitions with transition: all: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] +Pass CSS Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (-0.3) should be [circle(115% at -7.5% -7.5%)] Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0) should be [circle(100% at 0% 0%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.3) should be [circle(85% at 7.5% 7.5%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (0.6) should be [circle(70% at 15% 15%)] Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1) should be [circle(50% at 25% 25%)] -Fail Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] +Pass Web Animations: property from [circle(100% at 0% 0%)] to [circle(50% at 25% 25%)] at (1.5) should be [circle(25% at 37.5% 37.5%)] Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (-0.3) should be [ellipse(115% 115% at -7.5% -7.5%)] Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0) should be [ellipse(100% 100% at 0% 0%)] Fail CSS Transitions: property from [ellipse(100% 100% at 0% 0%)] to [ellipse(50% 50% at 25% 25%)] at (0.3) should be [ellipse(85% 85% at 7.5% 7.5%)] diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-002.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-002.txt index 4adf74fa82e..87b3ece018c 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-002.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-masking/animations/clip-path-interpolation-002.txt @@ -2,8 +2,8 @@ Harness status: OK Found 720 tests -616 Pass -104 Fail +630 Pass +90 Fail Pass CSS Transitions: property from neutral to [inset(20px)] at (-0.3) should be [inset(7px)] Pass CSS Transitions: property from neutral to [inset(20px)] at (0) should be [inset(10px)] Pass CSS Transitions: property from neutral to [inset(20px)] at (0.3) should be [inset(13px)] @@ -179,29 +179,29 @@ Pass Web Animations: property from [none] to [circle(3px at 1px 2px) Pass Web Animations: property from [none] to [circle(3px at 1px 2px)] at (1) should be [circle(3px at 1px 2px)] Pass Web Animations: property from [none] to [circle(3px at 1px 2px)] at (1.5) should be [circle(3px at 1px 2px)] Fail CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (-0.3) should be [circle(0px at 17.5px 82.5%)] -Fail CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0) should be [circle(10px at 25px 75%)] -Fail CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] -Fail CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] +Pass CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0) should be [circle(10px at 25px 75%)] +Pass CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] +Pass CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] Pass CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1) should be [circle(50px at 50px 50%)] -Fail CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] +Pass CSS Transitions: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] Fail CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (-0.3) should be [circle(0px at 17.5px 82.5%)] -Fail CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0) should be [circle(10px at 25px 75%)] -Fail CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] -Fail CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] +Pass CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0) should be [circle(10px at 25px 75%)] +Pass CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] +Pass CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] Pass CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1) should be [circle(50px at 50px 50%)] -Fail CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] +Pass CSS Transitions with transition: all: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] Fail CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (-0.3) should be [circle(0px at 17.5px 82.5%)] Pass CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0) should be [circle(10px at 25px 75%)] -Fail CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] -Fail CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] +Pass CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] +Pass CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] Pass CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1) should be [circle(50px at 50px 50%)] -Fail CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] +Pass CSS Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] Fail Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (-0.3) should be [circle(0px at 17.5px 82.5%)] Pass Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0) should be [circle(10px at 25px 75%)] -Fail Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] -Fail Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] +Pass Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.3) should be [circle(22px at 32.5px 67.5%)] +Pass Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (0.6) should be [circle(34px at 40px 60%)] Pass Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1) should be [circle(50px at 50px 50%)] -Fail Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] +Pass Web Animations: property from [circle(10px at 25px 75%)] to [circle(50px at 50px center)] at (1.5) should be [circle(70px at 62.5px 37.5%)] Pass CSS Transitions with transition-behavior:allow-discrete: property from [circle(farthest-side at 25px 75%)] to [circle(farthest-side at 50px center)] at (-0.3) should be [circle(farthest-side at 25px 75%)] Pass CSS Transitions with transition-behavior:allow-discrete: property from [circle(farthest-side at 25px 75%)] to [circle(farthest-side at 50px center)] at (0) should be [circle(farthest-side at 25px 75%)] Pass CSS Transitions with transition-behavior:allow-discrete: property from [circle(farthest-side at 25px 75%)] to [circle(farthest-side at 50px center)] at (0.3) should be [circle(farthest-side at 25px 75%)]