: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); &.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); } } body { margin:0; background: var(--background-low); color: var(--foreground-high); } #root { height: 100vh; width: 100vw; margin: 0; display: flex; flex-direction: column; justify-items: stretch; align-items: stretch; } #navigation { padding-top:25px; height: 25px; box-shadow: inset 0 -2px 3px 0 var(--shadows-color); } #view { flex: 1; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr 1fr 1fr; justify-items: center; grid-gap: 5%; padding: 5%; } .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; width: 70px; background: yellow; border-radius: 15px; 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); appearance: unset; transition: box-shadow 300ms; } .dm-indicator:checked { 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); } .toggle-switch { appearance: unset; display: inline-block; height: 30px; width: 70px; border-radius: 15px; background: var(--background-low); box-shadow: inset -40px 0px 2px -2px var(--foreground-high), 0 0 2px 2px var(--foreground-high); transition: box-shadow 300ms; } .toggle-switch:checked { box-shadow: inset 40px 0px 2px -2px green, 0 0 2px 2px var(--foreground-high); } .board_tab { display: inline-block; height: 24px; width: 100px; 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; } .active_board { color: var(--foreground-low); background: var(--background-high); } .libSlot, .pecSlot { background-color: var(--background-low); border: solid 3px var(--foreground-low); border-radius: 6px; 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); } .empty { color: var(--forground-low); font-size: 100%; text-align: center; } .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 { height: 50px; box-shadow: inset 0 -2px 3px 0 var(--shadows-color); display: flex; justify-content: stretch; font-size: 32pt; user-select: none; } .title_text { text-align: center; flex: 1; } .options_button, .close { display: inline-block; background: var(--middle-accent); box-shadow: inset 2px 2px 2px 0 var(--middle-shade); width: 50px; text-align: center; cursor: pointer; } .options_button { position: absolute; height: 50px; top: 0; right: 0; font-size: 32pt; } .focused { left: 0vw; backdrop-filter: blur(5px); transition: left 500ms, backdrop-filter 500ms; } .library_body { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; grid-gap: 5%; padding: 5%; } .options_body { display: flex; flex-direction: column; align-items: stretch; } .pec { text-align: center; 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; color: var(--foreground-high); background: var(--background-high); } .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%; } }