From 609da76ef2566526c1eacc78c150e671e6a6649e Mon Sep 17 00:00:00 2001 From: rabden Date: Sun, 1 Feb 2026 21:19:57 +0600 Subject: [PATCH 01/31] feat: add splash screen with animated logo video --- src/app/layout.tsx | 2 ++ src/components/splash-screen.tsx | 51 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/components/splash-screen.tsx diff --git a/src/app/layout.tsx b/src/app/layout.tsx index abb28a2..928111d 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -9,6 +9,7 @@ import { CookieConsentBanner } from "@/components/cookie-consent-banner"; import { ConditionalAnalytics } from "@/components/conditional-analytics"; import { SkipLink } from "@/components/skip-link"; import { SmoothScroll } from "@/components/providers/smooth-scroll"; +import { SplashScreen } from "@/components/splash-screen"; import { generateOrganizationSchema } from "@/lib/structured-data"; import { safeJsonLdSerialize, @@ -106,6 +107,7 @@ export default function RootLayout({ +
diff --git a/src/components/splash-screen.tsx b/src/components/splash-screen.tsx new file mode 100644 index 0000000..14af231 --- /dev/null +++ b/src/components/splash-screen.tsx @@ -0,0 +1,51 @@ +"use client"; + +import { useState, useEffect, useRef } from "react"; +import { motion, AnimatePresence } from "framer-motion"; + +export function SplashScreen() { + const [isVisible, setIsVisible] = useState(true); + const videoRef = useRef(null); + + useEffect(() => { + // Prevent scrolling while splash screen is visible + if (isVisible) { + document.body.style.overflow = "hidden"; + } else { + document.body.style.overflow = "unset"; + } + + return () => { + document.body.style.overflow = "unset"; + }; + }, [isVisible]); + + const handleVideoEnd = () => { + setIsVisible(false); + }; + + return ( + + {isVisible && ( + +
+
+
+ )} +
+ ); +} From e386994bf514e6a297d0590137419afaafa5b749 Mon Sep 17 00:00:00 2001 From: rabden Date: Sun, 1 Feb 2026 22:02:20 +0600 Subject: [PATCH 02/31] feat: implement premium splash screen with theme-adaptive animated logo --- public/animated-logo.webm | Bin 0 -> 31767 bytes src/app/globals.css | 4 +- src/components/animated-background.tsx | 2 +- src/components/splash-screen.tsx | 55 +++++++++++++++++++------ 4 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 public/animated-logo.webm diff --git a/public/animated-logo.webm b/public/animated-logo.webm new file mode 100644 index 0000000000000000000000000000000000000000..eb9ff1ee2c39f1fdc0f67f68980bcc8707e7a2c7 GIT binary patch literal 31767 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 + useEffect(() => { + // Phase 1: 1.5s delay before video appears + const initialDelay = setTimeout(() => { + setShowVideo(true); + }, 1500); + + return () => clearTimeout(initialDelay); + }, []); + useEffect(() => { // Prevent scrolling while splash screen is visible if (isVisible) { @@ -21,7 +32,10 @@ export function SplashScreen() { }, [isVisible]); const handleVideoEnd = () => { - setIsVisible(false); + // Phase 3: 2s hold after video ends + setTimeout(() => { + setIsVisible(false); + }, 1500); }; return ( @@ -31,19 +45,34 @@ export function SplashScreen() { initial={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.8, ease: "easeInOut" }} - className="fixed inset-0 z-[10000] bg-black flex items-center justify-center pointer-events-none" + className="fixed inset-0 z-[10000] bg-background flex items-center justify-center pointer-events-none" > -
-
+ + {showVideo && ( + + + )} + )} From 3af8f2d960bc45432443142881531763a286f3d6 Mon Sep 17 00:00:00 2001 From: rabden Date: Sun, 1 Feb 2026 22:04:16 +0600 Subject: [PATCH 03/31] chore: add animated-logo-white.mp4 asset --- public/animated-logo-white.mp4 | Bin 0 -> 45454 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/animated-logo-white.mp4 diff --git a/public/animated-logo-white.mp4 b/public/animated-logo-white.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..8590f84a8a74a09df76483560e1dc34ba7fe72e9 GIT binary patch literal 45454 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
J;H>jd>`xGU9+Zb`!45_48O>2i)*N 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%0Avr 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 literal 0 HcmV?d00001 From c403114743acf72a84b9602641bf9af9881992cf Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 16:08:34 +0000 Subject: [PATCH 04/31] fix(a11y): add reduced motion support and error handling to splash screen - Add prefers-reduced-motion check to skip splash for users who prefer reduced motion - Add onError handler to gracefully hide splash if video fails to load - Add aria-hidden="true" for screen reader accessibility - Remove unused videoRef - Fix comment to match actual 1.5s delay Co-authored-by: Md Rabiul Hossain Jahed --- src/components/splash-screen.tsx | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/components/splash-screen.tsx b/src/components/splash-screen.tsx index 78dd640..fe9d45a 100644 --- a/src/components/splash-screen.tsx +++ b/src/components/splash-screen.tsx @@ -1,15 +1,25 @@ "use client"; -import { useState, useEffect, useRef } from "react"; +import { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { cn } from "@/lib/utils"; export function SplashScreen() { const [isVisible, setIsVisible] = useState(true); const [showVideo, setShowVideo] = useState(false); - const videoRef = useRef(null); useEffect(() => { + // Respect user's motion preferences + const prefersReducedMotion = window.matchMedia( + "(prefers-reduced-motion: reduce)" + ).matches; + + if (prefersReducedMotion) { + // Skip splash screen entirely for users who prefer reduced motion + setIsVisible(false); + return; + } + // Phase 1: 1.5s delay before video appears const initialDelay = setTimeout(() => { setShowVideo(true); @@ -32,12 +42,20 @@ export function SplashScreen() { }, [isVisible]); const handleVideoEnd = () => { - // Phase 3: 2s hold after video ends + // Hold for 1.5s after video ends before fading out setTimeout(() => { setIsVisible(false); }, 1500); }; + const handleVideoError = () => { + // If video fails to load, hide splash screen + setIsVisible(false); + }; + + // Don't render anything if not visible (after reduced motion check) + if (!isVisible) return null; + return ( {isVisible && ( @@ -46,6 +64,7 @@ export function SplashScreen() { exit={{ opacity: 0 }} transition={{ duration: 0.8, ease: "easeInOut" }} className="fixed inset-0 z-[10000] bg-background flex items-center justify-center pointer-events-none" + aria-hidden="true" > {showVideo && ( @@ -56,12 +75,12 @@ export function SplashScreen() { className="w-full max-w-[500px] px-6" >