Search code examples
csssvgcss-shapes

Draw half circle with CSS or SVG


I'm looking for a way to draw the bottom portion of this circle using CSS or SVG. I've seen this answer but it deals with a perfect half circle, whereas I need an extra segment cut off to make it a bit less than half. It's probably not possible with pure CSS but the SVG answer gets complicated for me to modify.

<svg class="pie">
  <circle cx="115" cy="115" r="110"></circle>
  <path d="M115,115 L115,5 A110,110 1 0,1 225,115 z"></path>
</svg>

enter image description here


Solution

  • You can do it with CSS:

    .partial-circle {
      position: relative;
      height: 20px;
      width: 100px;
      overflow: hidden;
    }
    .partial-circle:before {
      content: '';
      position: absolute;
      height: 100px;
      width: 100px;
      border-radius: 50%;
      bottom: 0;
      background: #D08707;
    }
    <div class="partial-circle"></div>

    You can also have the two parts:

    .partial-circle {
      position: relative;
      width: 100px;
      overflow: hidden;
    }
    .partial-circle:before {
      content: '';
      position: absolute;
      height: 100px;
      width: 100px;
      border-radius: 50%;
    }
    .partial-circle.top {
      height: 80px;
    }
    .partial-circle.bottom {
      height: 20px;
    }
    .partial-circle.top:before {
      top: 0;
      background: #E19B21;
    }
    .partial-circle.bottom:before {
      bottom: 0;
      background: #D08707;
    }
    <div class="partial-circle top"></div>
    <div class="partial-circle bottom"></div>