Skip to content

Progress

Progress bar indicator component.

Also known as: progress bar, loading bar, completion indicator, percentage bar

View in Storybook

When to use

  • Showing completion percentage (0-100). For indeterminate loading, use Spinner.
  • For background save indication, use SaveProgress.

Import

tsx
import { Progress } from '@vacano/ui'

Usage

tsx
<Progress value={50} />

Values

tsx
<Progress value={0} />   {/* Empty */}
<Progress value={25} />  {/* Quarter */}
<Progress value={50} />  {/* Half */}
<Progress value={75} />  {/* Three quarters */}
<Progress value={100} /> {/* Full */}

Sizes

tsx
<Progress size="default" value={60} />
<Progress size="compact" value={60} />

Dynamic Progress

tsx
const [progress, setProgress] = useState(0)

useEffect(() => {
  const timer = setInterval(() => {
    setProgress((prev) => (prev >= 100 ? 0 : prev + 10))
  }, 500)
  return () => clearInterval(timer)
}, [])

<Progress value={progress} />

Props

PropTypeDefaultDescription
valuenumberrequiredProgress value (0-100)
size'compact' | 'default''default'Bar size
refRef<HTMLDivElement>-Forwarded ref
classNamestring-CSS class name for the root element
classnamesProgressClassNames-Custom class names for sub-elements

ClassNames

KeyDescription
trackBackground track
barProgress bar fill

Released under the MIT License.