From fff09ed3301c45dcafe41fd51ca2a57d076dc9ef Mon Sep 17 00:00:00 2001 From: MFMF-EGY Date: Sun, 14 Sep 2025 16:00:06 +0300 Subject: [PATCH] LibWeb: Handle interpolation of BorderRadius style value type --- Libraries/LibWeb/CSS/Interpolation.cpp | 14 + .../interpolation-longhand-properties.txt | 2 + .../border-radius-interpolation.txt | 256 +++++++++--------- .../interpolation-longhand-properties.html | 4 + 4 files changed, 148 insertions(+), 128 deletions(-) diff --git a/Libraries/LibWeb/CSS/Interpolation.cpp b/Libraries/LibWeb/CSS/Interpolation.cpp index 5c58f70c2a5..146090c2e70 100644 --- a/Libraries/LibWeb/CSS/Interpolation.cpp +++ b/Libraries/LibWeb/CSS/Interpolation.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -1193,6 +1194,19 @@ static RefPtr interpolate_value_impl(DOM::Element& element, Ca interpolated_left.release_nonnull(), from_border_image_slice.fill()); } + case StyleValue::Type::BorderRadius: { + auto const& from_horizontal_radius = from.as_border_radius().horizontal_radius(); + auto const& to_horizontal_radius = to.as_border_radius().horizontal_radius(); + auto const& from_vertical_radius = from.as_border_radius().vertical_radius(); + auto const& to_vertical_radius = to.as_border_radius().vertical_radius(); + auto const interpolated_horizontal_radius = interpolate_length_percentage(calculation_context, from_horizontal_radius, to_horizontal_radius, delta); + auto const interpolated_vertical_radius = interpolate_length_percentage(calculation_context, from_vertical_radius, to_vertical_radius, delta); + if (!interpolated_horizontal_radius.has_value() || !interpolated_vertical_radius.has_value()) + return {}; + return BorderRadiusStyleValue::create( + interpolated_horizontal_radius.value(), + interpolated_vertical_radius.value()); + } case StyleValue::Type::Color: { ColorResolutionContext color_resolution_context {}; if (auto node = element.layout_node()) { diff --git a/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt b/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt index 56ef7dd19d4..430921cca1c 100644 --- a/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt +++ b/Tests/LibWeb/Text/expected/interpolation-longhand-properties.txt @@ -5,6 +5,7 @@ At time 400: aspect-ratio: 1.544154 / 1 background-color: rgb(78, 88, 99) background-repeat: repeat-x + border-radius: 40.000001px 60.000001px 80.000001px 100.000001px bottom: auto box-shadow: rgb(153, 0, 102) 40.000001px 80.000001px 126.000002px 0px inset, rgba(0, 0, 102, 0.4) 20px 4px 8px 12px color: rgb(153, 0, 102) @@ -17,6 +18,7 @@ At time 750: aspect-ratio: 1.36506 / 1 background-color: rgb(147, 157, 168) background-repeat: space + border-radius: 75px 95px 115px 135px bottom: 100% box-shadow: rgb(64, 0, 191) 75px 150px 227.5px 0px, rgba(0, 0, 191, 0.75) 37.5px 7.5px 15px 22.5px color: rgb(64, 0, 191) diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-radius-interpolation.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-radius-interpolation.txt index 873381e3a28..6609ca7abbe 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-radius-interpolation.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-backgrounds/animations/border-radius-interpolation.txt @@ -2,152 +2,152 @@ Harness status: OK Found 196 tests -50 Pass -146 Fail -Fail CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] -Fail CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0) should be [20px 40px 60px 80px / 120px 140px 160px 180px] -Fail CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] -Fail CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] +176 Pass +20 Fail +Pass CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] +Pass CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0) should be [20px 40px 60px 80px / 120px 140px 160px 180px] +Pass CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] +Pass CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] Pass CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1) should be [30px 50px 70px 90px / 130px 150px 170px 190px] -Fail CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] -Fail CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] -Fail CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0) should be [20px 40px 60px 80px / 120px 140px 160px 180px] -Fail CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] -Fail CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] +Pass CSS Transitions: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] +Pass CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] +Pass CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0) should be [20px 40px 60px 80px / 120px 140px 160px 180px] +Pass CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] +Pass CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] Pass CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1) should be [30px 50px 70px 90px / 130px 150px 170px 190px] -Fail CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] -Fail CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] +Pass CSS Transitions with transition: all: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] +Pass CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] Pass CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0) should be [20px 40px 60px 80px / 120px 140px 160px 180px] -Fail CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] -Fail CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] +Pass CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] +Pass CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] Pass CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1) should be [30px 50px 70px 90px / 130px 150px 170px 190px] -Fail CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] -Fail Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] +Pass CSS Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] +Pass Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (-0.3) should be [17px 37px 57px 77px / 117px 137px 157px 177px] Pass Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0) should be [20px 40px 60px 80px / 120px 140px 160px 180px] -Fail Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] -Fail Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] +Pass Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.3) should be [23px 43px 63px 83px / 123px 143px 163px 183px] +Pass Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (0.6) should be [26px 46px 66px 86px / 126px 146px 166px 186px] Pass Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1) should be [30px 50px 70px 90px / 130px 150px 170px 190px] -Fail Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] -Fail CSS Transitions: property from neutral to [20px] at (-0.3) should be [7px] -Fail CSS Transitions: property from neutral to [20px] at (0) should be [10px] -Fail CSS Transitions: property from neutral to [20px] at (0.3) should be [13px] -Fail CSS Transitions: property from neutral to [20px] at (0.6) should be [16px] +Pass Web Animations: property from [20px 40px 60px 80px / 120px 140px 160px 180px] to [30px 50px 70px 90px / 130px 150px 170px 190px] at (1.5) should be [35px 55px 75px 95px / 135px 155px 175px 195px] +Pass CSS Transitions: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Transitions: property from neutral to [20px] at (0) should be [10px] +Pass CSS Transitions: property from neutral to [20px] at (0.3) should be [13px] +Pass CSS Transitions: property from neutral to [20px] at (0.6) should be [16px] Pass CSS Transitions: property from neutral to [20px] at (1) should be [20px] -Fail CSS Transitions: property from neutral to [20px] at (1.5) should be [25px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (-0.3) should be [7px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (0) should be [10px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (0.3) should be [13px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (0.6) should be [16px] +Pass CSS Transitions: property from neutral to [20px] at (1.5) should be [25px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (0) should be [10px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (0.3) should be [13px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (0.6) should be [16px] Pass CSS Transitions with transition: all: property from neutral to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from neutral to [20px] at (1.5) should be [25px] -Fail CSS Animations: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Transitions with transition: all: property from neutral to [20px] at (1.5) should be [25px] +Pass CSS Animations: property from neutral to [20px] at (-0.3) should be [7px] Pass CSS Animations: property from neutral to [20px] at (0) should be [10px] -Fail CSS Animations: property from neutral to [20px] at (0.3) should be [13px] -Fail CSS Animations: property from neutral to [20px] at (0.6) should be [16px] +Pass CSS Animations: property from neutral to [20px] at (0.3) should be [13px] +Pass CSS Animations: property from neutral to [20px] at (0.6) should be [16px] Pass CSS Animations: property from neutral to [20px] at (1) should be [20px] -Fail CSS Animations: property from neutral to [20px] at (1.5) should be [25px] -Fail Web Animations: property from neutral to [20px] at (-0.3) should be [7px] +Pass CSS Animations: property from neutral to [20px] at (1.5) should be [25px] +Pass Web Animations: property from neutral to [20px] at (-0.3) should be [7px] Pass Web Animations: property from neutral to [20px] at (0) should be [10px] -Fail Web Animations: property from neutral to [20px] at (0.3) should be [13px] -Fail Web Animations: property from neutral to [20px] at (0.6) should be [16px] +Pass Web Animations: property from neutral to [20px] at (0.3) should be [13px] +Pass Web Animations: property from neutral to [20px] at (0.6) should be [16px] Pass Web Animations: property from neutral to [20px] at (1) should be [20px] -Fail Web Animations: property from neutral to [20px] at (1.5) should be [25px] -Fail CSS Transitions: property from [initial] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions: property from [initial] to [20px] at (0) should be [0px] -Fail CSS Transitions: property from [initial] to [20px] at (0.3) should be [6px] -Fail CSS Transitions: property from [initial] to [20px] at (0.6) should be [12px] +Pass Web Animations: property from neutral to [20px] at (1.5) should be [25px] +Pass CSS Transitions: property from [initial] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions: property from [initial] to [20px] at (0) should be [0px] +Pass CSS Transitions: property from [initial] to [20px] at (0.3) should be [6px] +Pass CSS Transitions: property from [initial] to [20px] at (0.6) should be [12px] Pass CSS Transitions: property from [initial] to [20px] at (1) should be [20px] -Fail CSS Transitions: property from [initial] to [20px] at (1.5) should be [30px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0) should be [0px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0.3) should be [6px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (0.6) should be [12px] +Pass CSS Transitions: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (0) should be [0px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (0.3) should be [6px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (0.6) should be [12px] Pass CSS Transitions with transition: all: property from [initial] to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Transitions with transition: all: property from [initial] to [20px] at (1.5) should be [30px] Pass CSS Animations: property from [initial] to [20px] at (-0.3) should be [0px] Pass CSS Animations: property from [initial] to [20px] at (0) should be [0px] -Fail CSS Animations: property from [initial] to [20px] at (0.3) should be [6px] -Fail CSS Animations: property from [initial] to [20px] at (0.6) should be [12px] +Pass CSS Animations: property from [initial] to [20px] at (0.3) should be [6px] +Pass CSS Animations: property from [initial] to [20px] at (0.6) should be [12px] Pass CSS Animations: property from [initial] to [20px] at (1) should be [20px] -Fail CSS Animations: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Animations: property from [initial] to [20px] at (1.5) should be [30px] Pass Web Animations: property from [initial] to [20px] at (-0.3) should be [0px] Pass Web Animations: property from [initial] to [20px] at (0) should be [0px] -Fail Web Animations: property from [initial] to [20px] at (0.3) should be [6px] -Fail Web Animations: property from [initial] to [20px] at (0.6) should be [12px] +Pass Web Animations: property from [initial] to [20px] at (0.3) should be [6px] +Pass Web Animations: property from [initial] to [20px] at (0.6) should be [12px] Pass Web Animations: property from [initial] to [20px] at (1) should be [20px] -Fail Web Animations: property from [initial] to [20px] at (1.5) should be [30px] -Fail CSS Transitions: property from [inherit] to [20px] at (-0.3) should be [33px] -Fail CSS Transitions: property from [inherit] to [20px] at (0) should be [30px] -Fail CSS Transitions: property from [inherit] to [20px] at (0.3) should be [27px] -Fail CSS Transitions: property from [inherit] to [20px] at (0.6) should be [24px] +Pass Web Animations: property from [initial] to [20px] at (1.5) should be [30px] +Pass CSS Transitions: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Transitions: property from [inherit] to [20px] at (0) should be [30px] +Pass CSS Transitions: property from [inherit] to [20px] at (0.3) should be [27px] +Pass CSS Transitions: property from [inherit] to [20px] at (0.6) should be [24px] Pass CSS Transitions: property from [inherit] to [20px] at (1) should be [20px] -Fail CSS Transitions: property from [inherit] to [20px] at (1.5) should be [15px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (-0.3) should be [33px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0) should be [30px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0.3) should be [27px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (0.6) should be [24px] +Pass CSS Transitions: property from [inherit] to [20px] at (1.5) should be [15px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (0) should be [30px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (0.3) should be [27px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (0.6) should be [24px] Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from [inherit] to [20px] at (1.5) should be [15px] -Fail CSS Animations: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Transitions with transition: all: property from [inherit] to [20px] at (1.5) should be [15px] +Pass CSS Animations: property from [inherit] to [20px] at (-0.3) should be [33px] Pass CSS Animations: property from [inherit] to [20px] at (0) should be [30px] -Fail CSS Animations: property from [inherit] to [20px] at (0.3) should be [27px] -Fail CSS Animations: property from [inherit] to [20px] at (0.6) should be [24px] +Pass CSS Animations: property from [inherit] to [20px] at (0.3) should be [27px] +Pass CSS Animations: property from [inherit] to [20px] at (0.6) should be [24px] Pass CSS Animations: property from [inherit] to [20px] at (1) should be [20px] -Fail CSS Animations: property from [inherit] to [20px] at (1.5) should be [15px] -Fail Web Animations: property from [inherit] to [20px] at (-0.3) should be [33px] +Pass CSS Animations: property from [inherit] to [20px] at (1.5) should be [15px] +Pass Web Animations: property from [inherit] to [20px] at (-0.3) should be [33px] Pass Web Animations: property from [inherit] to [20px] at (0) should be [30px] -Fail Web Animations: property from [inherit] to [20px] at (0.3) should be [27px] -Fail Web Animations: property from [inherit] to [20px] at (0.6) should be [24px] +Pass Web Animations: property from [inherit] to [20px] at (0.3) should be [27px] +Pass Web Animations: property from [inherit] to [20px] at (0.6) should be [24px] Pass Web Animations: property from [inherit] to [20px] at (1) should be [20px] -Fail Web Animations: property from [inherit] to [20px] at (1.5) should be [15px] -Fail CSS Transitions: property from [unset] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions: property from [unset] to [20px] at (0) should be [0px] -Fail CSS Transitions: property from [unset] to [20px] at (0.3) should be [6px] -Fail CSS Transitions: property from [unset] to [20px] at (0.6) should be [12px] +Pass Web Animations: property from [inherit] to [20px] at (1.5) should be [15px] +Pass CSS Transitions: property from [unset] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions: property from [unset] to [20px] at (0) should be [0px] +Pass CSS Transitions: property from [unset] to [20px] at (0.3) should be [6px] +Pass CSS Transitions: property from [unset] to [20px] at (0.6) should be [12px] Pass CSS Transitions: property from [unset] to [20px] at (1) should be [20px] -Fail CSS Transitions: property from [unset] to [20px] at (1.5) should be [30px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (-0.3) should be [0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0) should be [0px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0.3) should be [6px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (0.6) should be [12px] +Pass CSS Transitions: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (0) should be [0px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (0.3) should be [6px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (0.6) should be [12px] Pass CSS Transitions with transition: all: property from [unset] to [20px] at (1) should be [20px] -Fail CSS Transitions with transition: all: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Transitions with transition: all: property from [unset] to [20px] at (1.5) should be [30px] Pass CSS Animations: property from [unset] to [20px] at (-0.3) should be [0px] Pass CSS Animations: property from [unset] to [20px] at (0) should be [0px] -Fail CSS Animations: property from [unset] to [20px] at (0.3) should be [6px] -Fail CSS Animations: property from [unset] to [20px] at (0.6) should be [12px] +Pass CSS Animations: property from [unset] to [20px] at (0.3) should be [6px] +Pass CSS Animations: property from [unset] to [20px] at (0.6) should be [12px] Pass CSS Animations: property from [unset] to [20px] at (1) should be [20px] -Fail CSS Animations: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Animations: property from [unset] to [20px] at (1.5) should be [30px] Pass Web Animations: property from [unset] to [20px] at (-0.3) should be [0px] Pass Web Animations: property from [unset] to [20px] at (0) should be [0px] -Fail Web Animations: property from [unset] to [20px] at (0.3) should be [6px] -Fail Web Animations: property from [unset] to [20px] at (0.6) should be [12px] +Pass Web Animations: property from [unset] to [20px] at (0.3) should be [6px] +Pass Web Animations: property from [unset] to [20px] at (0.6) should be [12px] Pass Web Animations: property from [unset] to [20px] at (1) should be [20px] -Fail Web Animations: property from [unset] to [20px] at (1.5) should be [30px] -Fail CSS Transitions: property from [10px] to [50px] at (-0.3) should be [0px] -Fail CSS Transitions: property from [10px] to [50px] at (0) should be [10px] -Fail CSS Transitions: property from [10px] to [50px] at (0.3) should be [22px] -Fail CSS Transitions: property from [10px] to [50px] at (0.6) should be [34px] +Pass Web Animations: property from [unset] to [20px] at (1.5) should be [30px] +Pass CSS Transitions: property from [10px] to [50px] at (-0.3) should be [0px] +Pass CSS Transitions: property from [10px] to [50px] at (0) should be [10px] +Pass CSS Transitions: property from [10px] to [50px] at (0.3) should be [22px] +Pass CSS Transitions: property from [10px] to [50px] at (0.6) should be [34px] Pass CSS Transitions: property from [10px] to [50px] at (1) should be [50px] -Fail CSS Transitions: property from [10px] to [50px] at (1.5) should be [70px] -Fail CSS Transitions with transition: all: property from [10px] to [50px] at (-0.3) should be [0px] -Fail CSS Transitions with transition: all: property from [10px] to [50px] at (0) should be [10px] -Fail CSS Transitions with transition: all: property from [10px] to [50px] at (0.3) should be [22px] -Fail CSS Transitions with transition: all: property from [10px] to [50px] at (0.6) should be [34px] +Pass CSS Transitions: property from [10px] to [50px] at (1.5) should be [70px] +Pass CSS Transitions with transition: all: property from [10px] to [50px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [10px] to [50px] at (0) should be [10px] +Pass CSS Transitions with transition: all: property from [10px] to [50px] at (0.3) should be [22px] +Pass CSS Transitions with transition: all: property from [10px] to [50px] at (0.6) should be [34px] Pass CSS Transitions with transition: all: property from [10px] to [50px] at (1) should be [50px] -Fail CSS Transitions with transition: all: property from [10px] to [50px] at (1.5) should be [70px] -Fail CSS Animations: property from [10px] to [50px] at (-0.3) should be [0px] +Pass CSS Transitions with transition: all: property from [10px] to [50px] at (1.5) should be [70px] +Pass CSS Animations: property from [10px] to [50px] at (-0.3) should be [0px] Pass CSS Animations: property from [10px] to [50px] at (0) should be [10px] -Fail CSS Animations: property from [10px] to [50px] at (0.3) should be [22px] -Fail CSS Animations: property from [10px] to [50px] at (0.6) should be [34px] +Pass CSS Animations: property from [10px] to [50px] at (0.3) should be [22px] +Pass CSS Animations: property from [10px] to [50px] at (0.6) should be [34px] Pass CSS Animations: property from [10px] to [50px] at (1) should be [50px] -Fail CSS Animations: property from [10px] to [50px] at (1.5) should be [70px] -Fail Web Animations: property from [10px] to [50px] at (-0.3) should be [0px] +Pass CSS Animations: property from [10px] to [50px] at (1.5) should be [70px] +Pass Web Animations: property from [10px] to [50px] at (-0.3) should be [0px] Pass Web Animations: property from [10px] to [50px] at (0) should be [10px] -Fail Web Animations: property from [10px] to [50px] at (0.3) should be [22px] -Fail Web Animations: property from [10px] to [50px] at (0.6) should be [34px] +Pass Web Animations: property from [10px] to [50px] at (0.3) should be [22px] +Pass Web Animations: property from [10px] to [50px] at (0.6) should be [34px] Pass Web Animations: property from [10px] to [50px] at (1) should be [50px] -Fail Web Animations: property from [10px] to [50px] at (1.5) should be [70px] +Pass Web Animations: property from [10px] to [50px] at (1.5) should be [70px] Fail CSS Transitions: property from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] Fail CSS Transitions: property from [10px] to [100%] at (0) should be [calc(10px + 0%)] Fail CSS Transitions: property from [10px] to [100%] at (0.3) should be [calc(7px + 30%)] @@ -172,31 +172,31 @@ Fail Web Animations: property from [10px] to [100%] at Fail Web Animations: property from [10px] to [100%] at (0.6) should be [calc(4px + 60%)] Pass Web Animations: property from [10px] to [100%] at (1) should be [100%] Fail Web Animations: property from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] -Fail CSS Transitions: property from [20px] to [10px 30px] at (-2) should be [40px 0px] -Fail CSS Transitions: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] -Fail CSS Transitions: property from [20px] to [10px 30px] at (0) should be [20px] -Fail CSS Transitions: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] -Fail CSS Transitions: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] +Pass CSS Transitions: property from [20px] to [10px 30px] at (-2) should be [40px 0px] +Pass CSS Transitions: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] +Pass CSS Transitions: property from [20px] to [10px 30px] at (0) should be [20px] +Pass CSS Transitions: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] +Pass CSS Transitions: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] Pass CSS Transitions: property from [20px] to [10px 30px] at (1) should be [10px 30px] -Fail CSS Transitions: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] -Fail CSS Transitions with transition: all: property from [20px] to [10px 30px] at (-2) should be [40px 0px] -Fail CSS Transitions with transition: all: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] -Fail CSS Transitions with transition: all: property from [20px] to [10px 30px] at (0) should be [20px] -Fail CSS Transitions with transition: all: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] -Fail CSS Transitions with transition: all: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] +Pass CSS Transitions: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] +Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (-2) should be [40px 0px] +Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] +Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (0) should be [20px] +Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] +Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (1) should be [10px 30px] -Fail CSS Transitions with transition: all: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] -Fail CSS Animations: property from [20px] to [10px 30px] at (-2) should be [40px 0px] -Fail CSS Animations: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] +Pass CSS Transitions with transition: all: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] +Pass CSS Animations: property from [20px] to [10px 30px] at (-2) should be [40px 0px] +Pass CSS Animations: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] Pass CSS Animations: property from [20px] to [10px 30px] at (0) should be [20px] -Fail CSS Animations: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] -Fail CSS Animations: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] +Pass CSS Animations: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] +Pass CSS Animations: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] Pass CSS Animations: property from [20px] to [10px 30px] at (1) should be [10px 30px] -Fail CSS Animations: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] -Fail Web Animations: property from [20px] to [10px 30px] at (-2) should be [40px 0px] -Fail Web Animations: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] +Pass CSS Animations: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] +Pass Web Animations: property from [20px] to [10px 30px] at (-2) should be [40px 0px] +Pass Web Animations: property from [20px] to [10px 30px] at (-0.3) should be [23px 17px] Pass Web Animations: property from [20px] to [10px 30px] at (0) should be [20px] -Fail Web Animations: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] -Fail Web Animations: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] +Pass Web Animations: property from [20px] to [10px 30px] at (0.3) should be [17px 23px] +Pass Web Animations: property from [20px] to [10px 30px] at (0.6) should be [14px 26px] Pass Web Animations: property from [20px] to [10px 30px] at (1) should be [10px 30px] -Fail Web Animations: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] \ No newline at end of file +Pass Web Animations: property from [20px] to [10px 30px] at (1.5) should be [5px 35px] \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/interpolation-longhand-properties.html b/Tests/LibWeb/Text/input/interpolation-longhand-properties.html index 273ba382ca6..48b9ddbf637 100644 --- a/Tests/LibWeb/Text/input/interpolation-longhand-properties.html +++ b/Tests/LibWeb/Text/input/interpolation-longhand-properties.html @@ -34,6 +34,10 @@ from: "repeat-x", to: "space", }, + borderRadius: { + from: "0px 20px 40px 60px", + to: "100px 120px 140px 160px" + }, // by-computed-value properties with 'auto' are discrete bottom: { from: "auto",