diff --git a/dist/shoelace.css b/dist/shoelace.css index fef54ea12..d53a5c96f 100644 --- a/dist/shoelace.css +++ b/dist/shoelace.css @@ -20,7 +20,7 @@ /*! Forms */fieldset{border:1px solid #ddd;border-radius:.25rem;padding:1rem 1.5rem;margin-bottom:1rem}fieldset legend{font-weight:700;padding:0 .25rem}label{display:inline-block;margin-bottom:.25rem}label+label{margin-left:1rem}input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;font-family:inherit;font-size:1rem;font-weight:inherit;color:#111;border:1px solid #ddd;border-radius:.25rem;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(0,0,0,.05);background-color:#fff;height:2rem;line-height:2rem;vertical-align:middle;display:block;padding-left:.5rem;padding-right:.5rem;margin:0;-webkit-transition:border-color .1s,background-color .1s,color .1s;transition:border-color .1s,background-color .1s,color .1s;white-space:nowrap;-moz-appearance:none;-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{outline:none;border-color:#0074d9}select{position:relative;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='41' height='26' viewBox='0 0 41 26' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M0 5.382l19.983 19.983L40.14 5.208 34.932 0 19.869 15.062 4.84.032z' fill-rule='evenodd'/%3E%3C/svg%3E");background-position:right .4rem center;background-repeat:no-repeat;background-size:.75rem;padding-top:0;padding-bottom:0;padding-right:1.5rem}textarea{height:auto;resize:vertical;line-height:1.5;white-space:normal}input[type=color]{padding:.5rem}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:.25rem}input[type=checkbox],input[type=radio]{padding:0}input[disabled]{opacity:.5;cursor:not-allowed}input[readonly]{background-color:#f2f2f2}input[type=color].input-small,input[type=date].input-small,input[type=datetime-local].input-small,input[type=email].input-small,input[type=month].input-small,input[type=number].input-small,input[type=password].input-small,input[type=search].input-small,input[type=tel].input-small,input[type=text].input-small,input[type=time].input-small,input[type=url].input-small,input[type=week].input-small,select.input-small{font-size:.8rem;height:1.25rem;line-height:1.25rem}textarea.input-small{font-size:.8rem}input[type=color].input-big,input[type=date].input-big,input[type=datetime-local].input-big,input[type=email].input-big,input[type=month].input-big,input[type=number].input-big,input[type=password].input-big,input[type=search].input-big,input[type=tel].input-big,input[type=text].input-big,input[type=time].input-big,input[type=url].input-big,input[type=week].input-big,select.input-big{font-size:1.2rem;height:2.75rem;line-height:2.75rem}textarea.input-big{font-size:1.2rem}input[type=range]{-webkit-appearance:none;width:100%;margin:1rem 0}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{width:100%;height:.5rem;cursor:pointer;background:#f2f2f2;border-radius:.25rem;border:none;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(0,0,0,.05)}input[type=range]::-webkit-slider-thumb{border:none;width:1.5rem;height:1.5rem;border-radius:50%;background:#0074d9;cursor:pointer;-webkit-appearance:none;margin-top:-.5rem}input[type=range]:focus::-webkit-slider-runnable-track{background:#f2f2f2}input[type=range]::-moz-range-track{width:100%;height:.5rem;cursor:pointer;background:#f2f2f2;border-radius:.25rem;border:none;box-shadow:inset 0 1px 0 rgba(0,0,0,.05)}input[type=range]::-moz-range-thumb{border:none;height:1.5rem;width:1.5rem;border-radius:50%;background:#0074d9;cursor:pointer}input[type=range]::-ms-track{width:100%;height:.5rem;cursor:pointer;background:transparent;border-color:transparent;color:transparent}input[type=range]::-ms-fill-lower{background:#2f6ea5;border:none;border-radius:.25rem}input[type=range]::-ms-fill-upper{background:#f2f2f2;border:none;border-radius:.25rem}input[type=range]::-ms-thumb{border:none;height:.5rem;width:.5rem;border-radius:50%;background:#0074d9;cursor:pointer}input[type=range]:focus::-ms-fill-lower,input[type=range]:focus::-ms-fill-upper{background:#f2f2f2}progress{width:100%;vertical-align:middle}.input-group,.input-single{margin-bottom:1rem}.input-group{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.input-group>.button,.input-group>.dropdown .button,.input-group>.dropdown button,.input-group>button,.input-group>input{border-radius:0}.input-group>.button:first-child,.input-group>.dropdown:first-child .button,.input-group>.dropdown:first-child button,.input-group>button:first-child,.input-group>input:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.input-group>.button:last-child,.input-group>.dropdown:last-child .button,.input-group>.dropdown:last-child button,.input-group>button:last-child,.input-group>input:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.input-group>input+input{border-left-width:0}.input-group>input+input:focus{border-left-width:1px;margin-left:-1px}.input-group :focus{-webkit-transform:translateZ(0);transform:translateZ(0)}.input-addon{font-size:1rem;color:#aaa;height:2rem;line-height:2rem;border-top:1px solid #ddd;border-bottom:1px solid #ddd;background:#f8f8f8;padding:0 .5rem;white-space:nowrap}.input-addon-small{font-size:.8rem;height:1.25rem;line-height:1.25rem}.input-addon-big{font-size:1.2rem;height:2.75rem;line-height:2.75rem}.input-addon:first-child{border-left:1px solid #ddd;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.input-addon:last-child{border-right:1px solid #ddd;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.input-invalid label{color:#ff4136!important}.input-invalid,.input-invalid input,.input-invalid select{color:#ff4136!important;border-color:#ff4136!important}.input-valid label{color:#2ecc40!important}.input-valid,.input-valid input,.input-valid select{color:#2ecc40!important;border-color:#2ecc40!important} -/*! Loaders */@-webkit-keyframes loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loader,.loader-bg:after{width:2rem;height:2rem;border-radius:50%;border:.2rem solid #f2f2f2;border-top-color:#0074d9;border-left-color:#0074d9;display:inline-block;-webkit-animation:loader .75s linear infinite;animation:loader .75s linear infinite;vertical-align:middle;margin:0 .5em}.loader-bg{position:relative!important}.loader-bg:after{content:"";position:absolute;top:calc(50% - 1rem);left:calc(50% - 1rem);margin:0}.loader-bg-small:after,.loader-small{width:1rem;height:1rem;border-width:.1rem}.loader-bg-big:after,.loader-big{width:4rem;height:4rem;border-width:.4rem}.loader-bg-small:after{top:calc(50% - .5rem);left:calc(50% - .5rem)}.loader-bg-big:after{top:calc(50% - 2rem);left:calc(50% - 2rem)}.loader-secondary,.loader-secondary.loader-bg:after{border-top-color:#aaa;border-left-color:#aaa}.loader-success,.loader-success.loader-bg:after{border-top-color:#2ecc40;border-left-color:#2ecc40}.loader-info,.loader-info.loader-bg:after{border-top-color:#39cccc;border-left-color:#39cccc}.loader-warning,.loader-warning.loader-bg:after{border-top-color:#ff851b;border-left-color:#ff851b}.loader-danger,.loader-danger.loader-bg:after{border-top-color:#ff4136;border-left-color:#ff4136}.loader-light,.loader-light.loader-bg:after{border-top-color:#fff;border-left-color:#fff;border-bottom-color:#111;border-right-color:#111}.loader-dark,.loader-dark.loader-bg:after{border-top-color:#111;border-left-color:#111;border-bottom-color:#fff;border-right-color:#fff} +/*! Loaders */.loader{width:3rem;height:3rem;border-radius:50%;border:.25rem solid #cce7ff;border-top-color:#0074d9;border-left-color:#0074d9;display:inline-block;-webkit-animation:loader .75s linear infinite;animation:loader .75s linear infinite;margin:0 .5em;vertical-align:middle}.loader.loader-xs{width:1rem;height:1rem;border-width:.125rem}.loader.loader-sm{width:2rem;height:2rem;border-width:.16667rem}.loader.loader-lg{width:4rem;height:4rem;border-width:.375rem}.loader.loader-xl{width:5rem;height:5rem;border-width:.5rem}.loader.loader-secondary{border-color:#e6e6e6;border-top-color:#aaa;border-left-color:#aaa}.loader.loader-success{border-color:#d5f6d9;border-top-color:#2ecc40;border-left-color:#2ecc40}.loader.loader-info{border-color:#d6f5f5;border-top-color:#39cccc;border-left-color:#39cccc}.loader.loader-warning{border-color:#ffe4cc;border-top-color:#ff851b;border-left-color:#ff851b}.loader.loader-danger{border-color:#ffcfcc;border-top-color:#ff4136;border-left-color:#ff4136}.loader.loader-light{border-color:#e6e6e6;border-top-color:#fff;border-left-color:#fff}.loader.loader-dark{border-color:#e6e6e6;border-top-color:#111;border-left-color:#111}.loader-bg{position:relative}.loader-bg:after{content:"";position:absolute;top:calc(50% - 1.5rem);left:calc(50% - 1.5rem);width:3rem;height:3rem;border-radius:50%;border:.25rem solid #cce7ff;border-top-color:#0074d9;border-left-color:#0074d9;-webkit-animation:loader .75s linear infinite;animation:loader .75s linear infinite}.loader-bg.loader-bg-xs:after{top:calc(50% - .5rem);left:calc(50% - .5rem);width:1rem;height:1rem;border-width:.125rem}.loader-bg.loader-bg-sm:after{top:calc(50% - 1rem);left:calc(50% - 1rem);width:2rem;height:2rem;border-width:.16667rem}.loader-bg.loader-bg-lg:after{top:calc(50% - 2rem);left:calc(50% - 2rem);width:4rem;height:4rem;border-width:.375rem}.loader-bg.loader-bg-xl:after{top:calc(50% - 2.5rem);left:calc(50% - 2.5rem);width:5rem;height:5rem;border-width:.5rem}.loader-bg.loader-bg-secondary:after{border-color:#e6e6e6;border-top-color:#aaa;border-left-color:#aaa}.loader-bg.loader-bg-success:after{border-color:#d5f6d9;border-top-color:#2ecc40;border-left-color:#2ecc40}.loader-bg.loader-bg-info:after{border-color:#d6f5f5;border-top-color:#39cccc;border-left-color:#39cccc}.loader-bg.loader-bg-warning:after{border-color:#ffe4cc;border-top-color:#ff851b;border-left-color:#ff851b}.loader-bg.loader-bg-danger:after{border-color:#ffcfcc;border-top-color:#ff4136;border-left-color:#ff4136}.loader-bg.loader-bg-light:after{border-color:#e6e6e6;border-top-color:#fff;border-left-color:#fff}.loader-bg.loader-bg-dark:after{border-color:#e6e6e6;border-top-color:#111;border-left-color:#111}@-webkit-keyframes loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loader{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} /*! Progress Bars */@-webkit-keyframes progress-indeterminate{0%{left:-50%}to{left:100%}}@keyframes progress-indeterminate{0%{left:-50%}to{left:100%}}.progress{position:relative;width:100%;height:2rem;line-height:2rem;font-size:1rem;background-color:#f2f2f2;border-radius:.25rem;display:block;overflow:hidden;margin-bottom:1rem;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.progress-bar{position:absolute;top:0;left:0;width:0;height:100%;text-align:center;color:#fff;background-color:#0074d9;-webkit-transition:width .2s;transition:width .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.progress-small{font-size:.8rem;height:1.25rem;line-height:1.25rem}.progress-big{font-size:1.2rem;height:2.75rem;line-height:2.75rem}.progress-indeterminate .progress-bar{width:50%!important;-webkit-animation:progress-indeterminate linear 1.5s infinite;animation:progress-indeterminate linear 1.5s infinite}.progress-secondary .progress-bar{background-color:#aaa}.progress-success .progress-bar{background-color:#2ecc40}.progress-info .progress-bar{background-color:#39cccc}.progress-warning .progress-bar{background-color:#ff851b}.progress-danger .progress-bar{background-color:#ff4136}.progress-light{background-color:#111}.progress-light .progress-bar{color:#111;background-color:#fff}.progress-dark .progress-bar{color:#fff;background-color:#111} diff --git a/docs/loaders.html b/docs/loaders.html index 407178497..534cb4765 100644 --- a/docs/loaders.html +++ b/docs/loaders.html @@ -48,27 +48,19 @@

Loaders

-

Create a pure CSS loader by applying the loader class to an empty <span> element. You can use the loader-small and loader-big modifiers to change the size.

-
<span class="loader loader-small"></span>
+

Create a pure CSS loader by applying the loader class to an empty <span> element. You can use the loader-xs|sm|lg|xl modifiers to change the size.

+
<span class="loader loader-xs"></span>
+<span class="loader loader-sm"></span>
 <span class="loader"></span>
-<span class="loader loader-big"></span>
+<span class="loader loader-lg"></span>
+<span class="loader loader-xl"></span>
 
- + + - -
- -

Background Loaders

-

You can simulate a background loader using loader-bg. This is achieved using position: relative on the container and the ::after pseudo-element. You can use the loader-bg-small and loader-bg-big modifiers to change the size.

-
<div class="loader-bg loader-bg-small"></div>
-<div class="loader-bg"></div>
-<div class="loader-bg loader-bg-big"></div>
-
-
-
-
-
+ +

Variations

@@ -88,6 +80,41 @@

+

Background Loaders

+

You can simulate a background loader using loader-bg. This is achieved using position: relative on the container and the ::after pseudo-element. You can use the loader-bg-xs|sm|lg|xl modifiers to change the size.

+
<div class="loader-bg loader-bg-xs"></div>
+<div class="loader-bg loader-bg-sm"></div>
+<div class="loader-bg"></div>
+<div class="loader-bg loader-bg-lg"></div>
+<div class="loader-bg loader-bg-xl"></div>
+
+
+
+
+
+
+
+
+ +

Background Variations

+

Use the loader-bg-* modifier to create variations.

+
<div class="loader-bg loader-bg-secondary"></div>
+<div class="loader-bg loader-bg-success"></div>
+<div class="loader-bg loader-bg-info"></div>
+<div class="loader-bg loader-bg-warning"></div>
+<div class="loader-bg loader-bg-danger"></div>
+<div class="loader-bg loader-bg-light"></div>
+<div class="loader-bg loader-bg-dark"></div>
+
+
+
+
+
+
+
+
+
+
diff --git a/source/css/_docs.css b/source/css/_docs.css index 63527656e..f966b2d49 100644 --- a/source/css/_docs.css +++ b/source/css/_docs.css @@ -178,12 +178,17 @@ a code { } /* Loader example */ +.loader-example { + margin-left: -.5rem; + margin-right: -.5rem; +} + .loader-example div { float: left; width: 6rem; height: 6rem; border: dashed 1px #ddd; - margin-right: .5rem; + margin: 0 .5rem 1rem .5rem; } /* Tabs example */ diff --git a/source/css/loaders.css b/source/css/loaders.css index b23eb8c8f..301ae7461 100644 --- a/source/css/loaders.css +++ b/source/css/loaders.css @@ -1,116 +1,228 @@ /*! Loaders */ :root { - --loader-bg-color: var(--component-bg-color); - --loader-border-color: var(--state-primary); - --loader-border-width: .2rem; - --loader-border-width-small: calc(var(--loader-border-width) / 2); - --loader-border-width-big: calc(var(--loader-border-width) * 2); - --loader-size: 2rem; - --loader-size-small: calc(var(--loader-size) / 2); - --loader-size-big: calc(var(--loader-size) * 2); + --loader-thickness: .25rem; + --loader-thickness-xs: calc(var(--loader-thickness) / 2); + --loader-thickness-sm: calc(var(--loader-thickness) / 1.5); + --loader-thickness-lg: calc(var(--loader-thickness) * 1.5); + --loader-thickness-xl: calc(var(--loader-thickness) * 2); + --loader-size-xs: 1rem; + --loader-size-sm: 2rem; + --loader-size: 3rem; + --loader-size-lg: 4rem; + --loader-size-xl: 5rem; --loader-speed: 750ms; --loader-margin-x: .5em; --loader-margin-y: 0; + + /* Default */ + --loader-color: var(--state-primary); + --loader-bg-color: color(var(--state-primary) lightness(90%)); + + /* Secondary */ + --loader-color-secondary: var(--state-secondary); + --loader-bg-color-secondary: color(var(--state-secondary) lightness(90%)); + + /* Success */ + --loader-color-success: var(--state-success); + --loader-bg-color-success: color(var(--state-success) lightness(90%)); + + /* Info */ + --loader-color-info: var(--state-info); + --loader-bg-color-info: color(var(--state-info) lightness(90%)); + + /* Warning */ + --loader-color-warning: var(--state-warning); + --loader-bg-color-warning: color(var(--state-warning) lightness(90%)); + + /* Danger */ + --loader-color-danger: var(--state-danger); + --loader-bg-color-danger: color(var(--state-danger) lightness(90%)); + + /* Light */ + --loader-color-light: var(--state-light); + --loader-bg-color-light: color(var(--state-light) lightness(90%)); + + /* Dark */ + --loader-color-dark: var(--state-dark); + --loader-bg-color-dark: color(var(--state-dark) lightness(90%)); +} + +.loader { + width: var(--loader-size); + height: var(--loader-size); + border-radius: 50%; + border-style: solid; + border-width: var(--loader-thickness); + border-color: var(--loader-bg-color); + border-top-color: var(--loader-color); + border-left-color: var(--loader-color); + display: inline-block; + animation: loader var(--loader-speed) linear infinite; + margin: var(--loader-margin-y) var(--loader-margin-x); + vertical-align: middle; + + &.loader-xs { + width: var(--loader-size-xs); + height: var(--loader-size-xs); + border-width: var(--loader-thickness-xs); + } + + &.loader-sm { + width: var(--loader-size-sm); + height: var(--loader-size-sm); + border-width: var(--loader-thickness-sm); + } + + &.loader-lg { + width: var(--loader-size-lg); + height: var(--loader-size-lg); + border-width: var(--loader-thickness-lg); + } + + &.loader-xl { + width: var(--loader-size-xl); + height: var(--loader-size-xl); + border-width: var(--loader-thickness-xl); + } + + &.loader-secondary { + border-color: var(--loader-bg-color-secondary); + border-top-color: var(--loader-color-secondary); + border-left-color: var(--loader-color-secondary); + } + + &.loader-success { + border-color: var(--loader-bg-color-success); + border-top-color: var(--loader-color-success); + border-left-color: var(--loader-color-success); + } + + &.loader-info { + border-color: var(--loader-bg-color-info); + border-top-color: var(--loader-color-info); + border-left-color: var(--loader-color-info); + } + + &.loader-warning { + border-color: var(--loader-bg-color-warning); + border-top-color: var(--loader-color-warning); + border-left-color: var(--loader-color-warning); + } + + &.loader-danger { + border-color: var(--loader-bg-color-danger); + border-top-color: var(--loader-color-danger); + border-left-color: var(--loader-color-danger); + } + + &.loader-light { + border-color: var(--loader-bg-color-light); + border-top-color: var(--loader-color-light); + border-left-color: var(--loader-color-light); + } + + &.loader-dark { + border-color: var(--loader-bg-color-dark); + border-top-color: var(--loader-color-dark); + border-left-color: var(--loader-color-dark); + } +} + +.loader-bg { + position: relative; + + &::after { + content: ''; + position: absolute; + top: calc(50% - var(--loader-size) / 2); + left: calc(50% - var(--loader-size) / 2); + width: var(--loader-size); + height: var(--loader-size); + border-radius: 50%; + border-style: solid; + border-width: var(--loader-thickness); + border-color: var(--loader-bg-color); + border-top-color: var(--loader-color); + border-left-color: var(--loader-color); + animation: loader var(--loader-speed) linear infinite; + } + + &.loader-bg-xs::after { + top: calc(50% - var(--loader-size-xs) / 2); + left: calc(50% - var(--loader-size-xs) / 2); + width: var(--loader-size-xs); + height: var(--loader-size-xs); + border-width: var(--loader-thickness-xs); + } + + &.loader-bg-sm::after { + top: calc(50% - var(--loader-size-sm) / 2); + left: calc(50% - var(--loader-size-sm) / 2); + width: var(--loader-size-sm); + height: var(--loader-size-sm); + border-width: var(--loader-thickness-sm); + } + + &.loader-bg-lg::after { + top: calc(50% - var(--loader-size-lg) / 2); + left: calc(50% - var(--loader-size-lg) / 2); + width: var(--loader-size-lg); + height: var(--loader-size-lg); + border-width: var(--loader-thickness-lg); + } + + &.loader-bg-xl::after { + top: calc(50% - var(--loader-size-xl) / 2); + left: calc(50% - var(--loader-size-xl) / 2); + width: var(--loader-size-xl); + height: var(--loader-size-xl); + border-width: var(--loader-thickness-xl); + } + + &.loader-bg-secondary::after { + border-color: var(--loader-bg-color-secondary); + border-top-color: var(--loader-color-secondary); + border-left-color: var(--loader-color-secondary); + } + + &.loader-bg-success::after { + border-color: var(--loader-bg-color-success); + border-top-color: var(--loader-color-success); + border-left-color: var(--loader-color-success); + } + + &.loader-bg-info::after { + border-color: var(--loader-bg-color-info); + border-top-color: var(--loader-color-info); + border-left-color: var(--loader-color-info); + } + + &.loader-bg-warning::after { + border-color: var(--loader-bg-color-warning); + border-top-color: var(--loader-color-warning); + border-left-color: var(--loader-color-warning); + } + + &.loader-bg-danger::after { + border-color: var(--loader-bg-color-danger); + border-top-color: var(--loader-color-danger); + border-left-color: var(--loader-color-danger); + } + + &.loader-bg-light::after { + border-color: var(--loader-bg-color-light); + border-top-color: var(--loader-color-light); + border-left-color: var(--loader-color-light); + } + + &.loader-bg-dark::after { + border-color: var(--loader-bg-color-dark); + border-top-color: var(--loader-color-dark); + border-left-color: var(--loader-color-dark); + } } @keyframes loader { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } - -.loader, -.loader-bg::after { - width: var(--loader-size); - height: var(--loader-size); - border-radius: 50%; - border: solid var(--loader-border-width) var(--loader-bg-color); - border-top-color: var(--loader-border-color); - border-left-color: var(--loader-border-color); - display: inline-block; - animation: loader var(--loader-speed) linear infinite; - vertical-align: middle; - margin: var(--loader-margin-y) var(--loader-margin-x); -} - -.loader-bg { - position: relative !important; -} - -.loader-bg::after { - content: ''; - position: absolute; - top: calc(50% - var(--loader-size) / 2); - left: calc(50% - var(--loader-size) / 2); - margin: 0; -} - -.loader-small, -.loader-bg-small::after { - width: var(--loader-size-small); - height: var(--loader-size-small); - border-width: var(--loader-border-width-small); -} - -.loader-big, -.loader-bg-big::after { - width: var(--loader-size-big); - height: var(--loader-size-big); - border-width: var(--loader-border-width-big); -} - -.loader-bg-small::after { - top: calc(50% - var(--loader-size-small) / 2); - left: calc(50% - var(--loader-size-small) / 2); -} - -.loader-bg-big::after { - top: calc(50% - var(--loader-size-big) / 2); - left: calc(50% - var(--loader-size-big) / 2); -} - -/* Variations */ -.loader-secondary, -.loader-secondary.loader-bg::after { - border-top-color: var(--state-secondary); - border-left-color: var(--state-secondary); -} - -.loader-success, -.loader-success.loader-bg::after { - border-top-color: var(--state-success); - border-left-color: var(--state-success); -} - -.loader-info, -.loader-info.loader-bg::after { - border-top-color: var(--state-info); - border-left-color: var(--state-info); -} - -.loader-warning, -.loader-warning.loader-bg::after { - border-top-color: var(--state-warning); - border-left-color: var(--state-warning); -} - -.loader-danger, -.loader-danger.loader-bg::after { - border-top-color: var(--state-danger); - border-left-color: var(--state-danger); -} - -.loader-light, -.loader-light.loader-bg::after { - border-top-color: var(--state-light); - border-left-color: var(--state-light); - border-bottom-color: var(--state-dark); - border-right-color: var(--state-dark); -} - -.loader-dark, -.loader-dark.loader-bg::after { - border-top-color: var(--state-dark); - border-left-color: var(--state-dark); - border-bottom-color: var(--state-light); - border-right-color: var(--state-light); -} diff --git a/source/docs/loaders.md b/source/docs/loaders.md index 4ab7250bc..cce30c8f2 100644 --- a/source/docs/loaders.md +++ b/source/docs/loaders.md @@ -6,33 +6,21 @@ description: These pure CSS loaders are easy to use and look great. ## Loaders -Create a pure CSS loader by applying the `loader` class to an empty `` element. You can use the `loader-small` and `loader-big` modifiers to change the size. +Create a pure CSS loader by applying the `loader` class to an empty `` element. You can use the `loader-xs|sm|lg|xl` modifiers to change the size. ```html - + + - + + ```
- + + - -
- -### Background Loaders - -You can simulate a background loader using `loader-bg`. This is achieved using `position: relative` on the container and the `::after` pseudo-element. You can use the `loader-bg-small` and `loader-bg-big` modifiers to change the size. - -```html -
-
-
-``` - -
-
-
-
+ +
### Variations @@ -56,3 +44,47 @@ Use the `loader-*` modifier to create variations. + +### Background Loaders + +You can simulate a background loader using `loader-bg`. This is achieved using `position: relative` on the container and the `::after` pseudo-element. You can use the `loader-bg-xs|sm|lg|xl` modifiers to change the size. + +```html +
+
+
+
+
+``` + +
+
+
+
+
+
+
+ +### Background Variations + +Use the `loader-bg-*` modifier to create variations. + +```html +
+
+
+
+
+
+
+``` + +
+
+
+
+
+
+
+
+