WPT
wpt / web-animations / animation-model / animation-types / addition-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 | 397/406 | 393/406 | 402/406 | 291/406 | 0/406 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Setup | PASS | PASS | PASS | PASS | FAIL | — |
| isolation (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| isolation: "isolate" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| isolation: "auto" onto "isolate" | PASS | PASS | PASS | PASS | — | — |
| justify-content (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| justify-content: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| justify-content: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| justify-items (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| justify-items: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| justify-items: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| justify-self (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| justify-self: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| justify-self: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing (type: lengthPercentageOrCalc) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: length | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: length of rem | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: percentage | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "%" onto "px" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "px" onto "%" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "rem" onto "%" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "%" onto "rem" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "rem" onto "em" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "em" onto "rem" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: units "calc" onto "px" | PASS | PASS | PASS | PASS | — | — |
| letter-spacing: calc | PASS | PASS | PASS | PASS | — | — |
| lighting-color (type: color) has testAddition function | PASS | PASS | PASS | — | — | — |
| lighting-color supports animating as color of rgb() with overflowed from and to values | 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 testAddition function | PASS | PASS | PASS | PASS | — | — |
| line-height: "10px" onto "normal" | PASS | PASS | PASS | PASS | — | — |
| line-height: "normal" onto "10px" | PASS | PASS | PASS | PASS | — | — |
| line-height: "10" onto "normal" | PASS | PASS | PASS | PASS | — | — |
| line-height: "normal" onto "10" | PASS | PASS | PASS | PASS | — | — |
| list-style (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| list-style: "outside url("http://localhost/test-2") square" onto "inside url("http://localhost/test-1") circle" | PASS | FAIL | PASS | FAIL | — | — |
| list-style: "inside url("http://localhost/test-1") circle" onto "outside url("http://localhost/test-2") square" | PASS | PASS | PASS | PASS | — | — |
| list-style-image (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| list-style-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | PASS | PASS | — | — |
| list-style-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | PASS | PASS | — | — |
| list-style-position (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| list-style-position: "outside" onto "inside" | PASS | PASS | PASS | PASS | — | — |
| list-style-position: "inside" onto "outside" | PASS | PASS | PASS | PASS | — | — |
| list-style-type (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| list-style-type: "square" onto "circle" | PASS | PASS | PASS | PASS | — | — |
| list-style-type: "circle" onto "square" | PASS | PASS | PASS | PASS | — | — |
| math-depth (type: integer) has testAddition function | PASS | PASS | PASS | — | — | — |
| math-depth: integer | FAIL | PASS | PASS | — | — | — |
| math-shift (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| math-shift: "compact" onto "normal" | PASS | PASS | PASS | — | — | — |
| math-shift: "normal" onto "compact" | PASS | PASS | PASS | — | — | — |
| math-style (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| math-style: "compact" onto "normal" | PASS | PASS | PASS | — | — | — |
| math-style: "normal" onto "compact" | PASS | PASS | PASS | — | — | — |
| marker-end (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| marker-end: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | PASS | — | — | — |
| marker-end: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | PASS | — | — | — |
| marker-mid (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| marker-mid: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | PASS | — | — | — |
| marker-mid: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | PASS | — | — | — |
| marker-start (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| marker-start: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | PASS | — | — | — |
| marker-start: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | PASS | — | — | — |
| mask (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | FAIL | PASS | — | — |
| mask: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | FAIL | PASS | — | — |
| mask-clip (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-clip: "border-box" onto "content-box" | PASS | PASS | PASS | PASS | — | — |
| mask-clip: "content-box" onto "border-box" | PASS | PASS | PASS | PASS | — | — |
| mask-composite (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-composite: "subtract" onto "add" | PASS | PASS | PASS | PASS | — | — |
| mask-composite: "add" onto "subtract" | PASS | PASS | PASS | PASS | — | — |
| mask-image (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-image: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | PASS | PASS | — | — |
| mask-image: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | PASS | PASS | — | — |
| mask-mode (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-mode: "luminance" onto "alpha" | PASS | PASS | PASS | PASS | — | — |
| mask-mode: "alpha" onto "luminance" | PASS | PASS | PASS | PASS | — | — |
| mask-origin (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-origin: "border-box" onto "content-box" | PASS | PASS | PASS | PASS | — | — |
| mask-origin: "content-box" onto "border-box" | PASS | PASS | PASS | PASS | — | — |
| mask-repeat (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-repeat: "round" onto "space" | PASS | PASS | PASS | PASS | — | — |
| mask-repeat: "space" onto "round" | PASS | PASS | PASS | PASS | — | — |
| mask-type (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mask-type: "luminance" onto "alpha" | PASS | PASS | PASS | PASS | — | — |
| mask-type: "alpha" onto "luminance" | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode: "screen" onto "multiply" | PASS | PASS | PASS | PASS | — | — |
| mix-blend-mode: "multiply" onto "screen" | PASS | PASS | PASS | PASS | — | — |
| object-fit (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| object-fit: "contain" onto "fill" | PASS | PASS | PASS | PASS | — | — |
| object-fit: "fill" onto "contain" | PASS | PASS | PASS | PASS | — | — |
| offset-distance (type: lengthPercentageOrCalc) has testAddition function | PASS | PASS | PASS | — | — | — |
| offset-distance: length | PASS | PASS | PASS | — | — | — |
| offset-distance: length of rem | PASS | PASS | PASS | — | — | — |
| offset-distance: percentage | PASS | PASS | PASS | — | — | — |
| offset-distance: units "%" onto "px" | PASS | PASS | PASS | — | — | — |
| offset-distance: units "px" onto "%" | PASS | PASS | PASS | — | — | — |
| offset-distance: units "rem" onto "%" | PASS | PASS | PASS | — | — | — |
| offset-distance: units "%" onto "rem" | PASS | PASS | PASS | — | — | — |
| offset-distance: units "rem" onto "em" | PASS | PASS | PASS | — | — | — |
| offset-distance: units "em" onto "rem" | PASS | PASS | PASS | — | — | — |
| offset-distance: units "calc" onto "px" | PASS | PASS | PASS | — | — | — |
| offset-distance: calc | PASS | PASS | PASS | — | — | — |
| order (type: integer) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| order: integer | PASS | PASS | PASS | PASS | — | — |
| outline-color (type: color) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| outline-color supports animating as color of rgb() with overflowed from and to values | PASS | PASS | PASS | FAIL | — | — |
| 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 testAddition function | PASS | PASS | PASS | PASS | — | — |
| outline-offset: length | PASS | PASS | PASS | PASS | — | — |
| outline-offset: length of rem | PASS | PASS | PASS | PASS | — | — |
| outline-style (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| outline-style: "dotted" onto "none" | PASS | PASS | PASS | PASS | — | — |
| outline-style: "none" onto "dotted" | PASS | PASS | PASS | PASS | — | — |
| outline-width (type: length) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| outline-width: length | PASS | PASS | PASS | PASS | — | — |
| outline-width: length of rem | PASS | PASS | PASS | PASS | — | — |
| overflow (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| overflow: "hidden" onto "visible" | PASS | PASS | PASS | PASS | — | — |
| overflow: "visible" onto "hidden" | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap: "break-word" onto "normal" | PASS | PASS | PASS | PASS | — | — |
| overflow-wrap: "normal" onto "break-word" | PASS | PASS | PASS | PASS | — | — |
| overflow-x (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| overflow-x: "hidden" onto "visible" | PASS | PASS | PASS | PASS | — | — |
| overflow-x: "visible" onto "hidden" | PASS | PASS | PASS | PASS | — | — |
| overflow-y (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| overflow-y: "hidden" onto "visible" | PASS | PASS | PASS | PASS | — | — |
| overflow-y: "visible" onto "hidden" | PASS | PASS | PASS | PASS | — | — |
| page-break-after (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| page-break-after: "auto" onto "always" | PASS | PASS | PASS | PASS | — | — |
| page-break-after: "always" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| page-break-before (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| page-break-before: "auto" onto "always" | PASS | PASS | PASS | PASS | — | — |
| page-break-before: "always" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| page-break-inside (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| page-break-inside: "avoid" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| page-break-inside: "auto" onto "avoid" | PASS | PASS | PASS | PASS | — | — |
| paint-order (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| paint-order: "stroke" onto "fill" | PASS | PASS | PASS | PASS | — | — |
| paint-order: "fill" onto "stroke" | PASS | PASS | PASS | PASS | — | — |
| path-length (type: length) has testAddition function | PASS | — | — | — | — | — |
| path-length: length | PASS | — | — | — | — | — |
| path-length: length of rem | PASS | — | — | — | — | — |
| perspective (type: length) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| perspective: length | PASS | PASS | PASS | PASS | — | — |
| perspective: length of rem | PASS | PASS | PASS | PASS | — | — |
| perspective-origin (type: position) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| perspective-origin: length pair | PASS | PASS | PASS | PASS | — | — |
| perspective-origin: length pair of rem | PASS | PASS | PASS | PASS | — | — |
| perspective-origin: position of percentage | PASS | PASS | PASS | PASS | — | — |
| place-content (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| place-content: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| place-content: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| place-items (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| place-items: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| place-items: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| place-self (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| place-self: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| place-self: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| pointer-events (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| pointer-events: "none" onto "fill" | PASS | PASS | PASS | PASS | — | — |
| pointer-events: "fill" onto "none" | PASS | PASS | PASS | FAIL | — | — |
| position (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| position: "fixed" onto "absolute" | PASS | PASS | PASS | PASS | — | — |
| position: "absolute" onto "fixed" | PASS | PASS | PASS | PASS | — | — |
| position-anchor (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| position-anchor: "--anchor" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| position-anchor: "auto" onto "--anchor" | PASS | PASS | PASS | PASS | — | — |
| position-visibility (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| position-visibility: "anchors-valid" onto "always" | FAIL | PASS | PASS | PASS | — | — |
| position-visibility: "always" onto "anchors-valid" | PASS | PASS | PASS | PASS | — | — |
| position-try-fallbacks (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| position-try-fallbacks: "flip-block" onto "none" | PASS | PASS | PASS | PASS | — | — |
| position-try-fallbacks: "none" onto "flip-block" | PASS | PASS | PASS | PASS | — | — |
| position-try-order (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| position-try-order: "most-width" onto "normal" | PASS | PASS | PASS | PASS | — | — |
| position-try-order: "normal" onto "most-width" | PASS | PASS | PASS | PASS | — | — |
| quotes (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| quotes: ""‘" "’" "“" "”"" onto ""“" "”" "‘" "’"" | PASS | PASS | PASS | PASS | — | — |
| quotes: ""“" "”" "‘" "’"" onto ""‘" "’" "“" "”"" | PASS | PASS | PASS | PASS | — | — |
| resize (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| resize: "horizontal" onto "both" | PASS | PASS | PASS | — | — | — |
| resize: "both" onto "horizontal" | PASS | PASS | PASS | — | — | — |
| ruby-align (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| ruby-align: "center" onto "start" | PASS | PASS | PASS | — | — | — |
| ruby-align: "start" onto "center" | PASS | PASS | PASS | — | — | — |
| ruby-position (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| ruby-position: "over" onto "under" | PASS | PASS | PASS | — | — | — |
| ruby-position: "under" onto "over" | PASS | PASS | PASS | — | — | — |
| scroll-behavior (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| scroll-behavior: "smooth" onto "auto" | PASS | PASS | PASS | — | — | — |
| scroll-behavior: "auto" onto "smooth" | PASS | PASS | PASS | — | — | — |
| scroll-snap-align (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-align: "start" onto "none" | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-align: "none" onto "start" | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop: "always" onto "normal" | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-stop: "normal" onto "always" | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type: "x mandatory" onto "none" | PASS | PASS | PASS | PASS | — | — |
| scroll-snap-type: "none" onto "x mandatory" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-color (type: colorPair) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| scrollbar-color supports animating as color pair of rgb() with overflowed from and to values | 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 testAddition function | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter: "stable" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter: "auto" onto "stable" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter: "stable both-edges" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter: "auto" onto "stable both-edges" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter: "stable both-edges" onto "stable" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-gutter: "stable" onto "stable both-edges" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width: "thin" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width: "auto" onto "thin" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width: "none" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width: "auto" onto "none" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width: "none" onto "thin" | PASS | PASS | PASS | PASS | — | — |
| scrollbar-width: "thin" onto "none" | PASS | PASS | PASS | PASS | — | — |
| shape-outside (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| shape-outside: "url("http://localhost/test-2")" onto "url("http://localhost/test-1")" | PASS | PASS | PASS | FAIL | — | — |
| shape-outside: "url("http://localhost/test-1")" onto "url("http://localhost/test-2")" | PASS | PASS | PASS | FAIL | — | — |
| shape-rendering (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| shape-rendering: "crispEdges" onto "optimizeSpeed" | PASS | PASS | PASS | PASS | — | — |
| shape-rendering: "optimizeSpeed" onto "crispEdges" | PASS | PASS | PASS | PASS | — | — |
| stop-color (type: color) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stop-color supports animating as color of rgb() with overflowed from and to values | PASS | PASS | PASS | FAIL | — | — |
| 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 testAddition function | PASS | PASS | PASS | PASS | — | — |
| stop-opacity: [0, 1] number | PASS | PASS | PASS | PASS | — | — |
| stop-opacity: [0, 1] number (clamped) | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray (type: dasharray) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray: dasharray | FAIL | PASS | PASS | PASS | — | — |
| stroke-dasharray (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray: "10px, 20px" onto "none" | PASS | PASS | PASS | PASS | — | — |
| stroke-dasharray: "none" onto "10px, 20px" | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap: "square" onto "round" | PASS | PASS | PASS | PASS | — | — |
| stroke-linecap: "round" onto "square" | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin: "miter" onto "round" | PASS | PASS | PASS | PASS | — | — |
| stroke-linejoin: "round" onto "miter" | PASS | PASS | PASS | PASS | — | — |
| stroke-miterlimit (type: positiveNumber) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stroke-miterlimit: positive number | PASS | PASS | PASS | PASS | — | — |
| stroke-opacity (type: opacity) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| stroke-opacity: [0, 1] number | PASS | PASS | PASS | PASS | — | — |
| stroke-opacity: [0, 1] number (clamped) | PASS | PASS | PASS | PASS | — | — |
| table-layout (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| table-layout: "fixed" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| table-layout: "auto" onto "fixed" | PASS | PASS | PASS | PASS | — | — |
| text-align (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-align: "end" onto "start" | PASS | PASS | PASS | PASS | — | — |
| text-align: "start" onto "end" | PASS | PASS | PASS | PASS | — | — |
| text-align-last (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| text-align-last: "end" onto "start" | PASS | PASS | PASS | — | — | — |
| text-align-last: "start" onto "end" | PASS | PASS | PASS | — | — | — |
| text-anchor (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-anchor: "end" onto "middle" | PASS | PASS | PASS | PASS | — | — |
| text-anchor: "middle" onto "end" | PASS | PASS | PASS | PASS | — | — |
| text-autospace (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| text-autospace: "no-autospace" onto "normal" | PASS | PASS | PASS | — | — | — |
| text-autospace: "normal" onto "no-autospace" | PASS | PASS | PASS | — | — | — |
| text-box-edge (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| text-box-edge: "text" onto "auto" | PASS | PASS | PASS | — | — | — |
| text-box-edge: "auto" onto "text" | PASS | PASS | PASS | — | — | — |
| text-box-trim (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| text-box-trim: "trim-start" onto "none" | PASS | PASS | PASS | — | — | — |
| text-box-trim: "none" onto "trim-start" | PASS | PASS | PASS | — | — | — |
| text-decoration (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-decoration: "overline" onto "underline" | FAIL | FAIL | FAIL | FAIL | — | — |
| text-decoration: "underline" onto "overline" | FAIL | FAIL | FAIL | FAIL | — | — |
| text-decoration-color (type: color) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-color supports animating as color of rgb() with overflowed from and to values | PASS | PASS | PASS | FAIL | — | — |
| 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 testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-line: "overline" onto "underline" | PASS | PASS | PASS | PASS | — | — |
| text-decoration-line: "underline" onto "overline" | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink: "none" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| text-decoration-skip-ink: "auto" onto "none" | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style: "dotted" onto "solid" | PASS | PASS | PASS | PASS | — | — |
| text-decoration-style: "solid" onto "dotted" | PASS | PASS | PASS | PASS | — | — |
| text-emphasis-color (type: color) has testAddition function | PASS | PASS | PASS | — | — | — |
| text-emphasis-color supports animating as color of rgb() with overflowed from and to values | 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 testAddition function | PASS | PASS | PASS | — | — | — |
| text-emphasis-position: "under left" onto "over" | PASS | PASS | PASS | — | — | — |
| text-emphasis-position: "over" onto "under left" | PASS | PASS | PASS | — | — | — |
| text-emphasis-style (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| text-emphasis-style: "open dot" onto "circle" | PASS | PASS | PASS | — | — | — |
| text-emphasis-style: "circle" onto "open dot" | PASS | PASS | PASS | — | — | — |
| text-overflow (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-overflow: "ellipsis" onto "clip" | PASS | PASS | PASS | PASS | — | — |
| text-overflow: "clip" onto "ellipsis" | PASS | PASS | PASS | PASS | — | — |
| text-rendering (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-rendering: "optimizeLegibility" onto "optimizeSpeed" | PASS | PASS | PASS | PASS | — | — |
| text-rendering: "optimizeSpeed" onto "optimizeLegibility" | PASS | PASS | PASS | PASS | — | — |
| text-shadow (type: textShadowList) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-shadow: shadow | PASS | PASS | PASS | FAIL | — | — |
| text-spacing-trim (type: discrete) has testAddition function | PASS | — | — | — | — | — |
| text-spacing-trim: "space-all" onto "normal" | PASS | — | — | — | — | — |
| text-spacing-trim: "normal" onto "space-all" | PASS | — | — | — | — | — |
| text-transform (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-transform: "uppercase" onto "capitalize" | PASS | PASS | PASS | PASS | — | — |
| text-transform: "capitalize" onto "uppercase" | PASS | PASS | PASS | PASS | — | — |
| text-wrap (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| text-wrap: "nowrap" onto "wrap" | PASS | PASS | PASS | PASS | — | — |
| text-wrap: "wrap" onto "nowrap" | PASS | PASS | PASS | PASS | — | — |
| touch-action (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| touch-action: "none" onto "auto" | PASS | PASS | PASS | PASS | — | — |
| touch-action: "auto" onto "none" | PASS | PASS | PASS | PASS | — | — |
| transform (type: transformList) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| transform: translate | PASS | PASS | PASS | FAIL | — | — |
| transform: rotate | PASS | PASS | PASS | FAIL | — | — |
| transform: scale | PASS | PASS | PASS | FAIL | — | — |
| transform: skew | PASS | PASS | PASS | FAIL | — | — |
| transform: rotate on translate | PASS | PASS | PASS | FAIL | — | — |
| transform: translate on rotate | PASS | PASS | PASS | FAIL | — | — |
| transform: rotate on rotate and translate | PASS | PASS | PASS | FAIL | — | — |
| transform: matrix | PASS | PASS | PASS | FAIL | — | — |
| transform: rotate3d | PASS | PASS | PASS | FAIL | — | — |
| transform: matrix3d | PASS | PASS | PASS | FAIL | — | — |
| transform: non-invertible matrices | PASS | PASS | PASS | FAIL | — | — |
| transform: non-invertible matrices in matched transform lists | PASS | PASS | PASS | FAIL | — | — |
| transform: non-invertible matrices in mismatched transform lists | PASS | PASS | PASS | FAIL | — | — |
| transform-box (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| transform-box: "border-box" onto "fill-box" | PASS | PASS | PASS | PASS | — | — |
| transform-box: "fill-box" onto "border-box" | PASS | PASS | PASS | PASS | — | — |
| transform-style (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| transform-style: "preserve-3d" onto "flat" | PASS | PASS | PASS | PASS | — | — |
| transform-style: "flat" onto "preserve-3d" | PASS | PASS | PASS | PASS | — | — |
| rotate (type: rotateList) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| rotate without rotation axes | PASS | PASS | PASS | PASS | — | — |
| rotate with underlying transform | PASS | PASS | PASS | PASS | — | — |
| rotate with different rotation axes | PASS | PASS | PASS | PASS | — | — |
| translate (type: translateList) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| translate | PASS | PASS | PASS | PASS | — | — |
| translate with underlying transform | PASS | PASS | PASS | PASS | — | — |
| translate with underlying percentage value | PASS | PASS | PASS | PASS | — | — |
| scale (type: scaleList) has testAddition 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 testAddition function | PASS | PASS | PASS | PASS | — | — |
| vector-effect: "non-scaling-stroke" onto "none" | PASS | PASS | PASS | PASS | — | — |
| vector-effect: "none" onto "non-scaling-stroke" | PASS | PASS | PASS | PASS | — | — |
| view-transition-class (type: discrete) has testAddition function | PASS | PASS | PASS | — | — | — |
| view-transition-class: "card scale-animation" onto "none" | PASS | PASS | PASS | — | — | — |
| view-transition-class: "none" onto "card scale-animation" | PASS | PASS | PASS | — | — | — |
| view-transition-name (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| view-transition-name: "header" onto "none" | PASS | PASS | PASS | PASS | — | — |
| view-transition-name: "none" onto "header" | PASS | PASS | PASS | PASS | — | — |
| visibility (type: visibility) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| visibility: onto "visible" | PASS | PASS | PASS | PASS | — | — |
| visibility: onto "hidden" | PASS | PASS | PASS | PASS | — | — |
| white-space (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| white-space: "nowrap" onto "pre" | PASS | PASS | PASS | PASS | — | — |
| white-space: "pre" onto "nowrap" | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse: "preserve" onto "collapse" | PASS | PASS | PASS | PASS | — | — |
| white-space-collapse: "collapse" onto "preserve" | PASS | PASS | PASS | PASS | — | — |
| word-break (type: discrete) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| word-break: "break-all" onto "keep-all" | PASS | PASS | PASS | PASS | — | — |
| word-break: "keep-all" onto "break-all" | PASS | PASS | PASS | PASS | — | — |
| word-spacing (type: lengthPercentageOrCalc) has testAddition function | PASS | PASS | PASS | PASS | — | — |
| word-spacing: length | PASS | PASS | PASS | PASS | — | — |
| word-spacing: length of rem | PASS | PASS | PASS | PASS | — | — |
| word-spacing: percentage | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "%" onto "px" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "px" onto "%" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "rem" onto "%" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "%" onto "rem" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "rem" onto "em" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "em" onto "rem" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: units "calc" onto "px" | PASS | PASS | PASS | PASS | — | — |
| word-spacing: calc | PASS | PASS | PASS | PASS | — | — |
| stroke-color (type: color) has testAddition function | — | — | PASS | — | — | — |
| stroke-color supports animating as color of rgb() with overflowed from and to values | — | — | 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 testAddition function | — | — | PASS | — | — | — |
| text-decoration-skip: "none" onto "auto" | — | — | PASS | — | — | — |
| text-decoration-skip: "auto" onto "none" | — | — | PASS | — | — | — |