Skip to content

Progress Bar ​

The ProgressBar component provides a flexible and customizable way to display status, labels, or other metadata with various color variants and sizes.

Installation ​

bash
pnpm i @vue-interface/progress-bar
bash
yarn add @vue-interface/progress-bar
bash
npm i @vue-interface/progress-bar
bash
bun i @vue-interface/progress-bar

Tailwind Setup ​

css
@import '@vue-interface/progress-bar';

Basic Usage ​

To create a progress bar component, use the <ProgressBar> component. Use the value prop to set the progress and show-value to display the progress numerically.

Progress Bar
0%
vue
<ProgressBar :value="progress"></ProgressBar>
<ProgressBar :value="progress" label="Progress Bar"></ProgressBar>
<ProgressBar :value="progress" show-value></ProgressBar>
<ProgressBar :value="50" striped></ProgressBar>
<ProgressBar :value="50" striped animated></ProgressBar>

Color Variants ​

The progress-bar component supports eight standard color variants: primary, secondary, success, danger, warning, info, light, dark. Use the syntax: progress-bar-[variant].

Show Code
vue
<ProgressBar :value="50" class="progress-bar-primary"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-secondary"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-success"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-danger"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-warning"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-info"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-dark"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-light"></ProgressBar>

Custom Colors ​

Customize the color of the ProgressBar component with the Tailwind color palette by using the class: progress-bar-[color].

Show Code
vue
<ProgressBar :value="50" class="progress-bar-amber-500"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-green-500"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-purple-500"></ProgressBar>
<ProgressBar :value="50" class="progress-bar-neutral-500"></ProgressBar>

Sizes ​

Customize the size of a ProgressBar using a predetermined size, tailwind's numeric sizing classes, or an arbitrary CSS length unit.

Predetermined Sizes ​

The size can be customized using a predetermined size prop: 2xs, xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl. Use the syntax: progress-bar-[size].

Show Code
vue
<ProgressBar :value="50" size="progress-bar-2xs"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-xs"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-sm"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-md"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-lg"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-xl"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-2xl"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-3xl"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-4xl"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-5xl"></ProgressBar>

Tailwind Sizes ​

For more granular control over ProgressBar sizes, use Tailwind's numeric sizing scale classes: progress-bar-1 - progress-bar-96.

Show Code
vue
<ProgressBar :value="50" size="progress-bar-3"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-4"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-5"></ProgressBar>

Arbitrary sizes ​

For precise sizing, specify exact pixel values using the syntax progress-bar-[Npx] or any other CSS length units (rem, em, mm, etc.).

Show Code
vue
<ProgressBar :value="50" size="progress-bar-[16px]"></ProgressBar>
<ProgressBar :value="50" size="progress-bar-[1.5rem]"></ProgressBar>

Striped ​

Add the striped prop to apply a striped gradient over the progress bar's background color.

Show Code
vue
<ProgressBar :value="50" class="progress-bar-primary" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-secondary" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-success" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-danger" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-warning" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-info" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-dark" striped></ProgressBar>
<ProgressBar :value="50" class="progress-bar-light" striped></ProgressBar>

Striped & Animated ​

Add both striped and animated props to animate the stripes from right to left.

Show Code
vue
<ProgressBar :value="50" class="progress-bar-primary" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-secondary" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-success" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-danger" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-warning" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-info" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-dark" striped animated></ProgressBar>
<ProgressBar :value="50" class="progress-bar-light" striped animated></ProgressBar>

API ​

Props ​

PropTypeDefaultDescription
valuestring0The value of the progress bar.
labelstringundefinedThe label to display.
show-valuebooleanfalseDisplay the progress numerically.
sizestring'progress-bar-md'Progress bar size.
stripedbooleanfalseAdd stripes to the progress bar.
animatedbooleanfalseAnimate the stripes.

Slots ​

SlotDescription
labelOptional slot to override the default label rendering. Exposes label and value bindings.