Header
Documentation and examples for Space'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 Space to enable them.
Copy-paste the init function under JS Plugins Init., before the closing </body>
tag, to enable it.
Using unfold.js with header (eg. Topbar dropdowns, Search and Sidebars)
If you are planning to add thing like, search, language dropdown, sidebar or anything similar, add the below given scripts.
Copy-paste the following <script>
near the end of your pages under JS Space to enable them.
Copy-paste the init function under JS Plugins Init., before the closing </body>
tag, to enable it.
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 lg
(large) breakpoint.
HTML:
CSS library:
JS library and initialization:
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.
.u-header__navbar-brand-top-space
removes the padding-top CSS parameter of .u-header__navbar-brand
when nav links are less and at the level of the Logo (navbar-brand).
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.
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.
And here's an example with border.
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
Example page: Absolute top
Example page: Absolute bottom
Example page: Absolute top second screen
Example page: Stick top
Example page: Stick bottom
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 Space 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:
Behavior classes
List of available classes and their descriptions.
These placement classes can have the following behavior classes | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|