JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="container">
    <div class="row">
        <div class="col-sm-3">
            <nav class="nav flex-column">
                <a class="nav-link active" href="javascript:void(0);">Item 1</a>
                <a class="nav-link" href="javascript:void(0);">Item 2</a>
                <a class="nav-link" href="javascript:void(0);">Item 3</a>
                <a class="nav-link" href="javascript:void(0);">Item 4</a>
            </nav>         
        </div>
    </div>

</div>

CSS

body {
    padding-top: 2rem;
}

.nav .nav-link {
    position: relative;
    background-color: #e1e1e1;
    color: #0d0d0d;
    padding: 1rem 2rem;
    margin: 1px;
}

.nav .nav-link.active,
.nav .nav-link.focus {
    background-color: lightgreen;
}

.nav .nav-link.active:before,
.nav .nav-link.focus:before {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    content: '';
    border-top: calc((1rem + 1rem + 1.5rem + 2px)/2) solid transparent;
    border-bottom: calc((1rem + 1rem + 1.5rem + 2px)/2) solid transparent;
    
    border-left: calc((1rem + 1rem + 1.5rem + 2px)/4) solid #fff;
}