# Copyright (C) 2025 James Brotosky, Brandon Wickline # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from textual.color import Color def get_retro_terminal_theme(): from textual.theme import Theme return Theme( name="retro-terminal", background=Color.parse("#000000"), primary=Color.parse("#00ff00"), secondary=Color.parse("#00aa00"), success=Color.parse("#00ff00"), warning=Color.parse("#ffff00"), error=Color.parse("#ff0000"), surface=Color.parse("#071802"), ) RETRO_TERMINAL_CSS = """ /* Retro terminal CRT effect */ Screen { align: center middle; background: $background; color: $text; } /* Blocky, pixelated widgets */ .widget { border: tall $primary; background: $surface; width: 80%; } /* Monospaced font */ * { font-family: "Courier New", monospace; } """