JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Spheres</title>
    <style type="text/css">
        *
        {
            margin: 0;
            padding: 0;
        }
        
        html, body
        {
            height: 100%;
            width: 100%;
        }
        canvas
        {
            display: block;
        }
        #target
        {
            background: #001022;
        }
    </style>
</head>
<body>
    <canvas id="target" width="500" height="500">
    </canvas>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            var canvas = $("#target");
            var context = canvas.get(0).getContext("2d");

            var canvasWidth = canvas.width();
            var canvasHeight = canvas.height();

            $(window).resize(resizeCanvas);

            function resizeCanvas() {
                canvas.attr("width", $(window).get(0).innerWidth);
                canvas.attr("height", $(window).get(0).innerHeight);

                canvasWidth = canvas.width();
                canvasHeight = canvas.height();
            };

            var Sphere = function (x, y, radius, mass, vX, vY) {
                this.x = x;
                this.y = y;
                this.radius = radius;
                this.mass = mass;

                this.vX = vX;
                this.vY = vY;

                this.updatePosition = function () {
                    this.x += this.vX;
                    this.y += this.vY;
                };

                this.checkBoundaryCollision = function () {
                    if (this.x - this.radius < 0) {
                        this.x = this.radius;
                        this.vX *= -1;
                    } else if (this.x + this.radius > canvasWidth) {
                        this.x = canvasWidth - this.radius;
                        this.vX *= -1;
      ...