JSFiddle - React, Tailwind, and code Playground

CSS

body {
	  margin: 0;
}
.label {
	color: #FFF;
	font-family: sans-serif;
	padding: 2px;
	background: rgba( 0, 0, 0, .6 );
}

JavaScript

import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.126/build/three.module.js';

import { OrbitControls } from 'https://cdn.jsdelivr.net/npm/three@0.126/examples/jsm/controls/OrbitControls.js';
import { CSS2DRenderer, CSS2DObject } from 'https://cdn.jsdelivr.net/npm/three@0.126/examples/jsm/renderers/CSS2DRenderer.js';

let camera, scene, renderer, labelRenderer;

const clock = new THREE.Clock();
const textureLoader = new THREE.TextureLoader();

let moon;

init();
animate();

function init() {

	const EARTH_RADIUS = 1;
	const MOON_RADIUS = 0.27;

	camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 0.1, 200 );
	camera.position.set( 10, 5, 20 );

	scene = new THREE.Scene();

	const axesHelper = new THREE.AxesHelper( 5 );
	scene.add( axesHelper );

	//

	const testDiv = document.createElement( 'div' );
	testDiv.className = 'label';
	testDiv.textContent = 'TESTING';
	const testLabel = new CSS2DObject( testDiv );
	testLabel.position.set( 0, 1, 0 );
	scene.add( testLabel );

	renderer = new THREE.WebGLRenderer();
	renderer.setPixelRatio( window.devicePixelRatio );
	renderer.setSize( window.innerWidth, window.innerHeight );
	document.body.appendChild( renderer.domElement );

	labelRenderer = new CSS2DRenderer();
	labelRenderer.setSize( window.innerWidth, window.innerHeight );
	labelRenderer.domElement.style.position = 'absolute';
	labelRenderer.domElement.style.top = '0px';
	document.body.appendChild( labelRenderer.domElement );

	const controls = new OrbitControls( camera, labelRenderer.domElement );
	controls.minDistance = 5;
	controls.maxDistance = 100;

	//

	window.addEventListener( 'resize', onWindowResize );

}

function onWindowResize() {

	camera.aspect = window.innerWidth / window.innerHeight;

	camera.updateProjectionMatrix();

	renderer.setSize( window.innerWidth, window.innerHeight );

	labelRenderer.setSize( window.innerWidth, window.innerHeight );

}


function animate() {

	requestAnimationFrame( animate...