testing/web-platform/tests/css/css-masking/clip-path/animations/clip-path-animation-reference-delay.html
author Lando <lando@lando.test>
Thu, 10 Jul 2025 16:11:40 +0000 (7 hours ago)
changeset 795966 8f464d9c468ba1a7c1b0338deaa8bc8023f8ae3d
parent 780846 3acce47f3d40bc5f79e2441ea63ab8fe9f7a1325
permissions -rw-r--r--
Merge autoland to mozilla-central
<!DOCTYPE html>
<html class="reftest-wait">
<link rel="help" href="https://drafts.csswg.org/css-shapes-1/#basic-shape-interpolation">
<link rel="match" href="clip-path-animation-non-shape-delay-ref.html">
<style>
  .container {
    width: 100px;
    height: 100px;
    background-color: green;
    animation: clippath 1s 10s;
    animation-fill-mode: none;
    clip-path: url(#path);
    position: absolute;
    left: 10px;
    top: 10px;
  }

  .child {
    width: 10px;
    height: 10px;
    background-color: blue;
    left: 150px;
    position: absolute;
  }

  @keyframes clippath {
    0% {
      clip-path: circle(50% at 50% 50%);
    }

    100% {
      clip-path: circle(35% at 35% 35%);
    }
  }
</style>
<script src="/common/reftest-wait.js"></script>
<script src="../../../../web-animations/resources/timing-utils.js"></script>

<body>
  This test passes if the blue child is occluded by the clip-path during the animation delay.
  <svg style="position:absolute; left: 0">
    <defs>
      <clipPath id="path">
        <rect x="0" y="0" width="100" height="100"/>
        <!-- Adding an empty text node to force mask-based clipping. -->
        <text></text>
      </clipPath>
    </defs>
  </svg>
  <div class="container">
    <div class="child"></div>
  </div>

  <script>
    document.getAnimations()[0].ready.then(() => requestAnimationFrame(takeScreenshot));
  </script>
</body>

</html>