# Progress

> A determinate bar: `primary` fill on `primary` at 20%, 8px tall, `r-full`.

## Facts

- **Product**: Max
- **Family**: Feedback
- **Global**: `window.DigitalCrew.Progress`
- **Source**: `max-agent: src/components/ui/progress.tsx`
- **Import in the app**: `import { Progress } from "@/components/ui/progress";`
- **Live preview**: /design/components/progress/preview.html
- **Page**: /design/components/progress

## Guidelines

**Use it for** work with a known end: enrichment runs, imports, warm-up days, quota use. Pair it with the outcome in numbers ("63 of 100"). An import whose provider gives no percentage uses a sweeping activity bar instead (`animate-unibox-sync-sweep`), which stops travelling under reduced motion.

**What you provide**: `value` (0–100) and a label beside it.

## API

```ts
declare function Progress({ className, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root>): any;
export { Progress };
```

## Example

```html
<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: "grid gap-4 max-w-md" },
    h("div", { className: "grid gap-2" },
      h("div", { className: "flex justify-between text-sm" }, h("span", null, "Enriching 100 contacts"), h("span", { className: "tabular-nums text-muted-foreground" }, "63 of 100")),
      h(DC.Progress, { value: 63 })),
    h("div", { className: "grid gap-2" },
      h("div", { className: "flex justify-between text-sm" }, h("span", null, "Warm-up"), h("span", { className: "tabular-nums text-muted-foreground" }, "Day 9 of 14")),
      h(DC.Progress, { value: 64 })));
}
  ReactDOM.createRoot(document.getElementById("root")).render(h(DC.TooltipProvider, { delayDuration: 80 }, h(App)));
})();
</script>
```

## More in Feedback

- [Alert](/design/components/alert.md): An inline, non-dismissable notice (`role="alert"`) with an optional icon, a one-line title and a description.
- [AnimatedCircularProgressBar](/design/components/animated-circular-progress-bar.md): A circular gauge for a value against a quota, with the number in the middle.
- [HelpTooltip](/design/components/help-tooltip.md): A 16px `HelpCircle` in `muted-foreground` that shows an explanation on hover or focus.
- [Skeleton](/design/components/skeleton.md): A placeholder block that pulses (`t-skel-pulse`, 1s) in `accent` while content loads.
- [Toaster](/design/components/toaster.md): Toast notifications (Sonner) on the `popover` surface with a `border` and `radius-lg`; mount one `Toaster` at the root and call `toast()` from anywhere.
