JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://openlayers.org/en/v3.20.1/css/ol.css">
<script src="https://openlayers.org/en/v3.20.1/build/ol.js"></script>
<div id="map" class="map"></div>
<form>
  <label>radius size</label>
  <input id="radius" type="range" min="1" max="50" step="1" value="5"/>
  <label>blur size</label>
  <input id="blur" type="range" min="1" max="50" step="1" value="15"/>
</form>

JavaScript

var blur = document.getElementById('blur');
var radius = document.getElementById('radius');

var heatmapSource = new ol.source.Vector({
	features: [
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.933291, 45.769759]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.93329, 45.769761]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.933282, 45.76976]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.933287, 45.769754]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.933286, 45.769748]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.93328, 45.769748]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.93328, 45.769756]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.933278, 45.769761]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.933285, 45.769758]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.991942, 45.795477]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.959624, 45.794351]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.959628, 45.79435]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.959626, 45.79435]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.95962, 45.794344]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.938066, 45.793891]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.938061, 45.793903]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.938053, 45.793911]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.938051, 45.793916]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.978193, 46.10305]))}),
new ol.Feature({geometry: new ol.geom.Point(ol.proj.fromLonLat([15.978211, 46.103061]))}),
new ol.Feature({geometry: new...