ui.page_sidebar

ui.page_sidebar(
    sidebar
    *args
    title=None
    fillable=False
    fillable_mobile=False
    window_title=MISSING
    lang=None
    theme=None
    **kwargs
)

Create a page with a sidebar and a title.

Parameters

sidebar : Sidebar

Content to display in the sidebar.

*args : TagChild | TagAttrs = ()

UI elements.

title : Optional[str | Tag | TagList] = None

A title to display at the top of the page.

fillable : bool = False

Whether or not the main content area should be considered a fillable (i.e., flexbox) container.

fillable_mobile : bool = False

Whether or not fillable should apply on mobile devices.

window_title : str | MISSING_TYPE = MISSING

The browser’s window title (defaults to the host URL of the page). Can also be set as a side effect via panel_title.

lang : Optional[str] = None

ISO 639-1 language code for the HTML page, such as "en" or "ko". This will be used as the lang in the <html> tag, as in <html lang="en">. The default, None, results in an empty string.

theme : Optional[str | Path | Theme | ThemeProvider] = None

A custom Shiny theme created using the Theme class, or a path to a local or online CSS file that will replace the Bootstrap CSS bundled by default with a Shiny app. This file should be a complete bootstrap.css or bootstrap.min.css file. For advanced uses, you can also pass a Tagifiable object. In this case, Shiny will suppress the default Bootstrap CSS. To modify the theme of an app without replacing the Bootstrap CSS entirely, use include_css to add custom CSS.

****kwargs** : TagAttrValue = {}

Additional attributes passed to layout_sidebar.

Returns

: Tag

A UI element.

Examples

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

## file: app.py
import matplotlib.pyplot as plt
import numpy as np

from shiny import App, Inputs, Outputs, Session, render, ui

app_ui = ui.page_sidebar(
    ui.sidebar(
        ui.input_slider("n", "N", min=0, max=100, value=20),
    ),
    ui.card(
        ui.output_plot("plot"),
    ),
)


def server(input: Inputs, output: Outputs, session: Session):
    @render.plot(alt="A histogram")
    def plot() -> object:
        np.random.seed(19680801)
        x = 100 + 15 * np.random.randn(437)

        fig, ax = plt.subplots()
        ax.hist(x, input.n(), density=True)
        return fig


app = App(app_ui, server)