Item Attributes

The Menu and Link classes use the HtmlAttributes trait, which enables you to add attributes to their main elements (respectively the ul and a tags).

The trait provides two methods to set attributes: setAttribute and addClass.

Menu::new()
    ->setAttribute('role', 'navigation')
    ->addClass('nav');
<ul role="navigation" class="nav"></ul>

The setAttribute and addClass methods are smart enough to merge class names on render. The latter can also accepts both arrays and strings.

Link::to('#', 'Back to top')
    ->setAttribute('class', 'link')
    ->addClass(['button', 'top']);
<a href="#" class="link button top">Back to top</a>

If you want to add classes or set attributes to all items in a menu, the Menu class provides some convenience methods: addItemClass, setItemAttribute.