express.ui.accordion
express.ui.accordion(
id=None,
open=None,
multiple=True,
class_=None,
width=None,
height=None,
**kwargs,
)Context manager for a vertically collapsing accordion.
This function wraps accordion.
Parameters
id : Optional[str] = None-
If provided, you can use
input.id()in your server logic to determine which of theaccordion_panels are currently active. The value will correspond to theaccordion_panel’svalueargument. open : Optional[bool | str |list[str]] = None-
A list of
accordion_panelvalues to open (i.e., show) by default. The default value ofNonewill open the firstaccordion_panel. Use a value ofTrueto open all (orFalseto open none) of the items. It’s only possible to open more than one panel whenmultiple=True. multiple : bool = True-
Whether multiple
accordion_panelcan be open at once. class_ : Optional[str] = None-
Additional CSS classes to include on the accordion div.
width : Optional[CssUnit] = None-
Any valid CSS unit; for example, height=“100%”.
height : Optional[CssUnit] = None-
Any valid CSS unit; for example, height=“100%”.
****kwargs** : TagAttrValue = {}-
Attributes to this tag.
Examples
#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400
## file: app.py
from shiny.express import expressify, input, render, ui
@expressify
def my_accordion(**kwargs):
with ui.accordion(**kwargs):
for letter in "ABCDE":
with ui.accordion_panel(f"Section {letter}"):
f"Some narrative for section {letter}"
ui.markdown("#### Single-select accordion")
my_accordion(multiple=False, id="acc_single")
@render.code
def acc_single_val():
return "input.acc_single(): " + str(input.acc_single())
ui.br()
ui.markdown("#### Multi-select accordion")
my_accordion(multiple=True, id="acc_multiple")
@render.code
def acc_multiple_val():
return "input.acc_multiple(): " + str(input.acc_multiple())