How to Create SVG Loading Animations — Spinners & Skeletons
Build lightweight SVG loading spinners, animated progress rings, and skeleton loaders with pure CSS — no JavaScript required.
Drop your image here
Supports PNG, JPG, WEBP up to 5MB
SVG Spinner with CSS Animation
A simple SVG spinner uses a `<circle>` with `stroke-dasharray` and CSS `animation: rotate 1s linear infinite`. The stroke-dasharray creates a partial arc; the rotation makes it spin.
- Draw a <circle> with r=45 centered at cx=50 cy=50
- Set stroke-dasharray='283' (2πr) stroke-dashoffset='75'
- Animate transform: rotate(360deg) on the SVG element
SVG Skeleton Screen Placeholders
Skeleton loaders use SVG `<rect>` elements with a gradient shimmer animation to mimic content layout while data loads. They improve perceived performance significantly.
- Use <rect> shapes to represent text lines and images
- Animate a linear gradient across the rects for shimmer effect
- Match rect dimensions to the actual content layout
Frequently Asked Questions
What is the lightest SVG spinner approach?
A single <circle> with stroke-dasharray and a CSS rotate animation — under 200 bytes of SVG with no JavaScript dependency.
How do I make an SVG progress ring?
Calculate stroke-dashoffset as totalLength * (1 - progress). Update it with JavaScript or CSS transition as the progress value changes.
Related guides
Ready to Convert Your Image to SVG?
Free online converter — no sign-up, no watermarks, results in seconds.
Try It Free — Convert Image to SVG