Menu Bar

Renders a menu bar, similar to those found in desktop applications.

Read more Read less

This component is meant for organizing actions within an application, rather than for navigating between different pages or sections of a website.

See also menu/1, menu_group/1, menu_button/1, menu_item/1, and menu_item_checkbox/1.

Usage

<.menu_bar label="Main">
  <:item>
    <.menu_button controls="actions-menu" id="actions-button">
      Actions
    </.menu_button>
<.menu id="actions-menu" labelledby="actions-button" hidden>
  <:item>
    <.menu_item on_click={JS.push("view-dog-profiles")}>
      View Dog Profiles
    </.menu_item>
  </:item>
  <:item>
    <.menu_item on_click={JS.push("add-dog-profile")}>
      Add Dog Profile
    </.menu_item>
  </:item>
  <:item>
    <.menu_item on_click={JS.push("dog-care-tips")}>
      Dog Care Tips
    </.menu_item>
  </:item>
</.menu>

</:item> <:item role=”separator”></:item> <:item>

<.menu_item on_click={JS.dispatch("myapp:help")}>
  Help
</.menu_item>

</:item> </.menu_bar>

Attribute Type Documentation Default Value
class :any Any additional classes to be added. Variations of the component should be expressed via modifier attributes, and it is preferable to use styles on the parent container to arrange components on the page, but if you have to, you can use this attribute to pass additional utility classes to the component. The value can be a string or a list of strings. []
label :string A accessibility label for the menubar. Set as `aria-label` attribute. You should ensure that either the `label` or the `labelledby` attribute is set.
labelledby :string The DOM ID of an element that labels this menu bar. Example: ```html <h3 id="dog-menu-label">Dog Actions</h3> <Doggo.menu_bar labelledby="dog-menu-label"></Doggo.menu_bar> ``` You should ensure that either the `label` or the `labelledby` attribute is set.
rest :global Any additional HTML attributes.
Required item * :slot
<:item>
  <.menu_button controls="actions-menu" id="actions-button">
  Actions
</.menu_button>


  <.menu id="actions-menu" labelledby="actions-button" hidden>
    <:item>
      <.menu_item on_click={JS.push("view-dog-profiles")}>
        View Dog Profiles
      </.menu_item>
    </:item>
    <:item>
      <.menu_item on_click={JS.push("add-dog-profile")}>
        Add Dog Profile
      </.menu_item>
    </:item>
    <:item>
      <.menu_item on_click={JS.push("dog-care-tips")}>
        Dog Care Tips
      </.menu_item>
    </:item>
  </.menu>
</:item>
<:item role="separator"></:item>
<:item>
  <.menu_item on_click={JS.dispatch("myapp:help")}>
    Help
  </.menu_item>
</:item>