JSFiddle - React, Tailwind, and code Playground

by robgallen

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- 
  Bootstrap docs: https://getbootstrap.com/docs
-->
<div id="content" class="container">
</div>

CSS

.row {
  background: #f8f9fa;
  margin: 5px;
}

.col {
  border: solid 1px #6c757d;
  padding: 10px;
}

JavaScript

// generate a pseudo-random list with numbers, to pretend to be a list of images
var imageList = [];
var len = 100;
while (len--) {
	var rnd = Math.random().toString(36).substr(2, 5);
  imageList.push(rnd);
}

// pick 16 'images' from the list
var picklist = [], len = 16;
while (len--) {
	var x = Math.floor(Math.random() * Math.floor(imageList.length));
  picklist.push(imageList[x]);
}

// display in 4x4 grid
var grid = '', len = picklist.length;
for(var i = 0; i < len; i++) {
	// start of new block of 4
  if (i % 4 === 0) {
  	grid += '<div class="row">';
  }
  
  grid += '<div class="col">';
  grid += picklist[i];
  grid += '</div>'; // e/o div.col
  
  // end of new block of 4
  if (i % 4 === 3) {
  	grid += '</div>'; // e/o div.row
  }
}

// there are a million better ways to bind html to data, but...
$('#content').html(grid);