JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8"> 
	<title>Sudoku</title>
	<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>


	<script src="script.js" charset="utf-8"></script>
</body>
</html>

CSS

*{
	box-sizing: border-box;
}

h1 {
	text-align: center;
	margin: 0;
}
table {
	margin: 0 auto;
	border: 5px solid black;
	border-collapse: collapse;
}

td {
	
	border: 1px dotted black;

}

input {
	font-size: 16px;
	border: none;
	text-align: center;
	vertical-align: middle;
	height: 3em;
	width: 3em;
}

input:focus {
	background-color: lightgray;
}

JavaScript

function createTable() {
            var tbl = document.createElement("table");
            var tbdy = document.createElement("tbody");
            for (var row = 0; row < 9; row++) {
                var tr = document.createElement("tr");
                for (var column = 0; column < 9; column++) {
                    var td = document.createElement("td");
                    var input = document.createElement("input");
                    input.type = "text";
                    input.id = "r"+row+"c"+column;
                    input.className = "grid-inputs grid-inputs-row-" + row;
                    //input.placeholder = "[" + row + " , " + column + "]";
                    //input.placeholder = input.id;
                    if ((row+1) % 3 === 0) {
                        td.style.borderBottom = "3px solid black";
                    }
                    if ((column+1) % 3 === 0) {
                        td.style.borderRight = "3px solid black";
                    }
                    tr.appendChild(td);
                    td.appendChild(input);
                }
                tbdy.appendChild(tr);
            }
            tbl.appendChild(tbdy);
            document.body.appendChild(tbl);
        }

        function createButton(text, func) {
            var button = document.createElement("button");
            var t = document.createTextNode(text);
            button.onclick = func;
            button.appendChild(t);
            document.body.appendChild(button);
        }

        function shuffle(array) {
            var counter = array.length;
            var temp, index;
            while (counter) {
                index = Math.floor(Math.random() * counter);
                counter--;
                temp = array[counter];
                array[counter] = array[index];
                array[index] = temp;
            }
            return array;
        }

        function retrieveGrid() {
            var result = [];
            var...