WPT
wpt / web-animations / animation-model / animation-types / interpolation-per-property-002.html
Spec: Web Animations ↗
Runs: Chrome 155.0.8042.0 (wpt@4eb09bcd9, 2026-09-04) | Firefox 157.0a1 (wpt@c3fcbf4ba, 2026-09-04) | Safari 251 preview (wpt@e7122b73f, 2026-09-04) | Ladybird 1.0-52f0f (wpt@a1ecd0c09, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | 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 | 486/502 | 485/502 | 490/502 | 382/502 | 0/502 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Setup | PASS | PASS | PASS | PASS | FAIL | — |
| isolation (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| isolation uses discrete animation when animating between "auto" and "isolate" with linear easing | PASS | PASS | PASS | PASS | — | — |
| isolation uses discrete animation when animating between "auto" and "isolate" with effect easing | PASS | PASS | PASS | PASS | — | — |
| isolation uses discrete animation when animating between "auto" and "isolate" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| justify-content (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| justify-content uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| justify-content uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| justify-content uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| justify-items (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| justify-items uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| justify-items uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| justify-items uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| justify-self (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| justify-self uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| justify-self uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| justify-self uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| letter-spacing (type: lengthPercentageOrCalc) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as a length | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as a length of rem | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as a percentage | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as combination units "px" and "%" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as combination units "%" and "em" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as combination units "em" and "rem" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as combination units "px" and "calc" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing supports animating as a calc | PASS | PASS | PASS | PASS | — | — |
| lighting-color (type: color) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of rgb() | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of #RGB | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of hsl() | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of #RGBa | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of rgba() | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of hsla() | PASS | PASS | PASS | — | — | — |
| line-height (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| line-height uses discrete animation when animating between "normal" and "10px" with linear easing | PASS | PASS | PASS | PASS | — | — |
| line-height uses discrete animation when animating between "normal" and "10px" with effect easing | PASS | PASS | PASS | PASS | — | — |
| line-height uses discrete animation when animating between "normal" and "10px" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| line-height uses discrete animation when animating between "normal" and "10" with linear easing | PASS | PASS | PASS | PASS | — | — |
| line-height uses discrete animation when animating between "normal" and "10" with effect easing | PASS | PASS | PASS | PASS | — | — |
| line-height uses discrete animation when animating between "normal" and "10" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| list-style (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| list-style uses discrete animation when animating between "inside url("http://localhost/test-1") circle" and "outside url("http://localhost/test-2") square" with linear easing | FAIL | FAIL | FAIL | FAIL | — | — |
| list-style uses discrete animation when animating between "inside url("http://localhost/test-1") circle" and "outside url("http://localhost/test-2") square" with effect easing | FAIL | FAIL | FAIL | FAIL | — | — |
| list-style uses discrete animation when animating between "inside url("http://localhost/test-1") circle" and "outside url("http://localhost/test-2") square" with keyframe easing | FAIL | FAIL | FAIL | FAIL | — | — |
| list-style-image (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | FAIL | PASS | FAIL | PASS | — | — |
| list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | FAIL | PASS | FAIL | PASS | — | — |
| list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | FAIL | PASS | FAIL | PASS | — | — |
| list-style-position (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| list-style-position uses discrete animation when animating between "inside" and "outside" with linear easing | PASS | PASS | PASS | PASS | — | — |
| list-style-position uses discrete animation when animating between "inside" and "outside" with effect easing | PASS | PASS | PASS | PASS | — | — |
| list-style-position uses discrete animation when animating between "inside" and "outside" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| list-style-type (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| list-style-type uses discrete animation when animating between "circle" and "square" with linear easing | PASS | PASS | PASS | PASS | — | — |
| list-style-type uses discrete animation when animating between "circle" and "square" with effect easing | PASS | PASS | PASS | PASS | — | — |
| list-style-type uses discrete animation when animating between "circle" and "square" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| math-depth (type: integer) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| math-depth supports animating as an integer | PASS | PASS | PASS | — | — | — |
| math-shift (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| math-shift uses discrete animation when animating between "normal" and "compact" with linear easing | PASS | PASS | PASS | — | — | — |
| math-shift uses discrete animation when animating between "normal" and "compact" with effect easing | PASS | PASS | PASS | — | — | — |
| math-shift uses discrete animation when animating between "normal" and "compact" with keyframe easing | PASS | PASS | PASS | — | — | — |
| math-style (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| math-style uses discrete animation when animating between "normal" and "compact" with linear easing | PASS | PASS | PASS | — | — | — |
| math-style uses discrete animation when animating between "normal" and "compact" with effect easing | PASS | PASS | PASS | — | — | — |
| math-style uses discrete animation when animating between "normal" and "compact" with keyframe easing | PASS | PASS | PASS | — | — | — |
| marker-end (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| marker-end uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | PASS | PASS | PASS | — | — | — |
| marker-end uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | PASS | PASS | PASS | — | — | — |
| marker-end uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | PASS | PASS | PASS | — | — | — |
| marker-mid (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| marker-mid uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | PASS | PASS | PASS | — | — | — |
| marker-mid uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | PASS | PASS | PASS | — | — | — |
| marker-mid uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | PASS | PASS | PASS | — | — | — |
| marker-start (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| marker-start uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | PASS | PASS | PASS | — | — | — |
| marker-start uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | PASS | PASS | PASS | — | — | — |
| marker-start uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | PASS | PASS | PASS | — | — | — |
| mask (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | PASS | PASS | FAIL | PASS | — | — |
| mask uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | PASS | PASS | FAIL | PASS | — | — |
| mask uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | PASS | PASS | FAIL | PASS | — | — |
| mask-clip (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-clip uses discrete animation when animating between "content-box" and "border-box" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-clip uses discrete animation when animating between "content-box" and "border-box" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-clip uses discrete animation when animating between "content-box" and "border-box" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mask-composite (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-composite uses discrete animation when animating between "add" and "subtract" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-composite uses discrete animation when animating between "add" and "subtract" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-composite uses discrete animation when animating between "add" and "subtract" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mask-image (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mask-mode (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-mode uses discrete animation when animating between "alpha" and "luminance" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-mode uses discrete animation when animating between "alpha" and "luminance" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-mode uses discrete animation when animating between "alpha" and "luminance" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mask-origin (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-origin uses discrete animation when animating between "content-box" and "border-box" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-origin uses discrete animation when animating between "content-box" and "border-box" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-origin uses discrete animation when animating between "content-box" and "border-box" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mask-repeat (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-repeat uses discrete animation when animating between "space" and "round" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-repeat uses discrete animation when animating between "space" and "round" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-repeat uses discrete animation when animating between "space" and "round" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mask-type (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mask-type uses discrete animation when animating between "alpha" and "luminance" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mask-type uses discrete animation when animating between "alpha" and "luminance" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mask-type uses discrete animation when animating between "alpha" and "luminance" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode uses discrete animation when animating between "multiply" and "screen" with linear easing | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode uses discrete animation when animating between "multiply" and "screen" with effect easing | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode uses discrete animation when animating between "multiply" and "screen" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| object-fit (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| object-fit uses discrete animation when animating between "fill" and "contain" with linear easing | PASS | PASS | PASS | PASS | — | — |
| object-fit uses discrete animation when animating between "fill" and "contain" with effect easing | PASS | PASS | PASS | PASS | — | — |
| object-fit uses discrete animation when animating between "fill" and "contain" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| offset-distance (type: lengthPercentageOrCalc) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as a length | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as a length of rem | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as a percentage | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as combination units "px" and "%" | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as combination units "%" and "em" | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as combination units "em" and "rem" | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as combination units "px" and "calc" | PASS | PASS | PASS | — | — | — |
| offset-distance supports animating as a calc | PASS | PASS | PASS | — | — | — |
| order (type: integer) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| order supports animating as an integer | PASS | PASS | PASS | PASS | — | — |
| outline-color (type: color) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of rgb() | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of #RGB | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of hsl() | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of #RGBa | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of rgba() | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of hsla() | PASS | PASS | PASS | PASS | — | — |
| outline-offset (type: length) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| outline-offset supports animating as a length | PASS | PASS | PASS | PASS | — | — |
| outline-offset supports animating as a length of rem | PASS | PASS | PASS | PASS | — | — |
| outline-style (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| outline-style uses discrete animation when animating between "none" and "dotted" with linear easing | PASS | PASS | PASS | PASS | — | — |
| outline-style uses discrete animation when animating between "none" and "dotted" with effect easing | PASS | PASS | PASS | PASS | — | — |
| outline-style uses discrete animation when animating between "none" and "dotted" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| outline-width (type: length) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| outline-width supports animating as a length | PASS | PASS | PASS | PASS | — | — |
| outline-width supports animating as a length of rem | PASS | PASS | PASS | PASS | — | — |
| overflow (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| overflow uses discrete animation when animating between "visible" and "hidden" with linear easing | PASS | PASS | PASS | PASS | — | — |
| overflow uses discrete animation when animating between "visible" and "hidden" with effect easing | PASS | PASS | PASS | PASS | — | — |
| overflow uses discrete animation when animating between "visible" and "hidden" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap uses discrete animation when animating between "normal" and "break-word" with linear easing | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap uses discrete animation when animating between "normal" and "break-word" with effect easing | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap uses discrete animation when animating between "normal" and "break-word" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| overflow-x (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| overflow-x uses discrete animation when animating between "visible" and "hidden" with linear easing | PASS | PASS | PASS | PASS | — | — |
| overflow-x uses discrete animation when animating between "visible" and "hidden" with effect easing | PASS | PASS | PASS | PASS | — | — |
| overflow-x uses discrete animation when animating between "visible" and "hidden" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| overflow-y (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| overflow-y uses discrete animation when animating between "visible" and "hidden" with linear easing | PASS | PASS | PASS | PASS | — | — |
| overflow-y uses discrete animation when animating between "visible" and "hidden" with effect easing | PASS | PASS | PASS | PASS | — | — |
| overflow-y uses discrete animation when animating between "visible" and "hidden" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| page-break-after (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| page-break-after uses discrete animation when animating between "always" and "auto" with linear easing | PASS | PASS | PASS | PASS | — | — |
| page-break-after uses discrete animation when animating between "always" and "auto" with effect easing | PASS | PASS | PASS | PASS | — | — |
| page-break-after uses discrete animation when animating between "always" and "auto" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| page-break-before (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| page-break-before uses discrete animation when animating between "always" and "auto" with linear easing | PASS | PASS | PASS | PASS | — | — |
| page-break-before uses discrete animation when animating between "always" and "auto" with effect easing | PASS | PASS | PASS | PASS | — | — |
| page-break-before uses discrete animation when animating between "always" and "auto" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| page-break-inside (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| page-break-inside uses discrete animation when animating between "auto" and "avoid" with linear easing | PASS | PASS | PASS | PASS | — | — |
| page-break-inside uses discrete animation when animating between "auto" and "avoid" with effect easing | PASS | PASS | PASS | PASS | — | — |
| page-break-inside uses discrete animation when animating between "auto" and "avoid" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| paint-order (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| paint-order uses discrete animation when animating between "fill" and "stroke" with linear easing | PASS | PASS | PASS | PASS | — | — |
| paint-order uses discrete animation when animating between "fill" and "stroke" with effect easing | PASS | PASS | PASS | PASS | — | — |
| paint-order uses discrete animation when animating between "fill" and "stroke" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| path-length (type: length) has testInterpolation function | PASS | — | — | — | — | — |
| path-length supports animating as a length | PASS | — | — | — | — | — |
| path-length supports animating as a length of rem | PASS | — | — | — | — | — |
| perspective (type: length) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| perspective supports animating as a length | PASS | PASS | PASS | PASS | — | — |
| perspective supports animating as a length of rem | PASS | PASS | PASS | PASS | — | — |
| perspective-origin (type: position) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| perspective-origin supports animating as a length pair | PASS | PASS | PASS | PASS | — | — |
| perspective-origin supports animating as a length pair of rem | PASS | PASS | PASS | PASS | — | — |
| perspective-origin supports animating as a position of percent | PASS | PASS | PASS | PASS | — | — |
| place-content (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| place-content uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| place-content uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| place-content uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| place-items (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| place-items uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| place-items uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| place-items uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| place-self (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| place-self uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| place-self uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| place-self uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| pointer-events (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| pointer-events uses discrete animation when animating between "fill" and "none" with linear easing | PASS | PASS | PASS | FAIL | — | — |
| pointer-events uses discrete animation when animating between "fill" and "none" with effect easing | PASS | PASS | PASS | FAIL | — | — |
| pointer-events uses discrete animation when animating between "fill" and "none" with keyframe easing | PASS | PASS | PASS | FAIL | — | — |
| position (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| position uses discrete animation when animating between "absolute" and "fixed" with linear easing | PASS | PASS | PASS | PASS | — | — |
| position uses discrete animation when animating between "absolute" and "fixed" with effect easing | PASS | PASS | PASS | PASS | — | — |
| position uses discrete animation when animating between "absolute" and "fixed" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| position-anchor (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| position-anchor uses discrete animation when animating between "auto" and "--anchor" with linear easing | PASS | PASS | PASS | PASS | — | — |
| position-anchor uses discrete animation when animating between "auto" and "--anchor" with effect easing | PASS | PASS | PASS | PASS | — | — |
| position-anchor uses discrete animation when animating between "auto" and "--anchor" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| position-visibility (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| position-visibility uses discrete animation when animating between "always" and "anchors-valid" with linear easing | FAIL | PASS | PASS | PASS | — | — |
| position-visibility uses discrete animation when animating between "always" and "anchors-valid" with effect easing | FAIL | PASS | PASS | PASS | — | — |
| position-visibility uses discrete animation when animating between "always" and "anchors-valid" with keyframe easing | FAIL | PASS | PASS | PASS | — | — |
| position-try-fallbacks (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| position-try-fallbacks uses discrete animation when animating between "none" and "flip-block" with linear easing | PASS | PASS | PASS | PASS | — | — |
| position-try-fallbacks uses discrete animation when animating between "none" and "flip-block" with effect easing | PASS | PASS | PASS | PASS | — | — |
| position-try-fallbacks uses discrete animation when animating between "none" and "flip-block" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| position-try-order (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| position-try-order uses discrete animation when animating between "normal" and "most-width" with linear easing | PASS | PASS | PASS | PASS | — | — |
| position-try-order uses discrete animation when animating between "normal" and "most-width" with effect easing | PASS | PASS | PASS | PASS | — | — |
| position-try-order uses discrete animation when animating between "normal" and "most-width" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| quotes (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| quotes uses discrete animation when animating between ""“" "”" "‘" "’"" and ""‘" "’" "“" "”"" with linear easing | PASS | PASS | PASS | PASS | — | — |
| quotes uses discrete animation when animating between ""“" "”" "‘" "’"" and ""‘" "’" "“" "”"" with effect easing | PASS | PASS | PASS | PASS | — | — |
| quotes uses discrete animation when animating between ""“" "”" "‘" "’"" and ""‘" "’" "“" "”"" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| resize (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| resize uses discrete animation when animating between "both" and "horizontal" with linear easing | PASS | PASS | PASS | — | — | — |
| resize uses discrete animation when animating between "both" and "horizontal" with effect easing | PASS | PASS | PASS | — | — | — |
| resize uses discrete animation when animating between "both" and "horizontal" with keyframe easing | PASS | PASS | PASS | — | — | — |
| ruby-align (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| ruby-align uses discrete animation when animating between "start" and "center" with linear easing | PASS | PASS | PASS | — | — | — |
| ruby-align uses discrete animation when animating between "start" and "center" with effect easing | PASS | PASS | PASS | — | — | — |
| ruby-align uses discrete animation when animating between "start" and "center" with keyframe easing | PASS | PASS | PASS | — | — | — |
| ruby-position (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| ruby-position uses discrete animation when animating between "under" and "over" with linear easing | PASS | PASS | PASS | — | — | — |
| ruby-position uses discrete animation when animating between "under" and "over" with effect easing | PASS | PASS | PASS | — | — | — |
| ruby-position uses discrete animation when animating between "under" and "over" with keyframe easing | PASS | PASS | PASS | — | — | — |
| scroll-behavior (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| scroll-behavior uses discrete animation when animating between "auto" and "smooth" with linear easing | PASS | PASS | PASS | — | — | — |
| scroll-behavior uses discrete animation when animating between "auto" and "smooth" with effect easing | PASS | PASS | PASS | — | — | — |
| scroll-behavior uses discrete animation when animating between "auto" and "smooth" with keyframe easing | PASS | PASS | PASS | — | — | — |
| scroll-snap-align (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-align uses discrete animation when animating between "none" and "start" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-align uses discrete animation when animating between "none" and "start" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-align uses discrete animation when animating between "none" and "start" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop uses discrete animation when animating between "normal" and "always" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop uses discrete animation when animating between "normal" and "always" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop uses discrete animation when animating between "normal" and "always" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type uses discrete animation when animating between "none" and "x mandatory" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type uses discrete animation when animating between "none" and "x mandatory" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type uses discrete animation when animating between "none" and "x mandatory" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-color (type: colorPair) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scrollbar-color supports animating as color pair of rgb() | PASS | PASS | PASS | FAIL | — | — |
| scrollbar-color supports animating as color pair of #RGB | PASS | PASS | PASS | FAIL | — | — |
| scrollbar-color supports animating as color pair of hsl() | PASS | PASS | PASS | FAIL | — | — |
| scrollbar-color supports animating as color pair of #RGBa | PASS | PASS | PASS | FAIL | — | — |
| scrollbar-color supports animating as color pair of rgba() | PASS | PASS | PASS | FAIL | — | — |
| scrollbar-color supports animating as color pair of hsla() | PASS | PASS | PASS | FAIL | — | — |
| scrollbar-gutter (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "auto" and "stable" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "auto" and "stable" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "auto" and "stable" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "auto" and "stable both-edges" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "auto" and "stable both-edges" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "auto" and "stable both-edges" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "stable" and "stable both-edges" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "stable" and "stable both-edges" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter uses discrete animation when animating between "stable" and "stable both-edges" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "auto" and "thin" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "auto" and "thin" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "auto" and "thin" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "auto" and "none" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "auto" and "none" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "auto" and "none" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "thin" and "none" with linear easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "thin" and "none" with effect easing | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width uses discrete animation when animating between "thin" and "none" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| shape-outside (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| shape-outside uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing | PASS | PASS | PASS | FAIL | — | — |
| shape-outside uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing | PASS | PASS | PASS | FAIL | — | — |
| shape-outside uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing | PASS | PASS | PASS | FAIL | — | — |
| shape-rendering (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| shape-rendering uses discrete animation when animating between "optimizeSpeed" and "crispEdges" with linear easing | PASS | PASS | PASS | PASS | — | — |
| shape-rendering uses discrete animation when animating between "optimizeSpeed" and "crispEdges" with effect easing | PASS | PASS | PASS | PASS | — | — |
| shape-rendering uses discrete animation when animating between "optimizeSpeed" and "crispEdges" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| stop-color (type: color) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of rgb() | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of #RGB | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of hsl() | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of #RGBa | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of rgba() | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of hsla() | PASS | PASS | PASS | PASS | — | — |
| stop-opacity (type: opacity) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stop-opacity supports animating as a [0, 1] number | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray (type: dasharray) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray supports animating as a percentage | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray supports animating as a positive number | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray supports animating as a dasharray (mismatched length) | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray supports animating as a dasharray (mixed lengths and percentages) | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray uses discrete animation when animating between "none" and "10px, 20px" with linear easing | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray uses discrete animation when animating between "none" and "10px, 20px" with effect easing | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray uses discrete animation when animating between "none" and "10px, 20px" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap uses discrete animation when animating between "round" and "square" with linear easing | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap uses discrete animation when animating between "round" and "square" with effect easing | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap uses discrete animation when animating between "round" and "square" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin uses discrete animation when animating between "round" and "miter" with linear easing | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin uses discrete animation when animating between "round" and "miter" with effect easing | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin uses discrete animation when animating between "round" and "miter" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| stroke-miterlimit (type: positiveNumber) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stroke-miterlimit supports animating as a positive number | PASS | PASS | PASS | PASS | — | — |
| stroke-opacity (type: opacity) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| stroke-opacity supports animating as a [0, 1] number | PASS | PASS | PASS | PASS | — | — |
| table-layout (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| table-layout uses discrete animation when animating between "auto" and "fixed" with linear easing | PASS | PASS | PASS | PASS | — | — |
| table-layout uses discrete animation when animating between "auto" and "fixed" with effect easing | PASS | PASS | PASS | PASS | — | — |
| table-layout uses discrete animation when animating between "auto" and "fixed" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-align (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-align uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-align uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-align uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-align-last (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-align-last uses discrete animation when animating between "start" and "end" with linear easing | PASS | PASS | PASS | — | — | — |
| text-align-last uses discrete animation when animating between "start" and "end" with effect easing | PASS | PASS | PASS | — | — | — |
| text-align-last uses discrete animation when animating between "start" and "end" with keyframe easing | PASS | PASS | PASS | — | — | — |
| text-anchor (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-anchor uses discrete animation when animating between "middle" and "end" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-anchor uses discrete animation when animating between "middle" and "end" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-anchor uses discrete animation when animating between "middle" and "end" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-autospace (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-autospace uses discrete animation when animating between "normal" and "no-autospace" with linear easing | PASS | PASS | PASS | — | — | — |
| text-autospace uses discrete animation when animating between "normal" and "no-autospace" with effect easing | PASS | PASS | PASS | — | — | — |
| text-autospace uses discrete animation when animating between "normal" and "no-autospace" with keyframe easing | PASS | PASS | PASS | — | — | — |
| text-box-edge (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-box-edge uses discrete animation when animating between "auto" and "text" with linear easing | PASS | PASS | PASS | — | — | — |
| text-box-edge uses discrete animation when animating between "auto" and "text" with effect easing | PASS | PASS | PASS | — | — | — |
| text-box-edge uses discrete animation when animating between "auto" and "text" with keyframe easing | PASS | PASS | PASS | — | — | — |
| text-box-trim (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-box-trim uses discrete animation when animating between "none" and "trim-start" with linear easing | PASS | PASS | PASS | — | — | — |
| text-box-trim uses discrete animation when animating between "none" and "trim-start" with effect easing | PASS | PASS | PASS | — | — | — |
| text-box-trim uses discrete animation when animating between "none" and "trim-start" with keyframe easing | PASS | PASS | PASS | — | — | — |
| text-decoration (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-decoration uses discrete animation when animating between "underline" and "overline" with linear easing | FAIL | FAIL | FAIL | FAIL | — | — |
| text-decoration uses discrete animation when animating between "underline" and "overline" with effect easing | FAIL | FAIL | FAIL | FAIL | — | — |
| text-decoration uses discrete animation when animating between "underline" and "overline" with keyframe easing | FAIL | FAIL | FAIL | FAIL | — | — |
| text-decoration-color (type: color) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of rgb() | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of #RGB | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of hsl() | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of #RGBa | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of rgba() | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of hsla() | PASS | PASS | PASS | PASS | — | — |
| text-decoration-line (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-line uses discrete animation when animating between "underline" and "overline" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-line uses discrete animation when animating between "underline" and "overline" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-line uses discrete animation when animating between "underline" and "overline" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink uses discrete animation when animating between "auto" and "none" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink uses discrete animation when animating between "auto" and "none" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink uses discrete animation when animating between "auto" and "none" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style uses discrete animation when animating between "solid" and "dotted" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style uses discrete animation when animating between "solid" and "dotted" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style uses discrete animation when animating between "solid" and "dotted" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-emphasis-color (type: color) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of rgb() | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of #RGB | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of hsl() | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of #RGBa | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of rgba() | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of hsla() | PASS | PASS | PASS | — | — | — |
| text-emphasis-position (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-emphasis-position uses discrete animation when animating between "over" and "under left" with linear easing | PASS | PASS | PASS | — | — | — |
| text-emphasis-position uses discrete animation when animating between "over" and "under left" with effect easing | PASS | PASS | PASS | — | — | — |
| text-emphasis-position uses discrete animation when animating between "over" and "under left" with keyframe easing | PASS | PASS | PASS | — | — | — |
| text-emphasis-style (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| text-emphasis-style uses discrete animation when animating between "circle" and "open dot" with linear easing | PASS | PASS | PASS | — | — | — |
| text-emphasis-style uses discrete animation when animating between "circle" and "open dot" with effect easing | PASS | PASS | PASS | — | — | — |
| text-emphasis-style uses discrete animation when animating between "circle" and "open dot" with keyframe easing | PASS | PASS | PASS | — | — | — |
| text-overflow (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-overflow uses discrete animation when animating between "clip" and "ellipsis" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-overflow uses discrete animation when animating between "clip" and "ellipsis" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-overflow uses discrete animation when animating between "clip" and "ellipsis" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-rendering (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-rendering uses discrete animation when animating between "optimizeSpeed" and "optimizeLegibility" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-rendering uses discrete animation when animating between "optimizeSpeed" and "optimizeLegibility" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-rendering uses discrete animation when animating between "optimizeSpeed" and "optimizeLegibility" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-shadow (type: textShadowList) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-shadow: from none to other | PASS | PASS | PASS | PASS | — | — |
| text-shadow: from other to none | PASS | PASS | PASS | PASS | — | — |
| text-shadow: single shadow | PASS | PASS | PASS | PASS | — | — |
| text-shadow: shadow list | PASS | PASS | PASS | PASS | — | — |
| text-shadow: mismatched list length (from longer to shorter) | PASS | PASS | PASS | PASS | — | — |
| text-shadow: mismatched list length (from shorter to longer) | PASS | PASS | PASS | PASS | — | — |
| text-shadow: with currentcolor | PASS | PASS | PASS | PASS | — | — |
| text-spacing-trim (type: discrete) has testInterpolation function | PASS | — | — | — | — | — |
| text-spacing-trim uses discrete animation when animating between "normal" and "space-all" with linear easing | PASS | — | — | — | — | — |
| text-spacing-trim uses discrete animation when animating between "normal" and "space-all" with effect easing | PASS | — | — | — | — | — |
| text-spacing-trim uses discrete animation when animating between "normal" and "space-all" with keyframe easing | PASS | — | — | — | — | — |
| text-transform (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-transform uses discrete animation when animating between "capitalize" and "uppercase" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-transform uses discrete animation when animating between "capitalize" and "uppercase" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-transform uses discrete animation when animating between "capitalize" and "uppercase" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| text-wrap (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| text-wrap uses discrete animation when animating between "wrap" and "nowrap" with linear easing | PASS | PASS | PASS | PASS | — | — |
| text-wrap uses discrete animation when animating between "wrap" and "nowrap" with effect easing | PASS | PASS | PASS | PASS | — | — |
| text-wrap uses discrete animation when animating between "wrap" and "nowrap" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| touch-action (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| touch-action uses discrete animation when animating between "auto" and "none" with linear easing | PASS | PASS | PASS | PASS | — | — |
| touch-action uses discrete animation when animating between "auto" and "none" with effect easing | PASS | PASS | PASS | PASS | — | — |
| touch-action uses discrete animation when animating between "auto" and "none" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| transform (type: transformList) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| transform: translate | PASS | PASS | PASS | PASS | — | — |
| transform: rotate | PASS | PASS | PASS | PASS | — | — |
| transform: scale | PASS | PASS | PASS | PASS | — | — |
| transform: skew | PASS | PASS | PASS | PASS | — | — |
| transform: rotate and translate | PASS | PASS | PASS | PASS | — | — |
| transform: translate and rotate | PASS | PASS | PASS | PASS | — | — |
| transform: extend shorter list (from) | PASS | PASS | PASS | PASS | — | — |
| transform: extend shorter list (to) | PASS | PASS | PASS | PASS | — | — |
| transform: mismatch order of translate and rotate | PASS | PASS | PASS | PASS | — | — |
| transform: matrix | PASS | PASS | PASS | PASS | — | — |
| transform: rotate3d | PASS | PASS | PASS | PASS | — | — |
| transform: matrix3d | PASS | PASS | PASS | FAIL | — | — |
| transform: mismatched 3D transforms | PASS | PASS | PASS | PASS | — | — |
| transform: rotateY | PASS | PASS | PASS | PASS | — | — |
| transform: non-invertible matrices | PASS | PASS | PASS | PASS | — | — |
| transform: non-invertible matrices in matched transform lists | PASS | PASS | PASS | PASS | — | — |
| transform: non-invertible matrices in mismatched transform lists | PASS | PASS | PASS | PASS | — | — |
| transform: perspective | PASS | PASS | PASS | FAIL | — | — |
| transform-box (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| transform-box uses discrete animation when animating between "fill-box" and "border-box" with linear easing | PASS | PASS | PASS | PASS | — | — |
| transform-box uses discrete animation when animating between "fill-box" and "border-box" with effect easing | PASS | PASS | PASS | PASS | — | — |
| transform-box uses discrete animation when animating between "fill-box" and "border-box" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| transform-style (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| transform-style uses discrete animation when animating between "flat" and "preserve-3d" with linear easing | PASS | PASS | PASS | PASS | — | — |
| transform-style uses discrete animation when animating between "flat" and "preserve-3d" with effect easing | PASS | PASS | PASS | PASS | — | — |
| transform-style uses discrete animation when animating between "flat" and "preserve-3d" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| rotate (type: rotateList) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| rotate without rotation axes | PASS | PASS | PASS | PASS | — | — |
| rotate with rotation axes | PASS | PASS | PASS | PASS | — | — |
| rotate with rotation axes and range over 360 degrees | PASS | PASS | PASS | PASS | — | — |
| rotate with different rotation axes | PASS | PASS | PASS | PASS | — | — |
| translate (type: translateList) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| translate with two unspecified values | PASS | PASS | PASS | PASS | — | — |
| translate with one unspecified value | PASS | PASS | PASS | PASS | — | — |
| translate with all three values specified | PASS | PASS | PASS | PASS | — | — |
| translate with combination of percentages and lengths | PASS | PASS | PASS | PASS | — | — |
| scale (type: scaleList) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| scale with two unspecified values | PASS | PASS | PASS | PASS | — | — |
| scale with one unspecified value | PASS | PASS | PASS | PASS | — | — |
| scale | PASS | PASS | PASS | PASS | — | — |
| vector-effect (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| vector-effect uses discrete animation when animating between "none" and "non-scaling-stroke" with linear easing | PASS | PASS | PASS | PASS | — | — |
| vector-effect uses discrete animation when animating between "none" and "non-scaling-stroke" with effect easing | PASS | PASS | PASS | PASS | — | — |
| vector-effect uses discrete animation when animating between "none" and "non-scaling-stroke" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| view-transition-class (type: discrete) has testInterpolation function | PASS | PASS | PASS | — | — | — |
| view-transition-class uses discrete animation when animating between "none" and "card scale-animation" with linear easing | PASS | PASS | PASS | — | — | — |
| view-transition-class uses discrete animation when animating between "none" and "card scale-animation" with effect easing | PASS | PASS | PASS | — | — | — |
| view-transition-class uses discrete animation when animating between "none" and "card scale-animation" with keyframe easing | PASS | PASS | PASS | — | — | — |
| view-transition-name (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| view-transition-name uses discrete animation when animating between "none" and "header" with linear easing | PASS | PASS | PASS | PASS | — | — |
| view-transition-name uses discrete animation when animating between "none" and "header" with effect easing | PASS | PASS | PASS | PASS | — | — |
| view-transition-name uses discrete animation when animating between "none" and "header" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| visibility (type: visibility) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| visibility uses visibility animation when animating from "visible" to "hidden" | PASS | PASS | PASS | PASS | — | — |
| visibility uses visibility animation when animating from "hidden" to "visible" | PASS | PASS | PASS | PASS | — | — |
| visibility uses visibility animation when animating from "hidden" to "collapse" | PASS | PASS | PASS | PASS | — | — |
| visibility uses visibility animation when animating from "visible" to "hidden" with easeInOutBack easing | PASS | PASS | PASS | PASS | — | — |
| white-space (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| white-space uses discrete animation when animating between "pre" and "nowrap" with linear easing | PASS | PASS | PASS | PASS | — | — |
| white-space uses discrete animation when animating between "pre" and "nowrap" with effect easing | PASS | PASS | PASS | PASS | — | — |
| white-space uses discrete animation when animating between "pre" and "nowrap" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse uses discrete animation when animating between "collapse" and "preserve" with linear easing | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse uses discrete animation when animating between "collapse" and "preserve" with effect easing | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse uses discrete animation when animating between "collapse" and "preserve" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| word-break (type: discrete) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| word-break uses discrete animation when animating between "keep-all" and "break-all" with linear easing | PASS | PASS | PASS | PASS | — | — |
| word-break uses discrete animation when animating between "keep-all" and "break-all" with effect easing | PASS | PASS | PASS | PASS | — | — |
| word-break uses discrete animation when animating between "keep-all" and "break-all" with keyframe easing | PASS | PASS | PASS | PASS | — | — |
| word-spacing (type: lengthPercentageOrCalc) has testInterpolation function | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as a length | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as a length of rem | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as a percentage | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as combination units "px" and "%" | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as combination units "%" and "em" | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as combination units "em" and "rem" | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as combination units "px" and "calc" | PASS | PASS | PASS | PASS | — | — |
| word-spacing supports animating as a calc | PASS | PASS | PASS | PASS | — | — |
| stroke-color (type: color) has testInterpolation function | — | — | PASS | — | — | — |
| stroke-color supports animating as color of rgb() | — | — | PASS | — | — | — |
| stroke-color supports animating as color of #RGB | — | — | PASS | — | — | — |
| stroke-color supports animating as color of hsl() | — | — | PASS | — | — | — |
| stroke-color supports animating as color of #RGBa | — | — | PASS | — | — | — |
| stroke-color supports animating as color of rgba() | — | — | PASS | — | — | — |
| stroke-color supports animating as color of hsla() | — | — | PASS | — | — | — |
| text-decoration-skip (type: discrete) has testInterpolation function | — | — | PASS | — | — | — |
| text-decoration-skip uses discrete animation when animating between "auto" and "none" with linear easing | — | — | PASS | — | — | — |
| text-decoration-skip uses discrete animation when animating between "auto" and "none" with effect easing | — | — | PASS | — | — | — |
| text-decoration-skip uses discrete animation when animating between "auto" and "none" with keyframe easing | — | — | PASS | — | — | — |