JSFiddle - React, Tailwind, and code Playground

HTML

<html><head><title>GoL</title><script type="text/javascript">
var g,x,y,v,c,k,e,f,k=20,b=new Array(k*k),s=new Array('#FFF','#800');
function i(){setInterval(j,150);
v=document.getElementById('C');
v.addEventListener("click",p,false);
g=v.width/k;v=v.getContext('2d');
for(x=0;x<k*k;x++)b[x]=0}
function j(){if(document.getElementById('R').checked){c=new Array(k*k);
for(y=0;y<k;y++)for(x=0;x<k;x++){var n=0;for(e=-1;e<2;e++)for(f=-1;f<2;f++)n+=b[((y+k+e)%k)*k+((x+k+f)%k)];
c[y*k+x]=(n==3||n==4&&b[y*k+x]>0)?1:0}b=c}d()}
function d(){for(y=0;y<k;y++)for(x=0;x<k;x++){v.fillStyle=s[b[y*k+x]];v.fillRect(x*g,y*g,g,g)}}
function p(e){b[Math.floor((e.clientY-e.target.offsetTop)/g)*k+Math.floor((e.clientX-e.target.offsetLeft)/g)]^=1;d()}
</script><style type="text/css">canvas {border:1px solid black}</style></head>
<body onload="i()"><canvas id="C" width="400" height="400"></canvas><br/><input type="checkbox" id="R"/>Running</body></html>