JSFiddle - React, Tailwind, and code Playground
HTML
<input id="r" type="range" min="1" max="9"><canvas id="c" width="600" height="400"/>
CSS
#c{border:1px solid;cursor:pointer}
JavaScript
var t=c.getContext('2d')
$.each('black0red0orange0yellow0green0blue0purple0clear'.split(0),function(k,v){$(r).before($('<button>'+v+'</button>').click(function(){k>6?t.clearRect(0,0,600,400):t.strokeStyle=v}))})
var d,p=$(c).offset()
$(c).mousedown(function(e){d=t.lineWidth=$(r).val();t.beginPath();t.moveTo(e.pageX-p.left,e.pageY-p.top)}).mousemove(function(e){if(d){t.lineTo(e.pageX-p.left,e.pageY-p.top);t.stroke()}}).mouseup(function(){d=0})