OpenTerminal/public/styles/main.css

137 lines
2.2 KiB
CSS

:root {
--colour: #a6e3a1;
--bgcolour: #1e1e2e;
}
body {
margin: 0;
padding: 0;
color: var(--colour);
background-color: var(--bgcolour);
font-family: monospace;
font-size: 12px;
}
main {
margin: 0 1rem;
border: 1px solid var(--colour);
}
pre#content {
height: calc(100vh - 6rem);
margin: 0;
padding: 1rem;
overflow-x: hidden;
overflow-y: scroll;
white-space: break-spaces;
line-break: anywhere;
text-shadow: 0 0 1em, 0 0 3em;
}
div#caret {
width: .5em;
height: .9em;
display: inline-block;
background: var(--colour);
transform: translateY(1px);
animation: linear .5s infinite forwards caret-blink;
}
@keyframes caret-blink {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
footer,
header {
height: 18px;
padding: .5em 2em;
display: flex;
gap: 1em;
align-items: center;
justify-content: space-between;
}
footer ul,
header ul {
margin: 0;
padding: 0;
display: flex;
gap: 1em;
}
footer li,
header li {
list-style: none;
opacity: .5;
}
footer li:has(a):hover,
header li:has(a):hover {
text-shadow: 0 0 1em, 0 0 3em;
opacity: 1;
}
footer a,
header a {
color: var(--colour);
text-decoration: none;
cursor: pointer;
}
div#overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-image: linear-gradient(180deg, rgba(0,0,0,0) 15%, rgb(0, 0, 0) 40%, rgb(0, 0, 0) 60%, rgba(0,0,0,0) 85%);
background-size: 100vw .2em;
background-repeat: repeat;
opacity: .5;
pointer-events: none;
animation: linear .05s infinite alternate overlay-flicker;
mix-blend-mode: overlay;
}
body.lcd div#overlay {
background-image:
linear-gradient(to right,
rgba(255,0,0,.5) 0%, rgba(255,0,0,.5) 33%,
rgba(0,255,0,.5) 34%, rgba(0,255,0,.5) 66%,
rgba(0,0,255,.5) 66%, rgba(0,0,255,.5) 100%),
linear-gradient(to top, rgba(255,255,255,255) 0%, rgba(255,255,255,0) 100%);
mix-blend-mode: multiply;
background-size: 3px 3px;
animation: none;
}
body.lcd pre#content {
text-shadow: -1px 0 rgba(255,0,0,.5), 1px 0 rgba(0,0,255,.5), 0 0 .5em, 0 0 3em;
}
@keyframes overlay-flicker {
from {
opacity: .5;
}
to {
opacity: .6;
}
}
#mobile-input {
position: absolute;
top: 1.2em;
left: 1.2em;
width: calc(100vw - 3em);
height: calc(100vh - 3.9em);
opacity: 0;
user-select: none;
pointer-events: none;
}