<!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;
    }

    .linear1 {
      background-image: repeating-linear-gradient(white, black 20%);
    }
    
    .linear2 {
      background-image: repeating-linear-gradient(white 80%, black);
    }

    .linear3 {
      background-image: repeating-linear-gradient(to top right, red, blue 20px, red 40px);
    }

    .linear4 {
      background-image: repeating-linear-gradient(to right, red 10%, blue 30%);
    }

    .linear5 {
      background-image: repeating-linear-gradient(to right, red -10%, blue -5%);
    }

    .linear6 {
      background-image: repeating-linear-gradient(to right, red -10%, blue 105%);
    }

    .linear7 {
      background-image: repeating-linear-gradient(to right, red 90%, blue 105%);
    }

    .linear8 {
      background-image: repeating-linear-gradient(to right, red 2em, blue 3em);
    }

    .linear9 {
      background-image: repeating-linear-gradient(to right, red, orange, yellow, green, blue, red 60px);
    }

    .linear10 {
      background-image: repeating-linear-gradient(to right, red 90%, 95%, blue 105%);
    }

    .linear11 {
      background-image: repeating-linear-gradient(to right, red 2em, 2.1em, blue 3em);
    }

    .linear12 {
      background-image: repeating-linear-gradient(to right, red, 55px, blue 60px);
    }

  </style>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
      var dumpPixels = true;
      testRunner.dumpAsText(dumpPixels);
    }
  </script>
</head>
<body>

  <div class="linear1 box"></div>
  <div class="linear2 box"></div>
  <div class="linear3 box"></div>
  <br>
  <div class="linear4 box"></div>
  <div class="linear5 box"></div>
  <div class="linear6 box"></div>
  <br>
  <div class="linear7 box"></div>
  <div class="linear8 box"></div>
  <div class="linear9 box"></div>
  <br>
  <div class="linear10 box"></div>
  <div class="linear11 box"></div>
  <div class="linear12 box"></div>

</body>
</html>
