aboutsummaryrefslogtreecommitdiffstats
path: root/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'index.html')
-rw-r--r--index.html228
1 files changed, 228 insertions, 0 deletions
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..7102a45
--- /dev/null
+++ b/index.html
@@ -0,0 +1,228 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Burn-In Removal</title>
+ <style>
+ @keyframes cfadeout {
+ 0% {
+ opacity: 1;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+
+ @keyframes animhor {
+ 0% {
+ left: 100%;
+ top: 0%;
+ width: 51%;
+ height: 100%;
+ }
+
+ 100% {
+ left: -50%;
+ top: 0%;
+ width: 51%;
+ height: 100%;
+ }
+ }
+
+ @keyframes animvert {
+ 0% {
+ left: 0%;
+ top: 100%;
+ width: 100%;
+ height: 21%;
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0.7;
+ }
+
+ 100% {
+ left: 0%;
+ top: -50%;
+ width: 100%;
+ height: 51%;
+ opacity: 1;
+ }
+ }
+
+ @keyframes ctr {
+
+ /* fun interesting effects can be done here */
+ /* 0% {
+ transform: translate(-50%, -50%) rotate(0deg);
+ }
+
+ 100% {
+ transform: translate(-50%, -50%) rotate(360deg);
+ } */
+ 0% {
+ transform: translate(-50%, -50%) scale(1);
+ }
+
+ 30% {
+ transform: translate(-50%, -50%) scale(1.4);
+ }
+
+ 50% {
+ transform: translate(-50%, -50%) scale(0.7);
+ }
+
+ 80% {
+ transform: translate(-50%, -50%) scale(1.1);
+ }
+
+ 100% {
+ transform: translate(-50%, -50%) scale(1);
+ }
+ }
+
+ .ctr {
+ position: fixed;
+ top: 50vh;
+ left: 50vw;
+ width: 100vw;
+ height: 100vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ pointer-events: none;
+ transform: translate(-50%, -50%);
+ }
+
+ .ctr:not(.no-anim) {
+ animation: ctr;
+ animation-timing-function: ease-in-out;
+ animation-duration: 7s;
+ animation-iteration-count: infinite;
+ animation-delay: 3s;
+ }
+
+ .inner {
+ position: relative;
+ width: 200vw;
+ height: 200vh;
+ }
+
+ .hor {
+ animation: animhor;
+ --animation-length: 12s;
+ }
+
+ .vert {
+ animation: animvert;
+ --animation-length: 7s;
+ }
+
+ .r,
+ .g,
+ .b {
+ position: absolute;
+ animation-timing-function: linear;
+ animation-duration: var(--animation-length);
+ animation-iteration-count: infinite;
+ pointer-events: none;
+ }
+
+ .g {
+ /* change to -0.66 if you don't want the initial buildup */
+ animation-delay: calc(0.33 * var(--animation-length));
+ }
+
+ .b {
+ /* change to -0.33 if you don't want the initial buildup */
+ animation-delay: calc(0.66 * var(--animation-length));
+ }
+
+ /* this is to ensure the background looks fine until the animation has done its rounds */
+ @keyframes htmlrootbg {
+ 0% {
+ background: #1a1a1a;
+ }
+
+ 50% {
+ background: #1a1a1a;
+ }
+
+ 100% {
+ background: #800;
+ }
+ }
+
+ html {
+ animation: htmlrootbg;
+ animation-duration: 3s;
+ animation-timing-function: ease-in-out;
+ animation-iteration-count: 1;
+ background: #a00;
+ color: #dedede;
+ display: flex;
+ font-family: Nunito, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ }
+
+ .cft {
+ display: none;
+ }
+
+
+ input:checked+.cfadeout {
+ animation: cfadeout;
+ animation-timing-function: linear;
+ animation-duration: 1s;
+ animation-iteration-count: 1;
+ opacity: 0;
+ pointer-events: none;
+ }
+
+ .fullscreenprompt {
+ position: fixed;
+ top: 50vh;
+ left: 50vw;
+ padding: 24px;
+ background: #0a0a0a;
+ transform: translate(-50%, -50%);
+ max-width: min(calc(100vw - 2rem), max-content);
+ text-align: center;
+ border-radius: 1rem;
+ z-index: 9;
+ }
+ </style>
+ <!-- In JS-enabled environments, attempt to ensure frames always render -->
+ <script>
+ ((fn) => fn(fn))((self) => requestAnimationFrame(() => self))
+ </script>
+</head>
+
+<body
+ onclick="(document.documentElement??document.rootElement).requestFullscreen?.({navigationUI:'hide'}).then(v=>{const c=document.head.querySelector('style');const c2=document.createElement('style');c2.innerHTML=c.innerHTML;c.remove();setTimeout(()=>document.head.appendChild(c2),10)}) ?? console.error('No requestFullscreen promise')">
+ <input type="checkbox" id="cfadeoutt" class="cft" autocomplete="off">
+ <label class="cfadeout fullscreenprompt" for="cfadeoutt">
+ Please <b>fullscreen this page</b> for best results.<br />
+ If JS is available, this can be done by clicking the screen - otherwise, press F11 and reload.<br />
+ Click this to dismiss
+ </label>
+ <div class="ctr no-anim">
+ <div class="inner">
+ <div class="r hor" style="background-color: #f33;"></div>
+ <div class="g hor" style="background-color: #3f3;"></div>
+ <div class="b hor" style="background-color: #33f;"></div>
+ </div>
+ </div>
+ <div class="ctr">
+ <div class="inner">
+ <div class="r vert" style="background-color: #c00;"></div>
+ <div class="g vert" style="background-color: #0c0;"></div>
+ <div class="b vert" style="background-color: #00c;"></div>
+ </div>
+ </div>
+</body>
+
+</html> \ No newline at end of file