104 lines
2.0 KiB
SCSS
104 lines
2.0 KiB
SCSS
.crt {
|
|
margin: 1rem 0 1rem;
|
|
box-shadow:
|
|
var(--edge-highlight),
|
|
0 0 0 0.0625rem var(--accent-color-alpha),
|
|
0 0.125rem 0.375rem 0.125rem var(--accent-color-alpha),
|
|
0 0.25rem 1.5rem 0.25rem var(--accent-color-alpha);
|
|
border-radius: var(--rounded-corner);
|
|
background-image: radial-gradient(color-mix(in srgb, var(--accent-color) 30%, black),
|
|
color-mix(in srgb, var(--accent-color) 10%, black) 80%,
|
|
color-mix(in srgb, var(--accent-color) 5%, black));
|
|
|
|
pre {
|
|
--text-shadow-1: hsl(from var(--accent-color) h s l / 50%);
|
|
--text-shadow-2: hsl(from var(--accent-color) h calc(s * 2) l);
|
|
animation: flicker 0.25s alternate infinite;
|
|
margin: 0;
|
|
box-shadow: none;
|
|
background-color: transparent !important;
|
|
padding: 1rem 1rem;
|
|
color: var(--accent-color);
|
|
text-shadow:
|
|
var(--text-shadow-1) 0 0 0.25rem,
|
|
var(--text-shadow-2) 0 0 0.75rem;
|
|
|
|
@keyframes flicker {
|
|
25% {
|
|
opacity: 0.95;
|
|
}
|
|
|
|
50% {
|
|
opacity: 0.85;
|
|
}
|
|
|
|
75% {
|
|
opacity: 1;
|
|
}
|
|
|
|
to {
|
|
opacity: 0.9;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.scanlines {
|
|
position: relative;
|
|
overflow: hidden;
|
|
|
|
&::before {
|
|
display: block;
|
|
position: absolute;
|
|
z-index: 1;
|
|
animation: scanlines 0.1s linear infinite;
|
|
inset: 0;
|
|
background-image: repeating-linear-gradient(to bottom,
|
|
rgb(0 0 0 / 25%),
|
|
rgb(0 0 0 / 25%) 0.125rem,
|
|
transparent 0.125rem,
|
|
transparent 0.25rem);
|
|
pointer-events: none;
|
|
content: "";
|
|
|
|
@keyframes scanlines {
|
|
to {
|
|
background-position-y: 0.25rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&::after {
|
|
--scanline-color: rgb(from var(--accent-color) r g b / 5%);
|
|
display: block;
|
|
position: absolute;
|
|
animation: scanline 5s linear infinite;
|
|
inset: 0;
|
|
background-image: linear-gradient(
|
|
to bottom,
|
|
transparent,
|
|
var(--scanline-color) 16rem);
|
|
background-size: auto 16rem;
|
|
background-repeat: no-repeat;
|
|
background-position-y: -16rem;
|
|
pointer-events: none;
|
|
content: "";
|
|
|
|
@keyframes scanline {
|
|
to {
|
|
background-position-y: calc(100% + 16rem);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.cursor {
|
|
animation: cursor-blink 1s infinite;
|
|
|
|
@keyframes cursor-blink {
|
|
50% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
}
|