legendary-doc-site/assets/semantic-ui/definitions/modules/progress.less
2020-07-03 18:22:25 -05:00

618 lines
17 KiB
Text

/*!
* # Fomantic-UI - Progress Bar
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'progress';
@import (multiple) '../../theme.config';
/*******************************
Progress
*******************************/
.ui.progress {
position: relative;
display: block;
max-width: 100%;
border: @border;
margin: @margin;
box-shadow: @boxShadow;
background: @background;
padding: @padding;
border-radius: @borderRadius;
}
.ui.progress:first-child {
margin: @firstMargin;
}
.ui.progress:last-child {
margin: @lastMargin;
}
/*******************************
Content
*******************************/
/* Activity Bar */
.ui.progress .bar {
display: block;
line-height: 1;
position: @barPosition;
width: @barInitialWidth;
min-width: @barMinWidth;
background: @barBackground;
border-radius: @barBorderRadius;
transition: @barTransition;
overflow: hidden;
}
.ui.ui.ui.progress:not([data-percent]):not(.indeterminate) .bar,
.ui.ui.ui.progress[data-percent="0"]:not(.indeterminate) .bar {
background:transparent;
}
.ui.progress[data-percent="0"] .bar .progress {
color: @textColor;
}
& when (@variationProgressInverted) {
.ui.inverted.progress[data-percent="0"] .bar .progress {
color: @invertedTextColor;
}
}
/* Percent Complete */
.ui.progress .bar > .progress {
white-space: nowrap;
position: @progressPosition;
width: @progressWidth;
font-size: @progressSize;
top: @progressTop;
right: @progressRight;
left: @progressLeft;
bottom: @progressBottom;
color: @progressColor;
text-shadow: @progressTextShadow;
margin-top: @progressOffset;
font-weight: @progressFontWeight;
text-align: @progressTextAlign;
}
/* Label */
.ui.progress > .label {
position: absolute;
width: @labelWidth;
font-size: @labelSize;
top: @labelTop;
right: @labelRight;
left: @labelLeft;
bottom: @labelBottom;
color: @labelColor;
font-weight: @labelFontWeight;
text-shadow: @labelTextShadow;
margin-top: @labelOffset;
text-align: @labelTextAlign;
transition: @labelTransition;
}
/*******************************
Types
*******************************/
& when (@variationProgressIndicating) {
/* Indicating */
.ui.indicating.progress[data-percent^="1"] .bar,
.ui.indicating.progress[data-percent^="2"] .bar {
background-color: @indicatingFirstColor;
}
.ui.indicating.progress[data-percent^="3"] .bar {
background-color: @indicatingSecondColor;
}
.ui.indicating.progress[data-percent^="4"] .bar,
.ui.indicating.progress[data-percent^="5"] .bar {
background-color: @indicatingThirdColor;
}
.ui.indicating.progress[data-percent^="6"] .bar {
background-color: @indicatingFourthColor;
}
.ui.indicating.progress[data-percent^="7"] .bar,
.ui.indicating.progress[data-percent^="8"] .bar {
background-color: @indicatingFifthColor;
}
.ui.indicating.progress[data-percent^="9"] .bar,
.ui.indicating.progress[data-percent^="100"] .bar {
background-color: @indicatingSixthColor;
}
/* Indicating Label */
.ui.indicating.progress[data-percent^="1"] .label,
.ui.indicating.progress[data-percent^="2"] .label {
color: @indicatingFirstLabelColor;
}
.ui.indicating.progress[data-percent^="3"] .label {
color: @indicatingSecondLabelColor;
}
.ui.indicating.progress[data-percent^="4"] .label,
.ui.indicating.progress[data-percent^="5"] .label {
color: @indicatingThirdLabelColor;
}
.ui.indicating.progress[data-percent^="6"] .label {
color: @indicatingFourthLabelColor;
}
.ui.indicating.progress[data-percent^="7"] .label,
.ui.indicating.progress[data-percent^="8"] .label {
color: @indicatingFifthLabelColor;
}
.ui.indicating.progress[data-percent^="9"] .label,
.ui.indicating.progress[data-percent^="100"] .label {
color: @indicatingSixthLabelColor;
}
& when (@variationProgressInverted) {
/* Inverted Indicating Label */
.ui.inverted.indicating.progress[data-percent^="1"] .label,
.ui.inverted.indicating.progress[data-percent^="2"] .label {
color: @invertedIndicatingFirstLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="3"] .label {
color: @invertedIndicatingSecondLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="4"] .label,
.ui.inverted.indicating.progress[data-percent^="5"] .label {
color: @invertedIndicatingThirdLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="6"] .label {
color: @invertedIndicatingFourthLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="7"] .label,
.ui.inverted.indicating.progress[data-percent^="8"] .label {
color: @invertedIndicatingFifthLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="9"] .label,
.ui.inverted.indicating.progress[data-percent^="100"] .label {
color: @invertedIndicatingSixthLabelColor;
}
}
/* Single Digits */
.ui.indicating.progress[data-percent="1"] .bar, .ui.indicating.progress[data-percent^="1."] .bar,
.ui.indicating.progress[data-percent="2"] .bar, .ui.indicating.progress[data-percent^="2."] .bar,
.ui.indicating.progress[data-percent="3"] .bar, .ui.indicating.progress[data-percent^="3."] .bar,
.ui.indicating.progress[data-percent="4"] .bar, .ui.indicating.progress[data-percent^="4."] .bar,
.ui.indicating.progress[data-percent="5"] .bar, .ui.indicating.progress[data-percent^="5."] .bar,
.ui.indicating.progress[data-percent="6"] .bar, .ui.indicating.progress[data-percent^="6."] .bar,
.ui.indicating.progress[data-percent="7"] .bar, .ui.indicating.progress[data-percent^="7."] .bar,
.ui.indicating.progress[data-percent="8"] .bar, .ui.indicating.progress[data-percent^="8."] .bar,
.ui.indicating.progress[data-percent="9"] .bar, .ui.indicating.progress[data-percent^="9."] .bar {
background-color: @indicatingFirstColor;
}
.ui.indicating.progress[data-percent="0"] .label, .ui.indicating.progress[data-percent^="0."] .label,
.ui.indicating.progress[data-percent="1"] .label, .ui.indicating.progress[data-percent^="1."] .label,
.ui.indicating.progress[data-percent="2"] .label, .ui.indicating.progress[data-percent^="2."] .label,
.ui.indicating.progress[data-percent="3"] .label, .ui.indicating.progress[data-percent^="3."] .label,
.ui.indicating.progress[data-percent="4"] .label, .ui.indicating.progress[data-percent^="4."] .label,
.ui.indicating.progress[data-percent="5"] .label, .ui.indicating.progress[data-percent^="5."] .label,
.ui.indicating.progress[data-percent="6"] .label, .ui.indicating.progress[data-percent^="6."] .label,
.ui.indicating.progress[data-percent="7"] .label, .ui.indicating.progress[data-percent^="7."] .label,
.ui.indicating.progress[data-percent="8"] .label, .ui.indicating.progress[data-percent^="8."] .label,
.ui.indicating.progress[data-percent="9"] .label, .ui.indicating.progress[data-percent^="9."] .label {
color: @indicatingFirstLabelColor;
}
& when (@variationProgressInverted) {
.ui.inverted.indicating.progress[data-percent="0"] .label, .ui.inverted.indicating.progress[data-percent^="0."] .label,
.ui.inverted.indicating.progress[data-percent="1"] .label, .ui.inverted.indicating.progress[data-percent^="1."] .label,
.ui.inverted.indicating.progress[data-percent="2"] .label, .ui.inverted.indicating.progress[data-percent^="2."] .label,
.ui.inverted.indicating.progress[data-percent="3"] .label, .ui.inverted.indicating.progress[data-percent^="3."] .label,
.ui.inverted.indicating.progress[data-percent="4"] .label, .ui.inverted.indicating.progress[data-percent^="4."] .label,
.ui.inverted.indicating.progress[data-percent="5"] .label, .ui.inverted.indicating.progress[data-percent^="5."] .label,
.ui.inverted.indicating.progress[data-percent="6"] .label, .ui.inverted.indicating.progress[data-percent^="6."] .label,
.ui.inverted.indicating.progress[data-percent="7"] .label, .ui.inverted.indicating.progress[data-percent^="7."] .label,
.ui.inverted.indicating.progress[data-percent="8"] .label, .ui.inverted.indicating.progress[data-percent^="8."] .label,
.ui.inverted.indicating.progress[data-percent="9"] .label, .ui.inverted.indicating.progress[data-percent^="9."] .label {
color: @invertedIndicatingFirstLabelColor;
}
}
/* Indicating Success */
.ui.ui.indicating.progress.success .label {
color: @successHeaderColor;
}
}
& when (@variationProgressMultiple) {
/* Multiple */
.ui.multiple.progress {
display: flex;
}
}
/*******************************
States
*******************************/
& when (@variationProgressSuccess) {
/*--------------
Success
---------------*/
.ui.ui.progress.success .bar {
background-color: @successColor;
}
.ui.ui.progress.success .bar,
.ui.ui.progress.success .bar::after {
animation: none;
}
.ui.progress.success > .label {
color: @successHeaderColor;
}
}
& when (@variationProgressWarning) {
/*--------------
Warning
---------------*/
.ui.ui.progress.warning .bar {
background-color: @warningColor;
}
.ui.ui.progress.warning .bar,
.ui.ui.progress.warning .bar::after {
animation: none;
}
.ui.progress.warning > .label {
color: @warningHeaderColor;
}
}
& when (@variationProgressError) {
/*--------------
Error
---------------*/
.ui.ui.progress.error .bar {
background-color: @errorColor;
}
.ui.ui.progress.error .bar,
.ui.ui.progress.error .bar::after {
animation: none;
}
.ui.progress.error > .label {
color: @errorHeaderColor;
}
}
& when (@variationProgressActive) {
/*--------------
Active
---------------*/
.ui.active.progress .bar {
position: relative;
min-width: @activeMinWidth;
}
.ui.active.progress .bar::after {
content: '';
opacity: 0;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: @activePulseColor;
border-radius: @barBorderRadius;
animation: progress-active @activePulseDuration @defaultEasing infinite;
transform-origin: left;
}
@keyframes progress-active {
0% {
opacity: @activePulseMaxOpacity;
transform: scale(0, 1);
}
100% {
opacity: 0;
transform: scale(1);
}
}
}
& when (@variationProgressDisabled) {
/*--------------
Disabled
---------------*/
.ui.disabled.progress {
opacity: 0.35;
}
.ui.ui.disabled.progress .bar,
.ui.ui.disabled.progress .bar::after {
animation: none;
}
}
/*******************************
Variations
*******************************/
& when (@variationProgressInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.progress {
background: @invertedBackground;
border: @invertedBorder;
}
.ui.inverted.progress .bar {
background: @invertedBarBackground;
}
.ui.inverted.progress .bar > .progress {
color: @invertedProgressColor;
}
.ui.inverted.progress > .label {
color: @invertedLabelColor;
}
& when (@variationProgressSuccess) {
.ui.inverted.progress.success > .label {
color: @successColor;
}
}
& when (@variationProgressWarning) {
.ui.inverted.progress.warning > .label {
color: @warningColor;
}
}
& when (@variationProgressError) {
.ui.inverted.progress.error > .label {
color: @errorColor;
}
}
}
& when (@variationProgressAttached) {
/*--------------
Attached
---------------*/
/* bottom attached */
.ui.progress.attached {
background: @attachedBackground;
position: relative;
border: none;
margin: 0;
}
.ui.progress.attached,
.ui.progress.attached .bar {
display: block;
height: @attachedHeight;
padding: 0;
overflow: hidden;
border-radius: 0 0 @attachedBorderRadius @attachedBorderRadius;
}
.ui.progress.attached .bar {
border-radius: 0;
}
/* top attached */
.ui.progress.top.attached,
.ui.progress.top.attached .bar {
top: 0;
border-radius: @attachedBorderRadius @attachedBorderRadius 0 0;
}
.ui.progress.top.attached .bar {
border-radius: 0;
}
/* Coupling */
.ui.segment > .ui.attached.progress,
.ui.card > .ui.attached.progress {
position: absolute;
top: auto;
left: 0;
bottom: 100%;
width: 100%;
}
.ui.segment > .ui.bottom.attached.progress,
.ui.card > .ui.bottom.attached.progress {
top: 100%;
bottom: auto;
}
}
/*--------------
Colors
---------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
.ui.indeterminate.@{color}.progress .bar::before,
.ui.@{color}.progress .bar,
.ui.progress .@{color}.bar {
background-color: @c;
}
& when (@variationProgressInverted) {
.ui.inverted.indeterminate.@{color}.progress .bar::before,
.ui.@{color}.inverted.progress .bar,
.ui.inverted.progress .@{color}.bar {
background-color: @l;
}
}
})
/*--------------
Sizes
---------------*/
.ui.progress {
font-size: @medium;
}
.ui.progress .bar {
height: @barHeight;
}
& when not (@variationProgressSizes = false) {
each(@variationProgressSizes, {
@h: @{value}BarHeight;
@s: @@value;
.ui.@{value}.progress {
font-size: @s;
}
.ui.@{value}.progress .bar {
height: @@h;
}
})
}
& when (@variationProgressIndeterminate) {
/*---------------
Indeterminate
----------------*/
.ui.indeterminate.progress .bar {
width: 100%;
}
.ui.indeterminate.progress .bar .progress,
.ui.progress .bar .centered.progress {
text-align: center;
position: relative;
}
.ui.indeterminate.progress .bar::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
border-radius: @barBorderRadius;
animation: progress-pulsating @indeterminatePulseDuration @defaultEasing infinite;
transform-origin: center;
width: 100%;
}
& when (@variationProgressSpeeds) {
.ui.slow.indeterminate.progress .bar::before {
animation-duration: @indeterminatePulseDurationSlow;
}
.ui.fast.indeterminate.progress .bar::before {
animation-duration: @indeterminatePulseDurationFast;
}
}
& when (@variationProgressSwinging) {
.ui.swinging.indeterminate.progress .bar::before {
transform-origin: left;
animation-name: progress-swinging;
}
}
& when (@variationProgressSliding) {
.ui.sliding.indeterminate.progress .bar::before {
transform-origin: left;
animation-name: progress-sliding;
}
}
& when (@variationProgressFilling) {
.ui.filling.indeterminate.progress .bar::before {
animation-name: progress-filling;
}
}
.ui.indeterminate.progress:not(.sliding):not(.filling):not(.swinging) .bar::before {
background: @indeterminatePulseColor;
}
& when (@variationProgressSliding) or (@variationProgressSwinging) or (@variationProgressFilling) {
.ui.sliding.indeterminate.progress .bar,
.ui.swinging.indeterminate.progress .bar,
.ui.filling.indeterminate.progress .bar {
background: @background;
}
& when (@variationProgressSliding) or (@variationProgressSwinging) {
.ui.sliding.indeterminate.progress .bar .progress,
.ui.swinging.indeterminate.progress .bar .progress {
color: @invertedProgressColor;
}
}
& when (@variationProgressInverted) {
.ui.inverted.sliding.indeterminate.progress .bar,
.ui.inverted.swinging.indeterminate.progress .bar,
.ui.inverted.filling.indeterminate.progress .bar {
background: @invertedBackground;
}
& when (@variationProgressSliding) or (@variationProgressSwinging) {
.ui.inverted.sliding.indeterminate.progress .bar .progress,
.ui.inverted.swinging.indeterminate.progress .bar .progress {
color: @progressColor;
}
}
}
& when (@variationProgressSwinging) {
@keyframes progress-swinging {
0%, 100% {
width:10%;
left:-25%;
}
25%, 65% {
width:70%;
}
50% {
width: 10%;
left:100%;
}
}
}
& when (@variationProgressSliding) {
@keyframes progress-sliding {
0% {
width:10%;
left:-25%;
}
50% {
width:70%;
}
100% {
width:10%;
left:100%;
}
}
}
& when (@variationProgressFilling) {
@keyframes progress-filling {
0% {
transform: scale(0,1);
}
80% {
transform: scale(1);
opacity:1;
}
100% {
opacity:0;
}
}
}
}
@keyframes progress-pulsating {
0% {
transform: scale(0,1);
opacity:0.7;
}
100% {
transform: scale(1);
opacity:0;
}
}
}
.loadUIOverrides();