Progress Item
progress-itemuiLabeled 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.
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.jsonNamed registry:
npx shadcn-vue@latest add @uipkge/progress-itemInstalls to:app/components/ui/progress-item/Examples
Loading interactive previews…
Loading interactive previews…
Props
| Name | Type / Values | Default | Required |
|---|---|---|---|
label | string | — | required |
value | number | — | required |
secondaryLabel | string | — | optional |
barClass | string | — | optional |
class | string | — | optional |
colorIndex | number | — | optional |
Includes
Used by
Files installed (2)
app/components/ui/progress-item/ProgressItem.vue1.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 data-uipkge data-slot="progress-item" :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.ts0.1 kB
export { default as ProgressItem } from './ProgressItem.vue'
Raw manifest:https://uipkge.dev/r/vue/progress-item.json