Nav

Defines different styles for list navigations.

Usage

To apply this component, use the following classes.

ClassDescription
.uk-navAdd this class to a <ul> element to define the Nav component. Use <a> elements as nav items within the list.
.uk-active Add this class to a list item to apply an active state to a menu item.
<ul class="uk-nav">
<li class="uk-active"><a href=""></a></li>
<li><a href=""></a></li>
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav uk-nav-default">
    <li class="uk-active"><a href="#">Active</a></li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav uk-nav-default">
    <li className="uk-active"><a href="#">Active</a></li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>

Note By default, the nav has no styling. That’s why it is important to add a modifier class. In our example we are using the .uk-nav-default class.

Nested navs

Add the .uk-parent class to an item to turn it into a parent. Add the .uk-nav-sub class to a <ul> element inside the item to create the subnav.

<ul class="uk-nav">
<li class="uk-parent">
<a href=""></a>
<ul class="uk-nav-sub">
<li><a href=""></a></li>
<li>
<a href=""></a>
<ul>
...
</ul>
</li>
</ul>
</li>
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav uk-nav-default">
    <li class="uk-active"><a href="#">Active</a></li>
    <li class="uk-parent">
    <a href="#">Parent</a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav uk-nav-default">
    <li className="uk-active"><a href="#">Active</a></li>
    <li className="uk-parent">
    <a href="#">Parent</a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </div>

Accordion

By default, child menu items are always visible. To apply an accordion effect, just add the data-uk-nav attribute to the main <ul>.

Note The attribute automatically sets the .uk-nav class, so you don’t have to apply it manually.

<ul uk-nav>
...
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav-default" data-uk-nav>
    <li class="uk-active"><a href="#">Active</a></li>
    <li class="uk-parent">
    <a href="#">Parent</a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li class="uk-parent">
    <a href="#">Parent</a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav-default" data-uk-nav>
    <li className="uk-active"><a href="#">Active</a></li>
    <li className="uk-parent">
    <a href="#">Parent</a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li className="uk-parent">
    <a href="#">Parent</a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </div>

Parent icon

To create a parent icon, just add the data-uk-nav-parent-icon attribute to a <span> element.

<ul data-uk-nav>
<li>
<a href="">Parent <span data-uk-nav-parent-icon></span></a>
...
</li>
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav-default" data-uk-nav>
    <li class="uk-active"><a href="#">Active</a></li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav-default" data-uk-nav>
    <li className="uk-active"><a href="#">Active</a></li>
    <li className="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon /></a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li className="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon /></a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </div>

Multiple open subnavs

When clicking on a parent item, an open one will close, allowing only one open nested list at a time. To allow multiple open subnavs, just add the multiple: true option to the attribute.

<ul data-uk-nav="multiple: true">
...
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav-default" data-uk-nav="multiple: true">
    <li class="uk-active"><a href="#">Active</a></li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav-default" data-uk-nav="multiple: true">
    <li className="uk-active"><a href="#">Active</a></li>
    <li className="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon /></a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li>
    <a href="#">Sub item</a>
    <ul>
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li className="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon /></a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    </ul>
    </div>

Header and divider

Add one of the following classes to a list item to create a header or a divider between items.

ElementDescription
.uk-nav-headerAdd this class to a <li> element to create a header.
.uk-nav-dividerAdd this class to a <li> element to create a divider separating nav items.
<li class="uk-nav-header"></li>
<li class="uk-nav-divider"></li>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav uk-nav-default">
    <li class="uk-nav-header">Header</li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    <li class="uk-nav-divider"></li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav uk-nav-default">
    <li className="uk-nav-header">Header</li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    <li className="uk-nav-divider" />
    <li><a href="#">Item</a></li>
    </ul>
    </div>

Subtitle

Add the .uk-nav-subtitle class to a div element to create an item subtitled.

<ul class="uk-nav">
<li>
<a href="">
<div>
Item
<div class="uk-nav-subtitle">
Subtitle lorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do.
</div>
</div>
</a>
</li>
</ul>

Default modifier

Add the .uk-nav-default class to give the nav its default style. You can place the nav inside cards or anywhere else in your content.

