Spaces:
Sleeping
Sleeping
| @use "../utilities/css-variables" as cv; | |
| @use "../utilities/derived-variables" as dv; | |
| @use "../utilities/initial-variables" as iv; | |
| @use "../utilities/extends"; | |
| @use "../utilities/mixins" as mx; | |
| $progress-bar-background-color: cv.getVar("border-weak") !default; | |
| $progress-value-background-color: cv.getVar("text") !default; | |
| $progress-border-radius: cv.getVar("radius-rounded") !default; | |
| $progress-indeterminate-duration: 1.5s !default; | |
| $progress-colors: dv.$colors !default; | |
| .#{iv.$class-prefix}progress { | |
| @include cv.register-vars( | |
| ( | |
| "progress-border-radius": #{$progress-border-radius}, | |
| "progress-bar-background-color": #{$progress-bar-background-color}, | |
| "progress-value-background-color": #{$progress-value-background-color}, | |
| "progress-indeterminate-duration": #{$progress-indeterminate-duration}, | |
| ) | |
| ); | |
| } | |
| .#{iv.$class-prefix}progress { | |
| @extend %block; | |
| appearance: none; | |
| border: none; | |
| border-radius: cv.getVar("progress-border-radius"); | |
| display: block; | |
| height: cv.getVar("size-normal"); | |
| overflow: hidden; | |
| padding: 0; | |
| width: 100%; | |
| &::-webkit-progress-bar { | |
| background-color: cv.getVar("progress-bar-background-color"); | |
| } | |
| &::-webkit-progress-value { | |
| background-color: cv.getVar("progress-value-background-color"); | |
| } | |
| &::-moz-progress-bar { | |
| background-color: cv.getVar("progress-value-background-color"); | |
| } | |
| &::-ms-fill { | |
| background-color: cv.getVar("progress-value-background-color"); | |
| border: none; | |
| } | |
| // Colors | |
| @each $name, $pair in $progress-colors { | |
| &.#{iv.$class-prefix}is-#{$name} { | |
| @include cv.register-var( | |
| "progress-value-background-color", | |
| #{cv.getVar($name)} | |
| ); | |
| } | |
| } | |
| &:indeterminate { | |
| animation-duration: cv.getVar("progress-indeterminate-duration"); | |
| animation-iteration-count: infinite; | |
| animation-name: moveIndeterminate; | |
| animation-timing-function: linear; | |
| background-color: cv.getVar("progress-bar-background-color"); | |
| background-image: linear-gradient( | |
| to right, | |
| cv.getVar("progress-value-background-color") 30%, | |
| cv.getVar("progress-bar-background-color") 30% | |
| ); | |
| background-position: top left; | |
| background-repeat: no-repeat; | |
| background-size: 150% 150%; | |
| &::-webkit-progress-bar { | |
| background-color: transparent; | |
| } | |
| &::-moz-progress-bar { | |
| background-color: transparent; | |
| } | |
| &::-ms-fill { | |
| animation-name: none; | |
| } | |
| } | |
| // Sizes | |
| &.#{iv.$class-prefix}is-small { | |
| height: cv.getVar("size-small"); | |
| } | |
| &.#{iv.$class-prefix}is-medium { | |
| height: cv.getVar("size-medium"); | |
| } | |
| &.#{iv.$class-prefix}is-large { | |
| height: cv.getVar("size-large"); | |
| } | |
| } | |
| @keyframes moveIndeterminate { | |
| from { | |
| background-position: 200% 0; | |
| } | |
| to { | |
| background-position: (-200%) 0; | |
| } | |
| } | |