Skip to content

Progress

The Progress component displays a loading bar.

Examples

Color

The Progress component displays a colored loading bar.

Code
vue
<script setup lang="ts">
import { BaseProgress } from '@point-hub/papp'
import { ref } from 'vue'

const value1 = ref(50)
const value2 = ref(60)
const value3 = ref(70)
const value4 = ref(80)
const value5 = ref(90)
const value6 = ref(100)
</script>

<template>
  <div>
    <component :is="BaseProgress" v-model="value1" color="primary" />
    <component :is="BaseProgress" v-model="value2" color="secondary" />
    <component :is="BaseProgress" v-model="value3" color="info" />
    <component :is="BaseProgress" v-model="value4" color="success" />
    <component :is="BaseProgress" v-model="value5" color="warning" />
    <component :is="BaseProgress" v-model="value6" color="danger" />
  </div>
</template>

Size

The Progress components can have various sizes.

Code
vue
<script setup lang="ts">
import { BaseProgress } from '@point-hub/papp'
import { ref } from 'vue'

const value1 = ref(50)
const value2 = ref(60)
const value3 = ref(70)
const value4 = ref(80)
const value5 = ref(90)
const value6 = ref(100)
</script>

<template>
  <Demo>
    <component :is="BaseProgress" v-model="value1" size="xs" />
    <component :is="BaseProgress" v-model="value2" size="sm" />
    <component :is="BaseProgress" v-model="value3" size="md" />
    <component :is="BaseProgress" v-model="value4" size="lg" />
    <component :is="BaseProgress" v-model="value5" size="xl" />
    <component :is="BaseProgress" v-model="value6" size="2xl" />
  </Demo>
</template>

Indeterminate

You can use indeterminate mode for the progress bar when you do not know how long an operation will take.

Code
vue
<script setup lang="ts">
import { BaseProgress } from '@point-hub/papp'
import { ref } from 'vue'

const value1 = ref(50)
const value2 = ref(60)
const value3 = ref(70)
const value4 = ref(80)
const value5 = ref(90)
const value6 = ref(100)
</script>

<template>
  <div>
    <component :is="BaseProgress" v-model="value1" is-indeterminate color="primary" />
    <component :is="BaseProgress" v-model="value2" is-indeterminate color="secondary" />
    <component :is="BaseProgress" v-model="value3" is-indeterminate color="info" />
    <component :is="BaseProgress" v-model="value4" is-indeterminate color="success" />
    <component :is="BaseProgress" v-model="value5" is-indeterminate color="warning" />
    <component :is="BaseProgress" v-model="value6" is-indeterminate color="danger" />
  </div>
</template>

Label

The Progress component displays a label.

Code
vue
<script setup lang="ts">
import { BaseProgress } from '@point-hub/papp'
import { ref } from 'vue'

const value1 = ref(20)
const value2 = ref(50)
const value3 = ref(100)
</script>

<template>
  <div>
    <component :is="BaseProgress" v-model="value1" color="danger" size="lg">
      <p>{{ value1 }}%</p>
    </component>
    <component :is="BaseProgress" v-model="value1" color="danger" size="lg">
      <p>{{ value1 }}%</p>
      <p>progress-lg</p>
    </component>
    <component :is="BaseProgress" v-model="value2" color="warning" size="xl">
      <p>{{ value2 }}%</p>
    </component>
    <component :is="BaseProgress" v-model="value2" color="warning" size="xl">
      <p>{{ value2 }}%</p>
      <p>progress-xl</p>
    </component>
    <component :is="BaseProgress" v-model="value3" color="success" size="2xl">
      <p>{{ value3 }}%</p>
    </component>
    <component :is="BaseProgress" v-model="value3" color="success" size="2xl">
      <p>{{ value3 }}%</p>
      <p>progress-2xl</p>
    </component>
  </div>
</template>

Progress API

Types

ts
export type BaseProgressColorType =
  | 'primary'
  | 'secondary'
  | 'info'
  | 'success'
  | 'warning'
  | 'danger'

export type BaseProgressSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'

Props

NameTypeDefaultDescription
colorBaseProgressColorTypeprimaryProgress color.
sizeBaseProgressSizeTypemdProgress size.
isInderterminatebooleanfalseInfinite loading animation.

Slot

#default slot for rendering label

Released under the MIT License.