express.ui.accordion
express.ui.accordion(id=None,
open=None,
=True,
multiple=None,
class_=None,
width=None,
height**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_panel
s are currently active. The value will correspond to theaccordion_panel
’svalue
argument. open : Optional[bool | str |
list
[str]] = None-
A list of
accordion_panel
values to open (i.e., show) by default. The default value ofNone
will open the firstaccordion_panel
. Use a value ofTrue
to open all (orFalse
to open none) of the items. It’s only possible to open more than one panel whenmultiple=True
. multiple : bool = True
-
Whether multiple
accordion_panel
can 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())