feat: add fade-in transition for dots canvas background

This commit is contained in:
2026-01-06 01:13:30 -06:00
parent 3c6f61c4e4
commit 5fc7277cd7
+16 -1
View File
@@ -37,6 +37,7 @@
let canvas: HTMLCanvasElement;
let cleanupFns: (() => void)[] = [];
let ready = $state(false);
function addCleanup(fn: () => void) {
cleanupFns.push(fn);
@@ -363,6 +364,7 @@
const startTime = Date.now();
let animationId: number;
let firstFrameRendered = false;
function render() {
if (document.hidden) {
@@ -379,6 +381,15 @@
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawArrays(gl.TRIANGLES, 0, 6);
if (!firstFrameRendered) {
firstFrameRendered = true;
requestAnimationFrame(() => {
requestAnimationFrame(() => {
ready = true;
});
});
}
animationId = requestAnimationFrame(render);
}
@@ -395,5 +406,9 @@
<canvas
bind:this={canvas}
class={cn("pointer-events-none fixed inset-0 -z-10", className)}
class={cn(
"pointer-events-none fixed inset-0 -z-10 transition-opacity duration-1300 ease-out",
ready ? "opacity-100" : "opacity-0",
className,
)}
></canvas>