NavBar
An elegant navigation bar component for your website.
Preview
About
Projects
Skills
Articles
Contact
Follow below steps 👇🏻
Component
Create a file nav-bar.tsx in your components folder and paste this code
1'use client';23import { motion } from 'framer-motion';4import { FolderKanban, Mail, Newspaper, Skull, User } from 'lucide-react';5import Image from 'next/image';6import React, { useState } from 'react';78const NavBar = () => {9const [hovered, setHovered] = useState<string | null>(null);1011const navItems = [12{13name: 'About',14icon: <User className="w-4 h-4" />15},16{17name: 'Projects',18icon: <FolderKanban className="w-4 h-4" />19},20{21name: 'Skills',22icon: <Skull className="w-4 h-4" />23},24{25name: 'Articles',26icon: <Newspaper className="w-4 h-4" />27},28{29name: 'Contact',30icon: <Mail className="w-4 h-4" />31}32];3334return (35<div className="fixed top-12 left-1/2 -translate-x-1/2 w-full max-w-2xl rounded-full z-50 px-1">36<div37style={{38background:39'linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet, red)'40}}41className="absolute top-0 left-0 w-full h-full rounded-full z-0 blur-xl opacity-90"42/>43<div className="relative p-1 w-full">44<div className="absolute top-0 left-0 w-full h-full rounded-full blur-xl backdrop-blur-xl bg-white/5 z-0" />45<div className="px-6 rounded-full bg-black z-10 relative flex items-center justify-between h-full">46<div className="w-[100px] sm:w-[120px] absolute left-6 h-full">47<Image48src="/stackbits-logo.png"49alt="logo"50fill51className="h-full w-full object-contain"52/>53</div>54<ul className="flex py-4 items-center w-full justify-end">55{navItems.map((item) => {56return (57<li58onMouseEnter={() => setHovered(item.name)}59onMouseLeave={() => setHovered(null)}60key={`nav-item-${item.name}`}61className="flex items-center gap-1 p-2 opacity-50 hover:opacity-100 transition-all duration-150 cursor-pointer relative"62onClick={() => {}}63>64<div className="relative z-10">{item.icon}</div>65<p className="text-sm hidden sm:block z-10 relative">{item.name}</p>6667{hovered === item.name && (68<motion.div69layout70layoutId="nav-bar-highlight"71transition={{72duration: 0.273}}74className="absolute top-0 left-0 w-full h-full bg-white/10 z-0 rounded-lg"75/>76)}77</li>78);79})}80</ul>81</div>82</div>83</div>84);85};8687export default NavBar;
Usage
1<NavBar />
⭐️ Got a question or feedback?
Feel free to reach out!