1
3
Block

Progress

PreviousNext

Used to show the percentage completion of a data loading.

"use client"

import { useEffect, useState } from "react"

import { Progress } from "@/components/ui/progress"

export function Demo() {
  const [progress, setProgress] = useState(10)

  useEffect(() => {
    const timer = setInterval(() => {
      setProgress((p) => (p >= 100 ? 0 : p + 10))
    }, 1000)

    return () => clearInterval(timer)
  }, [])

  return (
    <div className="w-[300px] space-y-4">
      <Progress value={progress} />
      <p className="text-sm text-zinc-400">{progress}%</p>
    </div>
  )
}

Installation

pnpm dlx shadcn@latest add https://ebonui.com/r/progress.json

Usage

    <div className="w-[300px] space-y-4">
      <Progress value={progress} />
      <p className="text-sm text-zinc-400">{progress}%</p>
    </div>