diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index e0ba007..bf0257a 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -5,6 +5,7 @@ import "../globals.css"; import { NextIntlClientProvider } from "next-intl"; import { getMessages } from "next-intl/server"; import { notFound } from "next/navigation"; +import { LazyMotion, domAnimation } from "framer-motion"; const inter = Inter({ subsets: ["latin"], @@ -122,7 +123,9 @@ export default async function RootLayout({ - {children} + + {children} + diff --git a/components/Button.tsx b/components/Button.tsx index 954dceb..f5bca7e 100644 --- a/components/Button.tsx +++ b/components/Button.tsx @@ -1,7 +1,7 @@ "use client"; import React, { useState } from "react"; -import { m, LazyMotion, domAnimation } from "framer-motion"; +import { m } from "framer-motion"; import Link from "next/link"; import { ArrowRight } from "lucide-react"; @@ -62,15 +62,13 @@ export const Button = ({ ); const spotlight = ( - - - + ); const buttonProps = { diff --git a/components/HomeContent.tsx b/components/HomeContent.tsx index de9c072..4dcb4fa 100644 --- a/components/HomeContent.tsx +++ b/components/HomeContent.tsx @@ -1,6 +1,6 @@ "use client"; -import { m, LazyMotion, domAnimation } from "framer-motion"; +import { m } from "framer-motion"; import { BarChart3, CheckCircle2, @@ -326,55 +326,53 @@ export default function Home() {
- - - - - - - + + + + +
diff --git a/components/Layout.tsx b/components/Layout.tsx index db66029..7743d4f 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -116,38 +116,36 @@ const Layout = ({ children }: { children: React.ReactNode }) => { {/* Mobile Menu Overlay */} - - - {isMobileMenuOpen && ( - - - - )} - - + + {isMobileMenuOpen && ( + + + + )} +
{children}
@@ -168,18 +166,16 @@ const Layout = ({ children }: { children: React.ReactNode }) => {
{/* Animated Tech Lines */} - - - - + + {/* Corner Accents */}
diff --git a/components/Reveal.tsx b/components/Reveal.tsx index d6a135a..f2ae9ba 100644 --- a/components/Reveal.tsx +++ b/components/Reveal.tsx @@ -1,26 +1,26 @@ -'use client'; +"use client"; -import React from 'react'; -import { m, LazyMotion, domAnimation } from 'framer-motion'; +import React from "react"; +import { m } from "framer-motion"; interface RevealProps { children: React.ReactNode; className?: string; delay?: number; - direction?: 'up' | 'down' | 'left' | 'right'; + direction?: "up" | "down" | "left" | "right"; fullWidth?: boolean; viewportMargin?: string; - trigger?: 'inView' | 'mount'; + trigger?: "inView" | "mount"; } export const Reveal = ({ children, - className = '', + className = "", delay = 0, - direction = 'up', + direction = "up", fullWidth = false, viewportMargin = "-50px", - trigger = 'inView' + trigger = "inView", }: RevealProps) => { const directions = { up: { y: 30 }, @@ -30,35 +30,45 @@ export const Reveal = ({ }; return ( - {children} - ); }; @@ -68,13 +78,12 @@ interface StaggerProps { staggerDelay?: number; } -export const Stagger = ({ - children, - className = '', - staggerDelay = 0.1 +export const Stagger = ({ + children, + className = "", + staggerDelay = 0.1, }: StaggerProps) => { return ( - {children} - ); }; diff --git a/components/TileGrid.tsx b/components/TileGrid.tsx index 6bb8dbc..647f6bb 100644 --- a/components/TileGrid.tsx +++ b/components/TileGrid.tsx @@ -1,7 +1,7 @@ -'use client'; +"use client"; -import React, { useEffect, useState } from 'react'; -import { m, LazyMotion, domAnimation } from 'framer-motion'; +import React, { useEffect, useState } from "react"; +import { m } from "framer-motion"; export const TileGrid = () => { const [mounted, setMounted] = useState(false); @@ -12,42 +12,41 @@ export const TileGrid = () => { if (!mounted) return null; - const rows = 15; - const cols = 20; + const rows = 7; + const cols = 8; return (
- -
+
{[...Array(rows)].map((_, rowIndex) => (
{[...Array(cols)].map((_, colIndex) => ( 0.9 ? 0.25 : 0.05, 0.05], - scale: [1, Math.random() > 0.9 ? 1.05 : 1, 1] + opacity: [0.03, Math.random() > 0.8 ? 0.15 : 0.03, 0.03], + scale: [1, Math.random() > 0.8 ? 1.02 : 1, 1], }} transition={{ - duration: 5 + Math.random() * 5, + duration: 8 + Math.random() * 8, repeat: Infinity, - delay: Math.random() * 20, - ease: "easeInOut" + delay: Math.random() * 15, + ease: "easeInOut", }} - className="w-24 h-24 md:w-40 md:h-40 bg-white/10 backdrop-blur-[2px] rounded-2xl md:rounded-3xl border border-white/20 shadow-[0_8px_32px_0_rgba(31,38,135,0.07)] shrink-0" + className="w-32 h-32 md:w-56 md:h-56 bg-white/5 rounded-3xl md:rounded-[3rem] border border-white/10 shadow-[0_8px_32px_0_rgba(31,38,135,0.03)] shrink-0 will-change-transform" /> ))}
))}
-
); };