Files
blog/sass/_crt.scss
David Lapshin dad3e18d81 Convert colors to the superiour format (HSL)
Still need to figure out how to make sure it's sompiled to rgb everywhere
2024-05-13 01:05:49 +03:00

129 lines
2.1 KiB
SCSS

.crt {
margin: 1rem 0 1rem;
box-shadow: 0 0 0 1px var(--primary-color-alpha), 0 2px 6px 2px var(--primary-color-alpha), 0 4px 24px 4px var(--primary-color-alpha);
border-radius: var(--rounded-corner);
background: radial-gradient(hsl(0 0% 0% / 70%), hsl(0 0% 0% / 85%)), var(--primary-color);
pre {
animation: flicker 0.25s alternate infinite;
margin: unset;
box-shadow: unset;
background-color: unset;
padding: 1rem 1rem;
color: var(--primary-color);
text-shadow: var(--primary-color-alpha) 0 0 4px, var(--primary-color) 0 0 12px;
@keyframes flicker {
from {
opacity: 1;
}
25% {
opacity: 0.95;
}
50% {
opacity: 0.85;
}
75% {
opacity: 1;
}
to {
opacity: 0.9;
}
}
@media (prefers-reduced-motion) {
animation: none;
}
}
}
.scanlines {
position: relative;
overflow: hidden;
&::before {
display: block;
position: absolute;
top: 0;
left: 0;
z-index: 1;
animation: scanlines 0.25s linear infinite;
background: repeating-linear-gradient(to top, hsl(0 0% 0% / 25%), hsl(0 0% 0% / 25%) 1px, transparent 3px, transparent 4px);
width: 100%;
height: calc(100% + 0.5rem);
pointer-events: none;
content: "";
@keyframes scanlines {
from {
transform: translateY(-0.5rem);
}
to {
transform: translateY(0);
}
}
@media (prefers-reduced-motion) {
animation: none;
}
}
&::after {
display: block;
position: absolute;
bottom: 100%;
left: 0;
animation: scanline 5s linear infinite;
background: linear-gradient(to top, transparent 0%, var(--primary-color-alpha) 10%, transparent 100%);
width: 100%;
height: 8rem;
pointer-events: none;
content: "";
@keyframes scanline {
from {
bottom: 100%;
}
50% {
bottom: 100%;
}
to {
bottom: -8rem;
}
}
@media (prefers-reduced-motion) {
animation: none;
}
}
}
.cursor {
animation: cursor-blink 1s infinite;
@keyframes cursor-blink {
from {
opacity: 1;
}
50% {
opacity: 0;
}
75% {
opacity: 1;
}
}
@media (prefers-reduced-motion) {
animation: none;
}
}