WPT
wpt / css / css-masking / animations / clip-composition.html
Spec: CSS Masking ↗
Runs: Chrome 155.0.8041.0 (wpt@4a01b83e3, 2026-09-04) | Firefox 157.0a1 (wpt@e7122b73f, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-70fb3 (wpt@4a01b83e3, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 72/72 | 66/72 | 72/72 | 66/72 | 33/72 | 27/72 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Compositing CSS Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (-1) should be [rect(-60px -40px -20px 0px)] | PASS | PASS | PASS | PASS | PASS | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (0) should be [rect(40px 60px 80px 100px)] | PASS | PASS | PASS | PASS | PASS | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (0.25) should be [rect(65px 85px 105px 125px)] | PASS | PASS | PASS | PASS | PASS | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (0.75) should be [rect(115px 135px 155px 175px)] | PASS | PASS | PASS | PASS | PASS | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (1) should be [rect(140px 160px 180px 200px)] | PASS | PASS | PASS | PASS | PASS | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (2) should be [rect(240px 260px 280px 300px)] | PASS | PASS | PASS | PASS | PASS | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (-1) should be [rect(-60px -40px -20px 0px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (0) should be [rect(40px 60px 80px 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (0.25) should be [rect(65px 85px 105px 125px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (0.75) should be [rect(115px 135px 155px 175px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (1) should be [rect(140px 160px 180px 200px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(0px 10px 20px 30px)] from add [rect(40px 50px 60px 70px)] to add [rect(140px 150px 160px 170px)] at (2) should be [rect(240px 260px 280px 300px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (-1) should be [rect(-100px -100px -100px -100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (0) should be [rect(0px 0px 0px 0px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (0.25) should be [rect(25px 25px 25px 25px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (0.75) should be [rect(75px 75px 75px 75px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (1) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (2) should be [rect(200px 200px 200px 200px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing Web Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (-1) should be [rect(-100px -100px -100px -100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (0) should be [rect(0px 0px 0px 0px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (0.25) should be [rect(25px 25px 25px 25px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (0.75) should be [rect(75px 75px 75px 75px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (1) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [auto] from add [rect(0px 0px 0px 0px)] to add [rect(100px 100px 100px 100px)] at (2) should be [rect(200px 200px 200px 200px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (-1) should be [rect(100px auto auto 100px)] | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (0) should be [rect(100px auto auto 100px)] | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (0.25) should be [rect(100px auto auto 100px)] | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (0.75) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (1) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (2) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (-1) should be [rect(100px auto auto 100px)] | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (0) should be [rect(100px auto auto 100px)] | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (0.25) should be [rect(100px auto auto 100px)] | PASS | FAIL | PASS | FAIL | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (0.75) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (1) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px 100px 100px 100px)] at (2) should be [rect(100px 100px 100px 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (-1) should be [rect(0px auto auto 0px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (0) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (0.25) should be [rect(62.5px auto auto 62.5px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (0.75) should be [rect(87.5px auto auto 87.5px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (1) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (2) should be [rect(150px auto auto 150px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (-1) should be [rect(0px auto auto 0px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (0) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (0.25) should be [rect(62.5px auto auto 62.5px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (0.75) should be [rect(87.5px auto auto 87.5px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (1) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [rect(100px auto auto 100px)] at (2) should be [rect(150px auto auto 150px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (-1) should be [rect(50px 50px 50px 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (0) should be [rect(50px 50px 50px 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (0.25) should be [rect(50px 50px 50px 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (0.75) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (1) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (2) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (-1) should be [rect(50px 50px 50px 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (0) should be [rect(50px 50px 50px 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (0.25) should be [rect(50px 50px 50px 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (0.75) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (1) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px auto auto 50px)] from add [rect(50px 50px 50px 50px)] to replace [rect(100px auto auto 100px)] at (2) should be [rect(100px auto auto 100px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (-1) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (0) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (0.25) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (0.75) should be [auto] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (1) should be [auto] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing CSS Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (2) should be [auto] | PASS | PASS | PASS | PASS | PASS | PASS |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (-1) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (0) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (0.25) should be [rect(50px auto auto 50px)] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (0.75) should be [auto] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (1) should be [auto] | PASS | PASS | PASS | PASS | FAIL | FAIL |
| Compositing Web Animations: property <clip> underlying [rect(50px 50px 50px 50px)] from add [rect(50px auto auto 50px)] to add [auto] at (2) should be [auto] | PASS | PASS | PASS | PASS | FAIL | FAIL |