progress-indicators
intermediate
progress
circle
animation
dashboard
visualization
Category · Progress Indicators Difficulty Level · Intermediate Published on · August 22, 2025

Animated Progress Circle

Modern circular progress indicator with smooth animations, customizable themes, and responsive design, perfect for dashboards and data visualization.

#progress #circle #animation #dashboard #visualization

Responsive Design

Yes

Dark Mode Support

No

lines

477

Browser Compatibility

Chrome · Firefox · Safari · Edge

Live Preview

Interact with the component without leaving the page.

300px

Overview

Modern circular progress indicator with smooth animations, customizable themes, and responsive design, perfect for dashboards and data visualization.

How to use

  1. Copy the HTML markup into your page.
  2. Paste the CSS into your stylesheet and ensure the selectors match your markup.
  3. Paste the JavaScript and load it after the markup.
  4. Adjust spacing, colors, and text to match your design system.

Customization tips

  • Rename class names to avoid collisions with your existing CSS.
  • Replace hard-coded colors with CSS variables for theming.
  • Verify the layout at 320px, 768px, and 1024px widths.

HTML

57

lines

CSS

291

lines

JavaScript

129

lines


                <div class="progress-circle-container">
  <div class="progress-circle-demo">
    <div class="demo-header">
      <h2>Circular Progress Indicators</h2>
      <p>Animated progress circles with customizable themes</p>
    </div>
    
    <div class="circles-wrapper">
      <div class="circle-item">
        <div class="progress-circle" id="progressCircle1">
          <svg viewBox="0 0 100 100" class="progress-ring">
            <circle class="progress-ring-bg" cx="50" cy="50" r="45" fill="none" stroke="#f1f5f9" stroke-width="8"></circle>
            <circle class="progress-ring-fill" cx="50" cy="50" r="45" fill="none" stroke="#667eea" stroke-width="8" stroke-dasharray="283" stroke-dashoffset="283" stroke-linecap="round"></circle>
          </svg>
          <div class="progress-text">
            <span class="progress-value" id="progressValue1">0</span>
            <span class="progress-percent">%</span>
          </div>
        </div>
        <div class="circle-label">Project Completion</div>
      </div>
      
      <div class="circle-item">
        <div class="progress-circle success" id="progressCircle2">
          <svg viewBox="0 0 100 100" class="progress-ring">
            <circle class="progress-ring-bg" cx="50" cy="50" r="45" fill="none" stroke="#f1f5f9" stroke-width="8"></circle>
            <circle class="progress-ring-fill" cx="50" cy="50" r="45" fill="none" stroke="#27ae60" stroke-width="8" stroke-dasharray="283" stroke-dashoffset="283" stroke-linecap="round"></circle>
          </svg>
          <div class="progress-text">
            <span class="progress-value" id="progressValue2">0</span>
            <span class="progress-percent">%</span>
          </div>
        </div>
        <div class="circle-label">Task Success</div>
      </div>
      
      <div class="circle-item">
        <div class="progress-circle warning" id="progressCircle3">
          <svg viewBox="0 0 100 100" class="progress-ring">
            <circle class="progress-ring-bg" cx="50" cy="50" r="45" fill="none" stroke="#f1f5f9" stroke-width="8"></circle>
            <circle class="progress-ring-fill" cx="50" cy="50" r="45" fill="none" stroke="#f39c12" stroke-width="8" stroke-dasharray="283" stroke-dashoffset="283" stroke-linecap="round"></circle>
          </svg>
          <div class="progress-text">
            <span class="progress-value" id="progressValue3">0</span>
            <span class="progress-percent">%</span>
          </div>
        </div>
        <div class="circle-label">Resource Usage</div>
      </div>
    </div>
    
    <div class="controls-wrapper">
      <button class="btn btn-primary" id="startAnimationBtn">Start Animation</button>
      <button class="btn btn-secondary" id="resetAnimationBtn">Reset</button>
    </div>
  </div>
</div>

              
57lines
2783characters
HTMLLanguage

Browser Compatibility

Chrome

>= 50

Firefox

>= 45

Safari

>= 10

Edge

>= 15

Related Code Snippets

Explore template packs

Need larger building blocks? Browse responsive landing pages and component bundles.

Open HTML Template Library ->