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;
}