diff --git a/public/images/logo-small.svg b/public/images/logo-small.svg new file mode 100644 index 0000000..af5e4f3 --- /dev/null +++ b/public/images/logo-small.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/images/logo_left.png b/public/images/logo_left.png new file mode 100644 index 0000000..a8959bf Binary files /dev/null and b/public/images/logo_left.png differ diff --git a/public/images/logo_right.png b/public/images/logo_right.png new file mode 100644 index 0000000..60290bb Binary files /dev/null and b/public/images/logo_right.png differ diff --git a/src/app/globals.css b/src/app/globals.css index 763ec05..2c7a482 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -127,3 +127,29 @@ tbody tr { .overflowX::-webkit-scrollbar { display: none; } + +@keyframes slideDown { + from { + transform: translateY(-100%); + } + to { + transform: translateY(0); + } +} + +@keyframes slideUp { + from { + transform: translateY(100%); + } + to { + transform: translateY(0); + } +} + +.animate-slide-down { + animation: slideDown 1s ease-out forwards; +} + +.animate-slide-up { + animation: slideUp 1s ease-out forwards; +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 98d39a3..98ab4b9 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -12,6 +12,7 @@ import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import QueryProvider from "@/config/QueryProvider"; import ToastContainer from "@/components/Toast"; +// import Splash from "@/components/Splash"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -51,7 +52,7 @@ export default function RootLayout({ {/* */} - + {/* */} diff --git a/src/components/LogoAnimation.tsx b/src/components/LogoAnimation.tsx new file mode 100644 index 0000000..06e6636 --- /dev/null +++ b/src/components/LogoAnimation.tsx @@ -0,0 +1,37 @@ +import React, { useEffect, useState } from 'react'; +import Image from 'next/image'; + +const LogoAnimation: React.FC = () => { + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + }, []); + + if (!mounted) return null; + + return ( +
+
+ Logo Left Part +
+
+ Logo Right Part +
+
+ ); +}; + +export default LogoAnimation; \ No newline at end of file diff --git a/src/components/Splash.tsx b/src/components/Splash.tsx new file mode 100644 index 0000000..6f7d832 --- /dev/null +++ b/src/components/Splash.tsx @@ -0,0 +1,36 @@ +'use client'; +import { useEffect, useState } from 'react'; +import LogoAnimation from './LogoAnimation'; + +const Splash = () => { + const [fadeOut, setFadeOut] = useState(false); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + const timer = setTimeout(() => { + setFadeOut(true); + }, 2000); + return () => clearTimeout(timer); + }, []); + + useEffect(() => { + if (fadeOut) { + document.body.style.overflow = 'auto'; + } else { + document.body.style.overflow = 'hidden'; + } + }, [fadeOut]); + + if (!mounted) return null; + + return ( +
+
+ +
+
+ ); +}; + +export default Splash; \ No newline at end of file