diff --git a/docs/examples/styles/scrollbar_size.py b/docs/examples/styles/scrollbar_size.py index bf4390c31..971a65a2a 100644 --- a/docs/examples/styles/scrollbar_size.py +++ b/docs/examples/styles/scrollbar_size.py @@ -1,5 +1,5 @@ from textual.app import App -from textual.containers import Container +from textual.containers import ScrollableContainer from textual.widgets import Label TEXT = """I must not fear. @@ -14,7 +14,7 @@ Where the fear has gone there will be nothing. Only I will remain. class ScrollbarApp(App): def compose(self): - yield Container(Label(TEXT * 5), classes="panel") + yield ScrollableContainer(Label(TEXT * 5), classes="panel") app = ScrollbarApp(css_path="scrollbar_size.css") diff --git a/docs/examples/styles/scrollbar_size2.css b/docs/examples/styles/scrollbar_size2.css index 6054ceed1..f361d940b 100644 --- a/docs/examples/styles/scrollbar_size2.css +++ b/docs/examples/styles/scrollbar_size2.css @@ -1,4 +1,4 @@ -Container { +ScrollableContainer { width: 1fr; } diff --git a/docs/examples/styles/scrollbar_size2.py b/docs/examples/styles/scrollbar_size2.py index 66bd7e397..88dbba2e4 100644 --- a/docs/examples/styles/scrollbar_size2.py +++ b/docs/examples/styles/scrollbar_size2.py @@ -1,5 +1,5 @@ from textual.app import App -from textual.containers import Horizontal, Container +from textual.containers import Horizontal, ScrollableContainer from textual.widgets import Label TEXT = """I must not fear. @@ -15,10 +15,12 @@ Where the fear has gone there will be nothing. Only I will remain. class ScrollbarApp(App): def compose(self): yield Horizontal( - Container(Label(TEXT * 5), id="v1"), - Container(Label(TEXT * 5), id="v2"), - Container(Label(TEXT * 5), id="v3"), + ScrollableContainer(Label(TEXT * 5), id="v1"), + ScrollableContainer(Label(TEXT * 5), id="v2"), + ScrollableContainer(Label(TEXT * 5), id="v3"), ) app = ScrollbarApp(css_path="scrollbar_size2.css") +if __name__ == "__main__": + app.run() diff --git a/docs/examples/styles/scrollbars.css b/docs/examples/styles/scrollbars.css index b94952274..925b721f0 100644 --- a/docs/examples/styles/scrollbars.css +++ b/docs/examples/styles/scrollbars.css @@ -9,6 +9,6 @@ Label { scrollbar-corner-color: blue; } -Horizontal > Container { +Horizontal > ScrollableContainer { width: 50%; } diff --git a/docs/examples/styles/scrollbars.py b/docs/examples/styles/scrollbars.py index 371027ecc..3a6a45570 100644 --- a/docs/examples/styles/scrollbars.py +++ b/docs/examples/styles/scrollbars.py @@ -1,5 +1,5 @@ from textual.app import App -from textual.containers import Horizontal, Container +from textual.containers import Horizontal, ScrollableContainer from textual.widgets import Label TEXT = """I must not fear. @@ -15,9 +15,11 @@ Where the fear has gone there will be nothing. Only I will remain. class ScrollbarApp(App): def compose(self): yield Horizontal( - Container(Label(TEXT * 10)), - Container(Label(TEXT * 10), classes="right"), + ScrollableContainer(Label(TEXT * 10)), + ScrollableContainer(Label(TEXT * 10), classes="right"), ) app = ScrollbarApp(css_path="scrollbars.css") +if __name__ == "__main__": + app.run() diff --git a/docs/examples/widgets/content_switcher.py b/docs/examples/widgets/content_switcher.py index 1a774a805..f9197a299 100644 --- a/docs/examples/widgets/content_switcher.py +++ b/docs/examples/widgets/content_switcher.py @@ -1,5 +1,7 @@ +from rich.align import VerticalCenter + from textual.app import App, ComposeResult -from textual.containers import Horizontal +from textual.containers import Horizontal, VerticalScroll from textual.widgets import Button, ContentSwitcher, DataTable, Markdown MARKDOWN_EXAMPLE = """# Three Flavours Cornetto @@ -37,7 +39,8 @@ class ContentSwitcherApp(App[None]): with ContentSwitcher(initial="data-table"): # (4)! yield DataTable(id="data-table") - yield Markdown(MARKDOWN_EXAMPLE, id="markdown") + with VerticalScroll(id="markdown"): + yield Markdown(MARKDOWN_EXAMPLE) def on_button_pressed(self, event: Button.Pressed) -> None: self.query_one(ContentSwitcher).current = event.button.id # (5)! diff --git a/src/textual/cli/previews/easing.py b/src/textual/cli/previews/easing.py index e593bbf93..f533fcf86 100644 --- a/src/textual/cli/previews/easing.py +++ b/src/textual/cli/previews/easing.py @@ -79,7 +79,7 @@ class EasingApp(App): yield duration_input with Horizontal(): yield self.animated_bar - yield Container(self.opacity_widget, id="other") + yield VerticalScroll(self.opacity_widget, id="other") yield Footer() def on_button_pressed(self, event: Button.Pressed) -> None: diff --git a/tests/snapshot_tests/snapshot_apps/auto-table.py b/tests/snapshot_tests/snapshot_apps/auto-table.py index 9e7f70b00..54c215fbc 100644 --- a/tests/snapshot_tests/snapshot_apps/auto-table.py +++ b/tests/snapshot_tests/snapshot_apps/auto-table.py @@ -2,7 +2,7 @@ from os import urandom from random import randrange from textual.app import App -from textual.containers import Container, Horizontal, Vertical +from textual.containers import Container, Horizontal, ScrollableContainer, Vertical from textual.screen import Screen from textual.widgets import DataTable, Header, Label @@ -109,7 +109,7 @@ class Rendering(LabeledBox): super().__init__( "", - Container( + ScrollableContainer( Horizontal(self.__info, id="issue-info"), Horizontal(*[Status(str(i)) for i in range(4)], id="statuses-box"), id="issues-box",