I'm sharing the design below.
And my code:
https://jsfiddle.net/09h5coq8/
.hex {
position: relative;
margin: 1em auto;
width: 200px;
height: 346.4px;
border-radius: 20px/10px;
background: rgb(139,21,186);
background: linear-gradient(70deg, rgba(139,21,186,1) 0%, rgba(64,13,104,1) 100%);
background-size:cover;
transition: opacity .5s;
transform: rotate(20deg);
margin-top:125px;
}
.hex:before, .hex:after {
position: absolute;
width: inherit; height: inherit;
border-radius: inherit;
background: inherit;
content: '';
}
.hex:before {
-webkit-transform: rotate(60deg);
transform: rotate(60deg);
background: linear-gradient(180deg, rgba(139,21,186,1) 0%, rgba(64,13,104,1) 100%);
}
.hex:after {
-webkit-transform: rotate(-60deg);
transform: rotate(-60deg);
background: linear-gradient(-50deg, rgba(139,21,186,1) 0%, rgba(64,13,104,1) 100%);
}
.hex-inside {
position: absolute;
width: 150px;
height: 259.8px;
border-radius: 15px/7.5px;
background: grey;
transition: opacity .5s;
z-index:99;
left:25px;
top:43.3px;
}
.hex-inside:before, .hex-inside:after {
position: absolute;
width: inherit; height: inherit;
border-radius: inherit;
background: inherit;
content: '';
}
.hex-inside:before {
-webkit-transform: rotate(60deg);
transform: rotate(60deg);
}
.hex-inside:after {
-webkit-transform: rotate(-60deg);
transform: rotate(-60deg);
}
<div class="hex">
<div class="hex-inside">
</div>
</div>
As you can see; my code has more "sharpen corners" broken "gradient" and not enough feelings. Whats wrong?
How can this be possible to make with "pure css and javascript".
Do I have to make it with SVG?

clip-pathand lots of points.