
A percentage counts up as the ring closes inside a border of turning dots. A free, live rangoli loader for sites and apps.
Updated November 2026
Use it when people benefit from seeing a percentage, such as an upload or export. The ring and the number run on a timer in this file, so treat them as a design to adapt. A real percentage needs your own code behind it.
npm i exodeui.ExodeUICanvas. Taps and hovers work out of the box, and fireTrigger plays it from your code.import { ExodeUICanvas, useExodeUI } from 'exodeui';
export function RangoliProgressRing() {
const { setEngine, fireTrigger } = useExodeUI();
return (
<>
<div style={{ width: 400, height: 300 }}>
<ExodeUICanvas
src="/ui-gallery/files/rangoli-progress-ring.bexode"
autoPlay
onReady={setEngine}
style={{ width: '100%', height: '100%' }}
/>
</div>
{/* Optional: taps on the canvas already work */}
<button onClick={() => fireTrigger('in_whirl')}>Play from code</button>
</>
);
}