# 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 from textual.theme import Theme def get_amber_terminal_theme(): """Amber CRT theme with compensated brightness for blending.""" return Theme( name="amber-terminal", background=Color.parse("#000000"), # pure black primary=Color.parse("#ffb733"), # bright amber secondary=Color.parse("#e69500"), # strong amber success=Color.parse("#ffb733"), warning=Color.parse("#ffff66"), error=Color.parse("#ff3300"), surface=Color.parse("#49331a"), # brighter brown for blending ) AMBER_TERMINAL_CSS = """ Screen { align: center middle; background: #000000; /* force black */ color: #ffb733; /* force amber text */ } .widget { border: tall #ffb733; /* force amber border */ background: #3a1f00; /* compensated surface */ width: 80%; } * { font-family: "Courier New", monospace; } """