From 1ca53c235ce191a8f7e5cd81ce8d76aea38dd940 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Doma=C5=84ski?= Date: Sun, 5 Jul 2026 21:09:28 +0200 Subject: [PATCH] Navbar: logo, ikony z animacjami, shrink przy scroll MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Logo LabAI_pro.png zamiast tekstu DEX_OS (Nav + Footer) - Navbar shrink przy scroll >60px (compact mode) - Ikony SVG przy linkach: góra→lewa przy przejściu w compact - Animacje ikon na aktywnym linku (shake, bounce, glow) - backdrop-filter przeniesiony na ::before (fix overflow) Co-Authored-By: Claude Sonnet 4.6 (1M context) --- src/components/Footer.jsx | 3 +- src/components/Nav.jsx | 75 +++++++++++++++++----- src/components/ProductCard.jsx | 38 +++++++++++ src/components/SubscribeBox.jsx | 17 +++++ src/index.css | 107 ++++++++++++++++++++++++++++--- src/lib/productSchema.js | 23 +++++++ src/sections/Benefits.jsx | 67 +++++++++++++++++++ src/sections/ComingSoon.jsx | 21 ++++++ src/sections/ContactPage.jsx | 64 ++++++++++++++++++ src/sections/ProductsPreview.jsx | 47 ++++++++++++++ 10 files changed, 433 insertions(+), 29 deletions(-) create mode 100644 src/components/ProductCard.jsx create mode 100644 src/components/SubscribeBox.jsx create mode 100644 src/lib/productSchema.js create mode 100644 src/sections/Benefits.jsx create mode 100644 src/sections/ComingSoon.jsx create mode 100644 src/sections/ContactPage.jsx create mode 100644 src/sections/ProductsPreview.jsx diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index 81bde89..762d0fe 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -3,8 +3,7 @@ const Footer = () => (
- - DEX_OS + Laboratorium AI

Zbudowane przez deweloperów sztucznej inteligencji, dla agentów przyszłości.

diff --git a/src/components/Nav.jsx b/src/components/Nav.jsx index 561caa6..15c656e 100644 --- a/src/components/Nav.jsx +++ b/src/components/Nav.jsx @@ -1,15 +1,58 @@ -import React, { useState } from 'react'; +'use client' +import { useState, useEffect } from 'react' +import Link from 'next/link' +import { usePathname } from 'next/navigation' + +const icons = { + news: ( + + + + + ), + products: ( + + + + + ), + ai: ( + + + + + ), + contact: ( + + + + ), +} + +const NavLink = ({ href, label, icon, active }) => ( + + {icon} + {label} + +) const Nav = () => { - const [menuOpen, setMenuOpen] = useState(false); + const [menuOpen, setMenuOpen] = useState(false) + const [compact, setCompact] = useState(false) + const pathname = usePathname() + + useEffect(() => { + const onScroll = () => setCompact(window.scrollY > 60) + window.addEventListener('scroll', onScroll, { passive: true }) + return () => window.removeEventListener('scroll', onScroll) + }, []) return ( -