|
|
@@ -0,0 +1,423 @@
|
|
|
+/*******************************************************************************
|
|
|
+ * *
|
|
|
+ * Login View (login.ejs) *
|
|
|
+ * *
|
|
|
+ ******************************************************************************/
|
|
|
+
|
|
|
+/* Styles for dimmer login span. */
|
|
|
+.loginSpanDim {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #848484;
|
|
|
+ font-weight: bold;
|
|
|
+}
|
|
|
+
|
|
|
+/* Main login container. */
|
|
|
+#loginContainer {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ height: 100%;
|
|
|
+ width: 100%;
|
|
|
+ transition: filter 0.25s ease;
|
|
|
+ background: rgba(0, 0, 0, 0.50);
|
|
|
+}
|
|
|
+
|
|
|
+/* Login cancel button styles. */
|
|
|
+#loginCancelContainer {
|
|
|
+ position: absolute;
|
|
|
+ top: 5%;
|
|
|
+ right: 5%;
|
|
|
+}
|
|
|
+
|
|
|
+/* Login cancel button styles. */
|
|
|
+#loginCancelButton {
|
|
|
+ background: none;
|
|
|
+ border: none;
|
|
|
+ outline: none;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: 0.25s ease;
|
|
|
+}
|
|
|
+#loginCancelButton:hover #loginCancelIcon,
|
|
|
+#loginCancelButton:hover #loginCancelText,
|
|
|
+#loginCancelButton:focus #loginCancelIcon,
|
|
|
+#loginCancelButton:focus #loginCancelText {
|
|
|
+ text-shadow: 0px 0px 20px white;
|
|
|
+}
|
|
|
+#loginCancelButton:hover #loginCancelIcon,
|
|
|
+#loginCancelButton:focus #loginCancelIcon {
|
|
|
+ box-shadow: 0px 0px 20px white;
|
|
|
+}
|
|
|
+#loginCancelButton:active #loginCancelIcon,
|
|
|
+#loginCancelButton:active #loginCancelText {
|
|
|
+ text-shadow: 0px 0px 20px rgba(255, 255, 255, 0.75);
|
|
|
+ color: rgba(255, 255, 255, 0.75);
|
|
|
+ border-color: rgba(255, 255, 255, 0.75);
|
|
|
+}
|
|
|
+#loginCancelButton:active #loginCancelIcon {
|
|
|
+ box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.75);
|
|
|
+}
|
|
|
+#loginCancelButton:disabled {
|
|
|
+ pointer-events: none;
|
|
|
+}
|
|
|
+#loginCancelButton:disabled #loginCancelIcon,
|
|
|
+#loginCancelButton:disabled #loginCancelText {
|
|
|
+ color: rgba(255, 255, 255, 0.75);
|
|
|
+ border-color: rgba(255, 255, 255, 0.75);
|
|
|
+}
|
|
|
+
|
|
|
+/* The X in a circle icon for the cancel button. */
|
|
|
+#loginCancelIcon {
|
|
|
+ border-radius: 50%;
|
|
|
+ border: 1px solid white;
|
|
|
+ box-sizing: border-box;
|
|
|
+ height: 30px;
|
|
|
+ width: 30px;
|
|
|
+ font-size: 19px;
|
|
|
+ line-height: 30px;
|
|
|
+ margin: 0 auto;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ transition: 0.25s ease;
|
|
|
+}
|
|
|
+/* Text for the login cancel button. */
|
|
|
+#loginCancelText {
|
|
|
+ font-size: 15px;
|
|
|
+ transition: 0.25s ease;
|
|
|
+}
|
|
|
+
|
|
|
+/* Login content wrapper. */
|
|
|
+#loginContent {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ height: 100%;
|
|
|
+ padding: 0px 25px;
|
|
|
+}
|
|
|
+
|
|
|
+/* Login form. */
|
|
|
+#loginForm {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+/* Login form anchor styles. */
|
|
|
+#loginForm a {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #848484;
|
|
|
+ font-weight: bold;
|
|
|
+ text-decoration: none;
|
|
|
+ transition: 0.25s ease;
|
|
|
+}
|
|
|
+#loginForm a:hover,
|
|
|
+#loginForm a:focus {
|
|
|
+ color: #a2a2a2;
|
|
|
+ outline: none;
|
|
|
+}
|
|
|
+#loginForm a:active {
|
|
|
+ color: #8b8b8b;
|
|
|
+}
|
|
|
+
|
|
|
+/* Logo on login form. */
|
|
|
+#loginImageSeal {
|
|
|
+ border-radius: 50%;
|
|
|
+ border: 2px solid #cad7e1;
|
|
|
+ background: rgba(1, 2, 1, 0.5);
|
|
|
+ height: 125px;
|
|
|
+ width: 125px;
|
|
|
+ box-shadow: 0px 0px 10px 0px rgb(0, 0, 0);
|
|
|
+ margin-bottom: 20px;
|
|
|
+}
|
|
|
+
|
|
|
+/* Header on login view. */
|
|
|
+#loginSubheader {
|
|
|
+ font-family: 'Avenir Medium';
|
|
|
+ margin-bottom: 25px;
|
|
|
+ font-size: 12px;
|
|
|
+ letter-spacing: 1px;
|
|
|
+ font-weight: bold;
|
|
|
+}
|
|
|
+
|
|
|
+/* Add spacing between password field and options bar. */
|
|
|
+#labelPassword {
|
|
|
+ margin-bottom: 13px;
|
|
|
+}
|
|
|
+
|
|
|
+/* Container which contains the forgot and remember options. */
|
|
|
+#loginOptions {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+/* Remember option text. */
|
|
|
+#loginRememberText {
|
|
|
+ padding-right: 10px;
|
|
|
+ transition: 0.25s ease;
|
|
|
+}
|
|
|
+
|
|
|
+/* Login button styles. */
|
|
|
+#loginButton {
|
|
|
+ background: none;
|
|
|
+ font-weight: bold;
|
|
|
+ letter-spacing: 2px;
|
|
|
+ border: none;
|
|
|
+ padding: 15px 5px;
|
|
|
+ margin: 10px 0px;
|
|
|
+ cursor: pointer;
|
|
|
+ position: relative;
|
|
|
+ right: -20px;
|
|
|
+ transition: 0.5s ease;
|
|
|
+}
|
|
|
+#loginButton:disabled {
|
|
|
+ color: rgba(255, 255, 255, 0.75);
|
|
|
+ pointer-events: none;
|
|
|
+}
|
|
|
+#loginButton[loading] {
|
|
|
+ color: #fff;
|
|
|
+}
|
|
|
+#loginButton:hover,
|
|
|
+#loginButton:focus {
|
|
|
+ text-shadow: 0px 0px 20px #fff;
|
|
|
+ outline: none;
|
|
|
+}
|
|
|
+#loginButton:active {
|
|
|
+ color: #c7c7c7;
|
|
|
+ text-shadow: 0px 0px 20px #c7c7c7;
|
|
|
+}
|
|
|
+#loginSVG {
|
|
|
+ -webkit-transform: translate3d(0, 0, 0);
|
|
|
+ overflow: visible;
|
|
|
+ transform: rotate(90deg);
|
|
|
+ margin-left: 20px;
|
|
|
+ transition: 0.25s ease;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+}
|
|
|
+#loginButton:hover #loginSVG,
|
|
|
+#loginButton:focus #loginSVG {
|
|
|
+ -webkit-filter: drop-shadow(0px 0px 2px #fff);
|
|
|
+}
|
|
|
+#loginButton:active #loginSVG .arrowLine {
|
|
|
+ stroke: #c7c7c7;
|
|
|
+}
|
|
|
+#loginButton:active #loginSVG {
|
|
|
+ -webkit-filter: drop-shadow(0px 0px 2px #c7c7c7);
|
|
|
+}
|
|
|
+#loginButton:disabled #loginSVG .arrowLine {
|
|
|
+ stroke: rgba(255, 255, 255, 0.75);
|
|
|
+}
|
|
|
+
|
|
|
+#loginButtonContent {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+#loginButton .circle-loader,
|
|
|
+#loginButton[loading] #loginSVG {
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+#loginButton[loading] .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;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+/* Add spacing between register anchor and disclaimer. */
|
|
|
+#loginRegisterSpan {
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+
|
|
|
+/* Disclaimer text styles. */
|
|
|
+.loginDisclaimerText {
|
|
|
+ font-size: 7px;
|
|
|
+ color: #848484;
|
|
|
+ font-weight: bold;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+
|
|
|
+/* * *
|
|
|
+* Login View | Custom Checkbox
|
|
|
+* * */
|
|
|
+
|
|
|
+/* Checkbox container. */
|
|
|
+#checkmarkContainer {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ align-items: center;
|
|
|
+ position: relative;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 22px;
|
|
|
+ -webkit-user-select: none;
|
|
|
+}
|
|
|
+
|
|
|
+/* Hide the default checkbox. */
|
|
|
+#checkmarkContainer input {
|
|
|
+ opacity: 0;
|
|
|
+ cursor: pointer;
|
|
|
+ position: absolute;
|
|
|
+}
|
|
|
+
|
|
|
+/* Create a custom checkbox. */
|
|
|
+.loginCheckmark {
|
|
|
+ position: relative;
|
|
|
+ height: 10px;
|
|
|
+ width: 10px;
|
|
|
+ border: 1px solid #848484;
|
|
|
+ border-radius: 1px;
|
|
|
+ background: none;
|
|
|
+ transition: 0.25s ease;
|
|
|
+}
|
|
|
+/* On hover and focus, add a grey border color. */
|
|
|
+#checkmarkContainer:hover input ~ *,
|
|
|
+#checkmarkContainer input:focus ~ * {
|
|
|
+ color: #a2a2a2;
|
|
|
+ border-color: #a2a2a2;
|
|
|
+}
|
|
|
+/* On keydown, darken the checkbox a bit. */
|
|
|
+#checkmarkContainer input:active ~ *:not(#loginRememberText) {
|
|
|
+ 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 {
|
|
|
+ content: "";
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+/* Show the checkmark when checked. */
|
|
|
+#checkmarkContainer input:checked ~ .loginCheckmark:after {
|
|
|
+ display: block;
|
|
|
+}
|
|
|
+/* Style the checkmark/indicator. */
|
|
|
+#checkmarkContainer .loginCheckmark:after {
|
|
|
+ position: absolute;
|
|
|
+ left: 3.5px;
|
|
|
+ top: 0.5px;
|
|
|
+ width: 2px;
|
|
|
+ height: 6px;
|
|
|
+ border: solid #a2a2a2;
|
|
|
+ border-width: 0 2px 2px 0;
|
|
|
+ transform: rotate(45deg);
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+#login_filter {
|
|
|
+ height: calc(100% - 22px);
|
|
|
+ width: 100%;
|
|
|
+ z-index: 9000;
|
|
|
+ position: absolute;
|
|
|
+ filter: blur(8px) contrast(0.9) brightness(1.0);
|
|
|
+ background: url('./../images/backgrounds/0.jpg') no-repeat center center fixed;
|
|
|
+ transform: scale(1.2);
|
|
|
+ background-size: cover;
|
|
|
+}
|
|
|
+*/
|