Command Palette

Search for a command to run...

UploadThing/UploadThing Progress

UploadThing Progress

A standalone upload progress indicator with bar, ring, and minimal variants.

Open in v0Open in
Uploading...0%
0%
0%
0%
0%

Overview

A progress indicator with three variants: bar (linear), ring (circular), and minimal (percentage only). Configurable sizes and optional label.

Installation

npx shadcn@latest add @elements/uploadthing-progress

Usage

import { UploadThingProgress } from "@/components/elements/uploadthing/uploadthing-progress";

export function UploadStatus() {
  const [progress, setProgress] = useState(0);

  return (
    <div className="space-y-4">
      <UploadThingProgress progress={progress} variant="bar" />
      <UploadThingProgress progress={progress} variant="ring" />
      <UploadThingProgress progress={progress} variant="minimal" />
    </div>
  );
}

Props

PropTypeDefaultDescription
progressnumber-Progress value (0-100)
variant"bar" | "ring" | "minimal""bar"Display variant
size"sm" | "md" | "lg""md"Size variant
showLabelbooleantrueShow percentage label
classNamestring-Additional CSS classes

Variants

Bar

Linear progress bar with animated fill and percentage label below.

Ring

Circular SVG progress with percentage in center. Uses stroke-dasharray animation.

Minimal

Text-only percentage display in muted styling.

Features

  • Three distinct variants
  • Three size options (sm/md/lg)
  • Optional percentage label
  • Smooth animations
  • Accessible progress semantics