ui.nav_menu

ui.nav_menu(title, *args, value=None, icon=None, align='left')

Create a menu of nav items.

Parameters

title: TagChild

A title to display. Can be a character string or UI elements (i.e., tags).

*args: NavPanel | str = ()

A collection of nav items (e.g., nav_panel) and/or strings. Strings will be rendered as a section header unless the string is a set of two or more hyphens (e.g., ---), in which case it will be rendered as a divider.

value: Optional[str] = None

The value of the item. Use this value to determine whether the item is active (when an id is provided to the nav container) or to programmatically select the item (e.g., update_navs). You can also provide the value to the selected argument of the navigation container (e.g., navset_tab).

icon: TagChild = None

An icon to appear inline with the button/link.

align: Literal[‘left’, ‘right’] = ‘left’

Horizontal alignment of the dropdown menu relative to dropdown toggle.

Returns

Type Description
NavMenu A UI element representing both the navigation menu.

See Also

Example

See nav_panel

Examples

#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400

## file: app.py
from shiny import App, render, ui

app_ui = ui.page_fluid(
    ui.navset_card_pill(
        ui.nav_menu(
            "Nav Menu items",
            ui.nav_panel("A", "Panel A content"),
            ui.nav_panel("B", "Panel B content"),
            ui.nav_panel("C", "Panel C content"),
        ),
        id="selected_card_pill",
    ),
    ui.h5("Selected:"),
    ui.output_code("selected"),
)


def server(input, output, session):
    @render.code
    def selected():
        return input.selected_card_pill()


app = App(app_ui, server)