diff --git a/app/[locale]/home/page.tsx b/app/[locale]/home/page.tsx
index 406d067..fef6a32 100644
--- a/app/[locale]/home/page.tsx
+++ b/app/[locale]/home/page.tsx
@@ -1,3 +1,4 @@
+import BackAnimatsiya from "@/components/backAnimatsiya/backAnimatsiya";
import {
AboutUs,
Banner,
@@ -19,6 +20,7 @@ export default function Home() {
+ {/* */}
{/* */}
);
diff --git a/app/globals.css b/app/globals.css
index fca35de..4e301a0 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -134,3 +134,5 @@
body {
background: #1e1d1c;
}
+
+
diff --git a/app/layout.tsx b/app/layout.tsx
index 45c96e0..6f1ee28 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -6,6 +6,7 @@ import "./globals.css";
import { Footer, Navbar } from "@/components/layout";
import { NextIntlClientProvider } from "next-intl";
import { getMessages } from "next-intl/server";
+import BackAnimatsiya from "@/components/backAnimatsiya/backAnimatsiya";
const geistSans = Geist({
variable: "--font-geist-sans",
@@ -56,6 +57,7 @@ export default async function RootLayout({
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
>
+
{children}
diff --git a/components/backAnimatsiya/back.css b/components/backAnimatsiya/back.css
new file mode 100644
index 0000000..c1676fd
--- /dev/null
+++ b/components/backAnimatsiya/back.css
@@ -0,0 +1,74 @@
+@keyframes drawLine {
+ 0% {
+ stroke-dashoffset: 500;
+ opacity: 0;
+ }
+ 10% {
+ opacity: 1;
+ }
+ 50% {
+ stroke-dashoffset: 0;
+ }
+ 90% {
+ opacity: 1;
+ }
+ 100% {
+ stroke-dashoffset: -500;
+ opacity: 0;
+ }
+}
+.cls-1,
+.cls-2,
+.cls-3,
+.cls-4,
+.cls-5,
+.cls-6,
+.cls-7 {
+ fill: none;
+ stroke: currentColor;
+ stroke-width: 2px;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+}
+
+/* Har bir path uchun animatsiya */
+.draw-path {
+ stroke-dasharray: 2000;
+ stroke-dashoffset: 2000;
+ animation: drawLine 8s ease-in-out infinite;
+ fill: none !important;
+ stroke: rgba(255, 255, 255, 0.3);
+}
+
+/* Har bir elementni ketma-ket chizish uchun delay */
+.draw-path:nth-child(1) {
+ animation-delay: 0s;
+}
+
+.draw-path:nth-child(2) {
+ animation-delay: 0.5s;
+}
+
+.draw-path:nth-child(3) {
+ animation-delay: 1s;
+}
+
+.draw-path:nth-child(4) {
+ animation-delay: 1.5s;
+}
+
+.draw-path:nth-child(5) {
+ animation-delay: 2s;
+}
+
+.draw-path:nth-child(6) {
+ animation-delay: 2.5s;
+}
+
+.draw-path:nth-child(7) {
+ animation-delay: 3s;
+}
+
+.draw-path:nth-child(8) {
+ animation-delay: 3.5s;
+}
diff --git a/components/backAnimatsiya/backAnimatsiya.tsx b/components/backAnimatsiya/backAnimatsiya.tsx
new file mode 100644
index 0000000..23793d2
--- /dev/null
+++ b/components/backAnimatsiya/backAnimatsiya.tsx
@@ -0,0 +1,52 @@
+import "./back.css";
+
+export default function BackAnimatsiya() {
+ return (
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/components/layout/navbar.tsx b/components/layout/navbar.tsx
index 07ebc18..c46315f 100644
--- a/components/layout/navbar.tsx
+++ b/components/layout/navbar.tsx
@@ -5,6 +5,7 @@ import { ChevronDown, Phone, Menu, X } from "lucide-react";
import Image from "next/image";
import LanguageSelectRadix from "../languageSwitcher";
import { useLocale, useTranslations } from "next-intl";
+import NavbarLogo from "./navbarLogo/navbarLogo";
export function Navbar() {
const locale = useLocale();
@@ -41,13 +42,7 @@ export function Navbar() {
diff --git a/components/layout/navbarLogo/logo.css b/components/layout/navbarLogo/logo.css
new file mode 100644
index 0000000..f591e91
--- /dev/null
+++ b/components/layout/navbarLogo/logo.css
@@ -0,0 +1,35 @@
+.logo-path {
+ stroke-dasharray: 2000;
+ stroke-dashoffset: 2000;
+ animation: drawLogo 3s ease-in-out forwards;
+ fill: none !important;
+ stroke: url(#neon-gradient);
+ stroke-width: 2px;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ filter: url(#neon-glow);
+}
+
+/* Ketma-ket chizish */
+.logo-path:nth-child(1) { animation-delay: 0s; }
+.logo-path:nth-child(2) { animation-delay: 0.3s; }
+.logo-path:nth-child(3) { animation-delay: 0.6s; }
+.logo-path:nth-child(4) { animation-delay: 0.9s; }
+.logo-path:nth-child(5) { animation-delay: 1.2s; }
+.logo-path:nth-child(6) { animation-delay: 1.5s; }
+.logo-path:nth-child(7) { animation-delay: 1.8s; }
+
+@keyframes drawLogo {
+ 0% {
+ stroke-dashoffset: 2000;
+ opacity: 0;
+ }
+ 20% {
+ opacity: 1;
+ }
+ 100% {
+ stroke-dashoffset: 0;
+ opacity: 1;
+ fill: url(#neon-gradient); /* Oxirida to'ldiriladi */
+ }
+}
\ No newline at end of file
diff --git a/components/layout/navbarLogo/navbarLogo.tsx b/components/layout/navbarLogo/navbarLogo.tsx
new file mode 100644
index 0000000..a20b629
--- /dev/null
+++ b/components/layout/navbarLogo/navbarLogo.tsx
@@ -0,0 +1,60 @@
+import "./logo.css";
+
+export default function NavbarLogo() {
+ return (
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/components/pageTransition/page-transition.css b/components/pageTransition/page-transition.css
new file mode 100644
index 0000000..90140c3
--- /dev/null
+++ b/components/pageTransition/page-transition.css
@@ -0,0 +1,71 @@
+.page-transition-overlay {
+ position: fixed;
+ inset: 0;
+ z-index: 9999;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: rgba(0, 0, 0, 0);
+ pointer-events: none;
+ transition: background-color 0.5s ease;
+}
+
+.page-transition-overlay.active {
+ background-color: rgba(0, 0, 0, 0.95);
+ pointer-events: all;
+}
+
+.transition-svg {
+ width: 40vw;
+ height: 40vh;
+ max-width: 600px;
+ opacity: 0;
+ transform: scale(0.5);
+ transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
+}
+
+.page-transition-overlay.active .transition-svg {
+ opacity: 1;
+ transform: scale(1);
+}
+
+.transition-path {
+ stroke-dasharray: 2000;
+ stroke-dashoffset: 2000;
+ fill: none !important;
+ stroke: url(#transition-gradient);
+ stroke-width: 3px;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ filter: url(#transition-glow);
+}
+
+.page-transition-overlay.active .transition-path {
+ animation: drawTransition 1s ease-in-out forwards;
+}
+
+.transition-path:nth-child(1) { animation-delay: 0s; }
+.transition-path:nth-child(2) { animation-delay: 0.2s; }
+
+@keyframes drawTransition {
+ 0% {
+ stroke-dashoffset: 2000;
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ stroke-dashoffset: 0;
+ opacity: 1;
+ }
+}
+
+.page-content {
+ opacity: 1;
+ transition: opacity 0.3s ease;
+}
+
+.page-content.transitioning {
+ opacity: 0;
+}
\ No newline at end of file
diff --git a/components/pageTransition/pageTransition.tsx b/components/pageTransition/pageTransition.tsx
new file mode 100644
index 0000000..be341fe
--- /dev/null
+++ b/components/pageTransition/pageTransition.tsx
@@ -0,0 +1,63 @@
+"use client";
+import { usePathname } from "next/navigation";
+import { useEffect, useState } from "react";
+import "./page-transition.css";
+
+export default function PageTransition({ children }: { children: React.ReactNode }) {
+ const pathname = usePathname();
+ const [isTransitioning, setIsTransitioning] = useState(false);
+
+ useEffect(() => {
+ setIsTransitioning(true);
+
+ const timer = setTimeout(() => {
+ setIsTransitioning(false);
+ }, 1500); // Animatsiya davomiyligi
+
+ return () => clearTimeout(timer);
+ }, [pathname]);
+
+ return (
+ <>
+ {/* Transition overlay */}
+
+
+
+
+ {/* Page content */}
+
+ {children}
+
+ >
+ );
+}
\ No newline at end of file
diff --git a/components/pages/about/story.tsx b/components/pages/about/story.tsx
index 824880c..ad0db1f 100644
--- a/components/pages/about/story.tsx
+++ b/components/pages/about/story.tsx
@@ -4,7 +4,7 @@ import Image from "next/image";
export function Story() {
const t = useTranslations();
return (
-
+
{/* Background Image */}
diff --git a/public/icon-dark-32x32.png b/public/icon-dark-32x32.png
deleted file mode 100644
index 12c825a..0000000
Binary files a/public/icon-dark-32x32.png and /dev/null differ
diff --git a/public/icon-light-32x32.png b/public/icon-light-32x32.png
deleted file mode 100644
index a3462cc..0000000
Binary files a/public/icon-light-32x32.png and /dev/null differ
diff --git a/public/icon.svg b/public/icon.svg
deleted file mode 100644
index 5c11e6c..0000000
--- a/public/icon.svg
+++ /dev/null
@@ -1,26 +0,0 @@
-
\ No newline at end of file
diff --git a/public/images/IGNUM/SVG/1._6x.svg b/public/images/IGNUM/SVG/1._6x.svg
new file mode 100644
index 0000000..4f6975b
--- /dev/null
+++ b/public/images/IGNUM/SVG/1._6x.svg
@@ -0,0 +1,24 @@
+
+
+
diff --git a/public/placeholder-logo.png b/public/placeholder-logo.png
deleted file mode 100644
index 8a792ac..0000000
Binary files a/public/placeholder-logo.png and /dev/null differ
diff --git a/public/placeholder-logo.svg b/public/placeholder-logo.svg
deleted file mode 100644
index b1695aa..0000000
--- a/public/placeholder-logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/placeholder-user.jpg b/public/placeholder-user.jpg
deleted file mode 100644
index 6fa7543..0000000
Binary files a/public/placeholder-user.jpg and /dev/null differ
diff --git a/public/placeholder.jpg b/public/placeholder.jpg
deleted file mode 100644
index 6bfe963..0000000
Binary files a/public/placeholder.jpg and /dev/null differ