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'] {
/* ... */
}