LibWeb: Improve interpolation of mixed percentage-dimension values

If we are interpolating between a dimension and a percentage value and
the dimension component is 0, we now return a percentage value rather
than a `calc()` value.
This commit is contained in:
Tim Ledbetter
2025-09-09 15:49:31 +01:00
committed by Sam Atkins
parent 01be928a16
commit 9c062d9d4e
Notes: github-actions[bot] 2025-09-10 16:01:26 +00:00
5 changed files with 138 additions and 104 deletions

View File

@@ -2,8 +2,7 @@ Harness status: OK
Found 408 tests
380 Pass
28 Fail
408 Pass
Pass CSS Transitions: property <translate> from [-100px] to [100px] at (-1) should be [-300px]
Pass CSS Transitions: property <translate> from [-100px] to [100px] at (0) should be [-100px]
Pass CSS Transitions: property <translate> from [-100px] to [100px] at (0.25) should be [-50px]
@@ -152,25 +151,25 @@ Pass CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160
Pass CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [calc(0% + 480px) calc(0% + 400px) 320px]
Pass CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px]
Pass CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px]
Fail CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass CSS Transitions: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px]
Pass CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px]
Pass CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [calc(0% + 480px) calc(0% + 400px) 320px]
Pass CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px]
Pass CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px]
Fail CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass CSS Transitions with transition: all: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px]
Pass CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px]
Pass CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [calc(0% + 480px) calc(0% + 400px) 320px]
Pass CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px]
Pass CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px]
Fail CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass CSS Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px]
Pass Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (-1) should be [calc(960px - 240%) calc(800px - 160%) 640px]
Pass Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0) should be [calc(0% + 480px) calc(0% + 400px) 320px]
Pass Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.125) should be [calc(420px + 30%) calc(350px + 20%) 280px]
Pass Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (0.875) should be [calc(210% + 60px) calc(140% + 50px) 40px]
Fail Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (1) should be [240% 160%]
Pass Web Animations: property <translate> from [480px 400px 320px] to [240% 160%] at (2) should be [calc(480% - 480px) calc(320% - 400px) -320px]
Pass CSS Transitions: property <translate> from [none] to [none] at (-1) should be [none]
Pass CSS Transitions: property <translate> from [none] to [none] at (0) should be [none]
@@ -196,30 +195,30 @@ Pass Web Animations: property <translate> from [none] to [none] at (0.125) shoul
Pass Web Animations: property <translate> from [none] to [none] at (0.875) should be [none]
Pass Web Animations: property <translate> from [none] to [none] at (1) should be [none]
Pass Web Animations: property <translate> from [none] to [none] at (2) should be [none]
Fail CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Fail CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Fail CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Fail CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Fail CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Fail CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Fail CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Fail CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Fail CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Fail CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Fail CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Fail CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Fail CSS Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Fail CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Fail CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Fail CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Fail CSS Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Fail CSS Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Fail Web Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Fail Web Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Fail Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Fail Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Fail Web Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Fail Web Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Pass CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Pass CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Pass CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Pass CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Pass CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Pass CSS Transitions: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Pass CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Pass CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Pass CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Pass CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Pass CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Pass CSS Transitions with transition: all: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Pass CSS Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Pass CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Pass CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Pass CSS Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Pass CSS Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Pass CSS Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Pass Web Animations: property <translate> from [none] to [8px 80% 800px] at (-1) should be [-8px -80% -800px]
Pass Web Animations: property <translate> from [none] to [8px 80% 800px] at (0) should be [0px 0%]
Pass Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.125) should be [1px 10% 100px]
Pass Web Animations: property <translate> from [none] to [8px 80% 800px] at (0.875) should be [7px 70% 700px]
Pass Web Animations: property <translate> from [none] to [8px 80% 800px] at (1) should be [8px 80% 800px]
Pass Web Animations: property <translate> from [none] to [8px 80% 800px] at (2) should be [16px 160% 1600px]
Pass CSS Transitions: property <translate> from neutral to [20px] at (-1) should be [0px]
Pass CSS Transitions: property <translate> from neutral to [20px] at (0) should be [10px]
Pass CSS Transitions: property <translate> from neutral to [20px] at (0.25) should be [12.5px]