Navbar
The navbar component can be used to show a list of navigation links positioned on the top side of your page based on multiple layouts, sizes, and dropdowns
Get started with the responsive navbar component from Flowbite to quickly set up a navigation menu for your website and set up the logo, list of pages, CTA button, search input, user profile options with a dropdown, and more.
Setup
<script>
import { Navbar, NavBrand, NavLi, NavUl, NavHamburger } from 'flowbite-svelte'
</script>
Default navbar
Use this example of a navigation bar built with the utility classes from Tailwind CSS to enable users to navigate across the pages of your website.
<Navbar let:hidden let:toggle>
<NavBrand href="/">
<img
src="https://flowbite.com/docs/images/logo.svg"
class="mr-3 h-6 sm:h-9"
alt="Flowbite Logo"
/>
<span class="self-center whitespace-nowrap text-xl font-semibold dark:text-white">
Flowbite
</span>
</NavBrand>
<NavHamburger on:click={toggle} />
<NavUl {hidden}>
<NavLi href="/" active={true}>Home</NavLi>
<NavLi href="/about">About</NavLi>
<NavLi href="/services">Services</NavLi>
<NavLi href="/pricing">Pricing</NavLi>
<NavLi href="/contact">Contact</NavLi>
</NavUl>
</Navbar>
Navbar with dropdown
This example can be used to show a secondary dropdown menu when clicking on one of the navigation links.
<script>
...
let avatar = {
src: '/images/profile-picture-1.webp',
alt: 'My avatar',
size: 12,
border: true,
round: true
};
</script>
<Navbar let:hidden let:toggle rounded={true}>
<NavBrand href="/">
<img
src="https://flowbite.com/docs/images/logo.svg"
class="mr-3 h-6 sm:h-9"
alt="Flowbite Logo"
/>
<span class="self-center whitespace-nowrap text-xl font-semibold dark:text-white">
Flowbite
</span>
</NavBrand>
<div class="flex md:order-2">
<Dropdown arrowIcon={false} inline={true}>
<Avatar {avatar} slot="label" />
<DropdownHeader>
<span class="block text-sm"> Bonnie Green </span>
<span class="block truncate text-sm font-medium"> name@flowbite.com </span>
</DropdownHeader>
<DropdownItem>Dashboard</DropdownItem>
<DropdownItem>Settings</DropdownItem>
<DropdownItem>Earnings</DropdownItem>
<DropdownDivider />
<DropdownItem>Sign out</DropdownItem>
</Dropdown>
<NavHamburger on:click={toggle} />
</div>
<NavUl {hidden}>
<NavLi href="/" active={true}>Home</NavLi>
<NavLi href="/about">About</NavLi>
<NavLi href="/services">Services</NavLi>
<NavLi href="/pricing">Pricing</NavLi>
<NavLi href="/contact">Contact</NavLi>
</NavUl>
</Navbar>
Navbar with search
Use this example of a navbar element to also show a search input element that you can integrate for a site-wide search.
<Navbar let:hidden let:toggle rounded={true}>
<NavBrand href="/">
<img
src="https://flowbite.com/docs/images/logo.svg"
class="mr-3 h-6 sm:h-9"
alt="Flowbite Logo"
/>
<span class="self-center whitespace-nowrap text-xl font-semibold dark:text-white">
Flowbite
</span>
</NavBrand>
<div class="flex md:order-2">
<Button color="none" data-collapse-toggle="mobile-menu-3" aria-controls="mobile-menu-3" aria-expanded="false" class="md:hidden text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 mr-1" >
<Search variation='solid' />
</Button>
<div class="hidden relative md:block">
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
<Search />
</div>
<Input id="search-navbar" class="pl-10" placeholder="Search..." />
</div>
<NavHamburger on:click={toggle} />
</div>
<NavUl {hidden}>
<NavLi href="/" active={true}>Home</NavLi>
<NavLi href="/about">About</NavLi>
<NavLi href="/services">Services</NavLi>
</NavUl>
</Navbar>
Navbar with CTA button
Use the following navbar element to show a call to action button alongside the logo and page links.
<Navbar let:hidden let:toggle rounded={true}>
<NavBrand href="/">
<img
src="https://flowbite.com/docs/images/logo.svg"
class="mr-3 h-6 sm:h-9"
alt="Flowbite Logo"
/>
<span class="self-center whitespace-nowrap text-xl font-semibold dark:text-white">
Flowbite
</span>
</NavBrand>
<div class="flex md:order-2">
<Button>Get started</Button>
<NavHamburger on:click={toggle} />
</div>
<NavUl {hidden} class="order-1">
<NavLi href="/" active={true}>Home</NavLi>
<NavLi href="/about">About</NavLi>
<NavLi href="/services">Services</NavLi>
<NavLi href="/pricing">Pricing</NavLi>
<NavLi href="/contact">Contact</NavLi>
</NavUl>
</Navbar>
Props
The component has the following props, type, and default values. See types page for type information.
Navbar
Name | Type | Default |
---|---|---|
navClass | string | 'bg-white border-gray-200 px-2 sm:px-4 py-2.5 dark:bg-gray-800' |
navDivClass | string | 'mx-auto flex flex-wrap justify-between items-center ' |
fluid | boolean | true |
rounded | boolean | false |
border | boolean | false |
NavBrand
Name | Type | Default |
---|---|---|
href | string | '' |
NavLi
Name | Type | Default |
---|---|---|
href | string | '' |
active | boolean | false |
activeClass | string | 'block py-2 pr-4 pl-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 dark:text-white' |
nonActiveClass | string | 'block py-2 pr-4 pl-3 text-gray-700 border-b border-gray-100 hover:bg-gray-50 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 md:dark:hover:text-white dark:hover:bg-gray-700 dark:hover:text-white md:dark:hover:bg-transparent dark:border-gray-700' |
NavUl
Name | Type | Default |
---|---|---|
divClass | string | 'w-full md:block md:w-auto' |
ulClass | string | 'flex flex-col mt-4 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium' |
hidden | boolean | true |