# Progress Bar [component-header:sl-progress-bar] Progress bars are used to show the status of an ongoing operation. ```html preview ``` ```jsx react import { SlProgressBar } from '@shoelace-style/shoelace/dist/react'; const App = () => ; ``` ## Examples ### Custom Height Use the `--height` custom property to set the progress bar's height. ```html preview ``` ```jsx react import { SlProgressBar } from '@shoelace-style/shoelace/dist/react'; const App = () => ; ``` ### Labels Use the `label` attribute to label the progress bar and tell assistive devices how to announce it. ```html preview ``` ```jsx react import { SlProgressBar } from '@shoelace-style/shoelace/dist/react'; const App = () => ; ``` ### Showing Values Use the default slot to show a value. ```html preview 50%
``` ```jsx react import { useState } from 'react'; import { SlButton, SlIcon, SlProgressBar } from '@shoelace-style/shoelace/dist/react'; const App = () => { const [value, setValue] = useState(50); function adjustValue(amount) { let newValue = value + amount; if (newValue < 0) newValue = 0; if (newValue > 100) newValue = 100; setValue(newValue); } return ( <> {value}%
adjustValue(-10)}> adjustValue(10)}> ); }; ``` ### Indeterminate The `indeterminate` attribute can be used to inform the user that the operation is pending, but its status cannot currently be determined. In this state, `value` is ignored and the label, if present, will not be shown. ```html preview ``` ```jsx react import { SlProgressBar } from '@shoelace-style/shoelace/dist/react'; const App = () => ; ``` [component-metadata:sl-progress-bar]