Added in v5.3
View on GitHubLocal navigation
Use local navigation to add a navigation that will nicely wrap on small viewports.
On this page
Example
Resize your browser to see the behavior of this component.
Since the component is supposed to be rendered on a full-size page, there are some slight rendering issues in the mobile viewport in the context of this documentation page.
<nav class="local-nav" aria-label="Basic local navigation">
<button class="local-nav-button collapsed d-lg-none" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLocalNav" aria-expanded="false" aria-controls="collapseLocalNav">
<span class="container-xxl">Shop</span>
</button>
<div id="collapseLocalNav" class="container-xxl local-nav-collapse d-lg-block collapse">
<div class="navbar navbar-expand-lg">
<ul class="navbar-nav w-100">
<li class="nav-item"><a class="nav-link" href="#"><span class="container-xxl">Discover</span></a></li>
<li class="nav-item"><a class="nav-link active" href="#" aria-current="page"><span class="container-xxl">Shop</span></a></li>
<li class="nav-item"><a class="nav-link" href="#"><span class="container-xxl">Services</span></a></li>
<li class="nav-item"><a class="nav-link disabled" aria-disabled="true"><span class="container-xxl">Contact</span></a></li>
</ul>
</div>
</div>
</nav>
Dark variant
Add .local-nav-dark
to the .local-nav
for a dark variant. Don’t forget to add .navbar-dark
to the navbar.
<nav class="local-nav local-nav-dark" aria-label="Local navigation on dark">
<button class="local-nav-button collapsed d-lg-none" type="button" data-bs-toggle="collapse" data-bs-target="#collapseLocalNavDark" aria-expanded="false" aria-controls="collapseLocalNavDark">
<span class="container-xxl">Shop</span>
</button>
<div id="collapseLocalNavDark" class="container-xxl local-nav-collapse d-lg-block collapse">
<div class="navbar navbar-dark navbar-expand-lg">
<ul class="navbar-nav w-100">
<li class="nav-item"><a class="nav-link" href="#"><span class="container-xxl">Discover</span></a></li>
<li class="nav-item"><a class="nav-link active" href="#" aria-current="page"><span class="container-xxl">Shop</span></a></li>
<li class="nav-item"><a class="nav-link" href="#"><span class="container-xxl">Services</span></a></li>
<li class="nav-item"><a class="nav-link disabled" aria-disabled="true"><span class="container-xxl">Contact</span></a></li>
</ul>
</div>
</div>
</nav>
CSS
Variables
Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
--#{$prefix}local-nav-padding-y: #{$local-nav-padding-y};
--#{$prefix}local-nav-color: #{$local-nav-color};
--#{$prefix}local-nav-bg: #{$local-nav-bg};
--#{$prefix}local-nav-hover-color: #{$local-nav-hover-color};
--#{$prefix}local-nav-hover-bg: #{$local-nav-hover-bg};
--#{$prefix}local-nav-active-color: #{$local-nav-active-color};
--#{$prefix}local-nav-active-bg: #{$local-nav-active-bg};
--#{$prefix}local-nav-active-marker-width: #{$local-nav-active-marker-width};
--#{$prefix}local-nav-border-color: #{$local-nav-border-color};
--#{$prefix}local-nav-border-width: #{$local-nav-border-width};
Customization through CSS variables can be seen on the .local-nav-dark
class where we override specific values without adding duplicate CSS selectors.
--#{$prefix}local-nav-color: #{$local-nav-dark-color};
--#{$prefix}local-nav-bg: #{$local-nav-dark-bg};
--#{$prefix}local-nav-hover-color: #{$local-nav-dark-hover-color};
--#{$prefix}local-nav-hover-bg: #{$local-nav-dark-hover-bg};
--#{$prefix}local-nav-active-color: #{$local-nav-dark-active-color};
--#{$prefix}local-nav-active-bg: #{$local-nav-dark-active-bg};
--#{$prefix}local-nav-border-color: #{$local-nav-dark-border-color};
Sass variables
Variables for all local navigations:
$local-nav-padding-y: $navbar-nav-link-padding-y;
$local-nav-color: var(--#{$prefix}body-color);
$local-nav-bg: var(--#{$prefix}body-bg);
$local-nav-hover-color: $local-nav-color;
$local-nav-hover-bg: $gray-300;
$local-nav-active-color: $accessible-orange;
$local-nav-active-bg: $gray-400;
$local-nav-active-marker-width: $spacer * .2;
$local-nav-border-color: $gray-500;
$local-nav-border-width: calc(var(--#{$prefix}border-width) * .5); // stylelint-disable-line function-disallowed-list
Variables for the dark local navigation:
$local-nav-dark-color: $white;
$local-nav-dark-bg: $black;
$local-nav-dark-hover-color: $brand-orange;
$local-nav-dark-hover-bg: $gray-900;
$local-nav-dark-active-color: $local-nav-dark-hover-color;
$local-nav-dark-active-bg: $gray-700;
$local-nav-dark-border-color: $gray-700;