mirror of
https://github.com/dscalzi/HeliosLauncher.git
synced 2024-10-31 19:36:39 -07:00
778 lines
17 KiB
CSS
778 lines
17 KiB
CSS
/*******************************************************************************
|
|
* *
|
|
* Fonts *
|
|
* *
|
|
******************************************************************************/
|
|
|
|
@font-face {
|
|
font-family: 'Avenir Book';
|
|
src: url('../fonts/Avenir.ttc');
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Avenir Medium';
|
|
src: url('../fonts/Avenir-Medium.otf');
|
|
}
|
|
|
|
/*******************************************************************************
|
|
* *
|
|
* 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 {
|
|
background-color: #FF9A8A;
|
|
}
|
|
|
|
#frame_btn_restoredown {
|
|
background-color: #fed045;
|
|
}
|
|
|
|
#frame_btn_restoredown:hover {
|
|
background-color: #FFE9A9;
|
|
}
|
|
|
|
#frame_btn_minimize {
|
|
background-color: #96e734;
|
|
}
|
|
|
|
#frame_btn_minimize:hover {
|
|
background-color: #D6FFA6;
|
|
}
|
|
|
|
/*******************************************************************************
|
|
* *
|
|
* 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 {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
/* 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;
|
|
}
|
|
|
|
/* 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;
|
|
}
|
|
|
|
/* SVG icons on the login view. */
|
|
.loginSVG {
|
|
fill: #fff;
|
|
height: 20px;
|
|
width: 20px;
|
|
}
|
|
|
|
/* 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: rgb(197, 197, 197);
|
|
font-weight: bold;
|
|
text-align: center;
|
|
box-sizing: border-box;
|
|
padding: 7.5px;
|
|
font-size: 10px;
|
|
letter-spacing: 1px;
|
|
}
|
|
.loginField:focus {
|
|
outline: none;
|
|
}
|
|
.loginField::-webkit-input-placeholder {
|
|
color: rgb(197, 197, 197);
|
|
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:hover,
|
|
#loginButton:focus {
|
|
text-shadow: 0px 0px 20px #fff;
|
|
outline: none;
|
|
}
|
|
#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);
|
|
}
|
|
|
|
#loginButtonContent {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
/* 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: border-color 0.25s ease;
|
|
}
|
|
/* On hover and focus, add a grey border color. */
|
|
#checkmarkContainer:hover input ~ *,
|
|
#checkmarkContainer input:focus ~ * {
|
|
color: #a2a2a2;
|
|
border-color: #a2a2a2;
|
|
}
|
|
/* 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;
|
|
}
|
|
*/
|
|
|
|
/*******************************************************************************
|
|
* *
|
|
* 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;
|
|
} |