A Reflex custom component resizable-panels.
pip install reflex-resizable-panels
from reflex import rx
from reflex_resizable_panels import resizable_panels as rzp
def index():
return rx.box(
rzp.group(
rzp.panel("Header", default_size=20, min_size=20),
rzp.handle(),
rzp.panel(
"Content",
background_color=rx.color("gray", 10),
default_size=80,
min_size=20,
),
),
width="100vw",
height="100vh",
)
children
: List ofPanel
andHandle
components.auto_save_id
:str
- ID to save the layout in LocalStorage.direction
:Literal["horizontal", "vertical"]
- Direction of the panels. Default ishorizontal
.
children
:Component
- Content of the panel.default_size
:int
- Default size of the panels.min_size
:int
- Minimum size of the panels. Default is10
.max_size
:int
- Maximum size of the panels. Default is100
.collapsible
:bool
- IfTrue
, panel can be collapsed by resizing belowmin_size
.collapsed_size
: The size of the panel when it is collapsed. Default is0
.order
:int
- Order of the panel in the group. Required when using panels inrx.cond
Disclaimer:
Resizable panels don't work when used inside
rx.container
. However,rx.container
inside resizable panels do work.