/******************************************************************************* * * * Fonts * * * ******************************************************************************/ @font-face { font-family: 'Avenir Book'; src: url('../fonts/Avenir-Book.ttf'); } @font-face { font-family: 'Avenir Medium'; src: url('../fonts/Avenir-Medium.ttf'); } @font-face { font-family: 'Ringbearer'; src: url('../fonts/Ringbearer.ttf'); } /******************************************************************************* * * * Element Styles * * * ******************************************************************************/ /* Reset body, html, and div presets. */ body, html, div { margin: 0px; padding: 0px; } /* Reset p presets. */ p { -webkit-margin-before: 0em; -webkit-margin-after: 0em; } /*body { background: url('./../images/backgrounds/0.jpg') no-repeat center center fixed; background-size: cover; }*/ /******************************************************************************* * * * Frame Styles (frame.ejs) * * * ******************************************************************************/ #frame_bar { -webkit-app-region: drag; -webkit-user-select: none; background: rgba(1, 2, 1, 0.5); min-height: 22px; display: flex; align-items: center; position: relative; z-index: 10000; } #frame_btn_dock { margin-left: 2px; } .frame_btn { height: 12px; width: 12px; border-radius: 50%; border: 0px; margin-left: 5px; -webkit-app-region: no-drag !important; cursor: pointer; } .frame_btn:focus { outline: 0px; } #frame_btn_close { background-color: #e74c32; } #frame_btn_close:hover, #frame_btn_close:focus { background-color: #FF9A8A; } #frame_btn_close:active { background-color: #ff8d7b; } #frame_btn_restoredown { background-color: #fed045; } #frame_btn_restoredown:hover, #frame_btn_restoredown:focus { background-color: #FFE9A9; } #frame_btn_restoredown:active { background-color: #ffde7b; } #frame_btn_minimize { background-color: #96e734; } #frame_btn_minimize:hover, #frame_btn_minimize:focus { background-color: #D6FFA6; } #frame_btn_minimize:active { background-color: #bfff76; } /******************************************************************************* * * * Welcome View (welcome.ejs) * * * ******************************************************************************/ #welcomeContainer { position: relative; display: flex; justify-content: center; align-items: center; height: 100%; width: 100%; transition: 0.25s ease; } #welcomeContent { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 50%; top: -10%; position: relative; } .cloudDiv { position: absolute; height: 100%; width: 100%; display: flex; flex-direction: column; } .cloudTop { height: 50%; width: 100%; background-image: url('../images/cloudTrans.png'); animation: clouds1 80s linear infinite; background-size: cover; } .cloudBottom { height: 50%; width: 100%; background-image: url('../images/cloudTrans2.png'); animation: clouds2 70s linear infinite; background-size: cover; } @keyframes clouds1 { to { background-position: 200%; } } @keyframes clouds2 { to { background-position: 230%; } } #welcomeImageSeal { 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: 10%; margin-top: 10%; } #welcomeHeader { font-family: 'Avenir Medium'; text-align: center; color: white; margin-bottom: 25px; letter-spacing: 1px; font-size: 20px; text-shadow: white 0px 0px 0px; } #welcomeDescription { font-family: 'Avenir Book'; text-align: center; color: white; font-size: 14px; font-weight: 100; text-shadow: rgba(255, 255, 255, 0.75) 0px 0px 20px } /* Login button styles. */ #welcomeButton { background: none; color: #fff; font-weight: bold; font-family: 'Avenir Book'; letter-spacing: 2px; border: none; padding: 15px 5px; margin: 10px 0px; cursor: pointer; position: relative; right: -20px; transition: 0.5s ease; margin-top: 5%; margin-bottom: -5%; } #welcomeButton:disabled { color: rgba(255, 255, 255, 0.75); pointer-events: none; } #welcomeButton:hover, #welcomeButton:focus { text-shadow: 0px 0px 20px #fff; outline: none; } #welcomeButton:active { color: #c7c7c7; text-shadow: 0px 0px 20px #c7c7c7; } #welcomeSVG { -webkit-transform: translate3d(0, 0, 0); overflow: visible; transform: rotate(90deg); margin-left: 20px; transition: 0.25s ease; width: 20px; height: 20px; } #welcomeButton:hover #welcomeSVG, #welcomeButton:focus #welcomeSVG { -webkit-filter: drop-shadow(0px 0px 2px #fff); } #welcomeButton:active #welcomeSVG .arrowLine { stroke: #c7c7c7; } #welcomeButton:active #welcomeSVG { -webkit-filter: drop-shadow(0px 0px 2px #c7c7c7); } #welcomeButton:disabled #welcomeSVG .arrowLine { stroke: rgba(255, 255, 255, 0.75); } #welcomeButtonContent { display: flex; align-items: center; } /******************************************************************************* * * * Login View (login.ejs) * * * ******************************************************************************/ /* Login span styles. */ .loginSpan { font-family: 'Avenir Book'; font-size: 14px; color: #fff; font-weight: bold; } /* Styles for dimmer login span. */ .loginSpanDim { font-family: 'Avenir Book'; 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: 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-family: 'Avenir Book'; 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; } /* Container to organize login field elements. */ .loginFieldContainer { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; } /* SVG icons on the login view. */ .loginSVG { fill: #fff; height: 20px; width: 20px; } /* Span which displays errors related to login field content. */ .loginErrorSpan { font-family: 'Avenir Medium'; font-weight: bold; font-size: 8px; color: #ff1b0c; width: 100%; text-align: right; position: absolute; top: 7px; opacity: 0; transition: 0.25s ease; } .shake { animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both; } @keyframes shake { 10%, 90% { transform: translate3d(-1px, 0, 0); } 20%, 80% { transform: translate3d(2px, 0, 0); } 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 40%, 60% { transform: translate3d(4px, 0, 0); } } /* Login text input styles. */ .loginField { font-family: 'Avenir Book'; background: none; border-width: 1.5px 0px 0px 0px; border-style: solid; width: 250px; margin-bottom: 20px; border-color: #fff; color: rgba(255, 255, 255, 0.75); font-weight: bold; text-align: center; box-sizing: border-box; padding: 7.5px; font-size: 10px; letter-spacing: 1px; } .loginField:focus { outline: none; } .loginField:disabled { color: rgba(255, 255, 255, 0.50); } .loginField::-webkit-input-placeholder { color: rgba(255, 255, 255, 0.75); font-size: 10px; letter-spacing: 1px; text-align: center; font-weight: bold; } .loginField:focus::-webkit-input-placeholder { color: transparent; } /* 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; color: #fff; font-weight: bold; font-family: 'Avenir Book'; 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-family: 'Avenir Book'; 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 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; transition: 0.25s ease; } #loginErrorAcknowledge:hover, #loginErrorAcknowledge:focus { box-shadow: 0px 0px 10px 0px #fff; outline: none; } #loginErrorAcknowledge:active { border-color: rgba(255, 255, 255, 0.75); color: rgba(255, 255, 255, 0.75); } /* * * * 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); 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; } */ /******************************************************************************* * * * Landing View (Structural Styles) * * * ******************************************************************************/ /* Main content container. */ #main { height: calc(100% - 22px); } /* Upper content container. */ #main > #upper { height: 77%; display: flex; } #main > #upper > #left { display: inline-flex; width: 15%; height: 100%; justify-content: flex-end; } #main > #upper > #content { display: inline-flex; width: 59%; height: 100%; } #main > #upper > #right { display: inline-flex; width: 26%; height: 100%; } /* Lower content container. */ #main > #lower { height: 23%; display: flex; background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0)); } #main > #lower > #left { height: 100%; width: 33%; display: inline-flex; justify-content: center; } #main > #lower > #left #content { position: relative; top: 25px; display: inline-flex; line-height: 24px; left: 50px; } #main > #lower > #center { height: 100%; width: 34%; display: inline-flex; justify-content: center; } #main > #lower > #center #content { position: relative; top: 10px; } #main > #lower > #right { height: 100%; width: 33%; display: inline-flex; } /******************************************************************************* * * * Landing View (Top Styles) * * * ******************************************************************************/ /* * * * Landing View (Top Styles) | Left Content * * */ /* Logo image. */ #image_seal { height: 70px; width: auto; position: relative; margin-top: 50px; border: 2px solid white; border-radius: 50%; box-shadow: 0px 0px 10px 0px rgb(0, 0, 0); } /* * * * Landing View (Bottom Styles) | Right Content * * */ /* Wrapper container for top, right content. */ #rightContainer { display: flex; flex-direction: column; position: relative; top: 50px; align-items: flex-end; height: calc(100% - 50px); } /* Right hand user content container. */ #user_content { display: flex; align-items: center; justify-content: center; box-sizing: border-box; height: 75px; } /* User profile avatar container. */ #avatarContainer { border-radius: 50%; border: 2px solid #cad7e1; background: rgba(1, 2, 1, 0.5); height: 70px; width: 70px; box-shadow: 0px 0px 10px 0px rgb(0, 0, 0); overflow: hidden; position: relative; } /* Avatar edit overlay. */ #avatarOverlay { opacity: 0; position: absolute; z-index: 1; top: 0; bottom: 0; left: 0; right: 0; display: flex; justify-content: center; align-items: center; font-family: 'Avenir Book'; color: #fff; transition: 0.25s ease; font-weight: bold; letter-spacing: 2px; background: linear-gradient(65deg, rgba(0, 0, 0, 0.4), rgba(136, 77, 77, 0.4) 60%); -webkit-user-select: none; cursor: pointer; } #avatarOverlay:hover { opacity: 1; } /* User profile avater image. */ #avatarImage { height: 100%; width: auto; } /* User profile name text. */ #user_text { font-family: 'Avenir Book'; font-size: 12px; min-width: 112px; font-weight: 900; letter-spacing: 1px; color: white; text-shadow: 0px 0px 20px black; position: relative; right: 25px; text-align: right; } /* Social media icon content container. */ #mediaContent { position: relative; display: flex; flex-direction: column; right: 25px; align-items: flex-end; margin-top: 40px; height: 100%; align-items: center; } /* Social Media Icon division containers. */ #internalMedia, #externalMedia { display: flex; flex-direction: column; } /* Container object which wraps an icon to ensure fluid transitions. */ .mediaContainer { display: flex; justify-content: center; align-items: center; height: 27px; } /* Divider bar between the external and internal icons. */ .mediaDivider { height: 1px; width: 14px; background: rgb(255, 255, 255); margin: 10px 0px; } /* Social media icon shared styles. */ .mediaSVG { fill: #ffffff; height: 12px; transition: 0.25s ease; cursor: pointer; height: 12px; width: 25px; } .mediaSVG:hover, .mediaSVG:active { height: 20px; } /* News icon colors. */ #newsSVG { stroke: #ffffff; } /* Twitter icon colors. */ #twitterSVG:hover { fill: #1da1f2; } #twitterSVG:active { fill: #1b8dd4; } /* Instagram icon colors. */ #instagramSVG:hover { fill: url('#instaFill') /*fill: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); */ } #instagramSVG:active { fill: url('#instaFill') } /* Youtube icon colors. */ #youtubeSVG:hover { fill: #f00; } #youtubeSVG:active { fill: #ea0202; } /* Discord icon colors. */ #discordSVG:hover { fill: #7288d9; } #discordSVG:active { fill: #657ac4; } /******************************************************************************* * * * Landing View (Bottom Styles) * * * ******************************************************************************/ /* Style for a general label on the bottom of the landing view. */ .bot_label { color: white; font-family: 'Avenir Book'; font-size: 9px; letter-spacing: 1px; font-weight: bold; text-shadow: 0px 0px 0px #bebcbb; } /* Divider used on the bottom of the landing view. */ .bot_divider { height: 25px; width: 2px; background: rgba(107, 105, 105, 0.7); margin-left: 20px; margin-right: 20px; } /* * * * Landing View (Bottom Styles) | Left Content * * */ /* Span which displays the player count of the selected server. */ #player_count { color: #949494; font-family: 'Avenir Book'; font-size: 8px; font-weight: 900; text-shadow: 0px 0px 20px #949494; margin-left: 10px; } /* Icon which displays the status of the mojang services. */ #mojang_status_icon { font-size: 30px; color: #848484; margin-left: 15px; } /* * * * Landing View (Bottom Styles) | Center Content * * */ /* Button which opens the menu view. */ #menu_button { font-family: 'Avenir Book'; background: none; border: none; cursor: pointer; } /* Arrow image which floats above the menu button. */ #menu_img { height: 11px; margin-left: -2px; } /* Span which contains the menu button text. */ #menu_text { color: white; font-weight: 900; letter-spacing: 2px; text-shadow: 0px 0px 0px #bebcbb; font-size: 11px; line-height: 30px; display: flex; } /* * * * Landing View (Bottom Styles) | Right Content * * */ /* Main launch content container. */ #main > #lower > #right #launch_content { position: relative; top: 25px; display: inline-flex; line-height: 24px; } /* The launch button. */ #launch_button { font-family: 'Avenir Book'; background: none; border: none; cursor: pointer; color: #fff; font-weight: 900; letter-spacing: 2px; text-shadow: 0px 0px 0px #bebcbb; font-size: 20px; padding: 0px; } /* Launch details main container, hidden until launch processing begins. */ #launch_details { position: relative; top: 25px; display: none; } /* Left side of launch details container, displays percentage and a divider. */ #launch_details_left { display: flex; } /* Span which displays percentage complete. */ #launch_progress_label { color: white; font-family: 'Avenir Book'; font-weight: 900; letter-spacing: 1px; text-shadow: 0px 0px 0px #bebcbb; font-size: 20px; min-width: 53.21px; max-width: 53.21px; text-align: right; } /* Right side of launch details container, displays progress bar and details. */ #launch_details_right { display: flex; flex-direction: column; justify-content: center; } /* Progress bar styles. */ #launch_progress[value] { height: 3px; width: 265px; -webkit-appearance: none; } #launch_progress[value]::-webkit-progress-bar { background-color: transparent; } #launch_progress[value]::-webkit-progress-value { background-color: #fff; } /* Span which displays information about the status of the launch process. */ #launch_details_text { font-size: 11px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }