Zazz Design Framework
Components

Mobile menu

Fullscreen slide-in navigation dialog with nested accordion sections.

The mobile menu combines a native <dialog> with nested <details> accordions. Trigger with command="show-modal" and commandfor="<id>". Close with command="close" or backdrop light-dismiss via closedby="any".

Default

Loading components…

Markup template

<!-- Trigger -->
<button class="ui-button" data-size="icon" command="show-modal" commandfor="mobile-menu-1">

</button>

<!-- Menu -->
<dialog
  id="mobile-menu-1"
  class="ui-dialog ui-mobile-menu"
  data-size="screen"
  data-animation="slide-right"
  closedby="any"
>
  <div data-slot="mobile-menu-viewport">
    <div data-slot="mobile-menu-header">...</div>
    <div data-slot="mobile-menu-body">
      <div class="ui-accordion">
        <details>
          <summary class="ui-button" data-variant="ghost">Section</summary>
          <div class="flex flex-col pb-sm">
            <!-- Nav links -->
          </div>
        </details>
      </div>
    </div>
    <div data-slot="mobile-menu-footer">...</div>
  </div>
</dialog>

Tokens

TokenDefault
--ui-mobile-menu-backgroundvar(--background)
--ui-mobile-menu-foregroundvar(--foreground)
--ui-mobile-menu-backdropvar(--faded-foreground)
--ui-mobile-menu-header-padding-inlinevar(--gap-md) var(--gap-xs)
--ui-mobile-menu-header-padding-blockvar(--gap-xs)
--ui-mobile-menu-body-padding-inlinevar(--gap-sm)
--ui-mobile-menu-body-padding-blockvar(--gap-md)
--ui-mobile-menu-footer-paddingvar(--gap-sm)
--ui-mobile-menu-footer-gapvar(--gap-xs)
--ui-mobile-menu-nested-accordion-padding-inline-startvar(--gap-sm)

API

AttributeTargetValues
commandTriggershow-modal, close
commandforTriggerTarget dialog ID
data-size.ui-mobile-menuscreen
data-animation.ui-mobile-menuslide-right
closedby<dialog>any, closerequest, none

On this page