React Progress Bar - Flowbite
The progress bar component is used to show the completion rate of a given task in the form of a filled bar where you can also add a label indicating percentage
Table of Contents#
Default progress bar#
Use this example to show a progress bar where you can set the progress rate using the progress
prop from React which should be a number from 1 to 100.
- React TypeScript
'use client';
import { Progress } from 'flowbite-react';
export default function DefaultProgress() {
return (
<Progress progress={45} />
)
}
Progress bar with labels#
Use this example to show a progress bar with a label. You can set the label text using the textLabel
prop and the progress text using the labelText
prop.
- React TypeScript
'use client';
import { Progress } from 'flowbite-react';
export default function WithLabels() {
return (
<Progress
labelProgress
labelText
progress={50}
size="lg"
textLabel="Flowbite"
/>
)
}
Label positioning#
This example shows how you can position the label text inside the progress bar by using the React props called progressLabelPosition
and textLabelPosition
on the <Progress>
component in React.
- React TypeScript
'use client';
import { Progress } from 'flowbite-react';
export default function LabelPositions() {
return (
<Progress
labelProgress
labelText
progress={45}
progressLabelPosition="inside"
size="lg"
textLabel="Flowbite"
textLabelPosition="outside"
/>
)
}
Sizing#
The size
prop from React can be used on the <Progress>
component to set the size of the progress bar. You can choose from sm
, md
, lg
and xl
.
- React TypeScript
'use client';
import { Progress } from 'flowbite-react';
export default function Sizing() {
return (
<div className="flex flex-col gap-2">
<div className="text-base font-medium dark:text-white">
Small
</div>
<Progress
color="dark"
progress={45}
size="sm"
/>
<div className="text-base font-medium dark:text-white">
Default
</div>
<Progress
color="dark"
progress={45}
size="md"
/>
<div className="text-lg font-medium dark:text-white">
Large
</div>
<Progress
color="dark"
progress={45}
size="lg"
/>
<div className="text-lg font-medium dark:text-white">
Extra Large
</div>
<Progress
color="dark"
progress={45}
size="xl"
/>
</div>
)
}
Colors#
Set your own custom colors for the progress bar component by using the color
prop from React and the utility classes from Tailwind CSS.
- React TypeScript
'use client';
import { Progress } from 'flowbite-react';
export default function Colors() {
return (
<div className="flex flex-col gap-2">
<div className="text-base font-medium">
Dark
</div>
<Progress
color="dark"
progress={45}
/>
<div className="text-base font-medium text-cyan-700">
Blue
</div>
<Progress
color="blue"
progress={45}
/>
<div className="text-base font-medium text-red-700">
Red
</div>
<Progress
color="red"
progress={45}
/>
<div className="text-base font-medium text-green-700">
Green
</div>
<Progress
color="green"
progress={45}
/>
<div className="text-base font-medium text-yellow-700">
Yellow
</div>
<Progress
color="yellow"
progress={45}
/>
<div className="text-base font-medium text-indigo-700">
Indigo
</div>
<Progress
color="indigo"
progress={45}
/>
<div className="text-base font-medium text-purple-700">
Purple
</div>
<Progress
color="purple"
progress={45}
/>
</div>
)
}
Theme#
To learn more about how to customize the appearance of components, please see the Theme docs.
{
"base": "w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700",
"label": "mb-1 flex justify-between font-medium dark:text-white",
"bar": "rounded-full text-center font-medium leading-none text-cyan-300 dark:text-cyan-100 space-x-2",
"color": {
"dark": "bg-gray-600 dark:bg-gray-300",
"blue": "bg-cyan-600",
"red": "bg-red-600 dark:bg-red-500",
"green": "bg-green-600 dark:bg-green-500",
"yellow": "bg-yellow-400",
"indigo": "bg-indigo-600 dark:bg-indigo-500",
"purple": "bg-purple-600 dark:bg-purple-500"
},
"size": {
"sm": "h-1.5",
"md": "h-2.5",
"lg": "h-4",
"xl": "h-6"
}
}