JSFiddle - React, Tailwind, and code Playground
HTML
<div class="block block-left"><div class="text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse officia ipsam saepe, natus a eum dolorem quibusdam.</div></div>
<div class="block block-right"><div class="text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse officia ipsam saepe, natus a eum dolorem quibusdam, est fuga placeat earum, debitis omnis molestiae assumenda quos corporis vero, itaque odit? Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div></div>
<div class="block block-both"><div class="text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Esse officia ipsam saepe, natus a eum dolorem quibusdam, est fuga placeat earum, debitis omnis molestiae assumenda quos corporis vero, itaque odit?</div></div>
CSS
.block {
background: red;
color: #fff;
border-radius: 30px;
width: 200px;
padding: 30px;
position: relative;
margin: 30px auto;
}
.block .text {
position: relative;
z-index: 1;
}
.block-left {
padding-right: 15px;
}
.block-right {
padding-left: 15px;
}
.block-left::after,
.block-right::before,
.block-both::before,
.block-both::after {
width: 100%;
height: 100%;
content: " ";
position: absolute;
background: red;
top: 0;
border-radius: 30px;
}
.block-left::after {
right: 0;
transform-origin: top left;
transform: skewX(15deg);
}
.block-left .text {
text-align: left;
}
.block-right::before {
left: 0;
transform-origin: top right;
transform: skewX(-15deg);
}
.block-right .text {
text-align: right;
}
.block-both {
padding-left: 15px;
padding-right: 15px;
}
.block-both::after {
right: 0;
transform-origin: top left;
transform: skewX(15deg);
}
.block-both::before {
left: 0;
transform-origin: top right;
transform: skewX(-15deg);
}
.block-both .text {
text-align: center;
}