Matrix Rain Effect
Digital rain effect inspired by The Matrix with falling characters.
animation
matrix
digital
rain
Preview
Loading preview...
HTML
<div class="matrix-rain">
<div class="matrix-column">1<br>0<br>1<br>0<br>1<br>1<br>0<br>1<br>0<br>1</div>
<div class="matrix-column">0<br>1<br>0<br>1<br>0<br>1<br>1<br>0<br>1<br>0</div>
<div class="matrix-column">1<br>1<br>0<br>0<br>1<br>0<br>1<br>0<br>1<br>1</div>
<div class="matrix-column">0<br>0<br>1<br>1<br>0<br>1<br>0<br>1<br>0<br>0</div>
<div class="matrix-column">1<br>0<br>1<br>0<br>1<br>1<br>0<br>1<br>0<br>1</div>
<div class="matrix-column">0<br>1<br>0<br>1<br>0<br>1<br>1<br>0<br>1<br>0</div>
<div class="matrix-column">1<br>1<br>0<br>0<br>1<br>0<br>1<br>0<br>1<br>1</div>
<div class="matrix-column">0<br>0<br>1<br>1<br>0<br>1<br>0<br>1<br>0<br>0</div>
<div class="matrix-column">1<br>0<br>1<br>0<br>1<br>1<br>0<br>1<br>0<br>1</div>
<div class="matrix-column">0<br>1<br>0<br>1<br>0<br>1<br>1<br>0<br>1<br>0</div>
</div>
CSS
.matrix-rain {
position: relative;
width: 100%;
height: 300px;
background: #000;
overflow: hidden;
border-radius: 8px;
font-family: 'Courier New', monospace;
}
.matrix-column {
position: absolute;
top: -100%;
color: #0f0;
font-size: 14px;
line-height: 1.2;
animation: matrix-fall 3s linear infinite;
opacity: 0.8;
}
.matrix-column:nth-child(1) { left: 5%; animation-delay: -0.5s; }
.matrix-column:nth-child(2) { left: 15%; animation-delay: -1s; }
.matrix-column:nth-child(3) { left: 25%; animation-delay: -1.5s; }
.matrix-column:nth-child(4) { left: 35%; animation-delay: -2s; }
.matrix-column:nth-child(5) { left: 45%; animation-delay: -0.8s; }
.matrix-column:nth-child(6) { left: 55%; animation-delay: -1.2s; }
.matrix-column:nth-child(7) { left: 65%; animation-delay: -1.8s; }
.matrix-column:nth-child(8) { left: 75%; animation-delay: -0.3s; }
.matrix-column:nth-child(9) { left: 85%; animation-delay: -1.3s; }
.matrix-column:nth-child(10) { left: 95%; animation-delay: -0.7s; }
@keyframes matrix-fall {
0% { transform: translateY(-100%); opacity: 0; }
10% { opacity: 1; }
90% { opacity: 1; }
100% { transform: translateY(400px); opacity: 0; }
}