:root { --bg0: #282a36; --bg1: #44475a; --bg2: #585c74; --bg3: #666e99; --alt0: #6272a4; --alt1: #7a88b3; --fg0: #f8f8f2; --fg1: #eaeae0; --fg2: #deded2; --cyan: #8be9fd; --green: #50fa7b; --orange: #ffb86c; --pink: #ff79c6; --purple: #bd93f9; --red: #ff5555; --yellow: #f1fa8c; --animation-duration: 300ms; --base-font-size: 16px; } /* High DPI */ @media screen and (min-width: 3000px) and (min-height: 1200px) { #screen { zoom: 2; } } /* Basic */ html { color: var(--fg0); background-color: black; font-family: system-ui; min-height: 100%; position: relative; font-size: var(--base-font-size); text-rendering: optimizeSpeed; /*image-rendering: pixelated;*/ } html * { font-family: system-ui; font-size: inherit; transition: var(--animation-duration); color: var(--fg0); } body { display: flex; min-height: 100vh; margin: 0; overflow-x: hidden; background-color: var(--bg0); } .hide { opacity: 0; visibility: hidden; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-thumb { background-color: var(--fg2); } ::-webkit-scrollbar-thumb:hover { background-color: var(--fg0); } /* Background */ #background { height: 100vh; width: 100vw; position: absolute; background-color: var(--bg0); } #background img { width: inherit; height: inherit; object-fit: cover; object-position: center; } #bg-cover { backdrop-filter: blur(4px); position: absolute; height: inherit; width: inherit; } #screen { width: 100%; position: relative; display: flex; align-items: center; justify-content: center; } #cover { height: 100vh; width: 100vw; position: absolute; z-index: 10; transition: var(--animation-duration); display: flex; align-items: center; justify-content: center; background-color: #282a36aa; backdrop-filter: blur(5px); } #cover > #message { font-size: 4em; font-weight: bold; cursor: default; } #cover:focus { outline: 0 !important; } /* Login form */ #login-wrapper { position: relative; background: var(--bg1); border-radius: 2px; max-height: 90vh; width: 30em; box-sizing: border-box; transition: var(--animation-duration); } /*#login-wrapper:hover, #login-wrapper:focus, #login-wrapper:focus-within {*/ /*filter: drop-shadow(2px 4px 6px black);*/ /*}*/ body.success #login-wrapper { background-color: #79d28f; } body.failed #login-wrapper { background-color: #dd7878; } #login-wrapper-box { display: flex; justify-content: center; align-items: center; padding: 1.8em 3em; height: 8em; } #login-form { display: flex; align-items: center; justify-content: space-around; flex-direction: column; height: 10em; max-width: fit-content; } input { background-color: var(--bg2); color: var(--fg0); border: 0; border-radius: 2px; padding: 1em; margin: 0.5em; font-size: inherit; font-family: inherit; } input:focus, input:focus-visible { border: 0; outline: auto var(--fg0); } input::-ms-reveal, input::-ms-clear { display: none; } :focus { outline: auto var(--fg0) !important; } #pass-form.hide { visibility: hidden; max-height: initial; max-width: initial; display: flex; } #input-password { box-shadow: 0 2px var(--cyan); box-sizing: border-box; margin: 0; } #input { position: relative; } #input #pass-eye { position: absolute; right: 15px; top: 0; bottom: 0; margin-top: auto; margin-bottom: auto; height: fit-content; background-color: var(--bg2); } #input #pass-eye:hover, #input #pass-eye:focus { background-color: var(--bg3); } #input-username { box-sizing: border-box; width: 100%; margin: 0; box-shadow: 0 2px var(--orange); } ::placeholder { color: var(--fg2); } #pass-wrapper { display: flex; width: 100%; flex-direction: row; } #user-wrapper { display: flex; width: 100%; flex-direction: row; position: relative; } #submit-button { background-color: #72bece; } #submit-button:hover, #submit-button:focus { background-color: var(--purple); } #users-button-wrapper { display: flex; flex-direction: column; } #users-button { background-color: var(--orange); height: 100%; } #users-button:hover, #users-button:focus { background-color: var(--red); } #users-dropdown { height: 0; } #users-dropdown .dropdown { background-color: var(--bg2); right: 0; z-index: 2; } #users-dropdown .dropdown button:hover, #users-dropdown .dropdown button:focus { background-color: var(--orange); } /* Time and date */ #time-date { position: absolute; display: flex; flex-direction: column; align-items: center; background-color: transparent; transition: var(--animation-duration); overflow: hidden; cursor: pointer; } #time-date:hover, #time-date:focus { filter: drop-shadow(2px 2px 6px black); /*animation-name: shake;*/ animation-duration: 1s; animation-direction: normal; animation-iteration-count: 1; animation-timing-function: ease-in-out; } #time-date:hover *, #time-date:focus * { /*color: var(--cyan);*/ } #time-date.hide { display: flex; max-height: initial; max-width: initial; opacity: 0; } #time-label { font-size: 4em; margin: 0; } /* Buttons */ button { /*color: var(--fg0);*/ border: 0; /*font-size: inherit;*/ /*font-family: inherit;*/ } .button { background: var(--purple); border: 0; padding: 0.5em; font-size: inherit; cursor: pointer; border-radius: 2px; transition: var(--animation-duration); } .button-group { background: var(--purple); border: 0; padding: 0; font-size: inherit; border-radius: 2px; transition: var(--animation-duration); } .button-group > * { background-color: transparent; cursor: pointer; padding: 0.5em 0.8em; transition: inherit; } .button-group > *:hover, .button-group > *:focus { background-color: var(--orange); } .button-group .hide { display: none; } /* Auth message */ #auth-message { position: absolute; font-size: 4em; font-weight: bold; } #auth-message.hide { display: block; max-width: initial; max-height: initial; } /* Bottom bar */ #bottom-bar { background-color: #585c7480; backdrop-filter: blur(10px); width: -webkit-fill-available; min-height: 2em; display: flex; align-items: stretch; padding: 0.5em; } #bottom-bar * { font-weight: bold; } #bottom-bar .button { display: flex; align-items: center; padding: 0.5em 0.75em; } #sessions-button { background-color: var(--bg3); } #sessions-button > span { margin-left: 0.3em; } #sessions-button:hover, #sessions-button:focus { background-color: var(--purple); } #sessions-dropdown { max-height: 25vh; } #bottom-right { background-color: var(--bg3); margin-left: auto; display: flex; } /* Top bar */ #top-bar { background-color: transparent; width: -webkit-fill-available; min-height: 2em; padding: 1em; padding-bottom: 0; font-weight: bold; transition: var(--animation-duration); display: flex; align-items: center; justify-content: center; } #bottom-bar.hide, #top-bar.hide { min-height: 0; max-height: 0; max-width: initial; display: flex; overflow: hidden; padding: 0; margin: 0; opacity: 0; } /* Panel */ #panel-button { position: absolute; top: 0; right: 0; margin: 1em; background-color: var(--bg1); } #panel-button:hover, #panel-button:focus { background-color: var(--green); } .panel { position: fixed; width: 350px; height: -webkit-fill-available; background: var(--bg2); right: 0; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-content: flex-start; padding: 1.5em; overflow-y: auto; overflow-x: hidden; } .panel.hide { transform: translateX(100%); display: flex; visibility: hidden; opacity: 100%; max-width: 100vw; max-height: 100vh; } #background-selector { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; width: -webkit-fill-available; height: auto; } #background-selector .image { display: flex; flex-direction: column; width: 48%; max-height: 100px; background-color: transparent; margin-top: 1em; padding: 0; cursor: pointer; border-color: var(--fg0); border-width: 1px; border-style: solid; border-radius: 0; } #background-selector .image > img { background-color: var(--alt1); width: -webkit-fill-available; height: 100%; object-fit: cover; filter: brightness(0.8); } #background-selector .image:hover, #background-selector .image:focus { filter: drop-shadow(2px 2px 6px black); } #background-selector .image:hover > img, #background-selector .image:focus > img { filter: brightness(1); } .panel h3 { width: 80%; margin-top: 0; margin-bottom: 0; font-size: 1.2em; align-self: center; } #close-panel-button { background-color: var(--alt1); height: fit-content; align-self: center; } #close-panel-button:hover, #close-panel-button:focus { background-color: var(--red); } /* Dropdown */ .dropdown { position: absolute; background-color: var(--bg2); min-width: 8em; max-height: 60vh; overflow-y: auto; margin: 0; padding: 0; transition: var(--animation-duration); } .dropdown button { background-color: transparent; color: var(--fg0); padding: 0.8em; width: -webkit-fill-available; cursor: pointer; } .dropdown button:hover, .dropdown button:focus { background-color: var(--purple); } .dropdown li { text-decoration: none; display: block; } .dropdown.hide { visibility: hidden; opacity: 100%; display: block; max-height: 0 !important; overflow-y: hidden; } /* system-bar */ #system-bar { display: flex; position: fixed; bottom: 0; width: -webkit-fill-available; height: 1.5em; padding: 5px; justify-content: flex-end; align-items: center; background-color: transparent; } #system-bar > * { font-weight: bold; margin: 2px; padding: 5px; cursor: default; backdrop-filter: blur(20px); border-radius: 2px; } #system-bar > *:hover, #system-bar > *:focus { background-color: #2828280e; backdrop-filter: blur(50px); } #layouts-list { padding: 0; } #layouts-button { all: unset; cursor: pointer; padding: 8px; } #layouts-dropdown { position: absolute; margin: 2px; bottom: 100%; display: flex; flex-direction: column-reverse; } /* Animations */ @keyframes shake { 0% { transform: rotateZ(0deg); } 25% { transform: rotateZ(10deg); } 75% { transform: rotateZ(-10deg); } 100% { transform: rotateZ(0deg); } }