mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
[tests] Working on an integration test for the vertical layout
This commit is contained in:
46
sandbox/color_names.py
Normal file
46
sandbox/color_names.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import rich.repr
|
||||
from rich.align import Align
|
||||
from rich.console import RenderableType
|
||||
from rich.panel import Panel
|
||||
from rich.pretty import Pretty
|
||||
|
||||
from textual._color_constants import COLOR_NAME_TO_RGB
|
||||
from textual.app import App, ComposeResult
|
||||
from textual.widget import Widget
|
||||
from textual.widgets import Placeholder
|
||||
|
||||
|
||||
@rich.repr.auto(angular=False)
|
||||
class ColorDisplay(Widget, can_focus=True):
|
||||
def render(self) -> RenderableType:
|
||||
return Panel(
|
||||
Align.center(
|
||||
Pretty(self, no_wrap=True, overflow="ellipsis"), vertical="middle"
|
||||
),
|
||||
title=self.name,
|
||||
border_style="none",
|
||||
)
|
||||
|
||||
|
||||
class ColorNames(App):
|
||||
CSS = """
|
||||
ColorDisplay {
|
||||
height: 1;
|
||||
}
|
||||
"""
|
||||
|
||||
def on_mount(self):
|
||||
self.bind("q", "quit")
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
for color_name, color in COLOR_NAME_TO_RGB.items():
|
||||
color_placeholder = ColorDisplay(name=color_name)
|
||||
is_dark_color = sum(color) < 400
|
||||
color_placeholder.styles.color = "white" if is_dark_color else "black"
|
||||
color_placeholder.styles.background = color_name
|
||||
yield color_placeholder
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
color_name_app = ColorNames()
|
||||
color_name_app.run()
|
||||
Reference in New Issue
Block a user