DevPlatform
Home
Components
Search
Submit
Earn
Login
Sign Up Free
Ultra Modern Navbar with sidebar - Preview | DevPlatform
DevPlatform
Categories
Accordion
Animation
Box Shadow
Button
Card
Footer
Form
Gallery
Hero Section
Inputs
Loader
Marquee
Modal
Modules
Navbar
Progress Bar
Radio Buttons
Search-Bar
Sections
Slider
Tab
Timeline
Toggle
Ultra Modern Navbar with sidebar
rohitwushu
Jan 23, 2026
15
0
Share
Live Preview
Refresh
Live Editor
HTML
CSS
JS
HTML
CSS
JavaScript
1
<header class="header"> <nav class="navbar"> <div class="nav-wrapper"> <!-- Logo Section --> <div class="brand"> <div class="brand-icon"> <svg width="40" height="40" viewBox="0 0 40 40" fill="none"> <circle cx="20" cy="20" r="18" stroke="url(#gradient)" stroke-width="3"/> <path d="M15 20L18 23L25 16" stroke="url(#gradient)" stroke-width="3" stroke-linecap="round"/> <defs> <linearGradient id="gradient" x1="0" y1="0" x2="40" y2="40"> <stop offset="0%" stop-color="#ff6b6b"/> <stop offset="100%" stop-color="#4ecdc4"/> </linearGradient> </defs> </svg> </div> <div class="brand-text"> <span class="brand-name">NexusUI</span> <span class="brand-tagline">Design Studio</span> </div> </div> <!-- Desktop Navigation --> <ul class="nav-links"> <li><a href="#home" class="nav-item active"> <span class="item-text">Home</span> <span class="item-indicator"></span> </a></li> <li><a href="#work" class="nav-item"> <span class="item-text">Work</span> <span class="item-indicator"></span> </a></li> <li><a href="#services" class="nav-item"> <span class="item-text">Services</span> <span class="item-indicator"></span> </a></li> <li><a href="#about" class="nav-item"> <span class="item-text">About</span> <span class="item-indicator"></span> </a></li> <li><a href="#blog" class="nav-item"> <span class="item-text">Blog</span> <span class="item-indicator"></span> </a></li> </ul> <!-- CTA Section --> <div class="nav-cta"> <button class="search-btn" aria-label="Search"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none"> <circle cx="9" cy="9" r="6" stroke="currentColor" stroke-width="2"/> <path d="M14 14L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> </svg> </button> <button class="cta-btn"> <span>Contact Us</span> <svg width="16" height="16" viewBox="0 0 16 16" fill="none"> <path d="M3 8H13M13 8L9 4M13 8L9 12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> </svg> </button> </div> <!-- Mobile Menu Toggle --> <button class="menu-toggle" id="menuToggle" aria-label="Toggle menu"> <span class="menu-line"></span> <span class="menu-line"></span> <span class="menu-line"></span> <span class="menu-text">Menu</span> </button> </div> </nav> <!-- Mobile Menu Overlay --> <div class="mobile-menu" id="mobileMenu"> <div class="mobile-menu-content"> <div class="mobile-menu-header"> <h2>Navigation</h2> <button class="close-btn" id="closeMenu"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> </svg> </button> </div> <ul class="mobile-nav-links"> <li class="mobile-nav-item"> <a href="#home" class="mobile-link"> <span class="link-number">01</span> <span class="link-text">Home</span> <span class="link-arrow">→</span> </a> </li> <li class="mobile-nav-item"> <a href="#work" class="mobile-link"> <span class="link-number">02</span> <span class="link-text">Work</span> <span class="link-arrow">→</span> </a> </li> <li class="mobile-nav-item"> <a href="#services" class="mobile-link"> <span class="link-number">03</span> <span class="link-text">Services</span> <span class="link-arrow">→</span> </a> </li> <li class="mobile-nav-item"> <a href="#about" class="mobile-link"> <span class="link-number">04</span> <span class="link-text">About</span> <span class="link-arrow">→</span> </a> </li> <li class="mobile-nav-item"> <a href="#blog" class="mobile-link"> <span class="link-number">05</span> <span class="link-text">Blog</span> <span class="link-arrow">→</span> </a> </li> </ul> <div class="mobile-menu-footer"> <button class="mobile-cta-btn"> <span>Get in Touch</span> <svg width="20" height="20" viewBox="0 0 20 20" fill="none"> <path d="M4 10H16M16 10L11 5M16 10L11 15" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> </svg> </button> <div class="social-links"> <a href="#" class="social-link">Twitter</a> <a href="#" class="social-link">Instagram</a> <a href="#" class="social-link">LinkedIn</a> </div> </div> </div> </div> </header> <!-- Hero Content --> <section class="hero-section"> <div class="hero-content"> <h1 class="hero-title">Ultra Modern Navbar</h1> <p class="hero-subtitle">Sleek, animated, and fully responsive design</p> <div class="hero-badge">Scroll to see effects ↓</div> </div> </section>
1
* { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary: #ff6b6b; --secondary: #4ecdc4; --dark: #1a1a2e; --light: #ffffff; --gray: #94a3b8; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%); min-height: 200vh; overflow-x: hidden; } body.menu-open { overflow: hidden; } /* Header & Navbar */ .header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; } .navbar { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(20px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 1rem 0; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .navbar.scrolled { background: rgba(26, 26, 46, 0.95); box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); } .navbar.hidden { transform: translateY(-100%); } .nav-wrapper { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: flex; align-items: center; justify-content: space-between; gap: 3rem; } /* Brand */ .brand { display: flex; align-items: center; gap: 1rem; cursor: pointer; transition: transform 0.3s ease; } .brand:hover { transform: scale(1.05); } .brand-icon { width: 40px; height: 40px; animation: rotate 20s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .brand:hover .brand-icon { animation-play-state: paused; } .brand-text { display: flex; flex-direction: column; gap: 0.15rem; } .brand-name { font-size: 1.5rem; font-weight: 700; background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .brand-tagline { font-size: 0.7rem; color: var(--gray); text-transform: uppercase; letter-spacing: 2px; } /* Desktop Navigation */ .nav-links { display: flex; list-style: none; gap: 0.5rem; margin: 0; } .nav-item { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0.75rem 1.5rem; text-decoration: none; color: rgba(255, 255, 255, 0.7); font-size: 0.95rem; font-weight: 500; border-radius: 12px; transition: all 0.3s ease; overflow: hidden; } .nav-item::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, var(--primary), var(--secondary)); opacity: 0; transition: opacity 0.3s ease; z-index: -1; } .nav-item:hover::before, .nav-item.active::before { opacity: 0.1; } .nav-item:hover { color: var(--light); transform: translateY(-2px); } .item-text { position: relative; } .item-indicator { width: 0; height: 2px; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 2px; margin-top: 0.25rem; transition: width 0.3s ease; } .nav-item:hover .item-indicator, .nav-item.active .item-indicator { width: 100%; } .nav-item.active { color: var(--light); } /* CTA Section */ .nav-cta { display: flex; align-items: center; gap: 1rem; } .search-btn { width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, 0.2); background: transparent; border-radius: 10px; color: rgba(255, 255, 255, 0.7); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .search-btn:hover { background: rgba(255, 255, 255, 0.1); color: var(--light); transform: scale(1.05); } .cta-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.875rem 1.75rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); border: none; border-radius: 12px; color: var(--light); font-weight: 600; font-size: 0.95rem; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .cta-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(135deg, var(--secondary), var(--primary)); transition: left 0.4s ease; } .cta-btn:hover::before { left: 0; } .cta-btn span, .cta-btn svg { position: relative; z-index: 1; } .cta-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(255, 107, 107, 0.4); } /* Menu Toggle */ .menu-toggle { display: none; flex-direction: column; gap: 0.5rem; background: transparent; border: none; cursor: pointer; padding: 0.5rem; } .menu-line { width: 28px; height: 2px; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 2px; transition: all 0.3s ease; } .menu-text { font-size: 0.7rem; color: var(--gray); text-transform: uppercase; letter-spacing: 1px; text-align: center; } .menu-toggle.active .menu-line:nth-child(1) { transform: rotate(45deg) translate(7px, 7px); } .menu-toggle.active .menu-line:nth-child(2) { opacity: 0; } .menu-toggle.active .menu-line:nth-child(3) { transform: rotate(-45deg) translate(7px, -7px); } /* Mobile Menu */ .mobile-menu { position: fixed; top: 0; right: -100%; width: 100%; max-width: 450px; height: 100vh; background: linear-gradient(135deg, rgba(26, 26, 46, 0.98), rgba(48, 43, 99, 0.98)); backdrop-filter: blur(20px); transition: right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55); overflow-y: auto; z-index: 999; } .mobile-menu.active { right: 0; } .mobile-menu-content { padding: 2rem; height: 100%; display: flex; flex-direction: column; } .mobile-menu-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 3rem; } .mobile-menu-header h2 { font-size: 1.5rem; color: var(--light); background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .close-btn { width: 40px; height: 40px; border: 1px solid rgba(255, 255, 255, 0.2); background: transparent; border-radius: 10px; color: var(--light); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .close-btn:hover { background: rgba(255, 255, 255, 0.1); transform: rotate(90deg); } /* Mobile Nav Links */ .mobile-nav-links { list-style: none; flex: 1; } .mobile-nav-item { margin-bottom: 1rem; opacity: 0; transform: translateX(50px); transition: all 0.4s ease; } .mobile-menu.active .mobile-nav-item:nth-child(1) { animation: slideIn 0.5s ease 0.1s forwards; } .mobile-menu.active .mobile-nav-item:nth-child(2) { animation: slideIn 0.5s ease 0.2s forwards; } .mobile-menu.active .mobile-nav-item:nth-child(3) { animation: slideIn 0.5s ease 0.3s forwards; } .mobile-menu.active .mobile-nav-item:nth-child(4) { animation: slideIn 0.5s ease 0.4s forwards; } .mobile-menu.active .mobile-nav-item:nth-child(5) { animation: slideIn 0.5s ease 0.5s forwards; } @keyframes slideIn { to { opacity: 1; transform: translateX(0); } } .mobile-link { display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem; text-decoration: none; color: var(--light); font-size: 1.75rem; font-weight: 600; border-radius: 12px; transition: all 0.3s ease; position: relative; overflow: hidden; } .mobile-link::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(255, 107, 107, 0.1), rgba(78, 205, 196, 0.1)); transition: left 0.4s ease; } .mobile-link:hover::before { left: 0; } .link-number { font-size: 1rem; color: var(--gray); font-weight: 400; } .link-text { flex: 1; } .link-arrow { font-size: 2rem; opacity: 0; transform: translateX(-20px); transition: all 0.3s ease; } .mobile-link:hover .link-arrow { opacity: 1; transform: translateX(0); } /* Mobile Menu Footer */ .mobile-menu-footer { padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.1); opacity: 0; transform: translateY(30px); } .mobile-menu.active .mobile-menu-footer { animation: fadeInUp 0.5s ease 0.6s forwards; } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } .mobile-cta-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.75rem; padding: 1.25rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); border: none; border-radius: 12px; color: var(--light); font-weight: 600; font-size: 1.1rem; cursor: pointer; margin-bottom: 2rem; transition: all 0.3s ease; } .mobile-cta-btn:hover { transform: scale(1.02); box-shadow: 0 10px 30px rgba(255, 107, 107, 0.4); } .social-links { display: flex; justify-content: center; gap: 2rem; } .social-link { color: var(--gray); text-decoration: none; font-size: 0.9rem; transition: all 0.3s ease; } .social-link:hover { color: var(--light); } /* Hero Section */ .hero-section { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; } .hero-content { text-align: center; max-width: 800px; } .hero-title { font-size: 5rem; font-weight: 800; background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 1rem; line-height: 1.2; } .hero-subtitle { font-size: 1.5rem; color: rgba(255, 255, 255, 0.7); margin-bottom: 2rem; } .hero-badge { display: inline-block; padding: 1rem 2rem; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50px; color: var(--light); font-size: 0.95rem; backdrop-filter: blur(10px); animation: bounce 2s ease-in-out infinite; } @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } /* Responsive */ @media (max-width: 1024px) { .nav-links { gap: 0.25rem; } .nav-item { padding: 0.75rem 1rem; font-size: 0.9rem; } } @media (max-width: 968px) { .nav-wrapper { padding: 0 1.5rem; } .nav-links, .nav-cta { display: none; } .menu-toggle { display: flex; } .hero-title { font-size: 3rem; } .hero-subtitle { font-size: 1.2rem; } } @media (max-width: 480px) { .brand-name { font-size: 1.25rem; } .mobile-menu { max-width: 100%; } .mobile-link { font-size: 1.5rem; padding: 1.25rem; } .hero-title { font-size: 2.5rem; } .hero-subtitle { font-size: 1rem; } }
1
const menuToggle = document.getElementById('menuToggle'); const mobileMenu = document.getElementById('mobileMenu'); const closeMenu = document.getElementById('closeMenu'); const navbar = document.querySelector('.navbar'); const body = document.body; // Toggle mobile menu menuToggle.addEventListener('click', () => { menuToggle.classList.toggle('active'); mobileMenu.classList.toggle('active'); body.classList.toggle('menu-open'); }); // Close menu closeMenu.addEventListener('click', () => { menuToggle.classList.remove('active'); mobileMenu.classList.remove('active'); body.classList.remove('menu-open'); }); // Close menu on link click document.querySelectorAll('.mobile-link').forEach(link => { link.addEventListener('click', () => { menuToggle.classList.remove('active'); mobileMenu.classList.remove('active'); body.classList.remove('menu-open'); }); }); // Navbar scroll effect let lastScroll = 0; window.addEventListener('scroll', () => { const currentScroll = window.pageYOffset; if (currentScroll > 100) { navbar.classList.add('scrolled'); } else { navbar.classList.remove('scrolled'); } // Hide/show navbar on scroll if (currentScroll > lastScroll && currentScroll > 200) { navbar.classList.add('hidden'); } else { navbar.classList.remove('hidden'); } lastScroll = currentScroll; }); // Desktop nav active state document.querySelectorAll('.nav-item').forEach(item => { item.addEventListener('click', function(e) { document.querySelectorAll('.nav-item').forEach(i => i.classList.remove('active')); this.classList.add('active'); }); });
Comments
0
Want to comment?
Please
login
or
sign up
to post comments.
No comments yet
Be the first to comment on this component!
Comments 0
Want to comment?
Please login or sign up to post comments.
No comments yet
Be the first to comment on this component!