SVG Store animation

Segment Donut Sweep

Layered donut segments animate into a balanced composition.

Free Data Visualization Free commercial license — unlimited personal and commercial use; attribution not required
Download
Segment Donut SweepLayered donut segments animate into a balanced composition.
Details

About this animation

Part of the Momentum Analytics Motion Kit. Layered donut segments animate into a balanced composition. Built as a standalone inline SVG with scoped CSS animations, accessible title and description, no scripts or external resources, and a static prefers-reduced-motion fallback. Easy to recolor and ready for product use.

SVG code
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160" id="sva-2e510a0ff632-sva-segment-donut-sweep" role="img" aria-labelledby="sva-2e510a0ff632-sva-segment-donut-sweep-title sva-2e510a0ff632-sva-segment-donut-sweep-desc"><title id="sva-2e510a0ff632-sva-segment-donut-sweep-title">Segment Donut Sweep</title><desc id="sva-2e510a0ff632-sva-segment-donut-sweep-desc">Layered donut segments animate into a balanced composition.</desc><defs><linearGradient id="sva-2e510a0ff632-sva-segment-donut-sweep-g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#10B981"/><stop offset="1" stop-color="#38BDF8"/></linearGradient></defs><style>#sva-2e510a0ff632-sva-segment-donut-sweep{overflow:visible;background:#07111f}#sva-2e510a0ff632-sva-segment-donut-sweep .spin{transform-box:fill-box;transform-origin:center;animation:sva-2e510a0ff632-sva-segment-donut-sweep-spin 5s linear infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .reverse{transform-box:fill-box;transform-origin:center;animation:sva-2e510a0ff632-sva-segment-donut-sweep-reverse 4s linear infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .pulse{transform-box:fill-box;transform-origin:center;animation:sva-2e510a0ff632-sva-segment-donut-sweep-pulse 2.4s cubic-bezier(.4,0,.2,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .float{transform-box:fill-box;transform-origin:center;animation:sva-2e510a0ff632-sva-segment-donut-sweep-float 3s cubic-bezier(.4,0,.2,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .draw{stroke-dasharray:260;stroke-dashoffset:260;animation:sva-2e510a0ff632-sva-segment-donut-sweep-draw 3.2s cubic-bezier(.65,0,.35,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .dash{animation:sva-2e510a0ff632-sva-segment-donut-sweep-dash 3s cubic-bezier(.65,0,.35,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .pop{transform-box:fill-box;transform-origin:center;animation:sva-2e510a0ff632-sva-segment-donut-sweep-pop 2.8s cubic-bezier(.2,.9,.25,1.25) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .rise{transform-box:fill-box;transform-origin:center bottom;animation:sva-2e510a0ff632-sva-segment-donut-sweep-rise 2.6s cubic-bezier(.2,.8,.2,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .shake{transform-box:fill-box;transform-origin:center top;animation:sva-2e510a0ff632-sva-segment-donut-sweep-shake 3s ease-in-out infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .slide{transform-box:fill-box;transform-origin:center;animation:sva-2e510a0ff632-sva-segment-donut-sweep-slide 3s cubic-bezier(.65,0,.35,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .sweep{animation:sva-2e510a0ff632-sva-segment-donut-sweep-sweep 3s cubic-bezier(.4,0,.2,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .travel{animation:sva-2e510a0ff632-sva-segment-donut-sweep-travel 3s cubic-bezier(.4,0,.2,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .tilt{transform-box:fill-box;transform-origin:0% 100%;animation:sva-2e510a0ff632-sva-segment-donut-sweep-tilt 3s cubic-bezier(.2,.8,.2,1) infinite}#sva-2e510a0ff632-sva-segment-donut-sweep .d2{animation-delay:-.7s}#sva-2e510a0ff632-sva-segment-donut-sweep .d3{animation-delay:-1.35s}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-spin{to{transform:rotate(360deg)}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-reverse{to{transform:rotate(-360deg)}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-pulse{0%,100%{transform:scale(.92);opacity:.6}45%{transform:scale(1);opacity:1}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-float{0%,100%{transform:translateY(4px)}50%{transform:translateY(-5px)}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-draw{0%{stroke-dashoffset:260;opacity:.25}45%,75%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-260;opacity:.25}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-dash{0%{stroke-dashoffset:220}55%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-80}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-pop{0%,15%,100%{transform:scale(.5);opacity:0}35%,75%{transform:scale(1);opacity:1}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-rise{0%,100%{transform:scaleY(.28);opacity:.45}45%,72%{transform:scaleY(1);opacity:1}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-shake{0%,22%,100%{transform:rotate(0)}30%{transform:rotate(-9deg)}38%{transform:rotate(8deg)}46%{transform:rotate(-5deg)}54%{transform:rotate(0)}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-slide{0%,20%{transform:translateX(0)}45%,75%{transform:translateX(48px)}100%{transform:translateX(0)}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-sweep{0%,15%{transform:translateX(-18px);opacity:.25}45%,75%{transform:translateX(18px);opacity:1}100%{transform:translateX(-18px);opacity:.25}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-travel{0%{transform:translateX(-28px);opacity:0}25%,70%{opacity:1}100%{transform:translateX(28px);opacity:0}}@keyframes sva-2e510a0ff632-sva-segment-donut-sweep-tilt{0%,15%{transform:rotate(-42deg)}50%,80%{transform:rotate(0)}100%{transform:rotate(-42deg)}}@media(prefers-reduced-motion:reduce){#sva-2e510a0ff632-sva-segment-donut-sweep *{animation:none!important;transform:none!important;opacity:1!important}}</style><rect x="4" y="4" width="152" height="152" rx="38" fill="#07111f" stroke="#10B981" stroke-opacity=".2" stroke-width="2"/><circle cx="80" cy="80" r="46" fill="none" stroke="#10B981" stroke-opacity=".14" stroke-width="17"/><circle class="dash" cx="80" cy="80" r="46" fill="none" stroke="#10B981" stroke-width="17" stroke-dasharray="132 289" transform="rotate(-90 80 80)"/><circle class="dash d2" cx="80" cy="80" r="46" fill="none" stroke="#38BDF8" stroke-width="17" stroke-dasharray="74 289" stroke-dashoffset="-144" transform="rotate(-90 80 80)"/><circle cx="80" cy="80" r="18" fill="#ECFDF5" fill-opacity=".1"/></svg>