JSFiddle - React, Tailwind, and code Playground
HTML
<div class="box box_1">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Soluta id cumque tempore cupiditate quod nihil aspernatur animi dolorem ipsa voluptate non deserunt officiis eum ut deleniti ratione sunt minus qui.</div>
<div class="box box_2">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Soluta id cumque tempore cupiditate quod nihil aspernatur animi dolorem ipsa voluptate non deserunt officiis eum ut deleniti ratione sunt minus qui.</div>
<div class="box box_3">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Soluta id cumque tempore cupiditate quod nihil aspernatur animi dolorem ipsa voluptate non deserunt officiis eum ut deleniti ratione sunt minus qui.</div>
CSS
.box {
width: 800px;
background-color: #F1F1F1;
padding: 40px 30px 55px;
position: relative;
box-sizing: border-box; /* Для удобства включаем отступы в размер блока*/
overflow: hidden; /* Обрезаем псевдоэлемент*/
margin-bottom: 20px;
}
.box:before {
content: '';
position: absolute;
width: 100%; /*Делаем автоматическую ширину*/
height: 0;
left: 0;
box-sizing: border-box; /*Нужно для резиновости, иначе будет вылазить за пределы контейнера*/
}
.box {
}
.box_1:before {
bottom: 0;
border-top: 20px solid #F1F1F0;
border-right: 200px solid #999;
border-bottom: 0px solid transparent;
border-left: 200px solid #999;
}
.box_2:before {
bottom: -15px; /*Отрицательный отступ, чтобы лишняя часть обрезалась*/
border-top: 50px solid #F1F1F0;
border-right: 200px solid #999;
border-bottom: 0px solid transparent;
border-left: 200px solid #999;
}
.box_3:before {
bottom: -5px; /*Отрицательный отступ, чтобы лишняя часть обрезалась*/
border-top: 20px solid #F1F1F0;
border-right: 200px solid #999;
border-bottom: 0px solid transparent;
border-left: 200px solid #999;
}