OpenTerminal/public/styles/main.css

259 lines
4 KiB
CSS
Raw Normal View History

2023-09-30 01:34:43 +00:00
:root {
2023-09-30 06:58:03 +00:00
--colour: #a6e3a1;
--bgcolour: #1e1e2e;
--warn-colour: #e83737;
2023-09-30 01:34:43 +00:00
}
body {
margin: 0;
padding: 0;
2023-09-30 06:58:03 +00:00
color: var(--colour);
background-color: var(--bgcolour);
2023-09-30 01:34:43 +00:00
font-family: monospace;
font-size: 12px;
}
main {
margin: 0 1rem;
2023-09-30 06:58:03 +00:00
border: 1px solid var(--colour);
2023-09-30 01:34:43 +00:00
}
pre#content {
height: calc(100vh - 6rem);
2023-09-30 01:34:43 +00:00
margin: 0;
padding: 1rem;
overflow-x: hidden;
overflow-y: scroll;
white-space: break-spaces;
line-break: anywhere;
2023-10-02 22:52:23 +00:00
text-shadow: 0 0 2em;
2023-09-30 01:34:43 +00:00
}
div#caret {
2023-09-30 01:34:43 +00:00
width: .5em;
height: .9em;
display: inline-block;
2023-09-30 06:58:03 +00:00
background: var(--colour);
2023-09-30 01:34:43 +00:00
transform: translateY(1px);
animation: linear .5s infinite forwards caret-blink;
2023-09-30 01:34:43 +00:00
}
@keyframes caret-blink {
2023-09-30 01:34:43 +00:00
from {
opacity: 1;
}
to {
opacity: 0;
}
}
footer,
header {
2023-09-30 09:55:58 +00:00
height: 18px;
padding: .5em 2em;
display: flex;
gap: 1em;
align-items: center;
justify-content: space-between;
2023-09-30 09:55:58 +00:00
}
footer ul,
header ul {
2023-09-30 09:55:58 +00:00
margin: 0;
padding: 0;
display: flex;
gap: 1em;
2023-09-30 09:55:58 +00:00
}
footer li,
header li {
2023-09-30 09:55:58 +00:00
list-style: none;
}
footer li a,
header li a,
footer li:not(:has(a)),
header li:not(:has(a)) {
2023-09-30 09:55:58 +00:00
opacity: .5;
}
footer a:hover,
header a:hover,
footer a.active,
header a.active {
2023-09-30 09:55:58 +00:00
text-shadow: 0 0 1em, 0 0 3em;
opacity: 1;
}
footer a,
header a {
2023-09-30 09:55:58 +00:00
color: var(--colour);
text-decoration: none;
cursor: pointer;
2023-09-30 09:55:58 +00:00
}
ul#colours-dropdown {
position: absolute;
top: 2.5em;
right: 1.3em;
padding: calc(1rem - .25em);
display: none;
flex-direction: column;
text-align: right;
gap: 0;
border: 1px solid var(--colour);
background: var(--bgcolour);
max-height: 18em;
overflow-y: scroll;
}
ul#colours-dropdown.active {
display: flex;
}
ul#colours-dropdown li {
padding: .25em .5em;
cursor: pointer;
}
ul#colours-dropdown li:hover,
ul#colours-dropdown li.active {
opacity: 1;
color: var(--bgcolour);
background: var(--colour);
}
2023-09-30 01:34:43 +00:00
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;
2023-10-03 00:21:34 +00:00
z-index: 100;
2023-09-30 01:34:43 +00:00
}
2023-10-01 16:15:53 +00:00
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;
}
2023-09-30 01:34:43 +00:00
@keyframes overlay-flicker {
from {
opacity: .5;
}
to {
opacity: .6;
}
}
2023-09-30 09:55:58 +00:00
#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;
}
2023-10-03 00:21:34 +00:00
#dialog-backdrop {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: none;
background: black;
opacity: .25;
z-index: 99;
}
div.dialog {
2023-10-03 00:21:34 +00:00
position: fixed;
top: 50%;
left: 50%;
margin: auto auto;
padding: 1rem;
display: none;
transform: translate(-50%, -50%);
border: 1px solid var(--colour);
color: var(--colour);
background: var(--bgcolour);
text-shadow: 0 0 2em;
z-index: 99;
}
div.dialog p {
2023-10-03 00:21:34 +00:00
margin: 0 0 1em 0;
}
div.dialog input {
2023-10-03 00:21:34 +00:00
font-family: inherit;
color: inherit;
border: inherit;
2023-10-03 00:21:34 +00:00
background: transparent;
}
div.dialog input::placeholder {
2023-10-03 00:21:34 +00:00
font-family: inherit;
color: inherit;
2023-10-03 00:21:34 +00:00
opacity: .25;
}
div.dialog button {
2023-10-03 00:21:34 +00:00
font-family: inherit;
border: inherit;
color: inherit;
2023-10-03 00:21:34 +00:00
background: transparent;
cursor: pointer;
}
#dialog-backdrop.show,
div.dialog.show {
display: block;
}
div.dialog .dialog-close {
2023-10-03 00:21:34 +00:00
position: absolute;
top: -0.7em;
right: 1rem;
border: none;
background: var(--bgcolour);
}
#connect-dialog {
max-width: calc(100vw - 4rem);
width: 16rem;
}
#warn-dialog {
max-width: 18rem;
color: var(--warn-colour);
border-color: var(--warn-colour);
}
2023-10-03 00:21:34 +00:00
*:focus {
outline: none;
box-shadow: 0 0 4px;
}