JSFiddle - React, Tailwind, and code Playground

by James Butler

HTML

<div class="wrap">

</div>
<div class="add">+</div>

CSS

html {
    margin: 0;
    padding: 0;
    background: #222;
}
.wrap {
    position: relative;
    width: 100%;
    height: 200px;
    background: #222;
    overflow: hidden;
}
.wrap div {
    display: inline-block;
    position: relative;
    height: 100%;
    width: 20%;
    margin: 0%;
    margin-left:0;
    background: lightblue;
    transition: all 0.6s;
    line-height:200px;
    text-align:center;
}
.wrap:before {
    content:"";
    position: absolute;
    bottom: -25%;
    left: 0;
    height: 50%;
    width: 100%;
    border-radius: 50%;
    background: #222;
    z-index: 6;
}
div.withImage {
    background: url(http://placekitten.com/g/300/300);
    background-size: 100% 100%;
}
.wrap div:hover:before {
    opacity: 1;
}
.wrap div:before {
    content:"";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: blue;
    opacity: 0;
    transition: all 0.6s;
}
.add {
    position:absolute;
    height:50px;
    width:50px;
    border-radius:50%;
    background:tomato;
    top:150px;
    left:calc(50% - 25px);
    z-index:8;
    line-height:50px;
    font-size:50px;
    text-align:center;
    cursor:pointer;
}

JavaScript

$(document).ready(function () {

    $('.add').click(function () {
        $('.wrap').append("<div>More</div>");
        var len = $('.wrap').children().size();
        var wid = 100 / len;
        $('.wrap div').css("width", wid + "%");
    });
});