From b515e45c0d9e5e3e196a9419472fa387bd9bd16a Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Thu, 7 May 2026 19:25:10 +0200 Subject: [PATCH] feat: add initial cinematic loader and global shutter page transitions Former-commit-id: 641bf3103e29559d7bdff1dc1e034b21a11dbad6 --- app/[locale]/layout.tsx | 36 +++-- components/layout/Footer.tsx | 38 +++--- components/layout/Header.tsx | 23 ++-- components/layout/LanguageSwitcher.tsx | 10 +- components/providers/InitialLoader.tsx | 125 ++++++++++++++++++ .../providers/PageTransitionShutter.tsx | 35 +++++ components/providers/TransitionProvider.tsx | 55 ++++++++ components/ui/Button.tsx | 6 +- components/ui/TransitionLink.tsx | 37 ++++++ 9 files changed, 314 insertions(+), 51 deletions(-) create mode 100644 components/providers/InitialLoader.tsx create mode 100644 components/providers/PageTransitionShutter.tsx create mode 100644 components/providers/TransitionProvider.tsx create mode 100644 components/ui/TransitionLink.tsx diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index 6f59ce22c..e14fbb523 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -13,6 +13,10 @@ import { setRequestLocale } from 'next-intl/server'; import { Inter } from 'next/font/google'; import { mapFileSlugToTranslated } from '@/lib/slugs'; +import { TransitionProvider } from '@/components/providers/TransitionProvider'; +import { PageTransitionShutter } from '@/components/providers/PageTransitionShutter'; +import { InitialLoader } from '@/components/providers/InitialLoader'; + const inter = Inter({ subsets: ['latin'], display: 'swap', @@ -164,21 +168,25 @@ export default async function Layout(props: { - -
- -
- {children} -
+ + + + +
+ +
+ {children} +
-