summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/css/style.css2
-rw-r--r--public/js/dynamicBlob.js18
-rw-r--r--src/css/style.css52
-rw-r--r--src/js/dynamicBlob.js19
-rw-r--r--src/js/mouseblob.js1
5 files changed, 71 insertions, 21 deletions
diff --git a/public/css/style.css b/public/css/style.css
index 7554eaf5..bcd781c8 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -1 +1 @@
-html{--topBarHeight:3em;--neon-bg-color:#05010d}@font-face{font-family:hacked;src:url(/fonts/Hacked-KerX.ttf)}@font-face{font-family:smooth;src:url(/fonts/SmoothElegantRegular-ZLv3.ttf)}@font-face{font-family:liga;src:url(/fonts/LigaJetBrainsMonoNerdFont-Regular.ttf)}@font-face{font-family:big;src:url(/fonts/Big500-8MLOM.ttf)}@font-face{font-family:monoton;src:url(/fonts/Monoton.ttf)}@font-face{font-family:rocksalt;src:url(/fonts/RockSalt-Regular.ttf)}@font-face{font-family:audiowide;src:url(/fonts/audiowide.ttf)}*{box-sizing:border-box;font-family:liga;margin:0;padding:0;text-shadow:0 0 1px #000;-webkit-font-smoothing:antialiased;font-smooth:antialiased}@media (pointer:coarse),(pointer:none){*{transition:all .3s}}body{left:0;top:0;transition:background 1s ease-in-out}body::-webkit-scrollbar{display:none}@keyframes slideInTop{0%{transform:translateY(-300px)}to{transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(30px)}80%{transform:translateY(-15px)}}@keyframes zoomIn{0%{scale:.01}65%{scale:1.05}to{position:relative;scale:1}}@keyframes zoomOut{0%{transform:scale(1)}to{transform:scale(.01)}}@keyframes fadeZoomIn{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=35)";opacity:.35;scale:1.15}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1;scale:1}}@keyframes reveal{0%{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);-webkit-filter:blur(32px);-moz-filter:blur(32px);-o-filter:blur(32px);-ms-filter:blur(32px);filter:blur(32px);transform:scale(2)}}@keyframes shake{0%{transform:rotate(0deg)}25%{transform:rotate(.5deg)}50%{transform:rotate(0eg)}75%{transform:rotate(-.5deg)}to{transform:rotate(0deg)}}@keyframes background-pan{0%{background-position:0}to{background-position:-200%}}@keyframes fadeIn{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;scale:.8}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1;scale:1}}@keyframes fadeOut{to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;scale:.8}}@keyframes scroll{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";opacity:.8;scale:.75}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1;scale:1}}.animate{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate.animate--infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate.animation--delay-1s{-webkit-animation-delay:1s;animation-delay:1s}.animate.animation--delay-p5s{animation-delay:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.animate.animation--delay-p3s{animation-delay:.3s}.animate.animation--delay-p3s,.animate.animation--fast{-webkit-animation-duration:.3s;animation-duration:.3s}.animate.animation--slow{-webkit-animation-duration:1s;animation-duration:1s}.animate.slideInTop{animation-name:slideInTop;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}.animate.bounce{-webkit-animation-name:bounce;animation-name:bounce}.animate.zoomIn{-webkit-animation-name:reveal;animation-name:zoomIn}.animate.zoomIn,.animate.zoomOut{-webkit-transition-timing-function:linear;transition-timing-function:linear}.animate.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}.animate.reveal{animation-duration:.5s;-webkit-animation-name:reveal;animation-name:reveal;-webkit-transition-timing-function:linear;transition-timing-function:linear}.animate.shake{-webkit-animation-name:shake;animation-name:shake}.animate.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.animate.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}.animate.fadeZoomIn{-webkit-animation-name:fadeZoomIn;animation-name:fadeZoomIn}.aniamte.persist{animation-fill-mode:forwards}.js-tilt-glare{border-radius:18px;overflow:hidden}header{align-items:center;background:#000;background:rgba(0,0,0,.2);height:3em;justify-content:space-between;left:0;position:fixed;top:0;transition:all .3s;width:100%;z-index:1000}.navBar a{border-radius:8px;color:#f4e8c1;font-size:5mm;height:100%;margin-left:5mm;margin-right:5mm;padding-bottom:3mm;padding-top:3mm;position:relative;text-align:center;text-decoration:none;text-transform:capitalize}.navBar .hleft a{float:left}.navBar .hright a{float:right}.navBar a:after{background:grey;background:hsla(0,0%,50%,.2);border-radius:1mm;bottom:0;content:"";height:1mm;left:0;position:absolute;transform:scaleX(0);-webkit-transition:all .3s;transition:all .3s;width:100%}.navBar a:hover:after{transform:scaleX(1.1)}.navBar a:hover{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-transition:all 1s;transition:all 1s}.navBar a.active:after{background:grey;background:hsla(0,0%,50%,.9);border-radius:1mm;bottom:0;content:"";height:1mm;left:0;position:absolute;transform:scaleX(1);width:100%}#navBarHeader:active,#navBarHeader:hover,.navBar:active,.navBar:hover,header:active,header:hover{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:scale(1.005);transition:all .5s}#navBarHeader,.navBar,header{-webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px);transition:all .5s}.contents{height:100%;margin:0;padding:0;width:100%}section{position:relative}.wrapper{height:100vh;overflow-x:hidden;overflow-y:auto;perspective:10px}a:hover{cursor:pointer;font-size:5mm;font-weight:700;height:100%;margin-left:5mm;margin-right:5mm;padding-bottom:3mm;padding-top:3mm;position:relative;text-align:center;text-decoration:underline;-webkit-text-decoration-line:underline;text-decoration-line:underline;text-decoration-thickness:3px;text-transform:capitalize;text-underline-offset:1px;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition:all .5s;transition:all .5s}.blob{animation-fill-mode:forwards;background-color:#fff;background:-webkit-gradient(linear,left top,right top,from(#0ff),to(#9370db));background:linear-gradient(90deg,#0ff,#9370db);border-radius:50%;filter:blur(7vmax);-webkit-filter:blur(7vmax);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";height:15vmax;left:50%;min-height:75%;min-width:75%;opacity:.8;position:absolute;top:50%;translate:-50% -50%;width:20vmax;z-index:0}@keyframes rotate{0%{rotate:0deg}50%{scale:1 1.25}to{rotate:1turn}}.sep{height:5vh;width:5vh}.sblob{animation:rotate 20s infinite;aspect-ratio:1;background-color:#fff;background:linear-gradient(90deg,#0ff,#9370db);border-radius:50%;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:blur(7vmax);-webkit-filter:blur(7vmax);height:15vmax;left:50%;opacity:.8;position:absolute;top:50%;translate:-50% -50%;width:20vmax;z-index:-1} \ No newline at end of file
+html{--topBarHeight:3em;--neon-bg-color:#05010d;color-scheme:dark}@font-face{font-family:hacked;src:url(/fonts/Hacked-KerX.ttf)}@font-face{font-family:smooth;src:url(/fonts/SmoothElegantRegular-ZLv3.ttf)}@font-face{font-family:liga;src:url(/fonts/LigaJetBrainsMonoNerdFont-Regular.ttf)}@font-face{font-family:big;src:url(/fonts/Big500-8MLOM.ttf)}@font-face{font-family:monoton;src:url(/fonts/Monoton.ttf)}@font-face{font-family:rocksalt;src:url(/fonts/RockSalt-Regular.ttf)}@font-face{font-family:audiowide;src:url(/fonts/audiowide.ttf)}*{box-sizing:border-box;font-family:liga;margin:0;padding:0;text-shadow:0 0 1px #000;-webkit-font-smoothing:antialiased;font-smooth:antialiased}@media (pointer:coarse),(pointer:none){*{transition:all .3s}}body{left:0;top:0;transition:background 1s ease-in-out}body::-webkit-scrollbar{display:none}@keyframes slideInTop{0%{transform:translateY(-300px)}to{transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(30px)}80%{transform:translateY(-15px)}}@keyframes zoomIn{0%{scale:.01}65%{scale:1.05}to{position:relative;scale:1}}@keyframes zoomOut{0%{transform:scale(1)}to{transform:scale(.01)}}@keyframes fadeZoomIn{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=35)";opacity:.35;scale:1.15}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1;scale:1}}@keyframes reveal{0%{-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);-webkit-filter:blur(32px);-moz-filter:blur(32px);-o-filter:blur(32px);-ms-filter:blur(32px);filter:blur(32px);transform:scale(2)}}@keyframes shake{0%{transform:rotate(0deg)}25%{transform:rotate(.5deg)}50%{transform:rotate(0eg)}75%{transform:rotate(-.5deg)}to{transform:rotate(0deg)}}@keyframes background-pan{0%{background-position:0}to{background-position:-200%}}@keyframes fadeIn{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;scale:.8}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1;scale:1}}@keyframes fadeOut{to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;scale:.8}}@keyframes scroll{0%{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";opacity:.8;scale:.75}to{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1;scale:1}}@keyframes rotate{0%{rotate:0deg}50%{scale:1 1.25}to{rotate:1turn}}.animate{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate.animate--infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate.animation--delay-1s{-webkit-animation-delay:1s;animation-delay:1s}.animate.animation--delay-p5s{animation-delay:.5s;-webkit-animation-duration:.5s;animation-duration:.5s}.animate.animation--delay-p3s{animation-delay:.3s}.animate.animation--delay-p3s,.animate.animation--fast{-webkit-animation-duration:.3s;animation-duration:.3s}.animate.animation--slow{-webkit-animation-duration:1s;animation-duration:1s}.animate.slideInTop{animation-name:slideInTop;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}.animate.bounce{-webkit-animation-name:bounce;animation-name:bounce}.animate.zoomIn{-webkit-animation-name:reveal;animation-name:zoomIn}.animate.zoomIn,.animate.zoomOut{-webkit-transition-timing-function:linear;transition-timing-function:linear}.animate.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}.animate.reveal{animation-duration:.5s;-webkit-animation-name:reveal;animation-name:reveal;-webkit-transition-timing-function:linear;transition-timing-function:linear}.animate.shake{-webkit-animation-name:shake;animation-name:shake}.animate.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.animate.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}.animate.fadeZoomIn{-webkit-animation-name:fadeZoomIn;animation-name:fadeZoomIn}.aniamte.persist{animation-fill-mode:forwards}@media (prefers-reduced-motion:no-preference){:has(:target){scroll-behavior:smooth;scroll-padding-top:var(--topBarHeight)}}.js-tilt-glare{border-radius:18px;overflow:hidden}header{align-items:center;background:#000;background:rgba(0,0,0,.2);height:3em;justify-content:space-between;left:0;position:fixed;top:0;transition:all .3s;width:100%;z-index:1000}.navBar a{border-radius:8px;color:#f4e8c1;font-size:5mm;height:100%;margin-left:5mm;margin-right:5mm;padding-bottom:3mm;padding-top:3mm;position:relative;text-align:center;text-decoration:none;text-transform:capitalize}.navBar .hleft a{float:left}.navBar .hright a{float:right}.navBar a:after{background:grey;background:hsla(0,0%,50%,.2);border-radius:1mm;bottom:0;content:"";height:1mm;left:0;position:absolute;transform:scaleX(0);-webkit-transition:all .3s;transition:all .3s;width:100%}.navBar a:hover:after{transform:scaleX(1.1)}.navBar a:hover{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-transition:all 1s;transition:all 1s}.navBar a.active:after{background:grey;background:hsla(0,0%,50%,.9);border-radius:1mm;bottom:0;content:"";height:1mm;left:0;position:absolute;transform:scaleX(1);width:100%}#navBarHeader:active,#navBarHeader:hover,.navBar:active,.navBar:hover,header:active,header:hover{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:scale(1.005);transition:all .5s}#navBarHeader,.navBar,header{-webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px);transition:all .5s}.contents{height:100%;margin:0;padding:0;width:100%}section{position:relative}.wrapper{height:100vh;overflow-x:hidden;overflow-y:auto;perspective:10px}a:hover{cursor:pointer;font-size:5mm;font-weight:700;height:100%;margin-left:5mm;margin-right:5mm;padding-bottom:3mm;padding-top:3mm;position:relative;text-align:center;text-decoration:underline;-webkit-text-decoration-line:underline;text-decoration-line:underline;text-decoration-thickness:3px;text-transform:capitalize;text-underline-offset:1px;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition:all .5s;transition:all .5s}.sep{height:5vh;width:5vh}.blob{animation-fill-mode:forwards;background-color:#fff;background:-webkit-gradient(linear,left top,right top,from(#0ff),to(#9370db));background:linear-gradient(90deg,#0ff,#9370db);filter:blur(7vmax);-webkit-filter:blur(7vmax);min-height:75%;min-width:75%;z-index:0}.blob,.sblob{border-radius:50%;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";height:15vmax;left:50%;opacity:.8;position:absolute;top:50%;translate:-50% -50%;width:20vmax}.sblob{animation:rotate 20s infinite;aspect-ratio:1;background-color:#fff;background:linear-gradient(90deg,#0ff,#9370db);filter:blur(7vmax);-webkit-filter:blur(7vmax);z-index:-1} \ No newline at end of file
diff --git a/public/js/dynamicBlob.js b/public/js/dynamicBlob.js
index 8f755df0..d33076c8 100644
--- a/public/js/dynamicBlob.js
+++ b/public/js/dynamicBlob.js
@@ -7,6 +7,24 @@ function loadScript(src) {
script.src = src;
document.body.appendChild(script);
}
+function getRandomColor() {
+ var letters = '0123456789ABCDEF';
+ var color = '#';
+ for (var i = 0; i < 6; i++) {
+ color += letters[Math.floor(Math.random() * 16)];
+ }
+ return color;
+}
+function generateGradient() {
+ var gradient = 'linear-gradient(to right';
+ var colorCount = Math.floor(Math.random() * 5) + 2;
+ for (var i = 0; i < colorCount; i++) {
+ gradient += ', ' + getRandomColor();
+ }
+ gradient += ')';
+ return gradient;
+}
+blob.style.background = generateGradient();
var blobItem;
if (blobData) {
blobItem = blobData;
diff --git a/src/css/style.css b/src/css/style.css
index e4d813c2..e65debe5 100644
--- a/src/css/style.css
+++ b/src/css/style.css
@@ -3,6 +3,11 @@
--neon-bg-color: #05010d
}
+html {
+ /* hanging-punctuation: first last; */
+ color-scheme: dark;
+}
+
@font-face {
font-family: hacked;
src: url(/fonts/Hacked-KerX.ttf);
@@ -181,6 +186,19 @@ body::-webkit-scrollbar {
}
}
+@keyframes rotate {
+ from {
+ rotate: 0deg;
+ }
+
+ 50% {
+ scale: 1 1.25;
+ }
+
+ to {
+ rotate: 360deg;
+ }
+}
/* animation: name duration timing-function delay iteration-count direction fill-mode; */
@@ -292,6 +310,13 @@ body::-webkit-scrollbar {
transition: all 0.3s;
} */
+@media (prefers-reduced-motion: no-preference) {
+ :has(:target) {
+ scroll-behavior: smooth;
+ scroll-padding-top: var(--topBarHeight);
+ }
+}
+
.js-tilt-glare {
border-radius: 18px;
@@ -307,7 +332,7 @@ header {
width: 100%;
height: 3em;
justify-content: space-between;
- align-items:center;
+ align-items: center;
/* background: color(0, 0, 0, .1); */
z-index: 1000;
background: rgba(0, 0, 0, 0.2);
@@ -438,6 +463,11 @@ a:hover {
/* color: #F4E8C1; */
}
+.sep {
+ width: 5vh;
+ height: 5vh;
+}
+
.blob {
min-height: 75%;
min-width: 75%;
@@ -460,24 +490,6 @@ a:hover {
animation-fill-mode: forwards;
}
-@keyframes rotate {
- from {
- rotate: 0deg;
- }
-
- 50% {
- scale: 1 1.25;
- }
-
- to {
- rotate: 360deg;
- }
-}
-
-.sep {
- width: 5vh;
- height: 5vh;
-}
.sblob {
background-color: white;
@@ -495,4 +507,4 @@ a:hover {
filter: blur(7vmax);
-webkit-filter: blur(7vmax);
z-index: -1;
-}
+} \ No newline at end of file
diff --git a/src/js/dynamicBlob.js b/src/js/dynamicBlob.js
index 067b4de7..2530e946 100644
--- a/src/js/dynamicBlob.js
+++ b/src/js/dynamicBlob.js
@@ -7,7 +7,26 @@ function loadScript(src) {
document.body.appendChild(script);
}
+function getRandomColor() {
+ var letters = '0123456789ABCDEF';
+ var color = '#';
+ for (var i = 0; i < 6; i++) {
+ color += letters[Math.floor(Math.random() * 16)];
+ }
+ return color;
+}
+
+function generateGradient() {
+ var gradient = 'linear-gradient(to right';
+ var colorCount = Math.floor(Math.random() * 5) + 2;
+ for (var i = 0; i < colorCount; i++) {
+ gradient += ', ' + getRandomColor();
+ }
+ gradient += ')';
+ return gradient;
+}
+blob.style.background = generateGradient();
var blobItem;
diff --git a/src/js/mouseblob.js b/src/js/mouseblob.js
index 37aec6f2..4823618c 100644
--- a/src/js/mouseblob.js
+++ b/src/js/mouseblob.js
@@ -27,6 +27,7 @@
// }, { duration: 1000, fill: "forwards" });
// }
+
window.onpointermove = event => {
const { pageX, pageY } = event;