5 changed files with 132 additions and 5 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,124 @@ |
|||
$z-main: 20000; |
|||
$z-scanline: 10000; |
|||
|
|||
.crt-screen { |
|||
position: relative; |
|||
background: #001100; /* Тёмно-зелёный фон */ |
|||
color: #00ff00; /* Ярко-зелёный текст */ |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.crt-screen::before { |
|||
content: " "; |
|||
display: block; |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
bottom: 0; |
|||
right: 0; |
|||
background: linear-gradient( |
|||
rgba(18, 16, 16, 0) 50%, |
|||
rgba(0, 0, 0, 0.25) 50% |
|||
); |
|||
background-size: 100% 4px; |
|||
z-index: $z-main; |
|||
pointer-events: none; |
|||
} |
|||
|
|||
.crt-screen::after { |
|||
content: " "; |
|||
display: block; |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
bottom: 0; |
|||
right: 0; |
|||
background: rgba(0, 255, 0, 0.05); |
|||
opacity: 0.1; |
|||
z-index: $z-main; |
|||
pointer-events: none; |
|||
animation: flicker 0.15s infinite; |
|||
} |
|||
|
|||
/* Эффект виньетирования */ |
|||
.crt-screen { |
|||
box-shadow: |
|||
inset 0 0 60px rgba(0, 255, 0, 0.1), |
|||
inset 0 0 100px rgba(0, 20, 0, 0.8), |
|||
inset 0 0 150px rgba(0, 10, 0, 0.9); |
|||
} |
|||
|
|||
/* Эффект сканирования */ |
|||
.scanline { |
|||
width: 100%; |
|||
height: 100px; |
|||
background: linear-gradient( |
|||
0deg, |
|||
rgba(0, 255, 0, 0) 0%, |
|||
rgba(0, 255, 0, 0.1) 50%, |
|||
rgba(0, 255, 0, 0) 100% |
|||
); |
|||
position: absolute; |
|||
animation: scan 8s linear infinite; |
|||
z-index: $z-scanline; |
|||
pointer-events: none; |
|||
} |
|||
|
|||
/* Свечение для текста */ |
|||
.crt-text { |
|||
text-shadow: |
|||
0 0 5px #00ff00, |
|||
0 0 10px #00ff00, |
|||
0 0 15px #00ff00; |
|||
} |
|||
|
|||
/* Эффект мерцания */ |
|||
@keyframes flicker { |
|||
0% { opacity: 0.1; } |
|||
5% { opacity: 0.1; } |
|||
10% { opacity: 0.2; } |
|||
15% { opacity: 0.1; } |
|||
20% { opacity: 0.3; } |
|||
25% { opacity: 0.1; } |
|||
30% { opacity: 0.2; } |
|||
35% { opacity: 0.1; } |
|||
40% { opacity: 0.25; } |
|||
45% { opacity: 0.1; } |
|||
50% { opacity: 0.15; } |
|||
55% { opacity: 0.1; } |
|||
60% { opacity: 0.2; } |
|||
65% { opacity: 0.1; } |
|||
70% { opacity: 0.3; } |
|||
75% { opacity: 0.1; } |
|||
80% { opacity: 0.25; } |
|||
85% { opacity: 0.1; } |
|||
90% { opacity: 0.2; } |
|||
95% { opacity: 0.1; } |
|||
100% { opacity: 0.15; } |
|||
} |
|||
|
|||
/* Движение сканирующей линии */ |
|||
@keyframes scan { |
|||
0% { |
|||
top: -100px; |
|||
} |
|||
100% { |
|||
top: 100%; |
|||
} |
|||
} |
|||
|
|||
/* Дополнительные эффекты для контента */ |
|||
.crt-screen img, |
|||
.crt-screen video { |
|||
filter: |
|||
contrast(1.2) |
|||
brightness(0.8) |
|||
hue-rotate(90deg) |
|||
saturate(0.5); |
|||
} |
|||
|
|||
/* Эффект кривизны экрана (опционально) */ |
|||
.crt-curve { |
|||
transform: perspective(500px) rotateX(2deg); |
|||
transform-origin: center top; |
|||
} |
|||
Loading…
Reference in new issue