Dave Rupert shows us all how to animate radial progress bars in SVG with a tiny script alongside the stroke-dasharray
and stroke-dashoffset
properties:
For a client project we tasked ourselves with building out one of those cool radial progress bars. In the past, we’ve used entire Canvas-based charting libraries (156k/44k gzip), but that seemed like overkill. I looked at Airbnb’s Lottie project where you export After Effects animations as JSON. This is cool for complex animations, but the dependencies seemed heavy (248k/56k gzip) for one micro-animation.
Per the usual, I tried my hand at a minimal custom SVG with CSS animation and a small bit of JavaScript (~223b gzip). I’m pleased with the results.
Here’s another example Jeremias Menichelli posted here on CSS-Tricks with the added twist of making them components in React and Vue.