JSFiddle - React, Tailwind, and code Playground

HTML

<canvas id="c" style="border: 0px; margin:70px;" width="500" height="120">
    
</canvas>

JavaScript

var c = document.getElementById("c");
var ctx = c.getContext("2d");
ctx.font = "25px monospace";

var bpercent = '??';
var wpercent = '??';
var opercent = '??';
var sleep = 2000;

function draw() {
  ctx.fillStyle = "#FFFFFF";
  ctx.fillRect(0,0,c.width,c.height);
  ctx.fillStyle = "#000000";
  ctx.fillText(bpercent + "% of this box is black",20,45);
  //ctx.fillText(opercent + "% of this box is gray-ish",10,65);
  ctx.fillText(wpercent + "% of this box is white",20,90);
  //alert(1);
  var d = ctx.getImageData(0,0,c.width,c.height);
  var pixTotal;
  for (var i = 0; i < d.data.length; i+=4) {
    pixTotal = d.data[i] + d.data[i+1] + d.data[i+2];
    d.data[i+3] = 255;
    if (pixTotal < 200 && Math.random() > 0.2) {
      d.data[i] = 255;
      d.data[i+1] = 255;
      d.data[i+2] = 255;
    } else {
      d.data[i] = 0;
      d.data[i+1] = 0;
      d.data[i+2] = 0;        
    }
  }
  ctx.putImageData(d,0,0);
  //alert(1);  
  var w = 0;
  var b = 0;
  var o = 0;
  var d = ctx.getImageData(0,0,c.width,c.height).data;  
  for (var i = 0; i < d.length; i+=4) {
    pixTotal = d[i] + d[i+1] + d[i+2];
    if (pixTotal == 0) {
      b = b + 1;    
    } else if (pixTotal == 255 * 3) {
      w = w + 1;  
    } else {
      o = o + 1;
    }
  }
  var newbPercent = b * 100.0 / (b+w+o);
  newbPercent = newbPercent * 100;
  newbPercent = Math.round(newbPercent)
  newbPercent = newbPercent / 100.0;
  var newwPercent = w * 100.0 / (b+w+o);
  newwPercent = newwPercent * 100;
  newwPercent = Math.round(newwPercent)
  newwPercent = newwPercent / 100.0;
  var newoPercent = o * 100.0 / (b+w+o);
  newoPercent = newoPercent * 100;
  newoPercent = Math.round(newoPercent)
  newoPercent = newoPercent / 100.0;
  if (bpercent == '??' || Math.abs(newbPercent-bpercent)>0.005 || Math.abs(newwPercent-wpercent)>0.005 || Math.abs(newoPercent-opercent)>0.005) {
    bpercent = newbPercent;
    wpercent = newwPercent;
    opercent = newoPercent;
    if (sleep > 1) {
      sleep = sleep *.9;
   ...