kinetic-2.0.x-dev/templates/navigation/footer/menu--footer.html.twig
templates/navigation/footer/menu--footer.html.twig
{#
/**
* @file
* Theme override to display a menu.
*
* Available variables:
* - menu_name: The machine name of the menu.
* - items: A nested list of menu items. Each menu item contains:
* - attributes: HTML attributes for the menu item.
* - below: The menu item child items.
* - title: The menu link title.
* - url: The menu link url, instance of \Drupal\Core\Url
* - localized_options: Menu link localized options.
* - is_expanded: TRUE if the link has visible children within the current
* menu tree.
* - is_collapsed: TRUE if the link has children within the current menu tree
* that are not currently visible.
* - in_active_trail: TRUE if the link is in the active trail.
*/
#}
{% import _self as menus %}
{#
We call a macro which calls itself to render the full tree.
@see https://twig.symfony.com/doc/3.x/tags/macro.html
#}
{{ menus.menu_links(items, attributes, 0) }}
{% macro menu_links(items, attributes, menu_level) %}
{% import _self as menus %}
{% if items %}
{% if menu_level == 0 %}
<ul{{ attributes.addClass('grid grid-cols-2 gap-8 xl:grid-cols-4') }}>
{% else %}
<ul class="flex flex-col gap-4">
{% endif %}
{% for item in items %}
{% set item_attr = create_attribute() %}
{% set item_class = [
item.is_expanded ? 'font-medium text-body mb-4 md:mb-6' : 'text-light-dark-grey hover:text-fuchsia',
'leading-[1.5] inline-block align-top',
] %}
{% set li_item_classes = '' %}
{% if menu_level > 0 %}
{% if item.below %}
{% set li_item_classes = 'not-first:mt-4 md:not-first:mt-10' %}
{% else %}
{% set li_item_classes = 'min-h-[48px] sm:min-h-auto flex items-center' %}
{% endif %}
{% endif %}
<li class="{{ li_item_classes }}">
{% if item.title != '<column>' %}
{{ link(item.title, item.url, item_attr.addClass(item_class)) }}
{% endif %}
{% if item.below %}
{{ menus.menu_links(item.below, attributes, menu_level + 1) }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
