2025-08-18 15:20:51 -06:00
|
|
|
:root {
|
|
|
|
|
--foreground-high: rgba(10,10,10,1);
|
|
|
|
|
--foreground-low: rgba(40,40,40,1);
|
|
|
|
|
--background-high: rgba(200,200,200,0.5);
|
|
|
|
|
--background-low: rgba(250,250,250,0.5);
|
|
|
|
|
--middle-accent: rgba(128,128,128,0.1);
|
|
|
|
|
--middle-shade: rgba(128,128,128,0.5);
|
|
|
|
|
--shadows-color: rgba(138,138,138,1);
|
2025-10-06 08:56:39 -06:00
|
|
|
--ui-height: 5vh;
|
|
|
|
|
--ui-half-height: calc(var(--ui-height) / 2);
|
|
|
|
|
--ui-quarter-height: calc(var(--ui-half-height) / 2);
|
2025-08-18 19:54:13 -06:00
|
|
|
&.darkmode {
|
|
|
|
|
--foreground-high: rgba(250,250,250,0.5);
|
|
|
|
|
--foreground-low: rgba(200,200,200,1);
|
|
|
|
|
--background-high: rgba(40,40,40,0.5);
|
|
|
|
|
--background-low: rgba(10,10,10,1);
|
|
|
|
|
--shadows-color: rgba(138,138,138,1);
|
|
|
|
|
}
|
2025-08-18 15:20:51 -06:00
|
|
|
}
|
|
|
|
|
|
2025-07-07 16:09:29 -06:00
|
|
|
body {
|
|
|
|
|
margin:0;
|
2025-08-18 19:54:13 -06:00
|
|
|
background: var(--background-low);
|
|
|
|
|
color: var(--foreground-high);
|
2025-07-07 16:09:29 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#root {
|
|
|
|
|
height: 100vh;
|
|
|
|
|
width: 100vw;
|
|
|
|
|
margin: 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
justify-items: stretch;
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#navigation {
|
2025-10-06 08:56:39 -06:00
|
|
|
padding-top: var(--ui-half-height);
|
|
|
|
|
height: var(--ui-half-height);
|
2025-08-18 15:20:51 -06:00
|
|
|
box-shadow: inset 0 -2px 3px 0 var(--shadows-color);
|
2025-07-07 16:09:29 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#view {
|
|
|
|
|
flex: 1;
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: 1fr 1fr 1fr 1fr;
|
|
|
|
|
grid-template-rows: 1fr 1fr 1fr 1fr;
|
2025-08-18 11:25:22 -06:00
|
|
|
justify-items: center;
|
2025-07-07 16:09:29 -06:00
|
|
|
grid-gap: 5%;
|
|
|
|
|
padding: 5%;
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-18 19:54:13 -06:00
|
|
|
.options_body > div {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
border-bottom: solid 1px var(--foreground-low);
|
|
|
|
|
padding: 0 20px 0 20px;
|
|
|
|
|
height: 40px;
|
|
|
|
|
label {
|
|
|
|
|
flex:1;
|
|
|
|
|
}
|
|
|
|
|
input[type="number"] {
|
|
|
|
|
width: 100px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.dm-indicator {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
height: 30px;
|
2025-09-19 13:38:50 -06:00
|
|
|
width: 70px;
|
2025-08-18 19:54:13 -06:00
|
|
|
background: yellow;
|
|
|
|
|
border-radius: 15px;
|
2025-09-19 13:38:50 -06:00
|
|
|
box-shadow: inset -40px 0px 2px -2px var(--foreground-high), inset 0 0 5px 5px rgba(240,140,0,0.8), inset -40px 0 5px 5px rgba(240,140,0,0.8), 0 0 2px 2px var(--foreground-high);
|
2025-08-18 19:54:13 -06:00
|
|
|
appearance: unset;
|
2025-09-19 13:38:50 -06:00
|
|
|
transition: box-shadow 300ms;
|
2025-08-18 19:54:13 -06:00
|
|
|
}
|
|
|
|
|
.dm-indicator:checked {
|
2025-09-19 13:38:50 -06:00
|
|
|
background: black;
|
|
|
|
|
box-shadow: inset 40px 0px 2px -2px var(--foreground-high), inset -10px 10px 20px -15px lightgrey, inset -10px 0px 15px -10px white, 0 0 2px 2px var(--foreground-high);
|
2025-08-18 19:54:13 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.toggle-switch {
|
|
|
|
|
appearance: unset;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
height: 30px;
|
|
|
|
|
width: 70px;
|
|
|
|
|
border-radius: 15px;
|
|
|
|
|
background: var(--background-low);
|
2025-09-19 13:38:50 -06:00
|
|
|
box-shadow: inset -40px 0px 2px -2px var(--foreground-high), 0 0 2px 2px var(--foreground-high);
|
2025-08-18 19:54:13 -06:00
|
|
|
transition: box-shadow 300ms;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.toggle-switch:checked {
|
2025-09-19 13:38:50 -06:00
|
|
|
box-shadow: inset 40px 0px 2px -2px green, 0 0 2px 2px var(--foreground-high);
|
2025-08-18 19:54:13 -06:00
|
|
|
}
|
|
|
|
|
|
2025-08-18 15:20:51 -06:00
|
|
|
.board_tab {
|
|
|
|
|
display: inline-block;
|
2025-10-06 08:56:39 -06:00
|
|
|
height: var(--ui-half-height);
|
|
|
|
|
min-width: 100px;
|
2025-08-18 15:20:51 -06:00
|
|
|
border: solid 1px var(--foreground-low);
|
|
|
|
|
color: var(--foreground-high);
|
|
|
|
|
border-bottom: unset;
|
|
|
|
|
border-radius: 15px 15px 0 0;
|
|
|
|
|
background: var(--background-low);
|
|
|
|
|
text-align: center;
|
2025-10-06 08:56:39 -06:00
|
|
|
line-height: var(--ui-half-height);
|
|
|
|
|
font-size: var(--ui-quarter-height);
|
2025-08-18 15:20:51 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.active_board {
|
|
|
|
|
color: var(--foreground-low);
|
|
|
|
|
background: var(--background-high);
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-18 11:25:22 -06:00
|
|
|
.libSlot, .pecSlot {
|
2025-09-19 13:38:50 -06:00
|
|
|
background-color: var(--background-low);
|
2025-08-18 15:20:51 -06:00
|
|
|
border: solid 3px var(--foreground-low);
|
2025-07-07 16:09:29 -06:00
|
|
|
border-radius: 6px;
|
2025-08-18 11:25:22 -06:00
|
|
|
user-select: none;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pecSlot {
|
|
|
|
|
--square-pec-size: calc( min( min( 100vh, 100vw ), hypot( 100vh, 100vw ) ) * 0.15);
|
|
|
|
|
height: var(--square-pec-size);
|
|
|
|
|
width: var(--square-pec-size);
|
2025-07-07 16:09:29 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.empty {
|
2025-08-18 15:20:51 -06:00
|
|
|
color: var(--forground-low);
|
2025-08-18 11:25:22 -06:00
|
|
|
font-size: 100%;
|
2025-07-07 16:09:29 -06:00
|
|
|
text-align: center;
|
|
|
|
|
}
|
2025-08-12 16:08:02 -06:00
|
|
|
|
|
|
|
|
.dialog {
|
|
|
|
|
display: block;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: -100vw;
|
|
|
|
|
height: 100vh;
|
|
|
|
|
width: 100vw;
|
|
|
|
|
backdrop-filter: blur(0px);
|
|
|
|
|
transition: left 500ms, backdrop-filter 500ms;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title_bar {
|
2025-10-06 08:56:39 -06:00
|
|
|
height: var(--ui-height);
|
2025-08-18 15:20:51 -06:00
|
|
|
box-shadow: inset 0 -2px 3px 0 var(--shadows-color);
|
2025-08-12 16:08:02 -06:00
|
|
|
display: flex;
|
|
|
|
|
justify-content: stretch;
|
2025-10-06 08:56:39 -06:00
|
|
|
font-size: var(--ui-half-height);
|
2025-08-12 16:08:02 -06:00
|
|
|
user-select: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title_text {
|
|
|
|
|
text-align: center;
|
|
|
|
|
flex: 1;
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-18 15:21:33 -06:00
|
|
|
.options_button, .close {
|
2025-08-12 16:08:02 -06:00
|
|
|
display: inline-block;
|
2025-08-18 15:21:33 -06:00
|
|
|
background: var(--middle-accent);
|
|
|
|
|
box-shadow: inset 2px 2px 2px 0 var(--middle-shade);
|
2025-10-06 08:56:39 -06:00
|
|
|
width: var(--ui-height);
|
2025-08-12 16:08:02 -06:00
|
|
|
text-align: center;
|
|
|
|
|
cursor: pointer;
|
2025-10-06 08:56:39 -06:00
|
|
|
line-height: var(--ui-height);
|
2025-08-12 16:08:02 -06:00
|
|
|
}
|
|
|
|
|
|
2025-08-18 15:21:33 -06:00
|
|
|
.options_button {
|
|
|
|
|
position: absolute;
|
2025-10-06 08:56:39 -06:00
|
|
|
height: var(--ui-height);
|
2025-08-18 15:21:33 -06:00
|
|
|
top: 0;
|
|
|
|
|
right: 0;
|
2025-10-06 08:56:39 -06:00
|
|
|
font-size: var(--ui-half-height);
|
2025-08-18 15:21:33 -06:00
|
|
|
}
|
|
|
|
|
|
2025-08-12 16:08:02 -06:00
|
|
|
.focused {
|
|
|
|
|
left: 0vw;
|
|
|
|
|
backdrop-filter: blur(5px);
|
|
|
|
|
transition: left 500ms, backdrop-filter 500ms;
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-18 19:54:13 -06:00
|
|
|
.library_body {
|
2025-08-12 16:08:02 -06:00
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
|
|
|
|
|
grid-gap: 5%;
|
|
|
|
|
padding: 5%;
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-18 19:54:13 -06:00
|
|
|
.options_body {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-12 16:08:02 -06:00
|
|
|
.pec {
|
|
|
|
|
text-align: center;
|
2025-08-18 11:25:22 -06:00
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pecImage {
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pecName {
|
|
|
|
|
position: absolute;
|
|
|
|
|
width: 100%;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
text-align: center;
|
2025-08-18 15:20:51 -06:00
|
|
|
color: var(--foreground-high);
|
|
|
|
|
background: var(--background-high);
|
2025-08-12 16:08:02 -06:00
|
|
|
}
|
2025-09-19 13:38:50 -06:00
|
|
|
|
|
|
|
|
.button {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
background-color: var(--middle-accent);
|
|
|
|
|
box-shadow: inset 0 0 2px 0 var(--middle-shade);
|
|
|
|
|
text-align: center;
|
|
|
|
|
padding: 5px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.holding {
|
|
|
|
|
animation-name: countdown;
|
|
|
|
|
animation-duration: 3s;
|
|
|
|
|
animation-timing-function: linear;
|
|
|
|
|
animation-play-state: running;
|
|
|
|
|
animation-iteration-count: infinite;
|
|
|
|
|
background-image: linear-gradient(to left, red 50%, transparent 50%);
|
|
|
|
|
background-size: 200% 200%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes countdown {
|
|
|
|
|
from {
|
|
|
|
|
background-position: 0% 0%
|
|
|
|
|
}
|
|
|
|
|
to {
|
|
|
|
|
background-position: -100% 0%;
|
|
|
|
|
}
|
|
|
|
|
}
|