JSFiddle - React, Tailwind, and code Playground
HTML
<div class="bred">
<p>Текст блока</p>
<p>Раз есть текст, то, наверное, хоть один абзац да наскребется, а значит, обойдемся без несемантичных оберток...</p>
</div>
CSS
body{
background:#e6e6e6;
}
p { margin: 1em 0; }
.bred{
margin: 50px;
padding: 10px 20px;
background:#808080;
position: relative;
}
/* 4 псевдоэлемента для фигурных вырезов */
.bred:before, .bred:after,
.bred p:first-child:before, .bred p:first-child:after {
content: '';
position: absolute;
background:#e6e6e6;
}
.bred:before { /* правое закругление */
right: -5px;
top: -5px;
bottom: -5px;
width:15px;
border-radius: 20% 0 0 80%;
}
.bred:after { /* нижнее закругление */
left: -5px;
right: -5px;
bottom: 0;
height:15px;
border-radius: 0 100% 0 0;
}
.bred p:first-child:after { /* левое закругление */
left: -5px;
top: -5px;
bottom: 10px;
width:15px;
border-radius: 0 50% 50% 0;
}
.bred p:first-child:before { /* верхнее закругление */
left: -5px;
right: -5px;
top: 0;
height:10px;
border-radius: 0 0 50% 50%;
}