JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://raw.github.com/mrdoob/three.js/master/build/three.min.js"></script>

CSS

body {
    background-color: #000;
    margin: 0px;
    overflow: hidden;
}

JavaScript

var renderer, scene, camera, particleSystem;

init();
animate();

function init() {

    // info
    info = document.createElement( 'div' );
    info.style.position = 'absolute';
    info.style.top = '30px';
    info.style.width = '100%';
    info.style.textAlign = 'center';
    info.style.color = '#fff';
    info.style.fontWeight = 'bold';
    info.style.backgroundColor = 'transparent';
    info.style.zIndex = '1';
    info.style.fontFamily = 'Monospace';
    info.innerHTML = 'Particle System with Procedurally-Generated Texture';
    document.body.appendChild( info );

    // renderer
    renderer = new THREE.WebGLRenderer( { clearColor: 0x000000, clearAlpha: 1 } );
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );
    
    // scene
    scene = new THREE.Scene();

    //camera
    camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.z = 400;

    // particle system geometry
    var geometry = new THREE.SphereGeometry( 100, 16, 12 );
    
    // vertex colors
    var colors = [];

    for( var i = 0; i < geometry.vertices.length; i++ ) {
    
        // random color
        colors[i] = new THREE.Color();
        colors[i].setHSV( Math.random(), 1.0, 1.0 );

    }
    geometry.colors = colors;

    // texture
    var texture = new THREE.Texture( generateTexture( ) );
    texture.needsUpdate = true; // important

    // particle system material
    material = new THREE.ParticleBasicMaterial( {
        size: 20,
        map: texture,
        blending: THREE.AdditiveBlending, // required
        depthTest: false, // required
        transparent: true,
        opacity: 0.7,
        vertexColors: true // optional
    } );

    // particle system
    particleSystem = new THREE.ParticleSystem( geometry, material );
    //particleSystem.sortParticles = true; // ???

    scene.add( particleSystem );

}

function animate() {

   ...