From fd60461db2702cbe73cc400bc098b112e1f19e5c Mon Sep 17 00:00:00 2001 From: hex4 Date: Mon, 18 May 2026 21:20:48 -0600 Subject: [PATCH] copy before we do rsvp stuff --- www/src/pages/index.astro | 82 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 6 deletions(-) diff --git a/www/src/pages/index.astro b/www/src/pages/index.astro index b89c891..650c6da 100644 --- a/www/src/pages/index.astro +++ b/www/src/pages/index.astro @@ -76,7 +76,7 @@ import Scribble from "../components/Scribble.astro"; class="text-white font-serif text-2xl md:text-3xl opacity-0 transition-opacity duration-[1000ms] mb-5" > september comes. back to school. i'll be sitting in my room with - some new stickers and a flipper zero, plus a vague sense that I was + some new stickers and a flipper zero, plus a vague sense that i was kinda busy during the summer but that none of it really mattered.

every week, you'll have workshops and AMAs with founders, artists, - and builders that were once at the same place you are now - staring - an idea that feels impossible, and building it anyway. hang out with - other HCers doing the same exhilarating, terrifying thing as you, - make lifelong friends, and grow as a person and as a hacker. + and builders who were once at the same place you are now - staring + at an idea that feels impossible, and building it anyway. hang out + with other HCers doing the same exhilarating, terrifying thing as + you, make lifelong friends, and grow as a person and as a hacker.

+ +

+ this isn't a bootcamp. we're not gonna teach you how to call an API + or open FL Studio. we're also not gonna strictly track your hours or + tell you what to build. instead, we'll give you the structure, the + community, the resources, and the deadline for you to ship something + real. +

+ +

+ both of these summers will end. only one will matter. +

+ +

+ ꕥ unfold is the program to make your idea real. summer 2026 :) +

+ + + applications open now → + +

+ and, if all this resonates with you, we're looking for team members + to help build unfold alongside us. artists, hackers, writers, + makers, and anyone else that'd like to help out - drop a message in #unfold-bts. we'd love to see what you're interested in building. +

@@ -170,6 +211,24 @@ import Scribble from "../components/Scribble.astro"; const CONTENT_DELAY = 2000; // ms after click before first element fades in const STAGGER = 700; // ms between each element + const pendingTimeouts: number[] = []; + let animating = false; + + const skipAnimation = () => { + if (!animating) return; + // clear any pending fade-ins + for (const id of pendingTimeouts) clearTimeout(id); + pendingTimeouts.length = 0; + // flush all elements to visible immediately + const elements = main.children; + for (let i = 0; i < elements.length; i++) { + elements[i].classList.remove("opacity-0"); + elements[i].classList.add("opacity-100"); + } + animating = false; + window.removeEventListener("click", skipAnimation); + }; + intro.addEventListener("click", () => { // 1. fade out the intro overlay intro.classList.add("opacity-0", "pointer-events-none"); @@ -188,15 +247,26 @@ import Scribble from "../components/Scribble.astro"; // 4. fade in each direct child of
sequentially const elements = main.children; + animating = true; for (let i = 0; i < elements.length; i++) { - setTimeout( + const id = window.setTimeout( () => { elements[i].classList.remove("opacity-0"); elements[i].classList.add("opacity-100"); + if (i === elements.length - 1) { + animating = false; + window.removeEventListener("click", skipAnimation); + } }, CONTENT_DELAY + i * STAGGER, ); + pendingTimeouts.push(id); } + + // register the skip listener after the intro click bubbles past + setTimeout(() => { + window.addEventListener("click", skipAnimation); + }, 0); }); // mute toggle -- knotmirror 0.0.1