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
.
The trait provides two methods to set attributes: setAttribute
and id
.
Menu::new()
->setAttribute('role', 'navigation')
->id('nav');
<ul role="navigation" id="nav"></ul>