Feedback
AnimatedCircularProgressBar
A circular gauge for a value against a quota, with the number in the middle.
Guidelines#
Use it for usage meters (AI credits, sending quota) on settings and billing cards.
What you provide: value, min/max (0–100 default), gaugePrimaryColor and gaugeSecondaryColor as CSS colours — pass var(--primary) and var(--muted) so it follows the theme — and a size and text size through className. Always label it with the numbers beside it ("6,800 of 10,000 used").
Facts#
| Group | Feedback |
|---|---|
| Product | Max |
| Global | window.DigitalCrew.AnimatedCircularProgressBar |
| Source | max-agent: src/components/ui/animated-circular-progress-bar.tsx |
| Import in the app | import { AnimatedCircularProgressBar } from "@/components/ui/animated-circular-progress-bar"; |
API#
TypeScript declarations emitted from src/components/ui/animated-circular-progress-bar.tsx (the module also exports its other parts).
/**
* Affiche une jauge circulaire animée.
* @param {{max?: number, min?: number, value?: number, gaugePrimaryColor: string, gaugeSecondaryColor: string, className?: string}} props
*/
export declare function AnimatedCircularProgressBar({ max, min, value, gaugePrimaryColor, gaugeSecondaryColor, className, }: {
max?: number;
min?: number;
value?: number;
gaugePrimaryColor: string;
gaugeSecondaryColor: string;
className?: string;
}): any;Example#
The code of the preview above: plain React.createElement against window.DigitalCrew, with realistic data.
<div id="root" class="p-6"></div>
<script>
(function () {
var h = React.createElement, DC = window.DigitalCrew, I = DC.Icons;
function App() {
return h("div", { className: "flex items-center gap-8" },
h(DC.AnimatedCircularProgressBar, { value: 68, gaugePrimaryColor: "var(--primary)", gaugeSecondaryColor: "var(--muted)", className: "size-32 text-2xl" }),
h("div", { className: "grid gap-1" },
h("p", { className: "text-sm font-medium" }, "AI credits this month"),
h("p", { className: "text-sm text-muted-foreground" }, "6,800 of 10,000 used · resets 1 Nov")));
}
ReactDOM.createRoot(document.getElementById("root")).render(h(DC.TooltipProvider, { delayDuration: 80 }, h(App)));
})();
</script>