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.
Prop | Default | Type |
---|---|---|
getValueLabel | defaultGetValueLabel | ((value: number, max: number) => string) |
max | DEFAULT_MAX | number |
value | number |
Methods | Type |
---|---|
getValueLabel | (value: number, max: number) => string |
Data Attribute | Value |
---|---|
[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 Attribute | Value |
---|---|
[data-state] | "complete" | "indeterminate" | "loading" |
[data-value] | The current value |
[data-max] | The max value |