- Accordion new
- ActionSheet new
- Alert new
- Alert Dialog new
- Angle Slider new
- Autocomplete new
- Avatar new
- Badge new
- Breadcrumb new
- Button new
- Button Group new
- Card new
- Carousel new
- Checkbox new
- Clipboard new
- Collapsible new
- Color Picker new
- Date Input new
- Date Picker new
- Dialog new
- DialogCaller new
- Drawer beta
- Editable new
- Empty new
- Field new
- Fieldset new
- File Upload new
- Filters new
- Floating Panel new
- Hover Card new
- Image new
- Image Cropper new
- Input new
- Input Group new
- Json Tree View new
- Kbd new
- Listbox new
- Marquee new
- Menu new
- Number Input new
- Pagination new
- Password Input new
- PhoneField new
- Pin Input new
- Popover new
- Progress Circular new
- Progress Linear new
- Qr Code new
- Radio Group new
- Rating Group new
- Scroll Area new
- ScrollSpy new
- Segment Group new
- Select new
- Separator new
- Sidebar new
- Signature Pad new
- Skeleton new
- Slider new
- Splitter new
- Steps new
- Switch new
- Table new
- Tabs new
- Tags Input new
- Textarea new
- Timeline new
- Timer new
- Toast new
- Toc new
- Toggle new
- Toggle Group new
- Tooltip new
- Tour new
- Tree View new
- Typography new
Progress Linear
Vue linear progress bar for uploads, multi-step flows, and determinate task completion.
Installation
Install from the Vuzeno registry:
bunx --bun shadcn-vue@latest add https://vuzeno.com/r/progress-linear.json
npx shadcn-vue@latest add https://vuzeno.com/r/progress-linear.json
yarn dlx shadcn-vue@latest add https://vuzeno.com/r/progress-linear.json
pnpm dlx shadcn-vue@latest add https://vuzeno.com/r/progress-linear.json
Usage
<script setup lang="ts">
import { ProgressLinear } from "@/components/ui/progress-linear";
</script>
<template>
<ProgressLinear.Root :default-value="42">
<ProgressLinear.Label>Label</ProgressLinear.Label>
<ProgressLinear.ValueText />
<ProgressLinear.Track>
<ProgressLinear.Range />
</ProgressLinear.Track>
</ProgressLinear.Root>
</template>
Composition
ProgressLinear.Root
├── ProgressLinear.Label
├── ProgressLinear.ValueText
├── ProgressLinear.Track
│ └── ProgressLinear.Range
└── ProgressLinear.RootProvider
Examples
Min and Max
By default, the maximum is 100. If that's not what you want, you can easily specify a different bound by changing the value of the max prop. You can do the same with the minimum value by setting the min prop.
For example, to show the user a progress from 10 to 30, you can use:
Indeterminate
The progress component is determinate by default, with the value and max set to 50 and 100 respectively. To render an indeterminate progress, you will have to set the value to null.
Value Text
Progress bars can only be interpreted by sighted users. To include a text description to support assistive technologies like screen readers, use the value part in translations.
Orientation
By default, the progress is assumed to be horizontal. To change the orientation to vertical, set the orientation property in the machine's context to vertical.
Don't forget to change the styles of the vertical progress by specifying its height
Root Provider
An alternative way to control the progress is to use the RootProvider component and the useProgress hook. This way you can access the state and methods from outside the component.
API
See Ark UI Progress - Linear docs for full props and examples.