Animated Progress Circle
Modern circular progress indicator with smooth animations, customizable themes, and responsive design, perfect for dashboards and data 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.
Overview
Modern circular progress indicator with smooth animations, customizable themes, and responsive design, perfect for dashboards and data visualization.
How to use
- Copy the HTML markup into your page.
- Paste the CSS into your stylesheet and ensure the selectors match your markup.
- Paste the JavaScript and load it after the markup.
- 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>
Browser Compatibility
Chrome
>= 50
Firefox
>= 45
Safari
>= 10
Edge
>= 15