Navigation
Overview
Use the .bsk-nav
class to create secondary navigation elements, for splitting content into logical sections or linking
to other parts of an application or website.
Each navigation item must use an <a>
element.
For assistive technologies, all navigation elements should use a role=navigation
attribute on an element which wraps
around the element using the .bsk-nav
class.
Interactive tabs and pills require the nav JavaScript plugin, which is enabled on this site.
Variants
Pill navigation
Add the .bsk-nav-pills
class to create a minimalist navigation element.
<nav role="navigation">
<ul class="bsk-nav bsk-nav-pills">
<li role="presentation" class="bsk-active"><a href="#">Pill 1</a></li>
<li role="presentation"><a href="#">Pill 2</a></li>
<li role="presentation"><a href="#">Pill 3</a></li>
</ul>
</nav>
Tab navigation
Add the .bsk-nav-tabs
class to create a more structured navigation element.
<nav role="navigation">
<ul class="bsk-nav bsk-nav-tabs">
<li role="presentation" class="bsk-active"><a href="#">Tab 1</a></li>
<li role="presentation"><a href="#">Tab 2</a></li>
<li role="presentation"><a href="#">Tab 3</a></li>
</ul>
</nav>
Components
Drop-down menus
Drop-down menus can be used as navigation items as-is.
<!-- Pills -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-pills">
<li role="presentation" class="bsk-active"><a href="#">Pill 1</a></li>
<li role="presentation"><a href="#">Pill 2</a></li>
<li role="presentation" class="bsk-dropdown">
<a href="#" class="bsk-dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
Dropdown <span class="bsk-caret"></span></a>
<ul class="bsk-dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another item</a></li>
</ul>
</li>
</ul>
</nav>
<!-- Tabs -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-tabs">
<li role="presentation" class="bsk-active"><a href="#">Tab 1</a></li>
<li role="presentation"><a href="#">Tab 2</a></li>
<li role="presentation" class="bsk-dropdown">
<a href="#" class="bsk-dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
Dropdown <span class="bsk-caret"></span></a>
<ul class="bsk-dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another item</a></li>
</ul>
</li>
</ul>
</nav>
Navigation content
Place the contents of each pill or tab in an element with the .bsk-tab-pane
class, with a unique id
attribute that
corresponds to the target of a pill or tab, which have a data-toggle="tab"
attribute.
Wrap all the content sections in an element with the .bsk-tab-content
class. Wrap this, and the pills or tabs, in
another element with the .bsk-nav-wrapper
and either the .bsk-nav-wrapper-pills
or .bsk-nav-wrapper-tabs
class
respectively.
Some extra attributes, shown in these examples, are needed to work with the nav JavaScript plugin.
<!-- Pills -->
<nav class="bsk-nav-wrapper bsk-nav-wrapper-pills" role="navigation">
<ul class="bsk-nav bsk-nav-pills" role="tablist">
<li role="presentation" class="bsk-active"><a href="#nav-content-example-1A" role="tab" data-toggle="tab">Pill 1</a></li>
<li role="presentation"><a href="#nav-content-example-1B" role="tab" data-toggle="tab">Pill 2</a></li>
</ul>
<div class="bsk-tab-content">
<div class="bsk-tab-pane bsk-active" role="tabpanel" id="nav-content-example-1A">
Content for Navigation example 1 (A)
</div>
<div class="bsk-tab-pane" role="tabpanel" id="nav-content-example-1B">
Content for Navigation example 1 (B)
</div>
</div>
</nav>
<!-- Tabs -->
<nav class="bsk-nav-wrapper bsk-nav-wrapper-tabs" role="navigation">
<ul class="bsk-nav bsk-nav-tabs" role="tablist">
<li role="presentation" class="bsk-active"><a href="#nav-content-example-2A" role="tab" data-toggle="tab">Tab 1</a></li>
<li role="presentation"><a href="#nav-content-example-2B" role="tab" data-toggle="tab">Tab 2</a></li>
</ul>
<div class="bsk-tab-content">
<div class="bsk-tab-pane bsk-active" role="tabpanel" id="nav-content-example-2A">
Content for Navigation example 2 (A)
</div>
<div class="bsk-tab-pane" role="tabpanel" id="nav-content-example-2B">
Content for Navigation example 2 (B)
</div>
</div>
</nav>
States
Active item
Add the .bsk-active
class to the navigation item currently active, to highlight where the end user is in the site.
Make sure to include a <span class="bsk-visually-hidden">(current)</span>
element as well.
This provides a non-visual indication of the currently active item, suitable for assistive technologies.
<!-- Pills -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-pills">
<li role="presentation" class="bsk-active"><a href="#">Pill 1</a></li>
<li role="presentation"><a href="#">Pill 2</a></li>
</ul>
</nav>
<!-- Tabs -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-tabs">
<li role="presentation" class="bsk-active"><a href="#">Tab 1</a></li>
<li role="presentation"><a href="#">Tab 2</a></li>
</ul>
</nav>
This can also be used within drop-down menus if needed.
<!-- Pills -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-pills">
<li role="presentation"><a href="#">Pill 1</a></li>
<li role="presentation"><a href="#">Pill 2</a></li>
<li role="presentation" class="bsk-dropdown bsk-active">
<a href="#" class="bsk-dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
Dropdown <span class="bsk-caret"></span></a>
<ul class="bsk-dropdown-menu">
<li class="bsk-active"><a href="#">Action</a></li>
<li><a href="#">Another item</a></li>
</ul>
</li>
</ul>
</nav>
<!-- Tabs -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-tabs">
<li role="presentation"><a href="#">Tab 1</a></li>
<li role="presentation"><a href="#">Tab 2</a></li>
<li role="presentation" class="bsk-dropdown bsk-active">
<a href="#" class="bsk-dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
Dropdown <span class="bsk-caret"></span></a>
<ul class="bsk-dropdown-menu">
<li class="bsk-active"><a href="#">Action</a></li>
<li><a href="#">Another item</a></li>
</ul>
</li>
</ul>
</nav>
Disabled item
Add the .bsk-disabled
class to indicate unavailable navigation items.
<!-- Pills -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-pills">
<li role="presentation"><a href="#">Pill 1</a></li>
<li role="presentation" class="bsk-disabled"><a href="#">Pill 2</a></li>
</ul>
</nav>
<!-- Tabs -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-tabs">
<li role="presentation"><a href="#">Tab 1</a></li>
<li role="presentation" class="bsk-disabled"><a href="#">Tab 2</a></li>
</ul>
</nav>
Layouts
Stacked pills
Add the .bsk-nav-stacked
class to arrange pills vertically.
Stacked tabs are not supported.
<nav role="navigation">
<ul class="bsk-nav bsk-nav-stacked bsk-nav-pills">
<li role="presentation"><a href="#">Pill 1</a></li>
<li class="bsk-active" role="presentation"><a href="#">Pill 2</a></li>
</ul>
</nav>
Justified pills/tabs
Add the .bsk-nav-justified
class to display equally navigation items filling the width of the navigation element.
On smaller screens, the navigation items are stacked.
<!-- Pills -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-justified bsk-nav-pills">
<li role="presentation"><a href="#">Pill 1</a></li>
<li class="bsk-active" role="presentation"><a href="#">Pill 2</a></li>
</ul>
</nav>
<!-- Tabs -->
<nav role="navigation">
<ul class="bsk-nav bsk-nav-justified bsk-nav-tabs">
<li role="presentation"><a href="#">Tab 1</a></li>
<li class="bsk-active" role="presentation"><a href="#">Tab 2</a></li>
</ul>
</nav>