Continuing work on login view, still a ways off from completion.

This commit is contained in:
Daniel Scalzi
2018-01-27 22:29:15 -05:00
parent a3e7dfc570
commit 1284c54525
4 changed files with 315 additions and 4 deletions

View File

@@ -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);