JSFiddle - React, Tailwind, and code Playground
by Kiwoong Jang
HTML
<div id="circleFrame">
<div class="circle-mask"></div>
<div class="circle-fill"></div>
</div>
CSS
#circleFrame {
position: relative;
width: 200px; height: 100px;
border-radius: 200px 200px 0 0;
background: #aaa;
overflow: hidden;
}
.circle-mask {
position: absolute;
top: 50px; left: 50px;
width: 100px; height: 50px;
border-radius: 100px 100px 0 0;
-webkit-box-shadow: 1px 1px 33px 1px rgba(0,0,0,0.2);
-moz-box-shadow: 1px 1px 33px 1px rgba(0,0,0,0.2);
box-shadow: 1px 1px 33px 1px rgba(0,0,0,0.2);
background: #fff;
z-index: 111;
}
.circle-fill {
position: absolute;
top: 0; left: 0;
width: 200px; height: 100px;
border-radius: 200px 200px 0 0;
background: #ccc;
-moz-transform: rotate(-80deg);
-webkit-transform: rotate(-80deg);
-o-transform: rotate(-80deg);
transform: rotate(-80deg);
-moz-transform-origin: 50% 100%;
-webkit-transform-origin: 50% 100%;
-o-transform-origin: 50% 100%;
transform-origin: 50% 100%;
}