JSFiddle - React, Tailwind, and code Playground

HTML

<script type="x-shader/x-vertex" id="vertexshader">
			varying vec2 vUv;
			void main() {
				vUv = uv;
				gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
			}
</script>
<script type="x-shader/x-fragment" id="fragmentshader">
			uniform sampler2D baseTexture;
			uniform sampler2D bloomTexture;
			varying vec2 vUv;
			vec4 getTexture( sampler2D texelToLinearTexture ) {
				return mapTexelToLinear( texture2D( texelToLinearTexture , vUv ) );
			}
			void main() {
				gl_FragColor = ( getTexture( baseTexture ) + vec4( 1.0 ) * getTexture( bloomTexture ) );
			}
</script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.min.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/postprocessing/UnrealBloomPass.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/postprocessing/EffectComposer.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/postprocessing/RenderPass.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/postprocessing/ShaderPass.js"></script>



<div class="bg">
  <div class="canvas">
  
  </div>
</div>

CSS

body {
	  margin: 0;
}

.canvas {
/*   width: 500px;
  height: 500px;
   */}

body {
  color: dark-grey;
}

JavaScript

var camera, scene, renderer, canvas
var geometry, material, mesh

init()
animate()

function init() {
		
		canvas = document.querySelector('.canvas')
    camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 )
    camera.position.z = 1

    scene = new THREE.Scene()

    geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 )
    material = new THREE.MeshNormalMaterial()

    mesh = new THREE.Mesh( geometry, material )
    scene.add( mesh )

    renderer = new THREE.WebGLRenderer( { alpha: true, antialias: true } )
    
    renderer.setSize( window.innerWidth, window.innerHeight )
    canvas.appendChild( renderer.domElement )
    
    // Custom
    const bloomLayer = new THREE.Layers(),
      width = canvas.clientWidth,
      height = canvas.clientHeight,
      params = {
        exposure: 1,
        bloomStrength: 1,
        bloomThreshold: 0,
        bloomRadius: 0,
        scene: 'Scene with Glow',
      },
      ENTIRE_SCENE = 0,
      BLOOM_SCENE = 1,
      darkMaterial = new THREE.MeshBasicMaterial({ color: 'black' }),
      materials = {},
      renderScene = new THREE.RenderPass(scene, camera),
      bloomPass = new THREE.UnrealBloomPass(new THREE.Vector2(width, height), 1.5, 0.4, 0.85),
      bloomComposer = new THREE.EffectComposer(renderer),
      finalPass = new ShaderPass(
        new THREE.ShaderMaterial({
          uniforms: {
            baseTexture: { value: null },
            bloomTexture: { value: bloomComposer.renderTarget2.texture },
          },
          vertexShader: document.getElementById('vertexshader').textContent,
          fragmentShader: document.getElementById('fragmentshader').textContent,
          defines: {},
        }), 'baseTexture',
      ),
      finalComposer = new THREE.EffectComposer(renderer)



}

function animate() {

    requestAnimationFrame( animate )

    mesh.rotation.x += 0.01
    mesh.rotation.y += 0.02

    renderer.render( scene, camera )

}