<ul class="uk-nav uk-nav-default">
...
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="uk-card uk-card-body max-w-sm">
    <ul class="uk-nav-default" data-uk-nav>
    <li class="uk-active"><a href="#">Active</a></li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    <li class="uk-nav-header">Header</li>
    <li>
    <a href="#">
    <uk-icon class="mr-2" icon="table"></uk-icon>
    Item
    </a>
    </li>
    <li>
    <a href="#">
    <uk-icon class="mr-2" icon="bell"></uk-icon>
    Item
    </a>
    </li>
    <li class="uk-nav-divider"></li>
    <li>
    <a href="#">
    <uk-icon class="mr-2" icon="trash"></uk-icon>
    Item
    </a>
    </li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="uk-card uk-card-body max-w-sm">
    <ul className="uk-nav-default" data-uk-nav>
    <li className="uk-active">
    <a href="#">Active</a>
    </li>
    <li className="uk-parent">
    <a href="#">
    Parent <span data-uk-nav-parent-icon />
    </a>
    <ul className="uk-nav-sub">
    <li>
    <a href="#">Sub item</a>
    </li>
    <li>
    <a href="#">Sub item</a>
    </li>
    </ul>
    </li>
    <li className="uk-parent">
    <a href="#">
    Parent <span data-uk-nav-parent-icon />
    </a>
    <ul className="uk-nav-sub">
    <li>
    <a href="#">Sub item</a>
    </li>
    <li>
    <a href="#">Sub item</a>
    </li>
    </ul>
    </li>
    <li className="uk-nav-header">Header</li>
    <li>
    <a href="#">
    <uk-icon className="mr-2" icon="table" />
    Item
    </a>
    </li>
    <li>
    <a href="#">
    <uk-icon className="mr-2" icon="bell" />
    Item
    </a>
    </li>
    <li className="uk-nav-divider" />
    <li>
    <a href="#">
    <uk-icon className="mr-2" icon="trash" />
    Item
    </a>
    </li>
    </ul>
    </div>

Primary modifier

Add the .uk-nav-primary class to give the nav a more distinct styling, for example when placing it inside a modal.

<ul class="uk-nav uk-nav-primary">
...
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav-primary" data-uk-nav>
    <li class="uk-active"><a href="#">Active</a></li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    <li class="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon></span></a>
    <ul class="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav-primary" data-uk-nav>
    <li className="uk-active"><a href="#">Active</a></li>
    <li className="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon /></a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    <li className="uk-parent">
    <a href="#">Parent <span data-uk-nav-parent-icon /></a>
    <ul className="uk-nav-sub">
    <li><a href="#">Sub item</a></li>
    <li><a href="#">Sub item</a></li>
    </ul>
    </li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>

Secondary modifier

Add the .uk-nav-secondary class to have an extra style if the nav has subtitles.

<ul class="uk-nav uk-nav-secondary">
...
</ul>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div class="max-w-sm">
    <ul class="uk-nav uk-nav-secondary">
    <li>
    <a class="">
    <div class="flex">
    <uk-icon width="20" height="20" icon="bell"></uk-icon>
    <div class="ml-2">
    <p>Everything</p>
    <p class="text-sm text-muted-foreground">
    Email digest, mentions & all activity.
    </p>
    </div>
    </div>
    </a>
    </li>
    <li class="uk-active">
    <a class="">
    <div class="flex">
    <uk-icon width="20" height="20" icon="user"></uk-icon>
    <div class="ml-2">
    <p>Available</p>
    <p class="text-sm text-muted-foreground">
    Only mentions and comments.
    </p>
    </div>
    </div>
    </a>
    </li>
    <li>
    <a class="">
    <div class="flex">
    <uk-icon width="20" height="20" icon="eye-off"></uk-icon>
    <div class="ml-2">
    <p>Ignoring</p>
    <p class="text-sm text-muted-foreground">
    Turn off all notifications.
    </p>
    </div>
    </div>
    </a>
    </li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div className="max-w-sm">
    <ul className="uk-nav uk-nav-secondary">
    <li>
    <a>
    <div className="flex">
    <uk-icon width={20} height={20} icon="bell" />
    <div className="ml-2">
    <p>Everything</p>
    <p className="text-sm text-muted-foreground">
    Email digest, mentions &amp; all activity.
    </p>
    </div>
    </div>
    </a>
    </li>
    <li className="uk-active">
    <a>
    <div className="flex">
    <uk-icon width={20} height={20} icon="user" />
    <div className="ml-2">
    <p>Available</p>
    <p className="text-sm text-muted-foreground">
    Only mentions and comments.
    </p>
    </div>
    </div>
    </a>
    </li>
    <li>
    <a>
    <div className="flex">
    <uk-icon width={20} height={20} icon="eye-off" />
    <div className="ml-2">
    <p>Ignoring</p>
    <p className="text-sm text-muted-foreground">
    Turn off all notifications.
    </p>
    </div>
    </div>
    </a>
    </li>
    </ul>
    </div>

