Menu React Component
Menu component not so often seen in mobile apps. But it is proven to be extremely helpful when you need controls on top of the map, images, some text/code editor, etc.
Menu React component represents Menu component.
Menu Components
There are following components included:
Menu
/F7Menu
MenuItem
/F7MenuItem
MenuDropdown
/F7MenuDropdown
MenuDropdownItem
/F7MenuDropdownItem
Menu Properties
Prop | Type | Default | Description |
---|---|---|---|
<MenuItem> properties | |||
text | string | Menu item text | |
iconOnly | boolean | Enable if menu item contains only icon | |
dropdown | boolean | Enable if menu item contains menu dropdown | |
link | boolean | Enable if to render menu item as link (<a> ) element if you don't need to specific href | |
<MenuItem> icon related properties | |||
iconSize | string number | Icon size in px | |
iconColor | string | Icon color. One of the default colors | |
icon | string | Custom icon class | |
iconF7 | string | Name of F7 Icons font icon | |
iconMaterial | string | Name of Material Icons font icon | |
iconIos | string | Icon to be used in case of iOS theme is used. Consists of icon family and icon name divided by colon, e.g. f7:house | |
iconMd | string | Icon to be used in case of MD theme is used. Consists of icon family and icon name divided by colon, e.g. material:home | |
iconAurora | string | Icon to be used in case of Aurora theme is used. Consists of icon family and icon name divided by colon, e.g. material:home | |
<MenuItem> navigation/router related properties | |||
href | string boolean | # | URL of the page to load. In case of boolean href="false" it won't add href tag |
target | string | Value of link target attribute, e.g. _blank , _self , etc. | |
view | string | CSS selector of the View to load the page. Or current to load in current view. | |
external | boolean | Enable to bypass Framework7's link click handler | |
back | boolean | Enables back navigation link | |
force | boolean | Force page to load and ignore previous page in history (use together with back prop) | |
reloadCurrent | boolean | Reloads new page instead of the currently active one | |
reloadPrevious | boolean | Replace the previous page in history with the new one from route | |
reloadAll | boolean | Load new page and remove all previous pages from history and DOM | |
reloadDetail | boolean | Reload Detail page in Master Detail view | |
animate | boolean | Disables pages animation | |
transition | string | Name of the custom page transition | |
ignoreCache | boolean | Ignores caching | |
routeTabId | string | Routable Tab id | |
routeProps | object | Object with additional props that will be passed to target route component | |
preventRouter | boolean | false | If set, then it won't be processed by Framework7 router |
<MenuItem> action related properties | |||
panelOpen | string boolean | CSS selector of panel to open on click. Or can be left or right if there is only left or right panel in DOM. | |
panelClose | string boolean | Closes panel on click | |
panelToggle | string boolean | CSS selector of panel to toggle on click. Or can be left or right if there is only left or right panel in DOM. | |
actionsOpen | string boolean | CSS selector of the action sheet to open on click | |
actionsClose | string boolean | CSS selector of the action sheet to close on click. Or boolean property to close currently opened action sheet | |
popupOpen | string boolean | CSS selector of the popup to open on click | |
popupClose | string boolean | CSS selector of the popup to close on click. Or boolean property to close currently opened popup | |
popoverOpen | string boolean | CSS selector of the popover to open on click | |
popoverClose | string boolean | CSS selector of the popover to close on click. Or boolean property to close currently opened popover | |
sheetOpen | string boolean | CSS selector of the sheet modal to open on click | |
sheetClose | string boolean | CSS selector of the sheet modal to close on click. Or boolean property to close currently opened sheet modal | |
loginScreenOpen | string boolean | CSS selector of the login screen to open on click | |
loginScreenClose | string boolean | CSS selector of the login screen to close on click. Or boolean property to close currently opened login screen | |
sortableEnable | string boolean | CSS selector of the Sortable list to be enabled on click | |
sortableDisable | string boolean | CSS selector of the Sortable list to be disabled on click. Or boolean property to close currently opened Sortable list | |
sortableToggle | string boolean | CSS selector of the Sortable list to toggle on click. Or boolean property to toggle currently opened/closed Sortable list | |
searchbarEnable | string boolean | CSS selector of the Expandable Searchbar to be enabled on click. Or boolean property to enable the first found Searchbar | |
searchbarDisable | string boolean | CSS selector of the Expandable Searchbar to be disabled on click. Or boolean property to disable the first found Searchbar | |
searchbarToggle | string boolean | CSS selector of the Expandable Searchbar to toggle on click. Or boolean property to toggle the first found Searchbar | |
searchbarClear | string boolean | CSS selector of the Expandable Searchbar to clear on click. Or boolean property to clear the first found Searchbar | |
cardOpen | string boolean | CSS selector of the expandable card to open on click. Or boolean to open first found expandable card | |
cardClose | string boolean | CSS selector of the expandable card to close on click. Or boolean property to close currently opened expandable card | |
cardPreventOpen | boolean | Click on element with this prop won't open its parent expandable card | |
menuClose | boolean | Closes Menu dropdown on click | |
<MenuDropdown> properties | |||
contentHeight | string | CSS value of dropdown height property. Specify only to limit dropdown height if there are a lot of items | |
position | string | Dropdown position, can be left , center or right | |
left | boolean | Same as | |
center | boolean | Same as | |
right | boolean | Same as | |
<MenuDropdownItem> properties | |||
text | string | Menu dropdown item text | |
divider | boolean | Render this item as divider (text will ignored in this case) | |
link | boolean | Enable if to render menu item as link (<a> ) element if you don't need to specific href | |
<MenuDropdownItem> navigation/router related properties | |||
href | string boolean | # | URL of the page to load. In case of boolean href="false" it won't add href tag |
target | string | Value of link target attribute, e.g. _blank , _self , etc. | |
view | string | CSS selector of the View to load the page. Or current to load in current view. | |
external | boolean | Enable to bypass Framework7's link click handler | |
back | boolean | Enables back navigation link | |
force | boolean | Force page to load and ignore previous page in history (use together with back prop) | |
reloadCurrent | boolean | Reloads new page instead of the currently active one | |
reloadPrevious | boolean | Replace the previous page in history with the new one from route | |
reloadAll | boolean | Load new page and remove all previous pages from history and DOM | |
reloadDetail | boolean | Reload Detail page in Master Detail view | |
animate | boolean | Disables pages animation | |
transition | string | Name of the custom page transition | |
ignoreCache | boolean | Ignores caching | |
routeTabId | string | Routable Tab id | |
routeProps | object | Object with additional props that will be passed to target route component | |
preventRouter | boolean | false | If set, then it won't be processed by Framework7 router |
<MenuDropdownItem> action related properties | |||
panelOpen | string boolean | CSS selector of panel to open on click. Or can be left or right if there is only left or right panel in DOM. | |
panelClose | string boolean | Closes panel on click | |
panelToggle | string boolean | CSS selector of panel to toggle on click. Or can be left or right if there is only left or right panel in DOM. | |
actionsOpen | string boolean | CSS selector of the action sheet to open on click | |
actionsClose | string boolean | CSS selector of the action sheet to close on click. Or boolean property to close currently opened action sheet | |
popupOpen | string boolean | CSS selector of the popup to open on click | |
popupClose | string boolean | CSS selector of the popup to close on click. Or boolean property to close currently opened popup | |
popoverOpen | string boolean | CSS selector of the popover to open on click | |
popoverClose | string boolean | CSS selector of the popover to close on click. Or boolean property to close currently opened popover | |
sheetOpen | string boolean | CSS selector of the sheet modal to open on click | |
sheetClose | string boolean | CSS selector of the sheet modal to close on click. Or boolean property to close currently opened sheet modal | |
loginScreenOpen | string boolean | CSS selector of the login screen to open on click | |
loginScreenClose | string boolean | CSS selector of the login screen to close on click. Or boolean property to close currently opened login screen | |
sortableEnable | string boolean | CSS selector of the Sortable list to be enabled on click | |
sortableDisable | string boolean | CSS selector of the Sortable list to be disabled on click. Or boolean property to close currently opened Sortable list | |
sortableToggle | string boolean | CSS selector of the Sortable list to toggle on click. Or boolean property to toggle currently opened/closed Sortable list | |
searchbarEnable | string boolean | CSS selector of the Expandable Searchbar to be enabled on click. Or boolean property to enable the first found Searchbar | |
searchbarDisable | string boolean | CSS selector of the Expandable Searchbar to be disabled on click. Or boolean property to disable the first found Searchbar | |
searchbarToggle | string boolean | CSS selector of the Expandable Searchbar to toggle on click. Or boolean property to toggle the first found Searchbar | |
searchbarClear | string boolean | CSS selector of the Expandable Searchbar to clear on click. Or boolean property to clear the first found Searchbar | |
cardOpen | string boolean | CSS selector of the expandable card to open on click. Or boolean to open first found expandable card | |
cardClose | string boolean | CSS selector of the expandable card to close on click. Or boolean property to close currently opened expandable card | |
cardPreventOpen | boolean | Click on element with this prop won't open its parent expandable card | |
menuClose | boolean | Closes Menu dropdown on click |
Menu Events
Event | Description |
---|---|
<MenuItem> events | |
click | Event will be triggered on menu item click |
menuOpened | Event will be triggered right after menu dropdown will be opened |
menuClosed | Event will be triggered right after menu dropdown will be closed |
<MenuDropdownItem> events | |
click | Event will be triggered on menu dropdown item click |
Examples
Plain Links
<Menu>
<MenuItem href="#" text="Item 1" />
<MenuItem href="#" text="Item 2" />
<MenuItem href="#" iconF7="pencil" />
<MenuItem href="#" iconF7="square_arrow_up" />
</Menu>
Dropdowns
<Menu>
<MenuItem text="Left" dropdown>
<MenuDropdown left>
<MenuDropdownItem href="#" text="Menu Item 1" />
<MenuDropdownItem href="#" text="Menu Item 2" />
<MenuDropdownItem href="#" text="Menu Item 3" />
<MenuDropdownItem href="#" text="Menu Item 4" />
<MenuDropdownItem divider />
<MenuDropdownItem href="#" text="Menu Item 5" />
<MenuDropdownItem href="#" text="Menu Item 6" />
</MenuDropdown>
</MenuItem>
<MenuItem text="Center" dropdown>
<MenuDropdown center contentHeight="200px">
<MenuDropdownItem href="#" text="Menu Item 1" />
<MenuDropdownItem href="#" text="Menu Item 2" />
<MenuDropdownItem href="#" text="Menu Item 3" />
<MenuDropdownItem href="#" text="Menu Item 4" />
<MenuDropdownItem divider />
<MenuDropdownItem href="#" text="Menu Item 5" />
<MenuDropdownItem href="#" text="Menu Item 6" />
<MenuDropdownItem href="#" text="Menu Item 7" />
<MenuDropdownItem divider />
<MenuDropdownItem href="#" text="Menu Item 8" />
<MenuDropdownItem href="#" text="Menu Item 9" />
<MenuDropdownItem href="#" text="Menu Item 10" />
</MenuDropdown>
</MenuItem>
<MenuItem text="Right" dropdown>
<MenuDropdown right>
<MenuDropdownItem href="#" text="Menu Item 1" />
<MenuDropdownItem href="#" text="Menu Item 2" />
<MenuDropdownItem href="#" text="Menu Item 3" />
<MenuDropdownItem href="#" text="Menu Item 4" />
<MenuDropdownItem divider />
<MenuDropdownItem href="#" text="Menu Item 5" />
<MenuDropdownItem href="#" text="Menu Item 6" />
</MenuDropdown>
</MenuItem>
<MenuItem style={{marginLeft: 'auto'}} iconF7="square_arrow_up" dropdown>
<MenuDropdown right>
<MenuDropdownItem href="#">
<span>Share on Facebook</span>
<Icon className="margin-left" f7="logo_facebook" />
</MenuDropdownItem>
<MenuDropdownItem href="#">
<span>Share on Twitter</span>
<Icon className="margin-left" f7="logo_twitter" />
</MenuDropdownItem>
</MenuDropdown>
</MenuItem>
<MenuItem href="#" iconF7="pencil" />
</Menu>