Multi-column and row layout

A simple responsive multi-column and row layout. We specify the number of columns/rows to the flex_direction property as a list. The layout will automatically adjust the number of columns/rows based on the screen size.

For details, see the responsive docs page.

Column

rx.flex(
    rx.box(
        bg=rx.color("accent", 3),
        width="100%",
        height="100%",
    ),
    rx.box(
        bg=rx.color("accent", 5),
        width="100%",
        height="100%",
    ),
    rx.box(
        bg=rx.color("accent", 7),
        width="100%",
        height="100%",
    ),
    bg=rx.color("accent", 10),
    spacing="4",
    padding="1em",
    flex_direction=["column", "column", "row"],
    height="600px",
    width="100%",
)
rx.flex(
    rx.box(
        bg=rx.color("accent", 3),
        width="100%",
        height="100%",
    ),
    rx.box(
        bg=rx.color("accent", 5),
        width=["100%", "100%", "50%"],
        height=["50%", "50%", "100%"],
    ),
    rx.box(
        bg=rx.color("accent", 7),
        width="100%",
        height="100%",
    ),
    rx.box(
        bg=rx.color("accent", 9),
        width=["100%", "100%", "50%"],
        height=["50%", "50%", "100%"],
    ),
    bg=rx.color("accent", 10),
    spacing="4",
    padding="1em",
    flex_direction=["column", "column", "row"],
    height="600px",
    width="100%",
)

Row

rx.flex(
    rx.flex(
        rx.box(
            bg=rx.color("accent", 3),
            width=["100%", "100%", "50%"],
            height="100%",
        ),
        rx.box(
            bg=rx.color("accent", 5),
            width=["100%", "100%", "50%"],
            height="100%",
        ),
        width="100%",
        height="100%",
        spacing="4",
        flex_direction=["column", "column", "row"],
    ),
    rx.box(
        bg=rx.color("accent", 7), width="100%", height="50%"
    ),
    rx.box(
        bg=rx.color("accent", 9), width="100%", height="50%"
    ),
    bg=rx.color("accent", 10),
    spacing="4",
    padding="1em",
    flex_direction="column",
    height="600px",
    width="100%",
)