Skip to content

Progress

Display the current progress of an operation or task, such as file uploading.

Basic Usage

Set the percent property on the Progress component, which represents the percentage of the progress bar. Required, must be between 0-100.

0%
Progress 70
<template>
  <div style="width: 350px">
    <div class="mb-16">
      <b-progress :percent="0"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress :percent="70" status="text" active><span>Progress 70</span></b-progress>
    </div>
    <div class="mb-16">
      <b-progress :percent="100" status="success"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress :percent="50" status="exception"></b-progress>
    </div>
  </div>
</template>

Text Inside

Set text-inside to configure the text-inside display mode

0%
70%
80%
100%
50%
<template>
  <div style="width: 350px">
    <div class="mb-16">
      <b-progress text-inside :stroke-width="20" :percent="0"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress text-inside :stroke-width="20" :percent="70"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress
        text-inside
        :stroke-width="20"
        :percent="80"
        color="rgba(142, 113, 199, 0.7)"
      ></b-progress>
    </div>
    <div class="mb-16">
      <b-progress text-inside :stroke-width="20" :percent="100" status="success"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress text-inside :stroke-width="20" :percent="50" status="exception"></b-progress>
    </div>
  </div>
</template>

Set Styles

Set color, radius, etc. to configure property styles; enable active to activate animation styles

40%
60%
30%
Progress 60
<template>
  <div style="width: 350px">
    <div class="mb-16">
      <b-progress :percent="70" :show-text="false"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress :percent="40" color="#76eeff"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress text-inside :stroke-width="20" :percent="60" color="#df52ff"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress :stroke-width="20" :percent="30" color="#ffcf2f"></b-progress>
    </div>
    <div class="mb-16">
      <b-progress :percent="60" status="text" active><span>Progress 60</span></b-progress>
    </div>
  </div>
</template>

Dynamic Progress

Can be controlled by external operations

10%
<template>
  <div style="width: 350px">
    <b-progress :stroke-width="20" :percent="percent" active color="#ff86d8"></b-progress>

    <div class="mt-16">
      <b-button-group>
        <b-button icon="minus" size="mini" @click="minus"></b-button>
        <b-button icon="plus" size="mini" @click="add"></b-button>
      </b-button-group>
    </div>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
const percent = ref(10)

function add() {
  percent.value += 10
  if (percent.value >= 100) percent.value = 100
}

function minus() {
  percent.value -= 10
  if (percent.value < 0) percent.value = 0
}
</script>

Props

ParameterDescriptionTypeOptionsDefault
percentpercentageNumber0
statusProgress bar statusStringtext/success/exception
stroke-widthProgress bar line width, in pxNumber8
text-insideShow text inside the progress barBooleanfalse
show-textWhether to show progress textBooleantrue
bg-colorProgress bar background colorString#f3f3f3
colorProgress bar colorString#2d8cf0
radiusProgress bar border radiusString100px
activeProgress bar background animationBooleanfalse