Progress Bar
View in LexiconProgress bar indicates the percentage completed of a task.
install | yarn add @clayui/progress-bar |
---|---|
version | |
use | import ProgressBar from '@clayui/progress-bar'; |
Table of Contents
Colors
Add progress-danger
, progress-info
, progress-success
, or progress-warning
to progress-group
or progress
to provide visual feedback for different progress states. Color a block of text or icon by wrapping it with progress-group-feedback.
Snippet
<div className="progress"> <div aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '25%'}} > 25% </div> </div> <div className="progress progress-success"> <div aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" className="progress-bar progress-bar-striped" role="progressbar" style={{width: '25%'}} > 25% </div> </div> <div className="progress progress-info"> <div aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '50%'}} > 50% </div> </div> <div className="progress progress-warning"> <div aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" className="progress-bar progress-bar-animated progress-bar-striped" role="progressbar" style={{width: '75%'}} > 75% </div> </div> <div className="progress progress-danger"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '100%'}} > 100% </div> </div>
Group
Snippet
<div className="progress-group"> <div className="progress"> <div aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '60%'}} ></div> </div> <div className="progress-group-addon">60%</div> </div> <div className="progress-group progress-success"> <div className="progress"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar progress-bar-striped" role="progressbar" style={{width: '100%'}} ></div> </div> <div className="progress-group-addon"> <div className="progress-group-feedback"> <svg className="lexicon-icon lexicon-icon-check-circle" focusable="false" role="presentation" > <use href="/icons.svg#check-circle" /> </svg> </div> </div> </div> <div className="progress-group progress-info"> <div className="progress"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '100%'}} ></div> </div> <div className="progress-group-addon"> <div className="progress-group-feedback"> <svg className="lexicon-icon lexicon-icon-info-circle-open" focusable="false" role="presentation" > <use href="/icons.svg#info-circle-open" /> </svg> </div> </div> </div> <div className="progress-group progress-warning"> <div className="progress"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar progress-bar-animated progress-bar-striped" role="progressbar" style={{width: '100%'}} ></div> </div> <div className="progress-group-addon"> <div className="progress-group-feedback"> <svg className="lexicon-icon lexicon-icon-info-exclamation-circle" focusable="false" role="presentation" > <use href="/icons.svg#info-exclamation-circle" /> </svg> </div> </div> </div> <div className="progress-danger progress-group"> <div className="progress"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '100%'}} ></div> </div> <div className="progress-group-addon"> <div className="progress-group-feedback"> <svg className="lexicon-icon lexicon-icon-times-circle" focusable="false" role="presentation" > <use href="/icons.svg#times-circle" /> </svg> </div> </div> </div>
Sizes
We only set a height
value on the .progress
, so if you change that value the inner .progress-bar
will automatically resize accordingly.
Snippet
<div className="progress"> <div aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '25%'}} > 25% </div> </div> <div className="progress-group"> <div className="progress"> <div aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '60%'}} ></div> </div> <div className="progress-group-addon">60%</div> </div> <div className="progress progress-lg"> <div aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '45%'}} > 45% </div> </div> <div className="progress-group progress-lg"> <div className="progress"> <div aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '60%'}} ></div> </div> <div className="progress-group-addon">60%</div> </div> <div className="progress" style={{height: '20px'}}> <div className="progress-bar" role="progressbar" style={{width: '25%'}} aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" ></div> </div>
Groups
Addon
Place an addon on either side of a progress component with progress-group
and progress-group-addon
.
Snippet
<div className="progress-group"> <div className="progress"> <div aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '30%'}} ></div> </div> <div className="progress-group-addon">30%</div> </div> <div className="progress-group progress-warning"> <div className="progress"> <div aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '70%'}} ></div> </div> <div className="progress-group-addon">70%</div> </div> <div className="progress-group progress-success"> <div className="progress"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '100%'}} ></div> </div> <div className="progress-group-addon"> <div className="progress-group-feedback"> <svg className="lexicon-icon lexicon-icon-check-circle" focusable="false" role="presentation" > <use href="/icons.svg#check-circle" /> </svg> </div> </div> </div> <div className="progress-group"> <div className="progress-group-addon"> <div className="progress-group-feedback"> <svg className="lexicon-icon lexicon-icon-check-circle" focusable="false" role="presentation" > <use href="/icons.svg#check-circle" /> </svg> </div> </div> <div className="progress"> <div aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '100%'}} ></div> </div> </div>
Stacked
Add progress-group-stacked
to progress-group
stack the addons and progress component.
Snippet
<div className="progress-group progress-group-stacked"> <div className="progress-group-addon">60% Completed</div> <div className="progress"> <div aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" className="progress-bar" role="progressbar" style={{width: '60%'}} ></div> </div> <div className="progress-group-addon"> <svg className="lexicon-icon lexicon-icon-cog" focusable="false" role="presentation" > <use href="/icons.svg#cog" /> </svg> </div> </div>
Multiple Progress Bars
If you need multiple progress bars, use Bootstrap 4’s background utilities, bg-primary
, bg-success
, bg-info
, bg-warning
, and bg-danger
on progress-bar
.
Snippet
<div className="progress"> <div className="bg-success progress-bar progress-bar-striped" style={{width: '25%'}} > 25% </div> <div className="bg-success progress-bar" style={{width: '25%'}}>25%</div> <div className="bg-success progress-bar progress-bar-animated progress-bar-striped" style={{width: '25%'}} > 25% </div> </div> <div className="progress"> <div className="bg-info progress-bar progress-bar-striped" style={{width: '50%'}}> 50% </div> <div className="bg-info progress-bar" style={{width: '50%'}}>50%</div> </div> <div className="progress"> <div className="bg-warning progress-bar progress-bar-animated progress-bar-striped" style={{width: '33%'}} > 33% </div> <div className="bg-warning progress-bar progress-bar-striped" style={{width: '33%'}} > 33% </div> </div> <div className="progress"> <div className="bg-danger progress-bar" style={{width: '45%'}}>45%</div> <div className="bg-danger progress-bar progress-bar-animated progress-bar-striped" style={{width: '45%'}} > 45% </div> </div> <div className="progress"> <div className="progress-bar" style={{width: '10%'}}>10%</div> <div className="bg-warning progress-bar" style={{width: '10%'}}>10%</div> <div className="bg-success progress-bar" style={{width: '10%'}}>10%</div> <div className="bg-info progress-bar" style={{width: '10%'}}>10%</div> <div className="bg-success progress-bar progress-bar-striped" style={{width: '10%'}} > 10% </div> <div className="bg-danger progress-bar progress-bar-animated progress-bar-striped" style={{width: '10%'}} > 10% </div> <div className="progress-bar progress-bar-animated progress-bar-striped" style={{width: '10%'}} > 10% </div> </div>
Labels
Add labels to your progress bars by placing text within the .progress-bar
.
Snippet
<div className="progress"> <div className="progress-bar" role="progressbar" style={{width: '25%'}} aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" > 25% </div> </div>
Striped
Add .progress-bar-striped
to any .progress-bar
to apply a stripe via CSS gradient over the progress bar’s background color.
Snippet
<div className="progress"> <div className="progress-bar progress-bar-striped" role="progressbar" style={{width: '10%'}} aria-valuenow="10" aria-valuemin="0" aria-valuemax="100" ></div> </div> <div className="progress"> <div className="progress-bar progress-bar-striped bg-success" role="progressbar" style={{width: '25%'}} aria-valuenow="25" aria-valuemin="0" aria-valuemax="100" ></div> </div> <div className="progress"> <div className="progress-bar progress-bar-striped bg-info" role="progressbar" style={{width: '50%'}} aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" ></div> </div> <div className="progress"> <div className="progress-bar progress-bar-striped bg-warning" role="progressbar" style={{width: '75%'}} aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" ></div> </div> <div className="progress"> <div className="progress-bar progress-bar-striped bg-danger" role="progressbar" style={{width: '100%'}} aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" ></div> </div>
Animated Stripes
The striped gradient can also be animated. Add .progress-bar-animated
to .progress-bar
to animate the stripes right to left via CSS3 animations.
Snippet
<div className="progress"> <div className="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style={{width: '75%'}} ></div> </div>