|
|
@@ -14,6 +14,11 @@
|
|
|
src: url('../fonts/Avenir-Medium.ttf');
|
|
|
}
|
|
|
|
|
|
+@font-face {
|
|
|
+ font-family: 'Ringbearer';
|
|
|
+ src: url('../fonts/Ringbearer.ttf');
|
|
|
+}
|
|
|
+
|
|
|
/*******************************************************************************
|
|
|
* *
|
|
|
* Element Styles *
|
|
|
@@ -130,6 +135,7 @@ p {
|
|
|
|
|
|
/* Main login container. */
|
|
|
#loginContainer {
|
|
|
+ position: relative;
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
@@ -191,6 +197,20 @@ p {
|
|
|
letter-spacing: 1px;
|
|
|
}
|
|
|
|
|
|
+/* Div to display any login errors. */
|
|
|
+#loginError {
|
|
|
+ font-family: 'Avenir Book';
|
|
|
+ color: #fff;
|
|
|
+ font-size: 12px;
|
|
|
+ background: #9b1313;
|
|
|
+ border: 0.5px solid white;
|
|
|
+ padding: 2px 0px;
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ font-weight: bold;
|
|
|
+ margin: 8px 0px;
|
|
|
+}
|
|
|
+
|
|
|
/* SVG icons on the login view. */
|
|
|
.loginSVG {
|
|
|
fill: #fff;
|
|
|
@@ -205,7 +225,7 @@ p {
|
|
|
border-width: 1.5px 0px 0px 0px;
|
|
|
border-style: solid;
|
|
|
width: 250px;
|
|
|
- margin-bottom: 20px;
|
|
|
+ /*margin-bottom: 20px;*/
|
|
|
border-color: #fff;
|
|
|
color: rgba(255, 255, 255, 0.75);
|
|
|
font-weight: bold;
|
|
|
@@ -234,6 +254,16 @@ p {
|
|
|
margin-bottom: 13px;
|
|
|
}
|
|
|
|
|
|
+.loginErrorSpan {
|
|
|
+ font-family: 'Avenir Medium';
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 8px;
|
|
|
+ color: red;
|
|
|
+ width: 100%;
|
|
|
+ text-align: right;
|
|
|
+ margin-bottom: 15px;
|
|
|
+}
|
|
|
+
|
|
|
/* Container which contains the forgot and remember options. */
|
|
|
#loginOptions {
|
|
|
display: flex;
|
|
|
@@ -262,6 +292,10 @@ p {
|
|
|
right: -20px;
|
|
|
transition: 0.5s ease;
|
|
|
}
|
|
|
+#loginButton:disabled {
|
|
|
+ color: rgba(255, 255, 255, 0.75);
|
|
|
+ pointer-events: none;
|
|
|
+}
|
|
|
#loginButton:hover,
|
|
|
#loginButton:focus {
|
|
|
text-shadow: 0px 0px 20px #fff;
|
|
|
@@ -296,6 +330,112 @@ p {
|
|
|
align-items: center;
|
|
|
}
|
|
|
|
|
|
+#loginButton .circle-loader,
|
|
|
+#loginButton:disabled #loginSVG {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+#loginButton:disabled .circle-loader,
|
|
|
+#loginButton #loginSVG {
|
|
|
+ display: initial;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+.circle-loader {
|
|
|
+ margin-left: 20px;
|
|
|
+ border: 2px solid rgba(255, 255, 255, 0.5);
|
|
|
+ border-left-color: #ffffff;
|
|
|
+ animation-name: loader-spin;
|
|
|
+ animation-duration: 1s;
|
|
|
+ animation-iteration-count: infinite;
|
|
|
+ animation-timing-function: linear;
|
|
|
+ position: relative;
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: top;
|
|
|
+ border-radius: 50%;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+}
|
|
|
+.load-complete {
|
|
|
+ animation: none;
|
|
|
+ border-color: #ffffff;
|
|
|
+ transition: border 500ms ease-out;
|
|
|
+}
|
|
|
+.checkmark {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+.checkmark.draw:after {
|
|
|
+ animation-duration: 800ms;
|
|
|
+ animation-timing-function: ease;
|
|
|
+ animation-name: checkmark;
|
|
|
+ transform: scaleX(-1) rotate(135deg);
|
|
|
+}
|
|
|
+.checkmark:after {
|
|
|
+ opacity: 1;
|
|
|
+ height: 8px;
|
|
|
+ width: 4px;
|
|
|
+ transform-origin: left top;
|
|
|
+ border-right: 2px solid #ffffff;
|
|
|
+ border-top: 2px solid #ffffff;
|
|
|
+ content: '';
|
|
|
+ left: 2px;
|
|
|
+ top: 8px;
|
|
|
+ position: absolute;
|
|
|
+}
|
|
|
+@keyframes loader-spin {
|
|
|
+ 0% {
|
|
|
+ transform: rotate(0deg);
|
|
|
+ }
|
|
|
+ 100% {
|
|
|
+ transform: rotate(360deg);
|
|
|
+ }
|
|
|
+}
|
|
|
+@keyframes checkmark {
|
|
|
+ 0% {
|
|
|
+ height: 0;
|
|
|
+ width: 0;
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+ 20% {
|
|
|
+ height: 0;
|
|
|
+ width: 4px;
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+ 40% {
|
|
|
+ height: 8px;
|
|
|
+ width: 4px;
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+ 100% {
|
|
|
+ height: 8px;
|
|
|
+ width: 4px;
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/*.spinningCircle {
|
|
|
+ margin-left: 20px;
|
|
|
+ height: 16px;
|
|
|
+ width: 16px;
|
|
|
+ border-radius: 50%;
|
|
|
+ border: 2px solid rgba(255,255,255,0);
|
|
|
+ border-top-color: #ffffff;
|
|
|
+ border-right-color: #ffffff;
|
|
|
+ border-left-color: rgba(255, 255, 255, 0.50);
|
|
|
+ border-bottom-color: rgba(255, 255, 255, 0.50);
|
|
|
+ animation: single2 4s infinite linear;
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes single2 {
|
|
|
+ 0% {
|
|
|
+ transform: rotate(0deg);
|
|
|
+ }
|
|
|
+ 100% {
|
|
|
+ transform: rotate(720deg);
|
|
|
+ }
|
|
|
+}*/
|
|
|
+
|
|
|
/* Disclaimer container. */
|
|
|
#loginDisclaimer {
|
|
|
display: flex;
|
|
|
@@ -361,6 +501,9 @@ p {
|
|
|
color: #8d8d8d;
|
|
|
border-color: #8d8d8d;
|
|
|
}
|
|
|
+#checkmarkContainer[disabled] {
|
|
|
+ pointer-events: none;
|
|
|
+}
|
|
|
/* For checked -> #checkmarkContainer input:checked ~ * */
|
|
|
/* Create the checkmark/indicator (hidden when not checked). */
|
|
|
.loginCheckmark:after {
|
|
|
@@ -383,6 +526,129 @@ p {
|
|
|
transform: rotate(45deg);
|
|
|
}
|
|
|
|
|
|
+/* * *
|
|
|
+* Login View | Error Overlay
|
|
|
+* * */
|
|
|
+
|
|
|
+#loginErrorContainer {
|
|
|
+ position: absolute;
|
|
|
+ display: none;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background: rgba(0, 0, 0, 0.50);
|
|
|
+}
|
|
|
+
|
|
|
+#loginContainer[error] > #loginErrorContainer {
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+
|
|
|
+#loginContainer[error] > div:not(#loginErrorContainer) {
|
|
|
+ filter: blur(3px) contrast(0.9) brightness(1.0);
|
|
|
+}
|
|
|
+
|
|
|
+#loginErrorContent {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 300px;
|
|
|
+ height: 35%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding: 15px 0px;
|
|
|
+ /* background-color: #424242; */
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+
|
|
|
+#loginErrorTitle {
|
|
|
+ font-family: 'Avenir Medium';
|
|
|
+ font-size: 20px;
|
|
|
+ color: #fff;
|
|
|
+ font-weight: bold;
|
|
|
+ letter-spacing: 1px;
|
|
|
+}
|
|
|
+
|
|
|
+#loginErrorDesc {
|
|
|
+ font-family: 'Avenir Book';
|
|
|
+ font-size: 12px;
|
|
|
+ color: #fff;
|
|
|
+ font-weight: bold;
|
|
|
+}
|
|
|
+
|
|
|
+#loginErrorAcknowledge {
|
|
|
+ background: none;
|
|
|
+ border: 1px solid #ffffff;
|
|
|
+ color: white;
|
|
|
+ font-family: 'Avenir Medium';
|
|
|
+ font-weight: bold;
|
|
|
+ border-radius: 2px;
|
|
|
+ width: 75px;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+/* * *
|
|
|
+* Login View | Loader
|
|
|
+* * */
|
|
|
+/* Will reuse this elsewhere down the line.
|
|
|
+#loginLoading {
|
|
|
+ position: absolute;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background: rgba(0, 0, 0, 0.80);
|
|
|
+}
|
|
|
+
|
|
|
+#loginLoadingContent {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+}
|
|
|
+
|
|
|
+#loadSpinnerContainer {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+}
|
|
|
+
|
|
|
+#loadCenterImage {
|
|
|
+ position: absolute;
|
|
|
+ width: 200px;
|
|
|
+ height: auto;
|
|
|
+}
|
|
|
+
|
|
|
+#loadSpinnerImage {
|
|
|
+ width: 280px;
|
|
|
+ height: auto;
|
|
|
+}
|
|
|
+
|
|
|
+#loadDescText {
|
|
|
+ color: #f1eada;
|
|
|
+ font-family: 'Avenir Medium';
|
|
|
+ font-weight: bold;
|
|
|
+ letter-spacing: 1px;
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes rotating {
|
|
|
+ from {
|
|
|
+ transform: rotate(0deg);
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ transform: rotate(360deg);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.rotating {
|
|
|
+ animation: rotating 10s linear infinite;
|
|
|
+}*/
|
|
|
+
|
|
|
/*
|
|
|
#login_filter {
|
|
|
height: calc(100% - 22px);
|