winter/modules/system/assets/less/framework.extras.less
2019-02-15 13:22:39 -06:00

223 lines
5.1 KiB
Plaintext

@import "../../../backend/assets/less/core/boot.less";
//
// Stripe loading indicator
// --------------------------------------------------
body.oc-loading, body.oc-loading * {
cursor: wait !important;
}
@stripe-loader-color: #0090c0;
@stripe-loader-height: 5px;
.stripe-loading-indicator {
height: @stripe-loader-height;
background: transparent;
position: fixed;
top: 0;
left: 0;
width: 100%;
overflow: hidden;
z-index: 2000;
.stripe, .stripe-loaded {
height: @stripe-loader-height;
display: block;
background: @stripe-loader-color;
position: absolute;
.box-shadow(~"inset 0 1px 1px -1px #FFF, inset 0 -1px 1px -1px #FFF");
}
.stripe {
width: 100%;
.animation(oc-infinite-loader 60s linear);
}
.stripe-loaded {
width: 100%;
transform: translate3d(-100%, 0, 0);
.opacity(0);
}
&.loaded {
.opacity(0);
.transition(opacity .4s linear);
.transition-delay(.3s);
.stripe {
animation-play-state: paused;
}
.stripe-loaded {
.opacity(1);
transform: translate3d(0, 0, 0);
.transition(transform .3s linear);
}
}
&.hide {
display: none;
}
}
//
// Flash Messages
// --------------------------------------------------
@color-flash-success-bg: #8da85e;
@color-flash-error-bg: #cc3300;
@color-flash-warning-bg: #f0ad4e;
@color-flash-info-bg: #5fb6f5;
@color-flash-text: #ffffff;
body > p.flash-message {
position: fixed;
width: 500px;
left: 50%;
top: 13px;
margin-left: -250px;
color: @color-flash-text;
font-size: 14px;
padding: 10px 30px 10px 15px;
z-index: @zindex-flashmessage;
word-wrap: break-word;
text-shadow: 0 -1px 0px rgba(0,0,0,.15);
text-align: center;
.box-shadow(@overlay-box-shadow);
.border-radius(@border-radius-base);
&.fade {
.opacity(0);
.transition(~'all 0.5s, width 0s');
.transform(~'scale(0.9)');
}
&.fade.in {
.opacity(1);
.transform( ~'scale(1)');
}
&.success { background: @color-flash-success-bg; }
&.error { background: @color-flash-error-bg; }
&.warning { background: @color-flash-warning-bg; }
&.info { background: @color-flash-info-bg; }
button.close {
float: none;
position: absolute;
right: 10px;
top: 8px;
color: white;
font-size: 21px;
line-height: 1;
font-weight: bold;
.opacity(.2);
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
outline: none;
&:hover,
&:focus {
color: white;
text-decoration: none;
cursor: pointer;
.opacity(.5);
}
}
}
@media (max-width: @screen-sm) {
body > p.flash-message {
left: 10px;
right: 10px;
top: 10px;
margin-left: 0;
width: auto;
}
}
//
// Form Validation
// --------------------------------------------------
[data-request][data-request-validate] [data-validate-for],
[data-request][data-request-validate] [data-validate-error] {
&:not(.visible) {
display: none;
}
}
//
// Element Loader
// --------------------------------------------------
a.oc-loading, button.oc-loading, span.oc-loading {
&:after {
content: '';
display: inline-block;
vertical-align: middle;
margin-left: .4em;
height: 1em;
width: 1em;
animation: oc-rotate-loader 0.8s infinite linear;
border: .2em solid currentColor;
border-right-color: transparent;
border-radius: 50%;
.opacity(.5);
}
}
@-moz-keyframes oc-rotate-loader {
0% { -moz-transform: rotate(0deg); }
100% { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes oc-rotate-loader {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@-o-keyframes oc-rotate-loader {
0% { -o-transform: rotate(0deg); }
100% { -o-transform: rotate(360deg); }
}
@-ms-keyframes oc-rotate-loader {
0% { -ms-transform: rotate(0deg); }
100% { -ms-transform: rotate(360deg); }
}
@keyframes oc-rotate-loader {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
//
// Infinite loading animation
// --------------------------------------------------
@startVal: 100%;
@start: 0;
.infinite-class (@index, @val) when (@index < 101) {
@tmpSelector: ~"@{index}%";
@{tmpSelector} { transform: translateX(-@val); }
.infinite-class(@index + 10, @val - @val / 2);
}
@-moz-keyframes oc-infinite-loader {
.infinite-class(@start, @startVal);
}
@-webkit-keyframes oc-infinite-loader {
.infinite-class(@start, @startVal);
}
@-o-keyframes oc-infinite-loader {
.infinite-class(@start, @startVal);
}
@-ms-keyframes oc-infinite-loader {
.infinite-class(@start, @startVal);
}
@keyframes oc-infinite-loader {
.infinite-class(@start, @startVal);
}