Displays a progress bar
Note: The progress bar component automatically rounds the progress display value to the nearest character width
| 1 |
<progress value="50" max="100">50%</progress> |
| 2 |
<div is-="progress" value="25" max="100">50%</div> |
Import
@import '@webtui/css/components/progress.css';
Usage
<progress value="50" max="100">50%</progress>
<progress value="25" max="50">20/50</progress>
<div is-="progress" value="2" max="5">2/5</div>
Examples
Color
| 1 |
<progress value="50" max="100" id="red">50%</progress> |
| 2 |
<progress value="40" max="100" id="green">40%</progress> |
| 3 |
<progress value="30" max="100" id="blue">30%</progress> |
| 4 |
<progress value="20" max="100" style="--progress-value-background: orange">20%</progress> |
| 1 |
|
| 2 |
#red { |
| 3 |
--progress-value-background: red; |
| 4 |
--progress-empty-background: grey; |
| 5 |
} |
| 6 |
#green { |
| 7 |
--progress-value-background: green; |
| 8 |
--progress-empty-background: white; |
| 9 |
} |
| 10 |
#blue { |
| 11 |
--progress-value-background: blue; |
| 12 |
} |
| 13 |
|
Text content
| 1 |
<progress value="75" max="100" id="one">75%</progress> |
| 2 |
<progress value="50" max="100" id="two">50%</progress> |
| 3 |
<progress value="25" max="100" id="three">50%</progress> |
| 1 |
|
| 2 |
#one { |
| 3 |
--progress-value-background: transparent; |
| 4 |
--progress-value-color: var(--foreground0); |
| 5 |
--progress-value-content: '========================'; |
| 6 |
--progress-empty-background: transparent; |
| 7 |
--progress-empty-color: var(--foreground0); |
| 8 |
--progress-empty-content: ''; |
| 9 |
max-width: 24ch; |
| 10 |
} |
| 11 |
#two { |
| 12 |
--progress-value-background: transparent; |
| 13 |
--progress-value-color: var(--foreground0); |
| 14 |
--progress-value-content: '########################'; |
| 15 |
--progress-empty-background: transparent; |
| 16 |
--progress-empty-color: var(--foreground0); |
| 17 |
--progress-empty-content: '........................'; |
| 18 |
max-width: 24ch; |
| 19 |
} |
| 20 |
#three { |
| 21 |
--progress-value-background: transparent; |
| 22 |
--progress-value-color: var(--foreground0); |
| 23 |
--progress-value-content: '████████████████████████'; |
| 24 |
--progress-empty-background: transparent; |
| 25 |
--progress-empty-color: var(--foreground0); |
| 26 |
--progress-empty-content: ''; |
| 27 |
max-width: 24ch; |
| 28 |
} |
| 29 |
|
Hybrid
| 1 |
<progress value="25" max="100" id="one">25%</progress> |
| 2 |
<progress value="50" max="100" id="two">50%</progress> |
| 3 |
<progress value="75" max="100" id="three">75%</progress> |
| 1 |
|
| 2 |
#one { |
| 3 |
--progress-value-background: var(--background2); |
| 4 |
--progress-value-color: var(--foreground0); |
| 5 |
--progress-value-content: 'OOOOOOOOOOOOOOOOOOOOOOOO'; |
| 6 |
--progress-empty-background: var(--background1); |
| 7 |
--progress-empty-color: var(--foreground0); |
| 8 |
--progress-empty-content: '........................'; |
| 9 |
max-width: 24ch; |
| 10 |
} |
| 11 |
#two { |
| 12 |
--progress-value-background: red; |
| 13 |
--progress-value-color: var(--foreground0); |
| 14 |
--progress-value-content: '()()()()()()()()()()()()'; |
| 15 |
--progress-empty-background: transparent; |
| 16 |
--progress-empty-color: var(--foreground0); |
| 17 |
--progress-empty-content: ''; |
| 18 |
max-width: 24ch; |
| 19 |
} |
| 20 |
#three { |
| 21 |
--progress-value-background: var(--foreground2); |
| 22 |
--progress-value-color: var(--foreground0); |
| 23 |
--progress-value-content: '>>>>>>>>>>>>>>>>>>>>>>>>'; |
| 24 |
--progress-empty-background: var(--background2); |
| 25 |
--progress-empty-color: var(--foreground0); |
| 26 |
--progress-empty-content: '------------------------'; |
| 27 |
max-width: 24ch; |
| 28 |
} |
| 29 |
|
Reference
Properties
--progress-value-background: The background color of the progress value bar
--progress-value-color: The text color of the progress value bar
--progress-value-content: The text content of the progress value bar
--progress-empty-background: The background color of the remaining empty space in the progress bar
--progress-empty-color: The text color of the remaining empty space in the progress bar
--progress-empty-content: The text content of the remaining empty space in the progress bar
Important: Since CSS doesn’t have a way to arbitrarily repeat text a number of times, you will have to repeat a character an arbitrary amount of times for --progress-value-content or --progress-empty-content
progress {
--progress-value-background: var(--background2);
--progress-value-color: var(--foreground0);
--progress-value-content: '[#######################';
--progress-empty-background: var(--background1);
--progress-empty-color: var(--foreground0);
--progress-empty-content: '.......................]';
}
Extending
To extend the Progress stylesheet, define a CSS rule on the components layer
@layer components {
progress,
[is-~='progress'] {
&[variant='green'] {
/* ... */
}
/* ... */
}
}
Scope
[is-~='progress'] {
/* ... */
}