mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
56 lines
1.0 KiB
Python
56 lines
1.0 KiB
Python
from textual.app import App
|
|
from textual.layout import Vertical, Center
|
|
from textual.widgets import Static
|
|
|
|
|
|
class CenterApp(App):
|
|
DEFAULT_CSS = """
|
|
|
|
#sidebar {
|
|
dock: left;
|
|
width: 32;
|
|
height: 100%;
|
|
border-right: vkey $primary;
|
|
}
|
|
|
|
#bottombar {
|
|
dock: bottom;
|
|
height: 12;
|
|
width: 100%;
|
|
border-top: hkey $primary;
|
|
}
|
|
|
|
#hello {
|
|
border: wide $primary;
|
|
width: 40;
|
|
height: 16;
|
|
margin: 2 4;
|
|
}
|
|
|
|
#sidebar.hidden {
|
|
width: 0;
|
|
}
|
|
|
|
Static {
|
|
background: $panel;
|
|
color: $text-panel;
|
|
content-align: center middle;
|
|
}
|
|
|
|
"""
|
|
|
|
def on_mount(self) -> None:
|
|
self.bind("t", "toggle_class('#sidebar', 'hidden')")
|
|
|
|
def compose(self):
|
|
yield Static("Sidebar", id="sidebar")
|
|
yield Vertical(
|
|
Static("Bottom bar", id="bottombar"),
|
|
Center(
|
|
Static("Hello World!", id="hello"),
|
|
),
|
|
)
|
|
|
|
|
|
app = CenterApp()
|