JSFiddle - React, Tailwind, and code Playground

by apoucoz

HTML

<!-- Content -->
<section id="wrapper">
    <div id="container">
        <div class="grid">
            <div class="imgholder">
                <img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img27.jpg" />
            </div>	<strong>Sunset Lake</strong>

            <p>A peaceful sunset view...</p>
            <div class="meta">by j osborn</div>
        </div>
        <div class="grid">
            <div class="imgholder">
                <img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img26.jpg" />
            </div>	<strong>Bridge to Heaven</strong>

            <p>Where is the bridge lead to?</p>
            <div class="meta">by SigitEko</div>
        </div>
        <div class="grid">
            <div class="imgholder">
                <img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img15.jpg" />
            </div>	<strong>Autumn</strong>

            <p>The fall of the tree...</p>
            <div class="meta">by Lars van de Goor</div>
        </div>
        <div class="grid">
            <div class="imgholder">
                <img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img23.jpg" />
            </div>	<strong>Winter Whisper</strong>

            <p>Winter feel...</p>
            <div class="meta">by Andrea Andrade</div>
        </div>
        <div class="grid">
            <div class="imgholder">
                <img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img17.jpg" />
            </div>	<strong>Light</strong>

            <p>The only shinning light...</p>
            <div class="meta">by Lars van de Goor</div>
        </div>
        <div class="grid">
            <div class="imgholder">
                <img src="http://www.inwebson.com/demo/blocksit-js/demo2/images/img22.jpg" />
            </div>	<strong>Rooster's Ranch</strong>

            <p>Rooster's ranch landscape...</p>
            <div class="meta">by Andrea Andrade</div>
        </div>
        <div...

CSS

body {
    margin:0;
    padding:0;
    background:url(../bg.gif) 0 0 repeat #f7f5f5;
    color:#333;
    font-family:Cambria, Georgia, serif;
    font-size:15px;
    overflow-x:hidden;
}
header, section, footer, hgroup {
    display:block;
}
a {
    color:#35BFFF;
    text-decoration:none;
}
a:hover, a:active {
    color:#91DCFF;
}
/* Header */
 #header {
    width:100%;
    background:#000;
    background:rgba(0, 0, 0, 0.8);
    padding:5px 0;
    letter-spacing:1px;
    margin-bottom:20px;
    position:fixed;
    top:0;
    left:0;
    z-index:99;
}
#header h1 {
    padding:0 20px;
    margin:5px 0;
    text-shadow:2px 1px 1px #333, 2px 2px 1px #888;
    color:#EAEAEA;
    float:left;
    font-size:27px;
}
#backlinks {
    float:right;
    padding:0 20px;
    line-height:22px;
    font-weight:bold;
    font-size:13px;
}
#backlinks a {
    text-align:right;
    display:block;
}
/* Footer */
 #footer {
    width:100%;
    position:fixed;
    padding-left:20px;
    bottom:0;
    left:0;
    line-height:20px;
    color:#888;
    font-size:13px;
    background:rgb(0, 0, 0);
    background:rgba(0, 0, 0, 0.8);
    z-index:99;
}
#footer span {
    display:block;
}
/* clearfix */
 .clearfix {
    clear:both;
}
/* wrapper css */
 #wrapper {
    margin-top:70px;
    width:100%;
}
#wrapper hgroup {
    text-align:center;
}
#wrapper h2 {
    margin:5px 0;
    color:#FF6D99;
    text-shadow:1px 1px 2px #A50031;
    font-size:33px;
    font-family:Arial Narrow, Arial, sans-serif;
}
#wrapper h3 {
    font-style:italic;
    font-weight:normal;
    font-size:18px;
    text-shadow:1px 1px 0 #fff;
    color:#888;
    margin:5px 0;
}
#container {
    position:relative;
    width:1100px;
    margin:0 auto 25px;
    padding-bottom: 10px;
}
.grid {
    width:188px;
    min-height:100px;
    padding: 15px;
    background:#fff;
    margin:8px;
    font-size:12px;
    float:left;
    box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);
    -moz-box-shadow: 0 1px 3px rgba(34, 25, 25, 0.4);
   ...

JavaScript

(function (a) {
    var b = {
        numOfCol: 5,
        offsetX: 5,
        offsetY: 5,
        blockElement: "div"
    };
    var c, d;
    var e = [];
    if (!Array.prototype.indexOf) {
        Array.prototype.indexOf = function (a) {
            var b = this.length >>> 0;
            var c = Number(arguments[1]) || 0;
            c = c < 0 ? Math.ceil(c) : Math.floor(c);
            if (c < 0) c += b;
            for (; c < b; c++) {
                if (c in this && this[c] === a) return c
            }
            return -1
        }
    }
    var f = function () {
        e = [];
        for (var a = 0; a < b.numOfCol; a++) {
            g("empty-" + a, a, 0, 1, -b.offsetY)
        }
    };
    var g = function (a, c, d, f, g) {
        for (var h = 0; h < f; h++) {
            var i = new Object;
            i.x = c + h;
            i.size = f;
            i.endY = d + g + b.offsetY * 2;
            e.push(i)
        }
    };
    var h = function (a, b) {
        for (var c = 0; c < b; c++) {
            var d = i(a + c, "x");
            e.splice(d, 1)
        }
    };
    var i = function (a, b) {
        for (var c = 0; c < e.length; c++) {
            var d = e[c];
            if (b == "x" && d.x == a) {
                return c
            } else if (b == "endY" && d.endY == a) {
                return c
            }
        }
    };
    var j = function (a, b) {
        var c = [];
        for (var d = 0; d < b; d++) {
            c.push(e[i(a + d, "x")].endY)
        }
        var f = Math.min.apply(Math, c);
        var g = Math.max.apply(Math, c);
        return [f, g, c.indexOf(f)]
    };
    var k = function (a) {
        if (a > 1) {
            var b = e.length - a;
            var c = false;
            var d, f;
            for (var g = 0; g < e.length; g++) {
                var h = e[g];
                var i = h.x;
                if (i >= 0 && i <= b) {
                    var k = j(i, a);
                    if (!c) {
              ...