--- productId: material-ui title: Circular, Linear progress React components components: CircularProgress, LinearProgress githubLabel: 'scope: progress' materialDesign: https://m2.material.io/components/progress-indicators githubSource: packages/mui-material/src/LinearProgress --- # Progress
Progress indicators commonly known as spinners, express an unspecified wait time or display the length of a process.
Progress indicators inform users about the status of ongoing processes, such as loading an app, submitting a form, or saving updates. - **Determinate** indicators display how long an operation will take. - **Indeterminate** indicators visualize an unspecified wait time. The animations of the components rely on CSS as much as possible to work even before the JavaScript is loaded. {{"component": "@mui/docs/ComponentLinkHeader"}} ## Circular ### Circular indeterminate {{"demo": "CircularIndeterminate.js"}} ### Circular color {{"demo": "CircularColor.js"}} ### Circular size {{"demo": "CircularSize.js"}} ### Circular determinate {{"demo": "CircularDeterminate.js"}} ### Circular track {{"demo": "CircularEnableTrack.js"}} ### Interactive integration {{"demo": "CircularIntegration.js"}} ### Circular with label {{"demo": "CircularWithValueLabel.js"}} ## Linear ### Linear indeterminate {{"demo": "LinearIndeterminate.js"}} ### Linear color {{"demo": "LinearColor.js"}} ### Linear determinate {{"demo": "LinearDeterminate.js"}} ### Linear buffer {{"demo": "LinearBuffer.js"}} ### Linear with label {{"demo": "LinearWithValueLabel.js"}} ## Non-standard ranges The progress components accept a value in the range 0 - 100. This simplifies things for screen-reader users, where these are the default min / max values. Sometimes, however, you might be working with a data source where the values fall outside this range. Here's how you can easily transform a value in any range to a scale of 0 - 100: ```jsx // MIN = Minimum expected value // MAX = Maximum expected value // Function to normalise the values (MIN / MAX could be integrated) const normalise = (value) => ((value - MIN) * 100) / (MAX - MIN); // Example component that utilizes the `normalise` function at the point of render. function Progress(props) { return (