# Menus

Mojo supports four types of menu widgets. You should review the Menu User Interface Guidelines for how best to apply each menu type and for general information on designing menus in your application. Briefly:

- App Menu is a conventional desktop-style menu that drops down from the top-left corner of the screen when the user taps in that area.
- View Menu applies to menus across the top of the screen and can be used as a display header or action buttons.
- Command Menu is used to set a menu at the bottom of the screen.
- Submenu can be used in conjunction with the other menu types or be attached to any element in the page.

The App Menu, View Menu, and Command Menu all use a single model definition with a menu items array, are instantiated through setupWidget, and propagate events via the commander stack. The Submenu shares many of the model properties with the others, but is handled differently, so it is addressed in its own subsection below.

The System UI includes another menu, called the Device Menu, which is anchored to the top right of the screen. This menu cannot be controlled or changed in any way by an application.