JSFiddle - React, Tailwind, and code Playground

HTML

<ul class="parts">
    <li class="part part__1 part__left">
        <div class="part_inner">
        <div class="part_shape">
            <div class="part_content" style="background-image: url(http://lorempixel.com/300/300);">
                <span>text 1</span>
            </div>
        </div>
        </div>
    </li>
    <li class="part part__2 part__left">
        <div class="part_inner">
        <div class="part_shape">
            <div class="part_content" style="background-image: url(http://lorempixel.com/300/301);">
                <span>text 2</span>
            </div>
        </div>
        </div>
    </li>
    <li class="part part__3 part__right">
        <div class="part_inner">
        <div class="part_shape">
            <div class="part_content" style="background-image: url(http://lorempixel.com/300/302);">
                <span>text 3</span>
            </div>
        </div>
        </div>
    </li>
    <li class="part part__4 part__left">
        <div class="part_inner">
        <div class="part_shape">
            <div class="part_content" style="background-image: url(http://lorempixel.com/300/303);">
                <span>text 4</span>
            </div>
        </div>
        </div>
    </li>
</ul>

SCSS

* {
    margin: 0;
    padding: 0;
}

html {
    padding: 100px;
}

html, body {
    height: 100%;
}

body {
    position: relative;
}

.parts {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    min-width: 900px;
    min-height: 400px;
    background: #eee;
    list-style: none;
    display: table;
    overflow: hidden;
}

.part {
    height: 100%;
    width: 25%;
    display: table-cell;
    transition: all .3s;
    
    .parts:hover & {
        width: 22%;
    }
    
    &:hover {
        width: 34% !important;
    }
}

.part_inner {
    position: relative;
    height: 100%;
    background:#eee;
}

.part_shape {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    overflow: hidden;
}

.part_content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    font-size: 0;
    line-height: 0;
    text-align: center;
    background-size: cover;
    background-position: 50%;
    background-repeat: no-repeat;
    
    &:before {
        content: '';
        display: inline-block;
        height: 100%;
        vertical-align: middle;
    }
        
    span {
        display: inline-block;
        vertical-align: middle;
        background: #fff;
        padding: 10px;
        font-size: 14px;
        line-height: 18px;
        text-transform: uppercase;
        color: #000;
    }
}

.part__left {
    .part_shape {
        left: -10%;
        right: -10%;
        transform: skew(5deg);
    }
}

.part__right {
    .part_shape {
        left: -10%;
        right: -10%;
        transform: skew(-5deg);
    }
}

.part__1 {
    background: red;
    
}
.part__2 {
    background: blue;
}
.part__3 {
    background: pink;
}
.part__4 {
    background: brown;
}