title: Why does repeatedly drawing translucent fills on HTML5 Canvas not cover it completely?
body: <p>What the heck is going on here?</p>
  <p>Why does the blending abruptly stop at <code>255,214,214,255</code>? Is this expected behavior?</p>
  <p>I thought it would eventually hit <code>255,255,255,255</code>, but it doesn't. It doesn't even come close. The red rectangle from the beginning never vanishes into white, it remains at color <code>255,214,214,255</code> forever.</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>const ctx = document.querySelector('canvas').getContext('2d');
  
  // draw "red"
  ctx.fillStyle = 'red';
  ctx.fillRect(0, 0, 300, 200);
  
  function loop() {
      
      // log new colors
      if (getCurrentColor() !== loop.lastColor) {
          console.log(loop.lastColor = getCurrentColor());
      }
      
      // draw "transparent white" repeatedly
      ctx.fillStyle = 'rgba(255,255,255,0.01)';
      ctx.fillRect(0, 0, 300, 200);
      
      // schedule next iteration
      requestAnimationFrame(loop);
  }
  loop(); // start loop
  
  function getCurrentColor() {
      return ctx.getImageData(0, 0, 1, 1).data.join(',');
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
      &lt;head&gt;&lt;/head&gt;
      &lt;body&gt;
          &lt;canvas width="300" height="200"&gt;&lt;/canvas&gt;
      &lt;/body&gt;
  &lt;/html&gt;</code></pre>
  </div>
  </div>
  </p>
  <p>Both explanations and solutions are highly appreciated! :P</p>