Progress
Source
Example
Progress
html
<progress class="x-progress" value="25" max="100"></progress>Meter
html
<meter class="x-progress accent-main" value="50" min="0" max="100" low="33" optimum="80" high="66"></meter>More examples can be found in the Winduum docs.
Example CSS
css
@import "winduum/src/components/progress/props/default.css" layer(theme);
@import "winduum/src/components/progress/default.css" layer(utilities);
@import "winduum/src/components/progress/keyframes/default.css" layer(utilities);
@import "winduum/src/components/progress/lg.css" layer(utilities);
@import "winduum/src/components/progress/meter.css" layer(utilities);
@import "winduum/src/components/progress/sm.css" layer(utilities);
/* Example customization */
@layer theme {
:root, :host {
--x-progress-block-size: 2.5rem;
--x-progress-border-radius: var(--radius-md);
}
}Winduum CSS Code
winduum/src/components/progress/props/default.css
css
:root, :host {
--x-progress-block-size: 1rem;
--x-progress-border-radius: var(--radius-full);
}winduum/src/components/progress/default.css
css
.x-progress {
inline-size: var(--x-progress-inline-size, 100%);
block-size: var(--x-progress-block-size);
border-radius: var(--x-progress-border-radius);
background-color:
color-mix(
in var(--x-progress-background-color-space, srgb),
var(--x-progress-background-color, var(--color-accent)) var(--x-progress-background-color-opacity, 10%),
var(--x-progress-background-color-mix, var(--color-body))
);
position: relative;
overflow: clip;
&::-moz-progress-bar {
background-color: var(--x-progress-bar-background-color, var(--color-accent));
transition: all var(--x-progress-transition-duration, 0.3s) var(--ease-in-out);
border-radius: inherit;
}
&::-webkit-progress-bar {
background-color: transparent;
border-radius: inherit;
}
&::-webkit-progress-inner-element {
border-radius: inherit;
}
&::-webkit-progress-value {
background-color: var(--x-progress-bar-background-color, var(--color-accent));
transition: all var(--x-progress-transition-duration, 0.3s) var(--ease-in-out);
border-radius: inherit;
}
&:indeterminate {
animation: var(--x-progress-indeterminate-animation-duration, 1s) var(--x-progress-indeterminate-animation-timing-function, linear) infinite move-indeterminate;
background-image: linear-gradient(to right, var(--color-accent) 33.33%, transparent 0%);
background-position: top left;
background-repeat: no-repeat;
background-size: 150%;
&::-moz-progress-bar {
background-color: transparent;
}
}
}winduum/src/components/progress/keyframes/default.css
css
@keyframes move-indeterminate {
from {
background-position: 200% 0;
}
to {
background-position: -200% 0;
}
}winduum/src/components/progress/lg.css
css
.x-progress:is(.lg) {
--x-progress-block-size: 1.5rem;
}winduum/src/components/progress/meter.css
css
.x-progress {
&::-webkit-meter-bar {
border: 0;
background: transparent;
border-radius: inherit;
}
&::-webkit-meter-inner-element {
position: relative;
display: block;
border-radius: inherit;
}
&::-webkit-meter-optimum-value {
background: var(--x-progress-meter-success-background, var(--color-success));
border-radius: inherit;
}
&::-webkit-meter-suboptimum-value {
background: var(--x-progress-meter-warning-background, var(--color-warning));
border-radius: inherit;
}
&::-webkit-meter-even-less-good-value {
background: var(--x-progress-meter-error-background, var(--color-error));
border-radius: inherit;
}
&:-moz-meter-optimum::-moz-meter-bar {
background: var(--x-progress-meter-success-background, var(--color-success));
border-radius: inherit;
}
&:-moz-meter-sub-optimum::-moz-meter-bar {
background: var(--x-progress-meter-warning-background, var(--color-warning));
border-radius: inherit;
}
&:-moz-meter-sub-sub-optimum::-moz-meter-bar {
background: var(--x-progress-meter-error-background, var(--color-error));
border-radius: inherit;
}
}winduum/src/components/progress/sm.css
css
.x-progress:is(.sm) {
--x-progress-block-size: 0.5rem;
}