Skip to content

Display

The display property defines whether a widget is displayed or not.

Syntax

display: [none|block];

Values

Value Description
block (default) Display the widget as normal
none The widget not be displayed, and space will no longer be reserved for it.

Example

Note that the second widget is hidden by adding the "remove" class which sets the display style to None.

from textual.app import App
from textual.widgets import Static


class DisplayApp(App):
    def compose(self):
        yield Static("Widget 1")
        yield Static("Widget 2", classes="remove")
        yield Static("Widget 3")


app = DisplayApp(css_path="display.css")
Screen {
    background: green;
}
Static {             
    height: 5;        
    background: white;        
    color: blue;   
    border: heavy blue;     
}
Static.remove {
    display: none;
}

DisplayApp ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃Widget 1 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃Widget 3 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

CSS

/* Widget is on screen */
display: block;

/* Widget is not on the screen */
display: none;

Python

# Hide the widget
self.styles.display = "none"

# Show the widget again
self.styles.display = "block"

There is also a shortcut to show / hide a widget. The display property on Widget may be set to True or False to show or hide the widget.

# Hide the widget
widget.display = False

# Show the widget
widget.display = True