HextaUI

Progress: Circle

<ProgressCircle /> draws the same value as a ring, starting at the top. Children sit in the middle, which fits <ProgressValue /> at lg and xl.

x
x
x
x
import { ProgressCircle, ProgressValue } from "@/components/ui/progress"

export function ProgressCircleDemo() {
  return (
    <div className="flex flex-wrap items-center justify-center gap-8">
      <ProgressCircle value={25} size="sm" aria-label="Small" />
      <ProgressCircle value={50} aria-label="Default" />
      <ProgressCircle value={75} size="lg" aria-label="Large">
        <ProgressValue />
      </ProgressCircle>
      <ProgressCircle value={100} size="xl" aria-label="Extra large">
        <ProgressValue />
      </ProgressCircle>
    </div>
  )
}

This adds the example as components/examples/progress/circle.tsx, together with the Progress component and the HextaUI theme tokens it needs.

pnpm dlx shadcn@latest add https://hextaui.com/r/progress-circle.json

To add only the component, follow the Progress installation.

Props in this example

The Progress props this example sets, from the API reference.

PropTypeDefault
valuenull spins an arc.
number | null–
size
"sm" | "default" | "lg" | "xl""default"

Every prop is in the Progress API reference.

See them all, with keyboard support and accessibility notes, on the Progress page.