feat: visual overhaul with updated images and UI components

Updated hero and section images, refreshed layout, page and navbar components.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Temmuz Aslan 2026-02-16 02:07:42 +03:00
parent b284562862
commit e51aab7986
11 changed files with 16 additions and 26 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 732 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 1,001 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 KiB

After

Width:  |  Height:  |  Size: 719 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 KiB

After

Width:  |  Height:  |  Size: 1,016 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 KiB

After

Width:  |  Height:  |  Size: 563 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 KiB

After

Width:  |  Height:  |  Size: 496 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 408 KiB

View file

@ -47,11 +47,8 @@ export default function RootLayout({
className={`${inter.variable} ${spaceGrotesk.variable} font-sans antialiased bg-navy text-white`}
>
<NoiseOverlay />
{/* Cinematic fixed lighting — persists across all pages */}
<div className="fixed top-[-10%] right-[0%] w-[800px] h-[800px] bg-cyan-500/15 blur-[180px] rounded-full pointer-events-none z-0" />
<div className="fixed bottom-0 left-[-10%] w-[600px] h-[600px] bg-indigo-600/10 blur-[150px] rounded-full pointer-events-none z-0" />
<Navbar />
<main className="relative z-[1]">{children}</main>
<main>{children}</main>
<Footer />
</body>
</html>

View file

@ -147,8 +147,8 @@ export default function Home() {
<div className="absolute top-[-20%] right-[-10%] w-[800px] h-[800px] bg-cyan-500/10 blur-[150px] rounded-full pointer-events-none" />
<div className="absolute bottom-0 left-[-10%] w-[600px] h-[600px] bg-purple-600/10 blur-[120px] rounded-full pointer-events-none" />
{/* Bottom fade */}
<div className="absolute bottom-0 left-0 right-0 h-40 bg-gradient-to-t from-navy to-transparent z-[5]" />
{/* Deep cinematic floor — massive gradient fog rising from bottom */}
<div className="absolute bottom-0 left-0 right-0 h-[60%] bg-gradient-to-t from-navy from-[0%] via-navy/95 via-[20%] to-transparent z-[5]" />
{/* Content — text floats OVER the image */}
<div className="relative z-10 mx-auto max-w-7xl px-6 pt-32 pb-20 w-full">
@ -198,14 +198,14 @@ export default function Home() {
</motion.div>
</motion.div>
{/* ── Trust bar ── */}
{/* ── Trust bar — sits on the "cinematic floor" ── */}
<motion.div
className="mt-24 pt-10 border-t border-white/[0.04]"
className="relative z-10 mt-24 pt-10 border-t border-white/[0.06]"
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ delay: 1.2, duration: 0.8 }}
>
<p className="text-center text-xs text-slate-500 tracking-widest uppercase mb-8">
<p className="text-center text-xs text-slate-400 tracking-widest uppercase mb-8">
Trusted by leading enterprises and governments worldwide
</p>
<div className="flex flex-wrap justify-center gap-x-16 gap-y-4 items-center">
@ -218,7 +218,7 @@ export default function Home() {
].map((name) => (
<span
key={name}
className="text-[11px] font-semibold text-slate-600 tracking-[0.2em] uppercase"
className="text-[11px] font-semibold text-slate-300/70 tracking-[0.2em] uppercase"
>
{name}
</span>

View file

@ -18,20 +18,15 @@ const navLinks = [
export function Navbar() {
const pathname = usePathname();
const [mobileOpen, setMobileOpen] = useState(false);
const [hidden, setHidden] = useState(false);
const [lastScrollY, setLastScrollY] = useState(0);
const [scrolled, setScrolled] = useState(false);
const [isScrolled, setIsScrolled] = useState(false);
useEffect(() => {
const handleScroll = () => {
const currentScrollY = window.scrollY;
setHidden(currentScrollY > lastScrollY && currentScrollY > 80);
setScrolled(currentScrollY > 20);
setLastScrollY(currentScrollY);
setIsScrolled(window.scrollY > 20);
};
window.addEventListener("scroll", handleScroll, { passive: true });
return () => window.removeEventListener("scroll", handleScroll);
}, [lastScrollY]);
}, []);
useEffect(() => {
setMobileOpen(false);
@ -39,14 +34,12 @@ export function Navbar() {
return (
<>
<motion.header
className={`fixed top-0 left-0 right-0 z-40 transition-all duration-500 ${
scrolled
? "bg-navy/60 backdrop-blur-2xl border-b border-white/[0.04] shadow-[0_4px_30px_rgba(0,0,0,0.3)]"
: "bg-transparent"
<header
className={`fixed top-0 left-0 w-full z-50 transition-all duration-500 ${
isScrolled
? "bg-[#0A0F2E]/80 backdrop-blur-md border-b border-white/5 shadow-[0_4px_30px_rgba(0,0,0,0.3)]"
: "bg-transparent border-b border-transparent"
}`}
animate={{ y: hidden ? -100 : 0 }}
transition={{ duration: 0.3 }}
>
<nav className="mx-auto max-w-7xl px-6 py-4 flex items-center justify-between">
<Link href="/" className="flex items-center gap-2 relative z-10">
@ -102,7 +95,7 @@ export function Navbar() {
{mobileOpen ? <X size={24} /> : <Menu size={24} />}
</button>
</nav>
</motion.header>
</header>
{/* Mobile menu */}
<AnimatePresence>