Вы можете поиграть с перспективой и трансформацией для создания таких фигур.
Вот пример для второй рамки:
.box {
margin:50px;
display:flex;
width:300px;
height:100px;
perspective: 300px;
font-size:30px;
line-height:100px;
color:#fff;
text-align:center;
font-family:arial;
}
.box > div:first-child {
width:60%;
background:linear-gradient(to right,#f57300,orange);
transform: rotateY(-30deg);
transform-origin: right;
}
.box > div:last-child {
width:40%;
background:linear-gradient(to right,orange,#e53800);
border-left:1px solid #fff;
transform-origin: left;
transform: rotateY(30deg);
}
<div class="box">
<div>Your Title</div>
<div>30</div>
</div>
Для первого и третьего вы можете рассмотреть возможность использования псевдоэлемента для получения третьей грани и добавления некоторого преобразования skew
для получения идеальной формы.
Вот пример для третьего поля
.box {
margin:50px;
display:flex;
width:300px;
height:100px;
perspective: 300px;
font-size:30px;
line-height:100px;
color:#fff;
text-align:center;
font-family:arial;
position:relative;
}
.box > div:first-child {
width:60%;
background:linear-gradient(to right,#f57300,orange);
transform: rotateY(-30deg) skewY(9deg);
transform-origin: right;
}
.box > div:last-child {
width:40%;
background:linear-gradient(to right,orange,#e53800);
border-left:1px solid #fff;
transform-origin: left;
transform: rotateY(30deg) skewY(-9deg);
}
.box:before {
content: "";
position: absolute;
top: -27px;
width: 41%;
left: 50px;
height: 16px;
background: linear-gradient(to right,orange,#e53800);
transform: rotate(4.6deg) skewX(-80deg);
transform-origin: left bottom;
}
<div class="box">
<div>Your Title</div>
<div>30</div>
</div>
Вот пример для первого
.box {
margin:50px;
display:flex;
width:300px;
height:100px;
perspective: 300px;
font-size:30px;
line-height:100px;
color:#fff;
text-align:center;
font-family:arial;
position:relative;
}
.box > div:first-child {
width:60%;
background:linear-gradient(to right,#f57300,orange);
transform: rotateY(-30deg) skewY(-9deg);
transform-origin: right;
}
.box > div:last-child {
width:40%;
background:linear-gradient(to right,orange,#e53800);
border-left:1px solid #fff;
transform-origin: left;
transform: rotateY(30deg) skewY(9deg);
}
.box:before {
content: "";
position: absolute;
top: 91px;
width: 29%;
left: 50px;
height: 22px;
background: linear-gradient(to right,orange,#e53800);
transform: rotate(4.6deg) skewX(-80deg);
transform-origin: left bottom;
}
<div class="box">
<div>Your Title</div>
<div>30</div>
</div>