ProgressBar
Provide up-to-date feedback on the progress of a workflow or action with simple yet flexible progress bars.
Example
Default progress bar.
vue
<template>
<ProgressBar v-model="progress" />
</template>
<script setup>
import { ProgressBar } from 'uiv';
import { ref } from 'vue';
const progress = ref(66);
</script>
With label
TIP
To ensure that the label text remains legible even for low percentages, consider use min-width
prop.
vue
<template>
<h4>Default Label</h4>
<ProgressBar v-model="progress" label />
<h4>Custom Label</h4>
<ProgressBar
v-model="progress"
label
label-text="Loading......Please wait."
/>
<h4>Minimum Width</h4>
<ProgressBar v-model="progress1" min-width label />
</template>
<script setup>
import { ProgressBar } from 'uiv';
import { ref } from 'vue';
const progress1 = ref(1);
const progress = ref(66);
</script>
Contextual alternatives
Progress bars use some of the same button and alert classes for consistent styles.
vue
<template>
<ProgressBar v-model="progress40" type="success" />
<ProgressBar v-model="progress20" type="info" />
<ProgressBar v-model="progress60" type="warning" />
<ProgressBar v-model="progress80" type="danger" />
</template>
<script setup>
import { ProgressBar } from 'uiv';
import { ref } from 'vue';
const progress20 = ref(20);
const progress40 = ref(40);
const progress60 = ref(60);
const progress80 = ref(80);
</script>
Striped
Uses a gradient to create a striped effect.
WARNING
Not available in IE9 and below.
vue
<template>
<ProgressBar v-model="progress40" type="success" striped />
<ProgressBar v-model="progress20" type="info" striped />
<ProgressBar v-model="progress60" type="warning" striped />
<ProgressBar v-model="progress80" type="danger" striped />
</template>
<script setup>
import { ProgressBar } from 'uiv';
import { ref } from 'vue';
const progress20 = ref(20);
const progress40 = ref(40);
const progress60 = ref(60);
const progress80 = ref(80);
</script>
Animated
Animate the stripes right to left.
WARNING
Not available in IE9 and below.
vue
<template>
<ProgressBar v-model="progress" striped active />
</template>
<script setup>
import { ProgressBar } from 'uiv';
import { ref } from 'vue';
const progress = ref(40);
</script>
Stacked
Place multiple <progress-bar-stack>
into the same <progress-bar>
to stack them.
vue
<template>
<ProgressBar>
<ProgressBarStack v-model="progress35" type="success" />
<ProgressBarStack v-model="progress20" type="warning" striped />
<ProgressBarStack v-model="progress10" type="danger" />
</ProgressBar>
</template>
<script setup>
import { ProgressBar, ProgressBarStack } from 'uiv';
import { ref } from 'vue';
const progress20 = ref(20);
const progress35 = ref(35);
const progress10 = ref(10);
</script>
API Reference
ProgressBar
Props
Name | Type | Default | Required | Description |
---|---|---|---|---|
v-model | Number | ✔ | Current progress (0 ~ 100). | |
label | Boolean | false | Show label on progress bar. | |
label-text | String | Custom label text. | ||
min-width | Boolean | false | Apply a minimum width to the progress bar, useful when showing label and small current value. | |
type | String | Progress bar type, support success / info / warning / danger. Or you can add custom types. | ||
striped | Boolean | false | Apply striped style. | |
active | Boolean | false | Apply active to striped style. |
Slots
Name | Description |
---|---|
default | Use this slot if need stacked progress bar, see example in the code panel above. |
ProgressBarStack
ProgressBar
and ProgressBarStack
shared same props.