Files
librePECS/main.css

252 lines
5.1 KiB
CSS
Raw Permalink Normal View History

: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);
&.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 {
2025-10-06 08:56:39 -06:00
padding-top: var(--ui-half-height);
height: var(--ui-half-height);
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;
2025-08-18 11:25:22 -06:00
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;
2025-10-06 08:56:39 -06:00
height: var(--ui-half-height);
min-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;
2025-10-06 08:56:39 -06:00
line-height: var(--ui-half-height);
font-size: var(--ui-quarter-height);
}
.active_board {
color: var(--foreground-low);
background: var(--background-high);
}
2025-08-18 11:25:22 -06:00
.libSlot, .pecSlot {
background-color: var(--background-low);
border: solid 3px var(--foreground-low);
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);
}
.empty {
color: var(--forground-low);
2025-08-18 11:25:22 -06:00
font-size: 100%;
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);
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;
}
.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%;
}
.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;
color: var(--foreground-high);
background: var(--background-high);
2025-08-12 16:08:02 -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%;
}
}