JSFiddle - React, Tailwind, and code Playground

HTML

<div class="pie" data-percent="78">
    <div class="left">
        <span></span>
    </div>
    <div class="right">
        <span></span>
    </div>
</div>
<div class="pie" data-percent="36">
    <div class="left">
        <span></span>
    </div>
    <div class="right">
        <span></span>
    </div>
</div>
<div class="pie" data-percent="24">
    <div class="left">
        <span></span>
    </div>
    <div class="right">
        <span></span>
    </div>
</div>
<div class="pie" data-percent="64">
    <div class="left">
        <span></span>
    </div>
    <div class="right">
        <span></span>
    </div>
</div>

CSS

.pie {
    background-color: #dae7f7;
    border-radius: 50%;
    width: 200px;
    height: 200px;
    overflow: hidden;
    position: relative;
    float: left;
    margin: 20px;
}
.pie > div {
    float: left;
    width: 50%;
    height: 100%;
    position: relative;
    overflow: hidden;
}
.pie span {
    background-color: #77aaf4;
    display: block;
    width: 100%;
    height: 100%;
}
    .pie .left span {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        -webkit-transform-origin: 100% 50%;
    }
    .pie .right span {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        -webkit-transform-origin: 0% 50%;
    }
.pie:before,
.pie:after {
    border-radius: 50%;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
}
    .pie:before {
        background-color: #fff;
        content: "";
        width: 75%;
        height: 75%;
        z-index: 100;
    }
    .pie:after {
        content: attr(data-percent) "%";
        font-family: Arial, sans-serif;
        font-size: 2em;
        font-weight: bold;
        z-index: 200;
        text-align: center;
    }

JavaScript

$(function() {
    $(".pie").each(function() {
        var percent = $(this).data("percent"),
            $left = $(this).find(".left span"),
            $right = $(this).find(".right span"),
            deg;
        
        if(percent<=50) {
            // Hide left
            $left.hide();
            
            // Adjust right
            deg = 180 - (percent/100*360)
            $right.css({
                "-webkit-transform": "rotateZ(-"+deg+"deg)"
            });
        } else {
            // Adjust left
            deg = 180 - ((percent-50)/100*360)
            $left.css({
                "-webkit-transform": "rotateZ(-"+deg+"deg)"
            });
        }
    });
});