Concentric circles (Donut SVG style)

Place to talk about website HTM elements, CSS style and design, and get help with HTML, CSS codes.
WillATT
Posts:2

Concentric circles (Donut SVG style)

Hi all,

First of all, thank you to this community for giving life to a wonderful place to share & learn about HTML & CSS.

I would like to ask about my HTML /CSS /SVG Code because I can't make it to do what I need; Two concentric circles. The one on the outside is colored and the one on the inside is just white so we achieve a donut-like image.

Code: Select all

<head>
    <style>
    :root{
        --fontSize: 30px;
    }
      .circleBase,
      .circleBase {
        border-radius: 50%;
      }
      .circle1 {
        width: 100%;
        height: 100%;
        background: transparent linear-gradient(135deg, #FFF200 0%, #8FE4DE 50%,#8FE4DE 0%) 0% 0% no-repeat padding-box;
      }
    </style>
  </head>
  <body>
    <div class='circleBase circle1'>
        <svg viewBox='0 0 500 500'>
            <circle style='fill: white;' cx='250' cy='260' r='230' />
        </svg>
    </div>
    
  </body>
The resulting image looks concentric but for some reason, the colored "circle" is not 100% round, especially if you make the image smaller in size.


Should I change my approach? Thanks!

MarPlo Posts:186
Hello,
Put the "cy" value the same as "cx" (250 in your code).
Try the following code:

Code: Select all

<head>
<style>
:root{
  --fontSize: 30px;
}
.circleBase {
  border-radius: 50%;
}
.circle1 {
  width:500px;
  height:500px;
  background: transparent linear-gradient(135deg, #FFF200 0%, #8FE4DE 50%,#8FE4DE 0%) 0% 0% no-repeat padding-box;
}
</style>
</head>
<body>
<div class='circleBase circle1'>
  <svg viewBox='0 0 500 500'>
      <circle style='fill: white;' cx='250' cy='250' r='230' />
  </svg>
</div>
</body>

Demo:

WillATT Posts:2
Hi MarPlo,

thank you!! That works perfectly. I notice that you also changed the width and height to be 500px instead of the 100% that I had in my code that was causing some trouble.

Best,

Guillermo