JSFiddle - React, Tailwind, and code Playground

by BurpmanJunior

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<div data-mmslider="">
    <ul class="mm-slider">
        <li>
            <img src="https://images.unsplash.com/photo-1438755582627-221038b62986?fit=crop&fm=jpg&h=400&q=80&w=1200" />
        </li>
        <li>
            <img src="https://images.unsplash.com/photo-1438029071396-1e831a7fa6d8?fit=crop&fm=jpg&h=500&q=80&w=1200" />
        </li>
        <li>
            <img src="https://images.unsplash.com/photo-1437422061949-f6efbde0a471?fit=crop&fm=jpg&h=400&q=80&w=1200" />
        </li>
        <li>
            <img src="https://images.unsplash.com/photo-1429734160945-4f85244d6a5a?fit=crop&fm=jpg&h=400&q=80&w=1200" />
        </li>
        <li>
            <img src="https://images.unsplash.com/photo-1431578500526-4d9613015464?fit=crop&fm=jpg&h=800&q=80&w=1200" />
        </li>
    </ul>
</div>

SCSS

/** CORE **/
 html, body {
    padding: 0;
    margin: 0;
    font-family: sans-serif;
    background-color: #f5f5f5;
}
* {
    box-sizing: border-box;
}
img {
    max-width: 100%;
}
/** SLIDER **/
ul.mm-slider{
    display: block;
    margin: 0;
    padding: 0;
    height: auto;
    li{
        display: block;
        list-style-type: none;
        padding: 0;
        img{
            display: block;
        }
    }
}
.mmslider-init{
    width: 80%;
    margin: 20px auto;
    position: relative;
    overflow: hidden;
    padding: 10px;
    background-color: #fff;
    border: 1px solid #ccc;
    box-shadow: 0 7px 10px -5px rgba(0, 0, 0, 0.15);
    ul.mm-slider{
        position: relative;
        display: block;
        width: 100%;
        overflow: hidden;
        transition: height 500ms;
        user-select: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        li{
            position: absolute;
            width: 100%;
            text-align: center;
            font-size: 0;
            img{
                display: inline-block;
            }
        }
    }
    .mm-controls-prev,
    .mm-controls-next{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        font-size: 32px;
        color: #fff;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
        cursor: pointer;
        opacity: 0.5;
        transition: padding 300ms, opacity 300ms;
        &:hover,
        &:focus{
            opacity: 1;
            padding: 0 10px;
        }
        &:after{
            font-family: 'FontAwesome';
            line-height: 1;
        }
        &:before{
            content: '';
            position: absolute;
            top: -1000%;
            right: -10px;
            bottom: -1000%;
            left: -10px;
        }
    }
    .mm-controls-prev{
        left: 20px;
        &:after{
            content: "\f053";
        }
    }
    .mm-controls-next{
        right:...

JavaScript

/**
 * Image slider - height adjust
 */

mmslider = {} || mmslider;
mmslider.slideDuration = 5000;
mmslider.animationDelay = 500;
mmslider.sliders = [];
mmslider.init = function () {
    $('[data-mmslider]').each(function (i, e) {
        mmslider.setup(i, e);
        mmslider.sliders[i].timeout = null;
        mmslider.sliders[i].running = false;
        mmslider.heightCalc(i);
        mmslider.resetTimeout(i);
        mmslider.buildControls(i);
    });
    $(window).resize(mmslider.heightCalcAll);
}
mmslider.setup = function (i, e) {
    mmslider.sliders[i] = {
        slides: []
    };
    mmslider.sliders[i].elem = e;
    mmslider.sliders[i].ul = $('ul:first-child', e);
    $('li > img:first-child', e).each(function (n, s) {
        mmslider.sliders[i].slides[n] = $(s).attr('src').trim();
    });
    $('ul:first-child', e).html('<li class="current-slide" style="left: 0;"><img src="' + mmslider.sliders[i].slides[0] + '" /></li>');
    mmslider.sliders[i].currentSlide = 0;
    mmslider.preloadSlides(i);
    $(e).addClass('mmslider-init');
}
mmslider.buildControls = function (i) {
    _s = mmslider.sliders[i];
    $(_s.elem).append($('<span/>').addClass('mm-controls-prev'));
    $(_s.elem).append($('<span/>').addClass('mm-controls-next'));
    $('.mm-controls-prev', _s.elem).click(function () {
        mmslider.previousSlide(i);
    });
    $('.mm-controls-next', _s.elem).click(function () {
        mmslider.nextSlide(i);
    });
}
mmslider.preloadSlides = function (i) {
    var _s = mmslider.sliders[i].slides;
    for (var n = 0; n < _s.length; n++) {
        var img = new Image();
        img.src = _s[n];
    }
}
mmslider.heightCalc = function (i) {
    return $(mmslider.sliders[i].ul).height($('li.current-slide > img', mmslider.sliders[i].ul).height());
}
mmslider.heightCalcAll = function () {
    for (var i = 0; i < mmslider.sliders.length; i++) {
        mmslider.heightCalc(i);
    }
}
mmslider.resetTimeout = function (i) {
    if (mmslider.slideDuration)...