- Introduced CSS animations for splash screen elements including aurora drift, logo float, loader progress, and card breathing effects. - Implemented a new FirstLaunchSplash component in layout to display the splash screen on the initial app launch. - Updated theme initialization script to manage splash screen visibility based on local storage state.
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import type { Metadata, Viewport } from 'next'
|
|
import { Geist, Geist_Mono } from 'next/font/google'
|
|
import { Analytics } from '@vercel/analytics/next'
|
|
import './globals.css'
|
|
import { ThemeInitScript } from '@/components/theme-init-script'
|
|
import { FirstLaunchSplash } from '@/components/first-launch-splash'
|
|
|
|
const _geist = Geist({ subsets: ["latin"] });
|
|
const _geistMono = Geist_Mono({ subsets: ["latin"] });
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Ultimail',
|
|
description: 'Interface client mail Ultimail (clone UI) construite avec React',
|
|
generator: 'v0.app',
|
|
}
|
|
|
|
/** Fit visible viewport on tablet/mobile; disable pinch/double-tap zoom on the shell. */
|
|
export const viewport: Viewport = {
|
|
width: 'device-width',
|
|
initialScale: 1,
|
|
maximumScale: 1,
|
|
userScalable: false,
|
|
viewportFit: 'cover',
|
|
}
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode
|
|
}>) {
|
|
return (
|
|
<html lang="fr" suppressHydrationWarning className="h-dvh max-h-dvh overflow-hidden">
|
|
<body className="h-dvh max-h-dvh overflow-hidden bg-background font-sans antialiased touch-manipulation">
|
|
<ThemeInitScript />
|
|
<FirstLaunchSplash>{children}</FirstLaunchSplash>
|
|
{process.env.NODE_ENV === 'production' && <Analytics />}
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|