"use client"; import React, { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { MenuIcon, XIcon, Layers } from "lucide-react"; import { cn } from "@/lib/utils"; // Definição de Tipos para consistência de dados interface NavItem { href: string; label: string; } const navItems: NavItem[] = [ { href: "#home", label: "Home" }, { href: "#about", label: "Sobre" }, { href: "#skills", label: "Habilidades" }, { href: "#experience", label: "Experiência" }, { href: "#projects", label: "Projetos" }, { href: "#contact", label: "Contato" }, ]; export function Header() { const [isMenuOpen, setIsMenuOpen] = useState(false); const [scrolled, setScrolled] = useState(false); // Hook de detecção de scroll para mudança de estado do Header useEffect(() => { const handleScroll = () => { setScrolled(window.scrollY > 20); }; window.addEventListener("scroll", handleScroll); return () => window.removeEventListener("scroll", handleScroll); }, []); return ( <> {/* Mobile Menu Overlay com Framer Motion para fluidez */} {isMenuOpen && ( {navItems.map((item, i) => ( { e.preventDefault(); setIsMenuOpen(false); const element = document.querySelector(item.href); if (element) { element.scrollIntoView({ behavior: "smooth", block: "start" }); } }} className="text-3xl font-black text-white uppercase tracking-tighter hover:text-blue-500 transition-colors cursor-pointer" > {item.label} ))} Download CV )} ); }