Arc Progress: a loader for upload progress
The outer ring lights clockwise up to a progress value. A React progress ring for AI agent uploads and downloads. Install with shadcn.
Installation
Install with the shadcn CLI, or copy the component file. It only needs React.
npx shadcn@latest add https://oxyn.space/r/arc-progress.jsonUsage
Updates live with the parameters you set.
import { ArcProgress } from "@/components/arc-progress";
export function Thinking() {
return (
<ArcProgress />
);
}Props
| Prop | Type | Default | Description |
|---|---|---|---|
| lines | number | 3 | Number of concentric rings. |
| cuts | number | 3 | Cuts in each ring. The ring is split into this many equal arcs. |
| cutSpacing | number | 30 | Angular width of each cut in degrees. 0 closes the rings. |
| lineSpacing | number | 8 | Gap between neighboring rings in px. |
| lineWidth | number | 1.5 | Stroke width of each ring in px. |
| speed | number | 0.3 | Pace of the animation, in turns per second of the outer ring at a steady spin. |
| alternate | boolean | true | Turn neighboring rings in opposite directions. |
| size | number | 160 | Width and height of the orb in px. |
| minOpacity | number | 0.4 | Opacity of the innermost ring. The outer ring is always fully opaque. |
| color | string | "#e4e4e7" | Line color. |
| paused | boolean | false | Coast to a stop on the current frame without unmounting. Turning it off eases back up to speed. |
| progress | number | 0.6 | How much has transferred. Leave the prop out in code to fill and empty on a loop. |
| label | string | "Thinking" | Accessible name; the wrapper is role="status". |
| className / style | — | — | Spread onto the wrapper div, along with any other div props. |
Switch states
Arc Progress is one of the animations in Arc Rings. Use the group when the agent's state changes, and it morphs between them.