Skip to content

textual.containers

Container widgets for quick styling.

With the exception of Center and Middle containers will fill all of the space in the parent widget.

Center

Center(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

A container which aligns children on the X axis.

Container

Container(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

Simple container widget, with vertical layout.

Grid

Grid(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

A container with grid layout.

Horizontal

Horizontal(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

An expanding container with horizontal layout and no scrollbars.

HorizontalGroup

HorizontalGroup(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

A non-expanding container with horizontal layout and no scrollbars.

HorizontalScroll

HorizontalScroll(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    can_focus=None,
    can_focus_children=None,
    can_maximize=None
)

Bases: ScrollableContainer

A container with horizontal layout and an automatic scrollbar on the X axis.

ItemGrid

ItemGrid(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    min_column_width=None,
    stretch_height=True,
    regular=False
)

Bases: Widget

A container with grid layout and automatic columns.

Parameters:

Name Type Description Default

*children

Widget

Child widgets.

()

name

str | None

The name of the widget.

None

id

str | None

The ID of the widget in the DOM.

None

classes

str | None

The CSS classes for the widget.

None

disabled

bool

Whether the widget is disabled or not.

False

stretch_height

bool

Expand the height of widgets to the row height.

True

min_column_width

int | None

The smallest permitted column width.

None

regular

bool

All rows should have the same number of items.

False

Middle

Middle(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

A container which aligns children on the Y axis.

Right

Right(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

A container which aligns children on the X axis.

ScrollableContainer

ScrollableContainer(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    can_focus=None,
    can_focus_children=None,
    can_maximize=None
)

Bases: Widget

A scrollable container with vertical layout, and auto scrollbars on both axis.

Parameters:

Name Type Description Default

*children

Widget

Child widgets.

()

name

str | None

The name of the widget.

None

id

str | None

The ID of the widget in the DOM.

None

classes

str | None

The CSS classes for the widget.

None

disabled

bool

Whether the widget is disabled or not.

False

can_focus

bool | None

Can this container be focused?

None

can_focus_children

bool | None

Can this container's children be focused?

None

can_maximized

Allow this container to maximize? None to use default logic.,

required

BINDINGS class-attribute

BINDINGS = [
    Binding("up", "scroll_up", "Scroll Up", show=False),
    Binding(
        "down", "scroll_down", "Scroll Down", show=False
    ),
    Binding(
        "left", "scroll_left", "Scroll Left", show=False
    ),
    Binding(
        "right", "scroll_right", "Scroll Right", show=False
    ),
    Binding(
        "home", "scroll_home", "Scroll Home", show=False
    ),
    Binding("end", "scroll_end", "Scroll End", show=False),
    Binding("pageup", "page_up", "Page Up", show=False),
    Binding(
        "pagedown", "page_down", "Page Down", show=False
    ),
    Binding(
        "ctrl+pageup", "page_left", "Page Left", show=False
    ),
    Binding(
        "ctrl+pagedown",
        "page_right",
        "Page Right",
        show=False,
    ),
]

Keyboard bindings for scrollable containers.

Key(s) Description
up Scroll up, if vertical scrolling is available.
down Scroll down, if vertical scrolling is available.
left Scroll left, if horizontal scrolling is available.
right Scroll right, if horizontal scrolling is available.
home Scroll to the home position, if scrolling is available.
end Scroll to the end position, if scrolling is available.
pageup Scroll up one page, if vertical scrolling is available.
pagedown Scroll down one page, if vertical scrolling is available.
ctrl+pageup Scroll left one page, if horizontal scrolling is available.
ctrl+pagedown Scroll right one page, if horizontal scrolling is available.

Vertical

Vertical(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

An expanding container with vertical layout and no scrollbars.

VerticalGroup

VerticalGroup(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    markup=True
)

Bases: Widget

A non-expanding container with vertical layout and no scrollbars.

VerticalScroll

VerticalScroll(
    *children,
    name=None,
    id=None,
    classes=None,
    disabled=False,
    can_focus=None,
    can_focus_children=None,
    can_maximize=None
)

Bases: ScrollableContainer

A container with vertical layout and an automatic scrollbar on the Y axis.