Add the .uk-dropdown-nav class to place a nav inside a default dropdown from the Dropdown component.

<div data-uk-dropdown>
<ul class="uk-dropdown-nav uk-nav">
...
</ul>
</div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <button class="uk-btn uk-btn-default" type="button">Hover</button>
    <div data-uk-dropdown>
    <ul class="uk-dropdown-nav uk-nav">
    <li class="uk-active"><a href="#">Active</a></li>
    <li><a href="#">Item</a></li>
    <li class="uk-nav-header">Header</li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    <li class="uk-nav-divider"></li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div>
    <button className="uk-btn uk-btn-default" type="button">Hover</button>
    <div data-uk-dropdown>
    <ul className="uk-dropdown-nav uk-nav">
    <li className="uk-active"><a href="#">Active</a></li>
    <li><a href="#">Item</a></li>
    <li className="uk-nav-header">Header</li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    <li className="uk-nav-divider" />
    <li><a href="#">Item</a></li>
    </ul>
    </div>
    </div>

A nav can be used inside an offcanvas from the Offcanvas component. No modifier class needs to be added.

  • Something's not working? Feel free to report an issue or edit this snippet .

    <a href="#offcanvas-slide" class="uk-btn uk-btn-default" data-uk-toggle>
    Open
    </a>
    <div class="uk-offcanvas" id="offcanvas-slide" data-uk-offcanvas>
    <div class="uk-offcanvas-bar">
    <ul class="uk-nav uk-nav-primary">
    <li class="uk-active"><a href="#">Active</a></li>
    <li><a href="#">Item</a></li>
    <li class="uk-nav-header">Header</li>
    <li><a href="#">Item</a></li>
    <li><a href="#">Item</a></li>
    <li class="uk-nav-divider"></li>
    <li><a href="#">Item</a></li>
    </ul>
    </div>
    </div>
  • Something's not working? Feel free to report an issue or edit this snippet .

    <div>
    <button
    className="uk-btn uk-btn-default"
    type="button"
    data-uk-toggle="target: #offcanvas-slide"
    >
    Open
    </button>
    <div className="uk-offcanvas" id="offcanvas-slide" data-uk-offcanvas>
    <div className="uk-offcanvas-bar">
    <ul className="uk-nav uk-nav-primary">
    <li className="uk-active">
    <a href="#">Active</a>
    </li>
    <li>
    <a href="#">Item</a>
    </li>
    <li className="uk-nav-header">Header</li>
    <li>
    <a href="#">Item</a>
    </li>
    <li>
    <a href="#">Item</a>
    </li>
    <li className="uk-nav-divider" />
    <li>
    <a href="#">Item</a>
    </li>
    </ul>
    </div>
    </div>
    </div>

Component options

Any of these options can be applied to the component attribute. Separate multiple options with a semicolon. Learn more

OptionValueDefaultDescription
targetsCSS selector> .uk-parentThe element(s) to toggle.
toggle CSS selector> aThe toggle element(s).
contentCSS selector> ulThe content element(s).
collapsibleBooleantrueAllow all items to be closed.
multipleBooleanfalseAllow multiple open items.
transitionStringeaseThe transition to use.
animationBoolean, StringtrueSpace-separated names of animations. Comma-separated for animation out.
durationNumber200The animation duration in milliseconds.

JavaScript

Learn more about JavaScript components.

Initialization

UIkit.nav(element, options);

Methods

The following methods are available for the component:

Toggle

UIkit.nav(element).toggle(index, animate);

Toggles the content pane.

NameTypeDefaultDescription
indexString, Number, Node0Nav pane to toggle. 0 based index.
animateBooleantrueSuppress opening animation by passing false.
Customize

Customize your Franken UI experience.