JSFiddle - React, Tailwind, and code Playground

HTML

<!-- colums -->
<div class="col colA"></div>
<div class="col colB"></div>
<div class="col colC"></div>

<!-- draggers -->
<div class="drag dragA" style="position: absolute; width: 0px; height: 100%; cursor: col-resize; left:100px;"><div></div></div>
<div class="drag dragB" style="position: absolute; width: 0px; height: 100%; cursor: col-resize; left: 300px;"><div></div></div>

CSS

body {
    overflow:hidden;
}
.col {
    position: absolute;
    height:100%;
    left: 0;
    top: 0;
    overflow: hidden;
}
.colA {background:red;width:100px;}
.colB {background:green; width:200px; left:100px;}
.colC {background:blue; width:100%; left:300px;}

.drag > div {
background: 0 0;
position: absolute;
width: 10px;
height: 100%;
cursor: col-resize;
left: -5px;
}

JavaScript

//variabe columns
var dragging;

var colA = document.querySelector('.colA');
var colB = document.querySelector('.colB');
var colC = document.querySelector('.colC');

//variable draggers
var draggers = document.querySelectorAll('.drag');
var dragA = document.querySelector(".dragA");
var dragB = document.querySelector(".dragB");
var dragging = false;

function drag() {
        var dragLoop;
        var t = this;
        var max;
        var min;
    if (dragging = true) {

        if (this == dragA) {
            min = 0;
            max = dragB.style.left;
        } else {
            min = dragA.style.left;
            max = window.innerWidth;
        }

        dragLoop = setInterval(function () {
            var mouseX = event.clientX;
            var mouseY = event.clientY;
            if (mouseX >= max) {
                mouseX = max;
            }
            if (mouseY <= min) {
                mouseY = min;
            }
            t.style.left = mouseX;
            updateLayout();
        }, 200);
    }
}
function updateLayout() {
        var posA = dragA.style.left;
        var posB = dragB.style.left;
        colB.style.paddingRight = 0;

        colA.style.width = posA;

        colB.style.left = posA;
        colB.style.width = posB - posA;

        colC.style.left = posB;
        colC.style.width = window.innerWidth - posB;
}


for (var i = 0; i < draggers.length; i++) {
    draggers[i].addEventListener('mousedown', function () {
    dragging = true;
    });                                
    draggers[i].addEventListener('mouseup', function () {
        clearInterval(dragLoop);
        dragging = false;
    });
    draggers[i].addEventListener('mouseMove', function () {
        updateLayout();
        drag();
    });
}