Upload files to "/"
Initial Commit
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					deploy_dangrubb.net.sh
 | 
				
			||||||
							
								
								
									
										254
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										254
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,254 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<html lang="en" >
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					  <meta charset="UTF-8">
 | 
				
			||||||
 | 
					  <title>dangrubb.net</title>
 | 
				
			||||||
 | 
					      <link rel="icon" href="/src/img/favicon.ico" type="image/x-icon">
 | 
				
			||||||
 | 
					  <link rel="icon" href="/src/img/favicon.ico" type="image/x-icon">
 | 
				
			||||||
 | 
					  <link rel="stylesheet" href="./style.css">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<!-- partial:index.partial.html -->
 | 
				
			||||||
 | 
					<div class="bard">
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -2em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -16deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 2em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 13deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -0em;
 | 
				
			||||||
 | 
					    height: 5em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-9;
 | 
				
			||||||
 | 
					    animation-duration: 9000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 2s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -1em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -42deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -6em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -23deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -5em;
 | 
				
			||||||
 | 
					    height: 3em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-5;
 | 
				
			||||||
 | 
					    animation-duration: 5000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -10em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -42deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -9em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 45deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -8em;
 | 
				
			||||||
 | 
					    height: 3em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-7;
 | 
				
			||||||
 | 
					    animation-duration: 7000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 0s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -6em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -11deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 2em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 29deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -11em;
 | 
				
			||||||
 | 
					    height: 5em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-8;
 | 
				
			||||||
 | 
					    animation-duration: 8000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: 0em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 42deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 2em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -28deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -16em;
 | 
				
			||||||
 | 
					    height: 5em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-6;
 | 
				
			||||||
 | 
					    animation-duration: 6000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 0s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -3em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -45deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -5em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -15deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -21em;
 | 
				
			||||||
 | 
					    height: 2em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-7;
 | 
				
			||||||
 | 
					    animation-duration: 7000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 0s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -5em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 35deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 9em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 35deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -23em;
 | 
				
			||||||
 | 
					    height: 2em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-6;
 | 
				
			||||||
 | 
					    animation-duration: 6000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 0s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: 10em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 39deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -8em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 24deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -25em;
 | 
				
			||||||
 | 
					    height: 6em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-7;
 | 
				
			||||||
 | 
					    animation-duration: 7000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -6em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -46deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -3em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 18deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -31em;
 | 
				
			||||||
 | 
					    height: 6em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-10;
 | 
				
			||||||
 | 
					    animation-duration: 10000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -8em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -37deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -6em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 15deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -37em;
 | 
				
			||||||
 | 
					    height: 1em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-9;
 | 
				
			||||||
 | 
					    animation-duration: 9000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -1em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 16deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 2em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 25deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -38em;
 | 
				
			||||||
 | 
					    height: 2em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-5;
 | 
				
			||||||
 | 
					    animation-duration: 5000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: 5em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 32deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 10em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -3deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -40em;
 | 
				
			||||||
 | 
					    height: 2em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-9;
 | 
				
			||||||
 | 
					    animation-duration: 9000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: 10em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -26deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: 6em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -45deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -42em;
 | 
				
			||||||
 | 
					    height: 4em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-6;
 | 
				
			||||||
 | 
					    animation-duration: 6000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -7em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: -45deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -8em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 45deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -46em;
 | 
				
			||||||
 | 
					    height: 3em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-5;
 | 
				
			||||||
 | 
					    animation-duration: 5000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 2s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: 4em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 40deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -8em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: 29deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -49em;
 | 
				
			||||||
 | 
					    height: 3em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-6;
 | 
				
			||||||
 | 
					    animation-duration: 6000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 1s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: -4em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 26deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -6em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -3deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -52em;
 | 
				
			||||||
 | 
					    height: 6em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-10;
 | 
				
			||||||
 | 
					    animation-duration: 10000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 0s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <div class="strip" style="
 | 
				
			||||||
 | 
					    --glitch-x-1: 6em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: 43deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: -1em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: -1deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -58em;
 | 
				
			||||||
 | 
					    height: 4em; 
 | 
				
			||||||
 | 
					    animation-name: glitch-8;
 | 
				
			||||||
 | 
					    animation-duration: 8000ms; 
 | 
				
			||||||
 | 
					    animation-delay: 0s;
 | 
				
			||||||
 | 
					  "></div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					  dangrubb.net
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					  <a target="_parent" href="https://ai.dangrubb.net">ai</a>
 | 
				
			||||||
 | 
					  <a target="_parent" href="https://ghost.dangrubb.net">blog</a>
 | 
				
			||||||
 | 
					  <a target="_parent" href="https://pi.dangrubb.net/jellyfin">media</a>
 | 
				
			||||||
 | 
					  <a target="_parent" href="https://pi.dangrubb.net/nextcloud">storage</a>
 | 
				
			||||||
 | 
					  <a target="_parent" href="https://dangrubb.net/cv">cv</a>
 | 
				
			||||||
 | 
					  <a target="_parent" href="https://pi.dangrubb.net/dangit">git</a></p>
 | 
				
			||||||
 | 
					<div class="debug">
 | 
				
			||||||
 | 
					  <div class="code"></div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<!-- partial -->
 | 
				
			||||||
 | 
					  <script  src="./script.js"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										129
									
								
								script.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								script.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,129 @@
 | 
				
			|||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					const random = (min, max) => {
 | 
				
			||||||
 | 
					    return Math.round(Math.random() * (max - min)) + min;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					const getKeyFrames = (name, glitchPercentageDuration, steps = 3, tick = 0.1) => {
 | 
				
			||||||
 | 
					    const percentageStep = 100 / steps;
 | 
				
			||||||
 | 
					    const keyframes = [];
 | 
				
			||||||
 | 
					    // First keyframe
 | 
				
			||||||
 | 
					    const baseKeys = [0];
 | 
				
			||||||
 | 
					    for (let i = 1; i < steps; i++) {
 | 
				
			||||||
 | 
					        const p = i * percentageStep;
 | 
				
			||||||
 | 
					        baseKeys.push(p);
 | 
				
			||||||
 | 
					        baseKeys.push(p + glitchPercentageDuration);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // Last keyframe
 | 
				
			||||||
 | 
					    baseKeys.push(100);
 | 
				
			||||||
 | 
					    keyframes.push({
 | 
				
			||||||
 | 
					        keys: baseKeys,
 | 
				
			||||||
 | 
					        css: {
 | 
				
			||||||
 | 
					            transform: "none",
 | 
				
			||||||
 | 
					            filter: "hue-rotate(0) drop-shadow(0 0 0 transparent)" // Hack to force animation in Safari
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    for (let i = 1; i < steps; i++) {
 | 
				
			||||||
 | 
					        const p = i * percentageStep;
 | 
				
			||||||
 | 
					        // Blue / red shadow
 | 
				
			||||||
 | 
					        const color = Math.random() > 0.5 ? "rgb(255 0 0 / 0.1)" : "rgb(0 0 255 / 0.1)";
 | 
				
			||||||
 | 
					        const shadowX = random(-4, 4);
 | 
				
			||||||
 | 
					        const shadowY = random(-4, 4);
 | 
				
			||||||
 | 
					        keyframes.push({
 | 
				
			||||||
 | 
					            keys: [p + tick, p + glitchPercentageDuration - tick],
 | 
				
			||||||
 | 
					            css: {
 | 
				
			||||||
 | 
					                transform: `translateX(var(--glitch-x-${i}))`,
 | 
				
			||||||
 | 
					                filter: `hue-rotate(var(--glitch-hue-${i})) drop-shadow(${shadowX}px ${shadowY}px 0 ${color})`
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const css = keyframes
 | 
				
			||||||
 | 
					        .map((keyframe) => {
 | 
				
			||||||
 | 
					        const keys = keyframe.keys
 | 
				
			||||||
 | 
					            .map((key) => `${key.toFixed(2)}%`)
 | 
				
			||||||
 | 
					            .join(",\n  ");
 | 
				
			||||||
 | 
					        const content = Object.entries(keyframe.css)
 | 
				
			||||||
 | 
					            .map(([key, value]) => `  ${key}: ${value};`)
 | 
				
			||||||
 | 
					            .join("\n  ");
 | 
				
			||||||
 | 
					        return [keys, "{", content, "}"].join("\n  ");
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					        .join("\n\n  ");
 | 
				
			||||||
 | 
					    return `@keyframes ${name} {\n  ${css}\n}`;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					const getStripHTML = (top, stripHeight) => {
 | 
				
			||||||
 | 
					    const duration = random(5, 10);
 | 
				
			||||||
 | 
					    const name = `glitch-${duration}`;
 | 
				
			||||||
 | 
					    return `<div 
 | 
				
			||||||
 | 
					  class="strip" 
 | 
				
			||||||
 | 
					  style="
 | 
				
			||||||
 | 
					    --glitch-x-1: ${random(-10, 10)}em;
 | 
				
			||||||
 | 
					    --glitch-hue-1: ${random(-50, 50)}deg;
 | 
				
			||||||
 | 
					    --glitch-x-2: ${random(-10, 10)}em;
 | 
				
			||||||
 | 
					    --glitch-hue-2: ${random(-50, 50)}deg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-position: 0 -${top}em;
 | 
				
			||||||
 | 
					    height: ${stripHeight}em; 
 | 
				
			||||||
 | 
					    animation-name: ${name};
 | 
				
			||||||
 | 
					    animation-duration: ${duration * 1000}ms; 
 | 
				
			||||||
 | 
					    animation-delay: ${random(0, 2)}s;
 | 
				
			||||||
 | 
					  "
 | 
				
			||||||
 | 
					></div>`;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					const getGlitchHTML = (height) => {
 | 
				
			||||||
 | 
					    let i = 0;
 | 
				
			||||||
 | 
					    const html = [];
 | 
				
			||||||
 | 
					    while (1) {
 | 
				
			||||||
 | 
					        const stripHeight = random(1, 6);
 | 
				
			||||||
 | 
					        if (i + stripHeight < height) {
 | 
				
			||||||
 | 
					            const strip = getStripHTML(i, stripHeight);
 | 
				
			||||||
 | 
					            html.push(strip);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            // Last strip
 | 
				
			||||||
 | 
					            const strip = getStripHTML(i, height - i);
 | 
				
			||||||
 | 
					            html.push(strip);
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        i = i + stripHeight;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return html;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you want to generate new CSS/HTML dinamically,
 | 
				
			||||||
 | 
					uncomment the code below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					// const html = getGlitchHTML(62);
 | 
				
			||||||
 | 
					// // HTML
 | 
				
			||||||
 | 
					// const $glitch = document.querySelector(".bard") as HTMLElement;
 | 
				
			||||||
 | 
					// $glitch.innerHTML = html.join("\n");
 | 
				
			||||||
 | 
					// // CSS
 | 
				
			||||||
 | 
					// const css = [5,6,7,8,9,10].map((n) => {
 | 
				
			||||||
 | 
					//   const glitchDurationMS = 500;
 | 
				
			||||||
 | 
					//   const glitchPercentageDuration = (glitchDurationMS * 100) / (n * 1000);
 | 
				
			||||||
 | 
					//   return getKeyFrames(`glitch-${n}`, glitchPercentageDuration);
 | 
				
			||||||
 | 
					// });
 | 
				
			||||||
 | 
					// // Add generated CSS to the page
 | 
				
			||||||
 | 
					// const $style = document.createElement("style");
 | 
				
			||||||
 | 
					// $style.innerHTML = css.join("\n");
 | 
				
			||||||
 | 
					// document.head.appendChild($style);
 | 
				
			||||||
 | 
					// // ----- Debug -------------- //
 | 
				
			||||||
 | 
					// // Not used for the animation //
 | 
				
			||||||
 | 
					// const $code = document.querySelector(".code");
 | 
				
			||||||
 | 
					// const escape = (html) => {
 | 
				
			||||||
 | 
					//   return html
 | 
				
			||||||
 | 
					//     .replace(/&/g, "&")
 | 
				
			||||||
 | 
					//     .replace(/</g, "<")
 | 
				
			||||||
 | 
					//     .replace(/>/g, ">")
 | 
				
			||||||
 | 
					//     .replace(/"/g, """)
 | 
				
			||||||
 | 
					//     .replace(/'/g, "'");
 | 
				
			||||||
 | 
					// };
 | 
				
			||||||
 | 
					// $code.innerHTML = `
 | 
				
			||||||
 | 
					//   <div class="column">
 | 
				
			||||||
 | 
					//     <div class="heading">HTML</div>
 | 
				
			||||||
 | 
					//     <pre>${escape(html.join("\n\n"))}</pre>
 | 
				
			||||||
 | 
					//   </div>
 | 
				
			||||||
 | 
					//   <div class="column">
 | 
				
			||||||
 | 
					//     <div class="heading">CSS</div>
 | 
				
			||||||
 | 
					//     <pre>${css.join("\n\n")}</pre>
 | 
				
			||||||
 | 
					//   </div>
 | 
				
			||||||
 | 
					// `;
 | 
				
			||||||
		Reference in New Issue
	
	Block a user