{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item One',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Two',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_three %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Three',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set list_items %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_three,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
content: list_items,
} only %}
kebab-case
.
Prop Name | Description | Type | Default Value | Option(s) |
---|---|---|---|---|
attributes
|
A Drupal-style attributes object with extra attributes to append to this element. |
object
| — |
|
content
|
Menu items. Accepts @bolt-elements-menu/menu-item.twig. |
string
, array
, object
|
— |
|
title
|
The menu element can have a title if needed. |
string
| — |
|
spacing
|
Controls the inset spacing of each menu item. |
string
|
small
|
|
Prop Name | Description | Type | Default Value | Option(s) |
---|---|---|---|---|
attributes
|
A Drupal-style attributes object with extra attributes to append to this element. |
object
| — |
|
content
|
Menu item. It's recommended to use a basic text link here @bolt-elements-text-link/text-link.twig |
any
| — |
|
npm install @bolt/elements-menu
href
prop inside attributes
but can be changed to text link as a semantic button if needed, by using the type
prop.{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item One',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Two',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_three %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Three',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set list_items %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_three,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
content: list_items,
} only %}
<menu class="e-bolt-menu">
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item One
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item Two
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item Three
</button>
</li>
</menu>
title
prop.
menu
tag must be wrapped in a div
with e-bolt-menu
class.
{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item One',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Two',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_three %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Three',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set list_items %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_three,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
title: 'Choose one of these',
content: list_items,
} only %}
<div class="e-bolt-menu">
<h2 class="e-bolt-menu__title">This is the menu title</h2>
<menu>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item One
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item Two
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item Three
</button>
</li>
</menu>
</div>
spacing
prop. Reference spacing options in the schema.
{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item One',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Two',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_three %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Three',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set list_items %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_three,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
spacing: 'medium',
content: list_items,
} only %}
<div class="e-bolt-menu e-bolt-menu--spacing-medium">
<h2 class="e-bolt-menu__title">This is the menu title</h2>
<menu>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item One
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item Two
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
Menu Item Three
</button>
</li>
</menu>
</div>
href
prop inside attributes
but can be changed to a semantic button if needed, by using type
prop inside attributes
.target
and rel
to the attributes
if the link is external.{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'This menu item contains a button',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'This menu item contains a link',
attributes: {
href: 'www.google.com',
target: '_blank',
rel: 'noopener'
}
} only %}
{% endset %}
{% set list_items %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
content: list_items,
} only %}
<menu class="e-bolt-menu">
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
This menu item contains a button
</button>
</li>
<li class="e-bolt-menu__item">
<a href="www.google.com" target="_blank" rel="noopener" class="e-bolt-text-link">
This menu item contains a link
</a>
</li>
</menu>
<img>
element is also acceptable.
size
prop for the icon element is not supported in this scenario.
{% set icon_facebook %}
{% include '@bolt-elements-icon/icon.twig' with {
name: 'facebook-solid',
} only %}
{% endset %}
{% set icon_X %}
{% include '@bolt-elements-icon/icon.twig' with {
name: 'x',
} only %}
{% endset %}
{% set icon_linkedin %}
{% include '@bolt-elements-icon/icon.twig' with {
name: 'linkedin-solid',
} only %}
{% endset %}
{% set list_items %}
{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item One',
icon_before: icon_facebook,
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Two',
icon_before: icon_X,
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_three %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Three',
icon_before: icon_linkedin,
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_three,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
content: list_items,
} only %}
<menu class="e-bolt-menu">
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
<span class="e-bolt-text-link__icon-before" aria-hidden="true"><svg class="e-bolt-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true">...</svg></span>
This menu item contains a button with icon before
</button>
</li>
<li class="e-bolt-menu__item">
<button type="button" class="e-bolt-text-link">
This menu item contains a button with icon after
<span class="e-bolt-text-link__icon-after" aria-hidden="true"><svg class="e-bolt-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true">...</svg></span>
</button>
</li>
</menu>
{% set popover_trigger %}
{% include '@bolt-elements-button/button.twig' with {
content: 'Popover menu',
size: 'xsmall',
attributes: {
type: 'button'
}
} only %}
{% endset %}
{% set popover_content %}
{% set list_items %}
{% set menu_item_one %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item One',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_two %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Two',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% set menu_item_three %}
{% include '@bolt-elements-text-link/text-link.twig' with {
content: 'Menu Item Three',
attributes: {
type: 'button',
}
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_one,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_two,
} only %}
{% include '@bolt-elements-menu/menu-item.twig' with {
content: menu_item_three,
} only %}
{% endset %}
{% include '@bolt-elements-menu/menu.twig' with {
title: 'Choose one of these',
content: list_items,
} only %}
{% endset %}
{% include '@bolt-components-popover/popover.twig' with {
trigger: popover_trigger,
content: popover_content,
spacing: 'none',
} only %}