wpt / css / css-transforms / parsing / transform-origin-computed.html

Status: FAIL | Duration: 76ms | Subtests: 1/23 | Open test on wpt.live | wpt.fyi

Data from commit:
7727414 ci: report WPT subtest changes in the PR description (#826) (2026-09-02)

SubtestStatusMessage
Property transform-origin value '10%'FAILassert_equals: expected "20px 150px" but got "10% 50% 0px"
Property transform-origin value '10% center'FAILassert_equals: expected "20px 150px" but got "10% 50% 0px"
Property transform-origin value '20% 30px'FAILassert_equals: expected "40px 30px" but got "20% 30px 0px"
Property transform-origin value '30px center'FAILassert_equals: expected "30px 150px" but got "30px 50% 0px"
Property transform-origin value '40px top'FAILassert_equals: expected "40px 0px" but got "40px 0% 0px"
Property transform-origin value 'bottom right'FAILassert_equals: expected "200px 300px" but got "100% 100% 0px"
Property transform-origin value 'center'FAILassert_equals: expected "100px 150px" but got "50% 50% 0px"
Property transform-origin value 'center 50px'FAILassert_equals: expected "100px 50px" but got "50% 50px 0px"
Property transform-origin value 'center bottom'FAILassert_equals: expected "100px 300px" but got "50% 100% 0px"
Property transform-origin value 'center center'FAILassert_equals: expected "100px 150px" but got "50% 50% 0px"
Property transform-origin value 'center left'FAILassert_equals: expected "0px 150px" but got "0% 50% 0px"
Property transform-origin value 'left'FAILassert_equals: expected "0px 150px" but got "0% 50% 0px"
Property transform-origin value 'left 10px'FAILassert_equals: expected "0px 10px" but got "0% 10px 0px"
Property transform-origin value 'left bottom'FAILassert_equals: expected "0px 300px" but got "0% 100% 0px"
Property transform-origin value 'left center'FAILassert_equals: expected "0px 150px" but got "0% 50% 0px"
Property transform-origin value 'right 40%'FAILassert_equals: expected "200px 120px" but got "100% 40% 0px"
Property transform-origin value 'top'FAILassert_equals: expected "100px 0px" but got "50% 0% 0px"
Property transform-origin value '-1px bottom 5px'FAILassert_equals: expected "-1px 300px 5px" but got "-1px 100% 5px"
Property transform-origin value 'left center 6px'FAILassert_equals: expected "0px 150px 6px" but got "0% 50% 6px"
Property transform-origin value 'center top'FAILassert_equals: expected "100px 0px" but got "50% 0% 0px"
Property transform-origin value 'right bottom 7px'FAILassert_equals: expected "200px 300px 7px" but got "100% 100% 7px"
Property transform-origin value '-1px -2px -3px'PASS
Property transform-origin value 'calc(-100% + 10px - 0.5em) calc(10px - 0.5em) calc(10px - 0.5em)'FAILassert_equals: expected "-210px -10px -10px" but got "calc(-100% - 10px) -10px -10px"

/css/css-transforms/parsing/transform-origin-computed.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: getComputedStyle().transformOrigin</title>
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-origin-property">
<meta name="assert" content="transform-origin computed value is two or three absolute lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<style>
  #target {
    width: 200px;
    height: 300px;
    font-size: 40px;
  }
</style>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("transform-origin", "10%", "20px 150px");
test_computed_value("transform-origin", "10% center", "20px 150px");
test_computed_value("transform-origin", "20% 30px", "40px 30px");
test_computed_value("transform-origin", "30px center", "30px 150px");
test_computed_value("transform-origin", "40px top", "40px 0px");
test_computed_value("transform-origin", "bottom right", "200px 300px");
test_computed_value("transform-origin", "center", "100px 150px");
test_computed_value("transform-origin", "center 50px", "100px 50px");
test_computed_value("transform-origin", "center bottom", "100px 300px");
test_computed_value("transform-origin", "center center", "100px 150px");
test_computed_value("transform-origin", "center left", "0px 150px");
test_computed_value("transform-origin", "left", "0px 150px");
test_computed_value("transform-origin", "left 10px", "0px 10px");
test_computed_value("transform-origin", "left bottom", "0px 300px");
test_computed_value("transform-origin", "left center", "0px 150px");
test_computed_value("transform-origin", "right 40%", "200px 120px");
test_computed_value("transform-origin", "top", "100px 0px");

test_computed_value("transform-origin", "-1px bottom 5px", "-1px 300px 5px");
test_computed_value("transform-origin", "left center 6px", "0px 150px 6px");
test_computed_value("transform-origin", "center top", "100px 0px");
test_computed_value("transform-origin", "right bottom 7px", "200px 300px 7px");
test_computed_value("transform-origin", "-1px -2px -3px");

test_computed_value("transform-origin", "calc(-100% + 10px - 0.5em) calc(10px - 0.5em) calc(10px - 0.5em)", "-210px -10px -10px");
</script>
</body>
</html>