<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    .box {
      display: inline-block;
      height: 120px;
      width: 200px;
      margin: 10px;
      border: 1px solid black;
      background-repeat: no-repeat;
    }

    .radial1 {
      background-image: repeating-radial-gradient(white, black 20%);
    }
    
    .radial2 {
      background-image: repeating-radial-gradient(white 80%, black);
    }

    .radial3 {
      background-image: repeating-radial-gradient(at top left, red, blue 20px, red 40px);
    }

    .radial4 {
      background-image: repeating-radial-gradient(at bottom left, red 10%, blue 30%);
    }

    .radial5 {
      background-image: repeating-radial-gradient(at left, red -10%, blue -5%);
    }

    .radial6 {
      background-image: repeating-radial-gradient(at left, red -10%, blue 105%);
    }

    .radial7 {
      background-image: repeating-radial-gradient(at left, red 90%, blue 105%);
    }

    .radial8 {
      background-image: repeating-radial-gradient(at top, red 2em, blue 3em);
    }

    .radial9 {
      background-image: repeating-radial-gradient(circle at left, red, orange, yellow, green, blue, red 60px);
    }

  </style>
  <script>
    if (window.testRunner) {
      testRunner.dumpAsTextWithPixelResults();
    }
  </script>
</head>
<body>

  <div class="radial1 box"></div>
  <div class="radial2 box"></div>
  <div class="radial3 box"></div>
  <br>
  <div class="radial4 box"></div>
  <div class="radial5 box"></div>
  <div class="radial6 box"></div>
  <br>
  <div class="radial7 box"></div>
  <div class="radial8 box"></div>
  <div class="radial9 box"></div>

</body>
</html>
