You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

644 lines
10 KiB

: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);
}
}