Skip to content

Progress

Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.
vue
vue
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { ProgressIndicator, ProgressRoot } from '@oku-ui/primitives'

const progressValue = ref(10)

onMounted(() => {
  const timer = setTimeout(() => (progressValue.value = 66), 500)
  return () => clearTimeout(timer)
})
</script>

<template>
  <ProgressRoot
    v-model="progressValue"
    class="relative overflow-hidden bg-blackA9 rounded-full w-full sm:w-[300px] h-4 sm:h-5"
    style="transform: translateZ(0)"
  >
    <ProgressIndicator
      class="bg-white rounded-full w-full h-full transition-transform duration-[660ms] ease-[cubic-bezier(0.65, 0, 0.35, 1)]"
      :style="`transform: translateX(-${100 - progressValue}%)`"
    />
  </ProgressRoot>
</template>

Features

  • Provides context for assistive technology to read the progress of a task.

Installation

Install the component from your command line.

sh
sh
$ npm add @oku-ui/primitives

Anatomy

Import all parts and piece them together.

vue
vue
<script setup>
import { ProgressIndicator, ProgressRoot } from '@oku-ui/primitives'
</script>

<template>
  <ProgressRoot>
    <ProgressIndicator />
  </ProgressRoot>
</template>

Accessibility

Adheres to the progressbar role requirements.

API Reference

Root

Contains all of the progress parts.

PropDefaultType
getValueLabel
defaultGetValueLabel
((value: number, max: number) => string)
max
DEFAULT_MAX
number
value
number
MethodsType
getValueLabel
(value: number, max: number) => string
Data AttributeValue
[data-state]"complete" | "indeterminate" | "loading"
[data-value]The current value
[data-max]The max value

Indicator

Used to show the progress visually. It also makes progress accessible to assistive technologies.

Data AttributeValue
[data-state]"complete" | "indeterminate" | "loading"
[data-value]The current value
[data-max]The max value