Progress Item
Vue feedbackLabeled progress row — item name on the left, progress bar in the middle, percent or count on the right. Use for batched task lists, file upload queues, or onboarding checklists.
Also available for React ->Installation
$ pnpm dlx shadcn-vue@latest add https://uipkge.dev/r/vue/progress-item.json$ npx shadcn-vue@latest add https://uipkge.dev/r/vue/progress-item.json$ yarn dlx shadcn-vue@latest add https://uipkge.dev/r/vue/progress-item.json$ bunx shadcn-vue@latest add https://uipkge.dev/r/vue/progress-item.json
Or with the named registry:
npx shadcn-vue@latest add @uipkge/progress-item
Examples
Props
| Name | Type / Values | Default | Required |
|---|---|---|---|
label | string | — | required |
value | number | — | required |
secondaryLabel | string | — | optional |
barClass | string | — | optional |
class | string | — | optional |
colorIndex | number | — | optional |
Dependencies
Used by
Files (2)
-
app/components/ui/progress-item/ProgressItem.vue 1.3 kB
<script setup lang="ts"> import { computed } from 'vue' import { cn } from '@/lib/utils' import { Progress } from '@/components/ui/progress' const props = defineProps<{ label: string value: number secondaryLabel?: string barClass?: string class?: string colorIndex?: number }>() // Maps to canonical shadcn chart tokens (chart-1..5). Cycles through 5 hues. const barColors = [ '[&_[data-slot=progress-indicator]]:bg-primary', '[&_[data-slot=progress-indicator]]:bg-[var(--chart-1)]', '[&_[data-slot=progress-indicator]]:bg-[var(--chart-2)]', '[&_[data-slot=progress-indicator]]:bg-[var(--chart-3)]', '[&_[data-slot=progress-indicator]]:bg-[var(--chart-4)]', '[&_[data-slot=progress-indicator]]:bg-[var(--chart-5)]', ] const colorClass = computed(() => props.colorIndex !== undefined ? barColors[props.colorIndex % barColors.length] : '', ) </script> <template> <div :class="cn('group/progress space-y-1.5', props.class)"> <div class="flex items-center justify-between text-sm"> <span class="font-medium">{{ label }}</span> <span class="text-muted-foreground text-xs tabular-nums">{{ secondaryLabel ?? `${value}%` }}</span> </div> <Progress :model-value="value" :class="cn('h-2 transition-colors duration-200', colorClass, barClass)" /> </div> </template> -
app/components/ui/progress-item/index.ts 0.1 kB
export { default as ProgressItem } from './ProgressItem.vue'
Raw manifest: https://uipkge.dev/r/vue/progress-item.json