Loading...
Loading...
> Terminal-style ASCII progress bars with multiple variants including block, hash, pipe, dots, arrow, and braille styles.
1import { Progress, AnimatedProgress, ProgressWithInfo } from "@/components/ui/progress"
1<Progress value={66} showPercentage />
1<Progress value={25} variant="block" showPercentage />2<Progress value={50} variant="block" showPercentage />3<Progress value={75} variant="block" showPercentage />
1<Progress value={33} variant="hash" showPercentage />2<Progress value={66} variant="hash" showPercentage />3<Progress value={100} variant="hash" showPercentage />
1<Progress value={40} variant="pipe" showPercentage />2<Progress value={80} variant="pipe" showPercentage />
1<Progress value={30} variant="dots" showPercentage />2<Progress value={70} variant="dots" showPercentage />
1<Progress value={45} variant="arrow" showPercentage />2<Progress value={90} variant="arrow" showPercentage />
1<Progress value={50} variant="braille" showPercentage />2<Progress value={100} variant="braille" showPercentage />
1<Progress value={45} label="Downloading:" showPercentage />2<Progress value={80} label="Installing:" variant="hash" showPercentage />3<Progress value={60} label="Syncing:" variant="arrow" showPercentage />
1<Progress value={33} percentageBefore />2<Progress value={66} percentageBefore variant="hash" />3<Progress value={100} percentageBefore variant="dots" />
1<Progress value={50} size="sm" showPercentage />2<Progress value={50} size="md" showPercentage />3<Progress value={50} size="lg" showPercentage />
1<Progress value={60} barWidth={10} showPercentage />2<Progress value={60} barWidth={20} showPercentage /> {/* default */}3<Progress value={60} barWidth={30} showPercentage />
1<AnimatedProgress2 duration={3000}3 loop4 showPercentage5 variant="block"6/>
1<ProgressWithInfo2 value={45}3 variant="arrow"4 showPercentage5 loaded="22.5 MB"6 total="50 MB"7 speed="2.5 MB/s"8 eta="11s"9/>1011<ProgressWithInfo12 value={78}13 variant="block"14 showPercentage15 loaded="156 KB"16 total="200 KB"17 speed="45 KB/s"18/>
| Prop | Type | Default | Description |
|---|---|---|---|
| value | number | 0 | The progress value between 0 and 100. |
| variant | "block" | "hash" | "pipe" | "dots" | "arrow" | "braille" | "block" | Visual style of the progress bar. |
| showPercentage | boolean | false | Show percentage after the progress bar. |
| percentageBefore | boolean | false | Show percentage before the progress bar. |
| label | string | - | Custom label to show before the progress bar. |
| barWidth | number | 20 | Width of the progress bar in characters. |
| size | "sm" | "md" | "lg" | "md" | Size variant of the progress text. |
✓ Use Progress when:
✗ Don't use when:
Best Practices:
block (default)
█ filled, ░ empty
hash
# filled, . empty
pipe
| filled, space empty
dots
● filled, ○ empty
arrow
= filled, > head
braille
⣿ filled, ⣀ empty