Skip to main content
← All 20 Diwali UI components

Diya Progress Bar: a Diwali UI component

A flame leads the bar and a diya lights at each milestone. A free, live loader component.

Updated November 2026

When to use the Diya Progress Bar

Use it for a wait with clear steps, such as preparing an order. The diyas mark milestones and the status line names each step. The bar runs on a timer in this file, so match the timing to your process or treat it as a starting point.

Add the Diya Progress Bar to React or Next.js

  1. Pick a component. Open it in ExodeUI to change its text and colours, or keep it as it is.
  2. Download the .bexode file and put it in your public folder.
  3. Install the runtime with npm i exodeui.
  4. Render it with ExodeUICanvas. Taps and hovers work out of the box, and fireTrigger plays it from your code.
import { ExodeUICanvas, useExodeUI } from 'exodeui';

export function DiyaProgressBar() {
  const { setEngine, fireTrigger } = useExodeUI();

  return (
    <>
      <div style={{ width: 400, height: 300 }}>
        <ExodeUICanvas
          src="/ui-gallery/files/diya-progress.bexode"
          autoPlay
          onReady={setEngine}
          style={{ width: '100%', height: '100%' }}
        />
      </div>
      {/* Optional: taps on the canvas already work */}
      <button onClick={() => fireTrigger('in_run')}>Play from code</button>
    </>
  );
}

Frequently asked questions

Is the Diya Progress Bar free to use?
Yes. Try it here, open it in ExodeUI on the free Community plan or download the .exode file.
What does the Diya Progress Bar do?
A flame leads the bar and a diya lights at each milestone. Tap Run again to see it.
Can I restyle the Diya Progress Bar for my brand?
Yes. Open it in ExodeUI and every colour, label, shape and timing can be edited. Any names and prices in it are sample content.
Can my code control it?
Yes. Fire its trigger (in_run) with fireTrigger from useExodeUI. Your own code still handles what the action does, such as saving the choice.