paper pages !

This commit is contained in:
gribse 2025-11-29 14:14:03 +01:00
parent 2ac58a3d14
commit a0aadcf8f3
3 changed files with 149 additions and 49 deletions

View file

@ -15,31 +15,122 @@
src:url(TT2020Base-Regular.woff2)format('woff2'); src:url(TT2020Base-Regular.woff2)format('woff2');
} }
html { html {
background-image: url(papier.jpg); background-color: rgb(255, 255, 246);
background-repeat: repeat;
font-family: tt2020, 'Courier New', Courier, monospace; font-family: tt2020, 'Courier New', Courier, monospace;
font-size: 1.2em; font-size: 1.2em;
font-weight: 500; font-weight: 500;
} }
body { body > div {
position: absolute;
background-image: url(papier.jpg);
background-repeat: repeat;
width: 800px; width: 800px;
margin-left: auto; height: 1150px;
margin-right: auto;
margin-top: 100px; left: 0;
right: 0;
margin-inline: auto;
margin-top: 50px;
box-shadow: 5px 5px 30px #302e2a, inset 5px 5px 30px #d5d5d5;
rotate: calc(sin(var(--i) * 1.61) * 1.5deg)
}
.page-content {
padding: 100px;
}
.tape-tab {
position: absolute;
height: 80px;
width: 150px;
background-color: red;
margin-top: calc(50px + (var(--i) - 1) * 100px);
margin-left: -100px;
rotate: calc(sin(var(--i) * 1.61) * 1.5deg)
} }
</style> </style>
</header> </header>
<body> <body>
<div style="--i:1">
<h1>Heyyyy !</h1> <div class="tape-tab">
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p> <span>Accueil</span>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p> </div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<div style="--i:2">
<div class="tape-tab">
<span>page2</span>
</div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<div style="--i:3">
<div class="tape-tab">
<span>page2</span>
</div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<div style="--i:4">
<div class="tape-tab">
<span>page2</span>
</div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<div style="--i:5">
<div class="tape-tab">
<span>page2</span>
</div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<div style="--i:6">
<div class="tape-tab">
<span>page2</span>
</div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<div style="--i:7">
<div class="tape-tab">
<span>page2</span>
</div>
<div class="page-content">
<h1>Heyyyy !</h1>
<p>Je suis Gribse, un des trois zigotals de la filouterie, hébergeurs de <a href="https://chokbar.bzh/">chokbar.bzh</a></p>
<p>Sinon, si les machines à écrire et le tissage vous intéressent, allez jeter un oeil à <a href="https://www.achilletoupin.com/">mon (super) blog</a>.</p>
<span>Page mise à jour le 2025-11-23</span>
</div>
</div>
<span>Page mise à jour le 2025-11-23</span>
</body> </body>
</html> </html>

14
readMe.md Normal file
View file

@ -0,0 +1,14 @@
# Todo :
- randomize tape color
- replace tape-tab with conditional div css rule
- make clicking the tab push page to front
- make the tab cutely bend when hovered
- write content (lol)
- add sounds ?
- add dossier cartonné ?
- add table background with linked objects ?
- find better paper texture
- make typed text more realistic (blur ?)

View file

@ -1,39 +1,39 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Typewriter Upward Swing</title> <title>Typed</title>
<style> <style>
body { body {
font-family: monospace; font-family: monospace;
padding: 40px; padding: 40px;
font-size: 2rem; font-size: 2rem;
overflow-x: hidden; overflow-x: hidden;
} }
#typewriter { #typewriter {
position: relative; position: relative;
display: inline-block; display: inline-block;
white-space: pre; white-space: pre;
line-height: 1.4; line-height: 1.4;
} }
#text { #text {
position: relative; position: relative;
} }
#typebar { #typebar {
position: absolute; position: absolute;
width: 40px; width: 40px;
height: 800px; /* long typebar */ height: 800px; /* long typebar */
transform-origin: bottom center; transform-origin: bottom center;
opacity: 0; opacity: 0;
transition: transition:
transform 0.12s ease-out, transform 0.5s ease-out,
opacity 0.15s ease-out; opacity 0.5s ease-out;
pointer-events: none; pointer-events: none;
} }
</style> </style>
</head> </head>
<body> <body>
@ -56,8 +56,6 @@ let i = 0;
function nextChar() { function nextChar() {
if (i >= fullText.length) return; if (i >= fullText.length) return;
// Measure character position // Measure character position
const range = document.createRange(); const range = document.createRange();
range.setStart(textEl.firstChild, i); range.setStart(textEl.firstChild, i);
@ -75,9 +73,6 @@ function nextChar() {
// Set initial REST POSITION // Set initial REST POSITION
typebar.style.transform = `rotate(${restAngle}deg)`; typebar.style.transform = `rotate(${restAngle}deg)`;
// FADE IN before swing
// STRIKE // STRIKE
requestAnimationFrame(() => { requestAnimationFrame(() => {
typebar.style.transform = `rotate(0deg)`; typebar.style.transform = `rotate(0deg)`;
@ -94,7 +89,7 @@ function nextChar() {
}); });
i++; i++;
setTimeout(nextChar, 300); setTimeout(nextChar, 500);
} }
nextChar(); nextChar();