Headers
Documentation and examples for Front's powerful, responsive navigation header, the navbar. Includes support for branding, navigation, and more, including support for our collapse plugin.
How it works
Here's what you need to know before getting started with the navbar:
- Navbars require a wrapping
.navbar
with.navbar-expand{-sm|-md|-lg|-xl}
for responsive collapsing and color scheme classes. - Headers require a wrapping
.u-header
with behavior behaviors and their classes for responsiveness. - Navbars and their contents are fluid by default. Use optional containers to limit their horizontal width.
- Use our spacing and flex utility classes for controlling spacing and alignment within navbars.
- Navbars are responsive by default, but you can easily modify them to change that. Responsive behavior depends on our Collapse JavaScript plugin.
- Navbars are hidden by default when printing. Force them to be printed by adding
.d-print
to the.navbar
. See the display utility class. - Ensure accessibility by using a
<nav>
element or, if using a more generic element such as a<div>
, add arole="navigation"
to every navbar to explicitly identify it as a landmark region for users of assistive technologies.
How to use?
Copy-paste the following <script>
near the end of your pages under JS Front to enable them.
<script src="../../assets/js/components/hs.header.js"></script>
Copy-paste the init function under JS Plugins Init., before the closing </body>
tag, to enable it.
<script>
$(document).on('ready', function () {
// initialization of header
$.HSCore.components.HSHeader.init($('#header'));
});
</script>
Using unfold.js with header (eg. Topbar dropdowns, Search and Sidebars)
If you are planning to add things like, search, language dropdown, sidebar or anything similar, add the below given scripts.
Copy-paste the stylesheet <link>
into your <head>
to load the CSS.
<link rel="stylesheet" href="../../assets/vendor/animate.css/animate.min.css">
Copy-paste the following <script>
near the end of your pages under JS Front to enable them.
<script src="../../assets/js/components/hs.unfold.js"></script>
Copy-paste the init function under JS Plugins Init., before the closing </body>
tag, to enable it.
<script>
$(document).on('ready', function () {
// initialization of unfold component
$.HSCore.components.HSUnfold.init($('[data-unfold-target]'));
});
</script>
Supported content
Navbars come with built-in support for a handful of sub-components. Choose from the following as needed:
.navbar-brand
and.u-header__navbar-brand
for your company, product, or project name..navbar-nav
and.u-header__navbar-nav
for a full-height and lightweight navigation (including support for dropdowns)..navbar-toggler
and.u-hamburger
for use with our collapse plugin and other navigation toggling behaviors..form-inline
for any form controls and actions..navbar-text
for adding vertically centered strings of text..collapse.navbar-collapse
for grouping and hiding navbar contents by a parent breakpoint.
Here's an example of all the sub-components included in a responsive light-themed navbar that automatically collapses at the md
(medium) breakpoint.
<header id="headerBasic" class="u-header">
<div class="u-header__section">
<div id="basicLogoAndNav" class="container">
<!-- Nav -->
<nav class="js-mega-menu navbar navbar-expand-md u-header__navbar u-header__navbar--no-space">
<!-- Logo -->
<a class="navbar-brand u-header__navbar-brand u-header__navbar-brand-center" href="index.html" aria-label="Front">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="46px" height="46px" viewBox="0 0 46 46" xml:space="preserve" style="margin-bottom: 0;">
<path fill="#3F7DE0" opacity=".65" d="M23,41L23,41c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18h11.3C38,5,41,8,41,11.7V23C41,32.9,32.9,41,23,41z"/>
<path class="fill-info" opacity=".5" d="M28,35.9L28,35.9c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18l11.3,0C43,0,46,3,46,6.6V18C46,27.9,38,35.9,28,35.9z"/>
<path class="fill-primary" opacity=".7" d="M18,46L18,46C8,46,0,38,0,28v0c0-9.9,8-18,18-18h11.3c3.7,0,6.6,3,6.6,6.6V28C35.9,38,27.9,46,18,46z"/>
<path class="fill-white" d="M17.4,34V18.3h10.2v2.9h-6.4v3.4h4.8v2.9h-4.8V34H17.4z"/>
</svg>
<span class="u-header__navbar-brand-text">Front</span>
</a>
<!-- End Logo -->
<!-- Responsive Toggle Button -->
<button type="button" class="navbar-toggler btn u-hamburger"
aria-label="Toggle navigation"
aria-expanded="false"
aria-controls="navBarBasic"
data-toggle="collapse"
data-target="#navBarBasic">
<span id="hamburgerTriggerBasic" class="u-hamburger__box">
<span class="u-hamburger__inner"></span>
</span>
</button>
<!-- End Responsive Toggle Button -->
<!-- Navigation -->
<div id="navBarBasic" class="collapse navbar-collapse u-header__navbar-collapse">
<ul class="navbar-nav u-header__navbar-nav">
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Another link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">One more link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item active">
<a class="nav-link u-header__nav-link" href="#">Active link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Disabled</a>
</li>
<!-- End Link -->
<!-- Button -->
<li class="nav-item u-header__nav-last-item">
<a class="btn btn-sm btn-primary transition-3d-hover" href="https://themes.getbootstrap.com/product/front-multipurpose-responsive-template/" target="_blank">
Buy Now
</a>
</li>
<!-- End Button -->
</ul>
</div>
<!-- End Navigation -->
</nav>
<!-- End Nav -->
</div>
</div>
</header>
With dropdown
.u-header__sub-menu--spacer
class should be added when using a simple dropdown without sub-level to proper alignment on mobile menu.
<header id="headerWithDropdown" class="u-header">
<div class="u-header__section">
<div id="logoAndNavWithDropdown" class="container">
<!-- Nav -->
<nav class="js-mega-menu navbar navbar-expand-md u-header__navbar u-header__navbar--no-space">
<!-- Logo -->
<a class="navbar-brand u-header__navbar-brand u-header__navbar-brand-center" href="index.html" aria-label="Front">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="46px" height="46px" viewBox="0 0 46 46" xml:space="preserve" style="margin-bottom: 0;">
<path fill="#3F7DE0" opacity=".65" d="M23,41L23,41c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18h11.3C38,5,41,8,41,11.7V23C41,32.9,32.9,41,23,41z"/>
<path class="fill-info" opacity=".5" d="M28,35.9L28,35.9c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18l11.3,0C43,0,46,3,46,6.6V18C46,27.9,38,35.9,28,35.9z"/>
<path class="fill-primary" opacity=".7" d="M18,46L18,46C8,46,0,38,0,28v0c0-9.9,8-18,18-18h11.3c3.7,0,6.6,3,6.6,6.6V28C35.9,38,27.9,46,18,46z"/>
<path class="fill-white" d="M17.4,34V18.3h10.2v2.9h-6.4v3.4h4.8v2.9h-4.8V34H17.4z"/>
</svg>
<span class="u-header__navbar-brand-text">Front</span>
</a>
<!-- End Logo -->
<!-- Responsive Toggle Button -->
<button type="button" class="navbar-toggler btn u-hamburger"
aria-label="Toggle navigation"
aria-expanded="false"
aria-controls="navBarWithDropdown"
data-toggle="collapse"
data-target="#navBarWithDropdown">
<span id="hamburgerTriggerWithDropdown" class="u-hamburger__box">
<span class="u-hamburger__inner"></span>
</span>
</button>
<!-- End Responsive Toggle Button -->
<!-- Navigation -->
<div id="navBarWithDropdown" class="collapse navbar-collapse u-header__navbar-collapse">
<ul class="navbar-nav u-header__navbar-nav">
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Another link</a>
</li>
<!-- End Link -->
<!-- Dropdown -->
<li class="nav-item hs-has-sub-menu u-header__nav-item"
data-event="hover"
data-animation-in="slideInUp"
data-animation-out="fadeOut">
<a id="dropdownMegaMenuWithDropdown" class="nav-link u-header__nav-link u-header__nav-link-toggle" href="javascript:;" aria-haspopup="true" aria-expanded="false" aria-labelledby="dropdownSubMenuWithDropdown">Dropdown</a>
<!-- Dropdown - Submenu -->
<ul id="dropdownSubMenuWithDropdown" class="hs-sub-menu u-header__sub-menu u-header__sub-menu--spacer" aria-labelledby="dropdownMegaMenuWithDropdown" style="min-width: 230px;">
<li><a class="nav-link u-header__sub-menu-nav-link" href="#">Action</a></li>
<li><a class="nav-link u-header__sub-menu-nav-link" href="#">Another action</a></li>
<li><a class="nav-link u-header__sub-menu-nav-link" href="#">Something else here</a></li>
<li class="dropdown-divider"></li>
<!-- Submenu -->
<li class="hs-has-sub-menu">
<a id="navLinkDropdownSubmenuWithDropdown" class="nav-link u-header__sub-menu-nav-link u-header__sub-menu-nav-link-toggle" href="javascript:;" aria-haspopup="true" aria-expanded="false" aria-controls="navSubmenuDropdownSubmenuWithDropdown">Submenu</a>
<ul id="navSubmenuDropdownSubmenuWithDropdown" class="hs-sub-menu u-header__sub-menu" aria-labelledby="navLinkDropdownSubmenuWithDropdown" style="min-width: 200px;">
<li><a class="nav-link u-header__sub-menu-nav-link" href="#">Action</a></li>
<li><a class="nav-link u-header__sub-menu-nav-link" href="#">Another action</a></li>
<li class="dropdown-divider"></li>
<li><a class="nav-link u-header__sub-menu-nav-link" href="#">Something else here</a></li>
</ul>
</li>
<!-- End Submenu -->
</ul>
<!-- End Dropdown - Submenu -->
</li>
<!-- End Dropdown -->
<!-- Link -->
<li class="nav-item u-header__nav-item active">
<a class="nav-link u-header__nav-link" href="#">Active link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Disabled</a>
</li>
<!-- End Link -->
<!-- Button -->
<li class="nav-item u-header__nav-last-item">
<a class="btn btn-sm btn-primary transition-3d-hover" href="https://themes.getbootstrap.com/product/front-multipurpose-responsive-template/" target="_blank">
Buy Now
</a>
</li>
<!-- End Button -->
</ul>
</div>
<!-- End Navigation -->
</nav>
<!-- End Nav -->
</div>
</div>
</header>
Logo on top
Add .u-header--center-aligned-*
class next to the parent .u-header
class and wrap the brand and togglers with .u-header--center-aligned__inner
class.
<header id="headerLogoOnTop" class="u-header u-header-center-aligned-nav u-header--center-aligned-md">
<div class="u-header__section">
<div id="logoOnTopLogoAndNav" class="container">
<div class="u-header--center-aligned__inner">
<!-- Logo -->
<a class="navbar-brand u-header__navbar-brand u-header__navbar-brand-center" href="index.html" aria-label="Front">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="46px" height="46px" viewBox="0 0 46 46" xml:space="preserve" style="margin-bottom: 0;">
<path fill="#3F7DE0" opacity=".65" d="M23,41L23,41c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18h11.3C38,5,41,8,41,11.7V23C41,32.9,32.9,41,23,41z"/>
<path class="fill-info" opacity=".5" d="M28,35.9L28,35.9c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18l11.3,0C43,0,46,3,46,6.6V18C46,27.9,38,35.9,28,35.9z"/>
<path class="fill-primary" opacity=".7" d="M18,46L18,46C8,46,0,38,0,28v0c0-9.9,8-18,18-18h11.3c3.7,0,6.6,3,6.6,6.6V28C35.9,38,27.9,46,18,46z"/>
<path class="fill-white" d="M17.4,34V18.3h10.2v2.9h-6.4v3.4h4.8v2.9h-4.8V34H17.4z"/>
</svg>
<span class="u-header__navbar-brand-text">Front</span>
</a>
<!-- End Logo -->
<!-- Responsive Toggle Button -->
<button type="button" class="navbar-toggler btn u-hamburger"
aria-label="Toggle navigation"
aria-expanded="false"
aria-controls="navBarLogoOnTop"
data-toggle="collapse"
data-target="#navBarLogoOnTop">
<span id="hamburgerTriggerLogoOnTop" class="u-hamburger__box">
<span class="u-hamburger__inner"></span>
</span>
</button>
<!-- End Responsive Toggle Button -->
</div>
<!-- Nav -->
<nav class="js-mega-menu navbar navbar-expand-md u-header__navbar u-header__navbar--no-space">
<!-- Navigation -->
<div id="navBarLogoOnTop" class="collapse navbar-collapse u-header__navbar-collapse">
<ul class="navbar-nav u-header__navbar-nav">
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">Another link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link" href="#">One more link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item active">
<a class="nav-link u-header__nav-link" href="#">Active link</a>
</li>
<!-- End Link -->
<!-- Link -->
<li class="nav-item u-header__nav-item">
<a class="nav-link u-header__nav-link disabled" href="#">Disabled</a>
</li>
<!-- End Link -->
<!-- Button -->
<li class="nav-item u-header__nav-last-item">
<a class="btn btn-sm btn-primary transition-3d-hover" href="https://themes.getbootstrap.com/product/front-multipurpose-responsive-template/" target="_blank">
Buy Now
</a>
</li>
<!-- End Button -->
</ul>
</div>
<!-- End Navigation -->
</nav>
<!-- End Nav -->
</div>
</div>
</header>
Brand
The .navbar-brand
can be applied to most elements, but an anchor works best as some elements might require utility classes or custom styles. For example, this example demonstrates a navbar-brand with SVG logo:
<header id="headerBrand" class="u-header">
<div class="u-header__section">
<div id="brandLogoAndNav" class="container">
<!-- Nav -->
<nav class="navbar navbar-expand-md u-header__navbar">
<!-- Logo -->
<a class="navbar-brand u-header__navbar-brand u-header__navbar-brand-center" href="index.html" aria-label="Front">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="46px" height="46px" viewBox="0 0 46 46" xml:space="preserve" style="margin-bottom: 0;">
<path fill="#3F7DE0" opacity=".65" d="M23,41L23,41c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18h11.3C38,5,41,8,41,11.7V23C41,32.9,32.9,41,23,41z"/>
<path class="fill-info" opacity=".5" d="M28,35.9L28,35.9c-9.9,0-18-8-18-18v0c0-9.9,8-18,18-18l11.3,0C43,0,46,3,46,6.6V18C46,27.9,38,35.9,28,35.9z"/>
<path class="fill-primary" opacity=".7" d="M18,46L18,46C8,46,0,38,0,28v0c0-9.9,8-18,18-18h11.3c3.7,0,6.6,3,6.6,6.6V28C35.9,38,27.9,46,18,46z"/>
<path class="fill-white" d="M17.4,34V18.3h10.2v2.9h-6.4v3.4h4.8v2.9h-4.8V34H17.4z"/>
</svg>
<span class="u-header__navbar-brand-text">Front</span>
</a>
<!-- End Logo -->
</nav>
<!-- End Nav -->
</div>
</div>
</header>
Here is another example with PNG format:
<header id="headerBrand" class="u-header">
<div class="u-header__section">
<div id="brandLogoAndNav" class="container">
<!-- Nav -->
<nav class="navbar navbar-expand-md u-header__navbar">
<!-- Logo -->
<a class="navbar-brand u-header__navbar-brand u-header__navbar-brand-center" href="index.html" aria-label="Front">
<img src="../../assets/img/logos/front-logo.png" alt="Image Description">
</a>
<!-- End Logo -->
</nav>
<!-- End Nav -->
</div>
</div>
</header>
Topbar
Links are moved to dropdown on mobile devices (-sm
breakpoint).
<!-- Search -->
<div id="searchPushTop" class="u-search-push-top">
<div class="container position-relative">
<div class="u-search-push-top__content">
<!-- Close Button -->
<button type="button" class="close u-search-push-top__close-btn"
aria-haspopup="true"
aria-expanded="false"
aria-controls="searchPushTop"
data-unfold-type="jquery-slide"
data-unfold-target="#searchPushTop">
<span aria-hidden="true">×</span>
</button>
<!-- End Close Button -->
<!-- Input -->
<form class="js-focus-state input-group">
<input type="search" class="form-control" placeholder="Search Front" aria-label="Search Front">
<div class="input-group-append">
<button type="button" class="btn btn-primary">Search</button>
</div>
</form>
<!-- End Input -->
<!-- Content -->
<div class="row d-none d-md-flex mt-7">
<div class="col-sm-6">
<strong class="d-block mb-2">Quick Links</strong>
<div class="row">
<!-- List Group -->
<div class="col-6">
<div class="list-group list-group-transparent list-group-flush list-group-borderless">
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Search Results List
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Search Results Grid
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
About
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Services
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Invoice
</a>
</div>
</div>
<!-- End List Group -->
<!-- List Group -->
<div class="col-6">
<div class="list-group list-group-transparent list-group-flush list-group-borderless">
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Profile
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
User Contacts
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Reviews
</a>
<a class="list-group-item list-group-item-action" href="#">
<span class="fas fa-angle-right list-group-icon"></span>
Settings
</a>
</div>
</div>
<!-- End List Group -->
</div>
</div>
<div class="col-sm-6">
<!-- Banner -->
<div class="rounded u-search-push-top__banner">
<div class="d-flex align-items-center">
<div class="u-search-push-top__banner-container">
<img class="img-fluid u-search-push-top__banner-img" src="../../assets/img/mockups/img3.png" alt="Image Description">
<img class="img-fluid u-search-push-top__banner-img" src="../../assets/img/mockups/img2.png" alt="Image Description">
</div>
<div>
<div class="mb-4">
<strong class="d-block mb-2">Featured Item</strong>
<p>Create astonishing web sites and pages.</p>
</div>
<a class="btn btn-xs btn-soft-success transition-3d-hover" href="index.html">Apply Now <span class="fas fa-angle-right ml-2"></span></a>
</div>
</div>
</div>
<!-- End Banner -->
</div>
</div>
<!-- End Content -->
</div>
</div>
</div>
<!-- End Search -->
<!-- Topbar -->
<div class="container u-header__hide-content pt-2">
<div class="d-flex align-items-center">
<!-- Language -->
<div class="position-relative">
<a id="languageDropdownInvoker" class="dropdown-nav-link dropdown-toggle d-flex align-items-center" href="javascript:;" role="button"
aria-controls="languageDropdown"
aria-haspopup="true"
aria-expanded="false"
data-unfold-event="hover"
data-unfold-target="#languageDropdown"
data-unfold-type="css-animation"
data-unfold-duration="300"
data-unfold-delay="300"
data-unfold-hide-on-scroll="true"
data-unfold-animation-in="slideInUp"
data-unfold-animation-out="fadeOut">
<img class="dropdown-item-icon" src="../../assets/vendor/flag-icon-css/flags/4x3/us.svg" alt="SVG">
<span class="d-inline-block d-sm-none">US</span>
<span class="d-none d-sm-inline-block">United States</span>
</a>
<div id="languageDropdown" class="dropdown-menu dropdown-unfold" aria-labelledby="languageDropdownInvoker">
<a class="dropdown-item active" href="#">English</a>
<a class="dropdown-item" href="#">Deutsch</a>
<a class="dropdown-item" href="#">Español‎</a>
</div>
</div>
<!-- End Language -->
<div class="ml-auto">
<!-- Jump To -->
<div class="d-inline-block d-sm-none position-relative mr-2">
<a id="jumpToDropdownInvoker" class="dropdown-nav-link dropdown-toggle d-flex align-items-center" href="javascript:;" role="button"
aria-controls="jumpToDropdown"
aria-haspopup="true"
aria-expanded="false"
data-unfold-event="hover"
data-unfold-target="#jumpToDropdown"
data-unfold-type="css-animation"
data-unfold-duration="300"
data-unfold-delay="300"
data-unfold-hide-on-scroll="true"
data-unfold-animation-in="slideInUp"
data-unfold-animation-out="fadeOut">
Jump to
</a>
<div id="jumpToDropdown" class="dropdown-menu dropdown-unfold" aria-labelledby="jumpToDropdownInvoker">
<a class="dropdown-item" href="../../html/pages/help.html">Help</a>
<a class="dropdown-item" href="../../html/pages/contacts-agency.html">Contacts</a>
</div>
</div>
<!-- End Jump To -->
<!-- Links -->
<div class="d-none d-sm-inline-block ml-sm-auto">
<ul class="list-inline mb-0">
<li class="list-inline-item mr-0">
<a class="u-header__navbar-link" href="../pages/help.html">Help</a>
</li>
<li class="list-inline-item mr-0">
<a class="u-header__navbar-link" href="../pages/contacts-agency.html">Contacts</a>
</li>
</ul>
</div>
<!-- End Links -->
</div>
<ul class="list-inline ml-2 mb-0">
<!-- Search -->
<li class="list-inline-item">
<a class="btn btn-xs btn-icon btn-text-secondary" href="javascript:;" role="button"
aria-haspopup="true"
aria-expanded="false"
aria-controls="searchPushTop"
data-unfold-type="jquery-slide"
data-unfold-target="#searchPushTop">
<span class="fas fa-search btn-icon__inner"></span>
</a>
</li>
<!-- End Search -->
<!-- Shopping Cart -->
<li class="list-inline-item position-relative">
<a id="shoppingCartDropdownInvoker" class="btn btn-xs btn-icon btn-text-secondary" href="javascript:;" role="button"
aria-controls="shoppingCartDropdown"
aria-haspopup="true"
aria-expanded="false"
data-unfold-event="hover"
data-unfold-target="#shoppingCartDropdown"
data-unfold-type="css-animation"
data-unfold-duration="300"
data-unfold-delay="300"
data-unfold-hide-on-scroll="true"
data-unfold-animation-in="slideInUp"
data-unfold-animation-out="fadeOut">
<span class="fas fa-shopping-cart btn-icon__inner"></span>
</a>
<div id="shoppingCartDropdown" class="dropdown-menu dropdown-unfold dropdown-menu-right text-center p-7" aria-labelledby="shoppingCartDropdownInvoker" style="min-width: 250px;">
<span class="btn btn-icon btn-soft-primary rounded-circle mb-3">
<span class="fas fa-shopping-basket btn-icon__inner"></span>
</span>
<span class="d-block">Your Cart is Empty</span>
</div>
</li>
<!-- End Shopping Cart -->
<!-- Account Login -->
<li class="list-inline-item">
<a class="btn btn-xs btn-icon btn-text-secondary>
<span class="fas fa-user-circle btn-icon__inner font-size-1"></span>
</a>
</li>
<!-- End Account Login -->
</ul>
</div>
</div>
<!-- End Topbar -->
Color schemes
Theming the navbar has never been easier thanks to the combination of theming classes and background-color
utilities. Apply the parent .u-header--navbar-bg
class next to .u-header
class, choose from .bg-primary
for use with primary background colors, or .bg-dark
for dark background colors. Then, customize with .bg-*
utilities.
<header id="headerPrimary" class="u-header u-header--navbar-bg">
<div class="u-header__section bg-primary">
<!-- Navbar content -->
</div>
</header>
<header id="headerDark" class="u-header u-header--navbar-bg">
<div class="u-header__section bg-dark">
<!-- Navbar content -->
</div>
</header>
Transparent
Add a .u-header--bg-transparent
class to a parent element (must come before .u-header__section
class), also you can use .u-header--white-nav-links{-sm|-md|-lg|-xl}
white color nav links class for clear displaying the links.
Transparent .u-header--bg-transparent{-sm|-md|-lg|-xl}
classes are also available for responsive breakpoints.
<header id="headerTransparent" class="u-header u-header--bg-transparent u-header--white-nav-links-md">
<div class="u-header__section">
<!-- Navbar content -->
</div>
</header>
And here's an example with border.
<header id="headerTransparent" class="u-header u-header--bg-transparent u-header--white-nav-links-md">
<div class="u-header__section u-header__section-divider">
<!-- Navbar content -->
</div>
</header>
Placement
Use our placement-classes to place navbars in non-static positions. Choose from fixed to the top, fixed to the bottom, or stickied to the top (scrolls with the page until it reaches the top, then stays there). Fixed navbars use position: fixed
, meaning they're pulled from the normal flow of the DOM and may require custom CSS (e.g., padding-top
on the <body>
) to prevent overlap with other elements.
Example page: Header default
<header id="headerPlacementDefault" class="u-header">
<a class="navbar-brand" href="#">Default</a>
</header>
<header id="headerPlacementStatic" class="u-header u-header--static">
<a class="navbar-brand" href="#">Static</a>
</header>
Example page: Absolute top
<header id="headerPlacementAbsTop" class="u-header u-header--abs-top">
<a class="navbar-brand" href="#">Absolute top</a>
</header>
Example page: Absolute bottom
<header id="headerPlacementAbsBottom" class="u-header u-header--abs-bottom">
<a class="navbar-brand" href="#">Absolute bottom</a>
</header>
Example page: Absolute top second screen
<header id="headerPlacementAbsTop2ndScreen" class="u-header u-header--abs-top-2nd-screen">
<a class="navbar-brand" href="#">Absolute top second screen</a>
</header>
Example page: Sticky top
<header id="headerPlacementStickyTop" class="u-header u-header--sticky-top">
<a class="navbar-brand" href="#">Sticky top</a>
</header>
Example page: Sticky bottom
<header id="headerPlacementStickyBottom" class="u-header u-header--sticky-bottom">
<a class="navbar-brand" href="#">Sticky bottom</a>
</header>
Responsive behaviors
Placement classes can utilize .u-header--*{-sm|-md|-lg|-xl}
. Learn more placement behaviors.
Navbars can utilize .navbar-toggler
, .navbar-collapse
, and .navbar-expand{-sm|-md|-lg|-xl}
classes to change when their content collapses behind a button. In combination with other utilities, you can easily choose when to show or hide particular elements.
For navbars that never collapse, add the .navbar-expand
class on the navbar. For navbars that always collapse, don't add any .navbar-expand
class.
Methods
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-header-fix-moment=""
.
Attribute | Description |
---|---|
|
Changes navbar behavior at the time specified by the user. |
|
Show/hide effect of an element. Available options:
|
|
All the listed classes in this attribute will be removed from the section at the time of commit. |
|
All the listed classes in this attribute will be added to the section at the time of the commit. |
|
Defines if the data-effect-compensation-* attributes should be enabled. |
|
Points to the class that will be replaced with specified class in the data-effect-compensation-end-class . |
|
Points to the class that will be replaced with specified class in data-effect-compensation-start-class , at the value of scroll specified in the data-header-fix-moment . |
Placement classes
List of available classes and their descriptions.
Class | Description |
---|---|
|
Static type, behaves as with the rule position: static; . Its geometry is taken into account when rendering a page. |
|
Practically the same as static, but the geometry of this type of header is not taken into account when rendering the page (because of position: absolute; ). This type of header is well suited for transparent/half-transparent header designs that are displayed on top of the slider/hero/etc. Its geometry is taken into account when rendering a page. |
|
This type of header works when we have the first section on the page that has a height: 100vh; , i.e. fullscreen. It is displayed as adhering to the top of the second section in the stream on the page. The geometry of this header is also excluded from the calculation of the positioning of all elements on the page. |
|
The same as u-header--abs-top , only the header is displayed as sticking to the bottom of the first section in the stream. |
|
It is displayed as sticking to the top of the screen always (position: fixed; top: 0; ). The geometry of this header is also excluded from the calculation of the positioning of all elements on the page. |
|
It is displayed as always (position: fixed; bottom: 0; ) adhered to the top of the screen. The geometry of this header is also excluded from the calculation of the positioning of all elements on the page. |
Behaviors
List of available classes and their descriptions.
Class | Description |
---|---|
|
Show/hide an item when scrolling to the user specified time. This moment is given in the form of the number of scrolled pixels, through the attribute data-header-fix-moment="" . There are 3 available options for how to show/hide an element using the data-header-fix-effect="" attribute:
|
|
Changes the logo at the time specified by the user. This moment is given in the form of the number of scrolled pixels, through the attribute data-header-fix-moment="" . The markup of the logo is important, and should look like this:
|
|
Changes the appearance of the sections at the time specified by the user. This moment is given in the form of the number of scrolled pixels, through the attribute data-header-fix-moment="" . You can control the appearance of each section with 2 attributes:
!important CSS parameter.
For example:
In this case, to change the section from gray to dark, we remove u-header__section--light bg-secondary (which by default is on this element) and add u-header__section--primary bg-primary .
|
|
Show/hide one of the header sections (preferably the very first) at the user specified time. This moment is specified as the number of scrolled pixels, through the attribute data-header-fix-moment="" . For this, the section itself needs to be given the class .u-header__section--hidden . |
|
This class is auxiliary and is used to reset the previous behavior (with the previous permission, if the user has changed the window size) on a certain viewport. For example, if the user wants to open/show a section on -xs, -sm , but not higher. (Because Front alike Bootstrap is developed mobile first, a strategy in which we optimize code for mobile devices first and then scale up components as necessary using CSS media queries.), having set -sm it will work and on permissions above, in order to prevent it use this class.For example:
here the behavior of toggle-section will work until the resolution is -md (that is, xs, sm) , on viewport -md it will not work.
|
A certain behavior is tied to a specific position
Because of the complexity of the task itself with behaviors and positions, a certain behavior is tied to a specific position. That is, if you want the above -lg
to work show-hide, you need to specify 2 classes.
For example:
<header class="u-header--show-hide-lg u-header--abs-top-lg">
...
</header>
Behavior examples
.u-header--show-hide
data-header-fix-moment="500"
data-header-fix-effect="slide"
.u-header--change-logo
<a class="navbar-brand u-header__navbar-brand" href="#" aria-label="Front">
<img class="u-header__navbar-brand-default" src="../../assets/svg/logos/logo-white.svg" alt="Logo">
<img class="u-header__navbar-brand-on-scroll" src="../../assets/svg/logos/logo.svg" alt="Logo">
</a>
.u-header--change-appearance
<header class="u-header__section u-header__section--light bg-white py-7"
data-header-fix-moment-exclude="bg-primary py-9"
data-header-fix-moment-classes="bg-dark py-5">
</header>
Behavior classes
List of available classes and their descriptions.
These placement classes can have the following behavior classes | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|