JSFiddle - React, Tailwind, and code Playground
HTML
<div class="time-line">
<div class="time-line__labels">
<div class="time-line__begin">Lorem ipsum</div>
<div class="time-line__end">Dolor sit amet</div>
</div>
<ul class="time-line__captions">
<li class="time-line__sub">Ab, quia voluptas.</li>
<li class="time-line__sub">Lorem ipsum dolor sit amet</li>
<li class="time-line__sub">Delectus tenetur aspernatur</li>
</ul>
</div>
CSS
*, *::before, *::after {
box-sizing: border-box;
}
body {
padding: 0;
margin: 0;
font-family: sans-serif;
}
.time-line {
margin: 10px;
padding: 10px;
background-color: #FAFAFA;
}
.time-line__labels {
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.time-line__begin, .time-line__end {
text-align: center;
padding: 10px 20px;
background-repeat: no-repeat;
background-size: contain;
background-position: center;
}
.time-line__begin {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 293 43'%3E%3Cpolygon points='0 39 8 8 293 0 270 43 0 39' fill='%23242424'/%3E%3C/svg%3E");
width: 293px;
color: #fff;
margin-right: 20px;
}
.time-line__end {
margin-top: 20px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 236 54'%3E%3Cpolygon points='0 0 229 11 236 53 18 54 0 0' fill='%23ffd22c'/%3E%3C/svg%3E");
width: 236px;
}
.time-line__captions {
display: flex;
position: relative;
justify-content: space-between;
list-style: none;
padding: 0;
margin: 0;
padding-top: 25px;
}
.time-line__captions::before {
content: '';
position: absolute;
left: 25px;
top: -16px;
height: 20px;
border-left: 3px solid #FFD22C;
}
.time-line__captions::after {
content: '';
position: absolute;
top: 4px;
height: 21px;
left: 25px;
right: 75px;
border-left: 3px solid #FFD22C;
border-right: 3px solid #FFD22C;
border-bottom: 3px solid #FFD22C;
border-radius: 0 0 12px 12px / 0 0 12px 12px;
}
.time-line__sub {
position: relative;
padding: 30px 10px 0;
text-align: center;
}
.time-line__sub::before {
content: '';
position: absolute;
top: 0;
left: 50%;
width: 3px;
height: 20px;
background-color: #FFD22C;
}