Skip to content

<progress> - The Progress Element

Form Control HTML5

The progress element represents the completion progress of a task, such as file uploads, downloads, installations, or any process moving toward completion.

Result
<!-- Determinate progress (known completion) -->
<progress value="50" max="100">50%</progress>
<!-- Indeterminate progress (unknown completion) -->
<progress>Loading...</progress>

The text content serves as a fallback for browsers that don’t support <progress>.

AttributeDescriptionExample
valueCurrent progress valuevalue="75"
maxMaximum value (default: 1)max="100"
Result
Result
Result
Result
Result
Result
Result
Result
Result
Result
Result
Result
Result
<!-- Moving toward 100% completion -->
<progress value="60" max="100">60%</progress>

Use for: File uploads/downloads, installation progress, task completion, loading indicators, or any process moving toward completion.

Result
Result

The text content serves as a fallback and is announced by screen readers.

Result
Result
Result
// Update every 100ms for smooth progress
setInterval(() => {
progress += 1;
progressBar.value = progress;
}, 100);
<p>Uploading report.pdf (2.5 MB)</p>
<progress value="50" max="100">50%</progress>
<p>1.25 MB / 2.5 MB (50%)</p>
Result
BrowserVersionNotes
Chrome8+Full support
Firefox16+Full support
Safari6+Full support
Edge12+Full support
IE10+Partial support