Initial Release
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
body {
|
||||
margin: 0;
|
||||
background: black;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body::before {
|
||||
position: fixed;
|
||||
mix-blend-mode: multiply;
|
||||
inset: 0;
|
||||
background: repeating-linear-gradient(
|
||||
to bottom,
|
||||
rgba(255, 0, 0, 0.5) 0px,
|
||||
rgba(0, 255, 0, 0.25) 2px,
|
||||
rgba(0, 0, 255, 0.5) 4px
|
||||
);
|
||||
pointer-events: none;
|
||||
content: '';
|
||||
}
|
||||
|
||||
span,
|
||||
a,
|
||||
p {
|
||||
vertical-align: bottom;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 1.25em;
|
||||
color: #f0f0f0;
|
||||
font-size: 1.25em;
|
||||
line-height: 1.25em;
|
||||
font-family: 'Terminus', sans-serif;
|
||||
}
|
||||
|
||||
span {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus-visible {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
div.layout-content {
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.animation-blink {
|
||||
animation: kf-blink 500ms infinite step-start;
|
||||
}
|
||||
|
||||
@keyframes kf-blink {
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.animation-scrollin {
|
||||
animation: kf-scrollin 1s forwards linear;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
text-wrap-mode: nowrap;
|
||||
}
|
||||
|
||||
@keyframes kf-scrollin {
|
||||
0% {
|
||||
width: 0%;
|
||||
}
|
||||
|
||||
100% {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
const container = document.querySelector<HTMLDivElement>('div.layout-content')!
|
||||
const messages = [
|
||||
'ERROR: REALITY NOT FOUND',
|
||||
'YOU HAVE FALLEN OUT OF YOUR UNIVERSE.',
|
||||
'<br>',
|
||||
'DONT PANIC! WE CAN SENSE YOU!',
|
||||
'WE ARE BRINGING YOU INTO OURS FOR NOW.',
|
||||
'<br>',
|
||||
'REDIRECTING IN:',
|
||||
'3...',
|
||||
'2...',
|
||||
'1...',
|
||||
'<br>',
|
||||
]
|
||||
|
||||
let timer = setInterval(tick, 1000)
|
||||
let line = 0
|
||||
|
||||
function tick() {
|
||||
// Render Messages
|
||||
container.innerHTML = messages
|
||||
.filter((_, i) => line > i)
|
||||
.map((_, i) => {
|
||||
const me = line - 1 === i
|
||||
const styleP = me ? 'animation-scrollin' : ''
|
||||
const styleS = me ? 'inline-block' : 'none'
|
||||
return `<p class="${styleP}">${messages[i]} <span class="animation-blink" style="display: ${styleS}">_</span> </p>`
|
||||
})
|
||||
.join('')
|
||||
|
||||
// Messages complete, redirect to homepage!
|
||||
if (line === messages.length) {
|
||||
window.location.replace('/')
|
||||
clearInterval(timer)
|
||||
}
|
||||
|
||||
line++
|
||||
}
|
||||
Reference in New Issue
Block a user