// Set up the navbar items
{% set navbar_items %}
{% include '@bolt-components-navbar/navbar-li.twig' with {
link: {
content: 'Section 1',
attributes: {
href: '#section-1'
}
}
} only %}
...
{% endset %}
{% set navbar_list %}
{% include '@bolt-components-navbar/navbar-ul.twig' with {
content: navbar_items,
} only %}
{% endset %}
// Pass the navbar items to the navbar template
{% include '@bolt-components-navbar/navbar.twig' with {
title: {
content: 'This is the navbar title',
icon: {
name: 'marketing-gray'
},
link: {
attributes: {
href: 'https://google.com'
},
},
},
links: navbar_list
} only %}
kebab-case
.
Prop Name | Description | Type | Default Value | Option(s) |
---|---|---|---|---|
title
|
Navbar title. Icon is optional. Tag can be set to h1 to h6 depending on the page. |
object
| — |
|
links
|
Content of navbar links. Navbar ul is expected here. |
any
| — |
|
content
|
Custom navbar content. Content provided here will replace title and links. |
any
| — |
|
spacing
|
Controls the inset spacing of the navbar |
string
|
small
|
|
width
|
Control the width of the navbar. Full will span the entire screen width ignoring any wrapper or page max-width. |
string
|
full
|
|
center
|
Determines if you want the Navbar content to be center aligned or not |
boolean
|
false
|
|
static
|
Set the navbar to be static instead of sticky. |
boolean
|
false
|
|
theme
|
Color theme. Can be set to 'none' for a transparent background. |
string
|
dark
|
|
offset
|
Number of pixels taken up by sticky items at the top of the page, used for smooth scroll. |
integer
| — |
|
sticky_offset
|
Offset the top position of the navbar by a specific pixel value. Only works when Navbar is sticky. |
integer
| — |
|
sticky_offset_selector
|
Offset the top position of the navbar by the height of a specific element or elements, which the selector points to. Selector can match multiple elements, uses the cumulative height. Must be a valid CSS selector. |
string
| — |
|
scroll_offset
|
Ofset the top position of a page section anchor by a specific pixel value. |
integer
| — |
|
uuid
|
Unique ID for the navbar, randomly generated if not provided. |
string
| — |
|
Prop Name | Description | Type | Default Value | Option(s) |
---|---|---|---|---|
attributes
|
A Drupal attributes object. Applies extra HTML attributes to the parent element. |
object
| — |
|
content
*
|
Content of navbar ul. Navbar li are expected here. |
any
| — |
|
Prop Name | Description | Type | Default Value | Option(s) |
---|---|---|---|---|
attributes
|
A Drupal attributes object. Applies extra HTML attributes to the parent element. |
object
| — |
|
link
*
|
Link of the navbar item. Pass a hash to the "href" attribute to link to an in-page section. |
object
| — |
|
current
|
Automatically mark a navbar link as current |
boolean
| — |
|
npm install @bolt/components-navbar
// Set up the navbar items
{% set navbar_items %}
{% include '@bolt-components-navbar/navbar-li.twig' with {
link: {
content: 'Section 1',
attributes: {
href: '#section-1'
}
}
} only %}
{% include '@bolt-components-navbar/navbar-li.twig' with {
link: {
content: 'Section 2',
attributes: {
href: '#section-2'
}
}
} only %}
...
{% endset %}
{% set navbar_list %}
{% include '@bolt-components-navbar/navbar-ul.twig' with {
content: navbar_items,
} only %}
{% endset %}
// Pass the navbar items to the navbar template
{% include '@bolt-components-navbar/navbar.twig' with {
title: {
content: 'This is the navbar title',
icon: {
name: 'marketing-gray'
},
link: {
attributes: {
href: 'https://google.com'
},
},
},
links: navbar_list
} only %}
{% include '@bolt-components-navbar/navbar.twig' with {
spacing: 'medium',
...
} only %}
spacing
prop to xsmall
when using the center
prop.
{% include '@bolt-components-navbar/navbar.twig' with {
center: true,
spacing: 'xsmall',
...
} only %}
{% include '@bolt-components-navbar/navbar.twig' with {
width: 'auto',
...
} only %}
{% include '@bolt-components-navbar/navbar.twig' with {
static: true,
...
} only %}
theme
prop is set to none
, the navbar will have a transparent background.{% include '@bolt-components-navbar/navbar.twig' with {
theme: 'light',
...
} only %}
{% include '@bolt-components-navbar/navbar.twig' with {
title: {
...
hide_text: 'from-xsmall-bp',
},
center: true,
...
} only %}
{% include '@bolt-components-navbar/navbar.twig' with {
scroll_offset: 16, // Adds a specific pixel value to the smooth scroll position of each section of the page.
...
} only %}
sticky_offset_selector
.sticky_offset_selector
can automatically calculate the dynamic height of a specific element, the sticky_offset
can offset a specific pixel value manually. You may choose to use that instead if you need an absolute value. Ideally, the two props are not used in tandem.{% include '@bolt-components-navbar/navbar.twig' with {
sticky_offset_selector: '#js-sticky-target', // Adds the height of the other sticky element to the top position of the sticky navbar.
...
} only %}
<section>
{% include '@bolt-components-navbar/navbar.twig' with {
...
} only %}
// Content goes here
</section>
<section>
{% include '@bolt-components-navbar/navbar.twig' with {
...
} only %}
// Content goes here
</section>
content
prop completely overrides the title
and links
props.{% include '@bolt-components-navbar/navbar.twig' with {
content: custom_content,
...
} only %}