From 76d631cc4cb700f855c0eeddd088787760c27939 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Wed, 25 Feb 2026 02:13:04 -0800 Subject: [PATCH] Add playful "boop to continue" section divider Interactive divider between Kairos/Chronos and Indigenous Wisdom sections with gradient styling, click-to-scroll, and ripple animation on boop. Co-Authored-By: Claude Opus 4.6 --- app/page.tsx | 2 + components/boop-divider.tsx | 78 +++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 components/boop-divider.tsx diff --git a/app/page.tsx b/app/page.tsx index ff80c35..d90aaff 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -8,6 +8,7 @@ import { AlternativeTimekeeping } from "@/components/alternative-timekeeping" import { Footer } from "@/components/footer" import { SpaceTimeBackground } from "@/components/space-time-background" import { CursorWarp } from "@/components/cursor-warp" +import { BoopDivider } from "@/components/boop-divider" export default function Page() { return ( @@ -20,6 +21,7 @@ export default function Page() { + diff --git a/components/boop-divider.tsx b/components/boop-divider.tsx new file mode 100644 index 0000000..5311394 --- /dev/null +++ b/components/boop-divider.tsx @@ -0,0 +1,78 @@ +"use client" + +import { useState } from "react" + +export function BoopDivider({ targetId }: { targetId: string }) { + const [booped, setBooped] = useState(false) + + const handleBoop = () => { + setBooped(true) + + setTimeout(() => { + const target = document.getElementById(targetId) + if (target) { + target.scrollIntoView({ behavior: "smooth" }) + } + }, 400) + + setTimeout(() => setBooped(false), 1000) + } + + return ( +
+ {/* Decorative lines */} +
+
+
+
+
+ + {/* Boop button */} + + + {/* Subtle hint arrow */} +
+ + + +
+
+ ) +}