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='m d-flex flex-row'>
  <div class='a'>
    <span>a</span>
    <div class='b'>
      <div class='d-flex flex-column'>
        <div><span>a1</span></div>
        <div><span>a2</span></div>
        <div><span>a3</span></div>
        <div><span>a4</span></div>
        <div><span>a5</span></div>
      </div>
    </div>
  </div>
</div>

CSS

.m{
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: #aaa;
}
.a{
  background: #777;
  position: relative;
  padding: 0 1rem;
  margin-top: 1rem;
  margin-left: 1rem;
  height: 2rem;
  border-radius: .5rem .5rem 0 0
}
.a::after {
  content: " ";
  position: absolute;
  right: -.5rem;
  bottom: 0;
  width: .5rem;
  height: .5rem;
  
  border: .1rem solid transparent;
  border-bottom-left-radius: 1rem;
  border-width: 0 0 .2rem .2rem;
  box-shadow: -.1rem 2px 0 #777;
}

/* ou usando o :before e :after - so funciona com fundos solidos */
/*.a::before {
  content: "";
  background: #777;
  position: absolute;
  right: -.5rem;
  bottom: 0rem;
  width: .5rem;
  height: .5rem;
}
.a::after {
  content: "";
  position: absolute;
  right: -1rem;
  bottom: 0rem;
  width: 1rem;
  height: 1rem;
  border-radius: 100%;
  background-color: #aaa;
}
*/

.b{
  position: absolute;
  width: 5rem;
  background: #777;
  top: 2rem;
  left: 0;
  border-radius: 0 .5rem .5rem .5rem;
  padding: 1rem;
}