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

416 lines
11 KiB
Text

/*!
* # Fomantic-UI - Loader
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'loader';
@import (multiple) '../../theme.config';
/*******************************
Loader
*******************************/
/* Standard Size */
.ui.loader {
display: none;
position: absolute;
top: @loaderTopOffset;
left: @loaderLeftOffset;
margin: 0;
text-align: center;
z-index: 1000;
transform: translateX(-50%) translateY(-50%);
}
/* Static Shape */
.ui.loader:before {
position: absolute;
content: '';
top: 0;
left: 50%;
width: 100%;
height: 100%;
border-radius: @circularRadius;
border: @loaderLineWidth solid @loaderFillColor;
}
/* Active Shape */
.ui.loader:after {
position: absolute;
content: '';
top: 0;
left: 50%;
width: 100%;
height: 100%;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @shapeBorderColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
}
& when (@variationLoaderSpeeds) {
/* Speeds */
.ui.fast.loading.loading:after,
.ui.fast.loading.loading .input > i.icon:after,
.ui.fast.loading.loading > i.icon:after,
.ui.fast.loader:after {
animation-duration: @loaderSpeedFast;
}
.ui.slow.loading.loading:after,
.ui.slow.loading.loading .input > i.icon:after,
.ui.slow.loading.loading > i.icon:after,
.ui.slow.loader:after {
animation-duration: @loaderSpeedSlow;
}
}
/* Active Animation */
@keyframes loader {
100% {
transform: rotate(360deg);
}
}
/*-------------------
Coupling
--------------------*/
/* Show inside active dimmer */
.ui.dimmer > .loader {
display: block;
}
/* Black Dimmer */
.ui.dimmer > .ui.loader {
color: @invertedLoaderTextColor;
}
.ui.dimmer > .ui.loader:not(.elastic):before {
border-color: @invertedLoaderFillColor;
}
/* White Dimmer (Inverted) */
.ui.inverted.dimmer > .ui.loader {
color: @loaderTextColor;
}
.ui.inverted.dimmer > .ui.loader:not(.elastic):before {
border-color: @loaderFillColor;
}
/*******************************
Types
*******************************/
& when (@variationLoaderText) {
/*-------------------
Text
--------------------*/
.ui.ui.ui.ui.text.loader {
width: auto;
height: auto;
text-align: center;
font-style: normal;
}
}
/*******************************
States
*******************************/
& when (@variationLoaderIndeterminate) {
.ui.indeterminate.loader:after {
animation-direction: @indeterminateDirection;
animation-duration: @indeterminateSpeed;
}
}
.ui.loader.active,
.ui.loader.visible {
display: block;
}
.ui.loader.disabled,
.ui.loader.hidden {
display: none;
}
/*******************************
Variations
*******************************/
/*-------------------
Sizes
--------------------*/
.ui.loader {
width: @medium;
height: @medium;
font-size: @mediumFontSize;
}
.ui.loader:before,
.ui.loader:after {
width: @medium;
height: @medium;
margin: @mediumOffset;
}
& when (@variationLoaderText) {
.ui.text.loader {
min-width: @medium;
padding-top: (@medium + @textDistance);
}
}
& when not (@variationLoaderSizes = false) {
each(@variationLoaderSizes, {
@o: @{value}Offset;
@f: @{value}FontSize;
@s: @@value;
.ui.@{value}.loader {
width: @s;
height: @s;
font-size: @@f;
}
.ui.@{value}.loader:before,
.ui.@{value}.loader:after {
width: @s;
height: @s;
margin: @@o;
}
& when (@variationLoaderText) {
.ui.@{value}.text.loader {
min-width: @s;
padding-top: (@s + @textDistance);
}
}
})
}
/*-------------------
Colors
--------------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
.ui.@{color}.elastic.loader.loader:before,
.ui.@{color}.basic.elastic.loading.button:before,
.ui.@{color}.basic.elastic.loading.button:after,
.ui.@{color}.elastic.loading.loading.loading:not(.segment):before,
.ui.@{color}.elastic.loading.loading.loading .input > i.icon:before,
.ui.@{color}.elastic.loading.loading.loading.loading > i.icon:before,
.ui.@{color}.loading.loading.loading.loading:not(.usual):not(.button):after,
.ui.@{color}.loading.loading.loading.loading .input > i.icon:after,
.ui.@{color}.loading.loading.loading.loading > i.icon:after,
.ui.@{color}.loader.loader.loader:after {
color: @c;
}
.ui.inverted.@{color}.elastic.loader:before,
.ui.inverted.@{color}.elastic.loading.loading.loading:not(.segment):before,
.ui.inverted.@{color}.elastic.loading.loading.loading .input > i.icon:before,
.ui.inverted.@{color}.elastic.loading.loading.loading > i.icon:before,
.ui.inverted.@{color}.loading.loading.loading.loading:not(.usual):after,
.ui.inverted.@{color}.loading.loading.loading.loading .input > i.icon:after,
.ui.inverted.@{color}.loading.loading.loading.loading > i.icon:after,
.ui.inverted.@{color}.loader.loader.loader:after {
color: @l;
}
})
.ui.elastic.loader.loader:before,
.ui.elastic.loading.loading.loading:before,
.ui.elastic.loading.loading.loading .input > i.icon:before,
.ui.elastic.loading.loading.loading > i.icon:before,
.ui.loading.loading.loading.loading:not(.usual):after,
.ui.loading.loading.loading.loading .input > i.icon:after,
.ui.loading.loading.loading.loading > i.icon:after,
.ui.loader.loader.loader:after {
border-color: currentColor;
}
.ui.elastic.loading.loading.loading.loading.button:not(.inverted):not(.basic):before {
color: @invertedLoaderLineColor;
}
.ui.elastic.basic.loading.button:before,
.ui.elastic.basic.loading.button:after {
color: @loaderLineColor;
}
.ui.double.loading.loading.loading.loading.button:after {
border-bottom-color: currentColor;
}
& when (@variationLoaderInline) {
/*-------------------
Inline
--------------------*/
.ui.inline.loader {
position: relative;
vertical-align: @inlineVerticalAlign;
margin: @inlineMargin;
left: 0;
top: 0;
transform: none;
}
.ui.inline.loader.active,
.ui.inline.loader.visible {
display: inline-block;
}
/* Centered Inline */
.ui.centered.inline.loader.active,
.ui.centered.inline.loader.visible {
display: block;
margin-left: auto;
margin-right: auto;
}
}
.ui.loading.loading.loading.loading.loading.loading:after,
.ui.loading.loading.loading.loading.loading.loading .input > i.icon:after,
.ui.loading.loading.loading.loading.loading.loading > i.icon:after,
.ui.loader.loader.loader.loader.loader:after {
border-left-color:transparent;
border-right-color:transparent;
}
.ui.loading.loading.loading.loading.loading.loading.loading:not(.double):after,
.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) .input > i.icon:after,
.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) > i.icon:after,
.ui.loader.loader.loader.loader.loader.loader:not(.double):after {
border-bottom-color: transparent;
}
.ui.loading.loading.loading.loading.loading.loading.segment:after,
.ui.loading.loading.loading.loading.loading.loading.form:after {
border-left-color:@loaderFillColor;
border-right-color:@loaderFillColor;
}
.ui.loading.loading.loading.loading.loading.loading.segment:not(.double):after,
.ui.loading.loading.loading.loading.loading.loading.form:not(.double):after {
border-bottom-color: @loaderFillColor;
}
& when (@variationLoaderElastic) {
/*-------------------
Elastic
--------------------*/
.ui.dimmer > .ui.elastic.loader {
color: @invertedLoaderLineColor;
}
.ui.inverted.dimmer > .ui.elastic.loader {
color: @loaderLineColor;
}
.ui.elastic.loading.loading:not(.form):not(.segment):after,
.ui.elastic.loading.loading .input > i.icon:after,
.ui.elastic.loading.loading > i.icon:after,
.ui.elastic.loader.loader:after {
animation: loader 1s infinite cubic-bezier(.27, 1.05, .92, .61);
animation-delay: 0.3s;
}
.ui.elastic.loading.loading.loading:not(.form):not(.segment):before,
.ui.elastic.loading.loading.loading .input > i.icon:before,
.ui.elastic.loading.loading.loading > i.icon:before,
.ui.elastic.loader.loader:before {
animation: elastic-loader 1s infinite cubic-bezier(.27, 1.05, .92, .61);
-moz-animation: currentcolor-elastic-loader 1s infinite cubic-bezier(.27, 1.05, .92, .61);
border-right-color: transparent;
}
& when (@variationLoaderInline) {
.ui.elastic.inline.loader:empty {
animation: loader 8s infinite linear;
}
}
& when (@variationLoaderSpeeds) {
.ui.slow.elastic.loading.loading:not(.form):not(.segment):after,
.ui.slow.elastic.loading.loading .input > i.icon:after,
.ui.slow.elastic.loading.loading > i.icon:after,
.ui.slow.elastic.loader.loader:after {
animation-duration: 1.5s;
animation-delay: 0.45s;
}
.ui.slow.elastic.loading.loading.loading:not(.form):not(.segment):before,
.ui.slow.elastic.loading.loading.loading .input > i.icon:before,
.ui.slow.elastic.loading.loading.loading > i.icon:before,
.ui.slow.elastic.loader.loader:before {
animation-duration: 1.5s;
}
.ui.fast.elastic.loading.loading:not(.form):not(.segment):after,
.ui.fast.elastic.loading.loading .input > i.icon:after,
.ui.fast.elastic.loading.loading > i.icon:after,
.ui.fast.elastic.loader.loader:after {
animation-duration: 0.66s;
animation-delay: 0.20s;
}
.ui.fast.elastic.loading.loading.loading:not(.form):not(.segment):before,
.ui.fast.elastic.loading.loading.loading .input > i.icon:before,
.ui.fast.elastic.loading.loading.loading > i.icon:before,
.ui.fast.elastic.loader.loader:before {
animation-duration: 0.66s;
}
}
@keyframes elastic-loader {
0%, 1% {
border-left-color: transparent;
border-bottom-color: transparent
}
1.1%, 50% {
border-left-color: inherit;
}
10%, 35.1%{
border-bottom-color: transparent;
}
10.1%, 35%{
border-bottom-color: inherit;
}
50.1%{
border-left-color: transparent;
}
100% {
border-left-color: transparent;
border-bottom-color: transparent;
transform: rotate(360deg);
}
}
@keyframes currentcolor-elastic-loader {
0%, 1% {
border-left-color: transparent;
border-bottom-color: transparent
}
1.1%, 50% {
border-left-color: currentColor;
}
10%, 35.1%{
border-bottom-color: transparent;
}
10.1%, 35%{
border-bottom-color: currentColor;
}
50.1%{
border-left-color: transparent;
}
100% {
border-left-color: transparent;
border-bottom-color: transparent;
transform: rotate(360deg);
}
}
}
.loadUIOverrides();