You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
3.0 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ashe@tilde.club</title>
<script src="https://unpkg.com/ansi_up@5.1.0/ansi_up.js"></script>
</head>
<body>
<input autofocus id="input"/>
<div id="container">
<div id="target">
<noscript>
<p>
This page requires javascript, unfortunately
</p>
<p>
(noscript fallback coming soon)
</p>
</noscript>
</div>
</div>
<style>
html, body {
--background-color: rgb(37, 29, 51);
--foreground-color: white;
color: var(--foreground-color);
margin: 0;
padding: 0;
}
a {
color: currentColor!important;
}
body {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
background: #392e41;
}
#container {
background: var(--background-color);
white-space: pre-wrap;
word-break: break-all;
font-family: 'Courier New', Courier, monospace;
line-height: 18px;
height: 24em;
width: 64ch;
position: relative;
overflow: hidden;
user-select: none;
box-shadow: 0 5px 5px -3px rgb(0 0 0 / 20%), 0 8px 10px 1px rgb(0 0 0 / 14%), 0 3px 14px 2px rgb(0 0 0 / 12%);
}
#target {
position: absolute;
bottom: 0;
min-height: 100%;
}
#target::after {
content: '█';
display: inline-block;
animation: blink 2.4s infinite;
opacity: .8;
}
#input {
pointer-events: none;
opacity: 0;
}
@keyframes blink {
0%, 49% {
color: var(--foreground-color);
border: none;
/* margin: .5px; */
}
50%, 99% {
color: transparent;
/* border: solid .5px var(--foreground-color); */
margin: 0px;
}
}
</style>
<script>
function scale() {
const container = document.getElementById('container');
const height = window.innerHeight;
const width = window.innerWidth;
const scaleX = width / 630;
const scaleY = height / 480;
const scale = 0 || Math.min(scaleX, scaleY);
container.style.transform = `scale(${scale})`;
}
window.addEventListener('resize', scale);
scale();
document.getElementById("input").addEventListener("change", ev => {
ev.target.value = ""
})
</script>
<noscript>
<style>
p {
width: 600px;
margin: 0 10px;
text-align: center;
}
#target {
white-space: initial;
display: flex;
flex-direction: column;
justify-content: center;
}
#target::after {
display: none;
}
</style>
</noscript>
</body>
</html>