Modern Text User Interface framework for building cross-platform terminal and web applications with Python
Overall
score
93%
{
"context": "This criteria evaluates how well the engineer uses Textual's CSS-like styling system (TCSS) to implement a status card widget with dynamic styling. The focus is on proper use of CSS properties, styling mechanisms, and reactive style updates.",
"type": "weighted_checklist",
"checklist": [
{
"name": "CSS Definition Method",
"description": "Uses Textual's CSS styling mechanism (either CSS class attribute, CSS_PATH, inline CSS string, or styles object) to define the widget's base styles rather than hardcoding visual properties in Python code.",
"max_score": 15
},
{
"name": "Border Styling",
"description": "Correctly uses TCSS border properties (border, border-title, or similar) to create visible, styled borders with appropriate colors for each status type.",
"max_score": 15
},
{
"name": "Color Properties",
"description": "Properly uses TCSS color properties (color for text, background for backgrounds) to apply status-specific colors (green for success, yellow/amber for warning, red for error, blue for info).",
"max_score": 20
},
{
"name": "Layout Properties",
"description": "Uses TCSS layout properties (width, height, padding) to achieve the specified dimensions (40x8 cells) and spacing requirements.",
"max_score": 15
},
{
"name": "Text Alignment",
"description": "Uses TCSS text-align or content-align properties to center the text within the card as specified.",
"max_score": 10
},
{
"name": "CSS Classes",
"description": "Uses CSS class selectors or pseudo-classes to organize status-specific styles, enabling clean separation between different status types.",
"max_score": 10
},
{
"name": "Dynamic Style Updates",
"description": "Implements dynamic style switching using Textual's reactive system (add_class/remove_class, set_class, or reactive attributes) rather than recreating widgets or using non-Textual methods.",
"max_score": 15
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-textualevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10