|
from typing import List, Optional, Tuple |
|
|
|
from .color_triplet import ColorTriplet |
|
from .palette import Palette |
|
|
|
_ColorTuple = Tuple[int, int, int] |
|
|
|
|
|
class TerminalTheme: |
|
"""A color theme used when exporting console content. |
|
|
|
Args: |
|
background (Tuple[int, int, int]): The background color. |
|
foreground (Tuple[int, int, int]): The foreground (text) color. |
|
normal (List[Tuple[int, int, int]]): A list of 8 normal intensity colors. |
|
bright (List[Tuple[int, int, int]], optional): A list of 8 bright colors, or None |
|
to repeat normal intensity. Defaults to None. |
|
""" |
|
|
|
def __init__( |
|
self, |
|
background: _ColorTuple, |
|
foreground: _ColorTuple, |
|
normal: List[_ColorTuple], |
|
bright: Optional[List[_ColorTuple]] = None, |
|
) -> None: |
|
self.background_color = ColorTriplet(*background) |
|
self.foreground_color = ColorTriplet(*foreground) |
|
self.ansi_colors = Palette(normal + (bright or normal)) |
|
|
|
|
|
DEFAULT_TERMINAL_THEME = TerminalTheme( |
|
(255, 255, 255), |
|
(0, 0, 0), |
|
[ |
|
(0, 0, 0), |
|
(128, 0, 0), |
|
(0, 128, 0), |
|
(128, 128, 0), |
|
(0, 0, 128), |
|
(128, 0, 128), |
|
(0, 128, 128), |
|
(192, 192, 192), |
|
], |
|
[ |
|
(128, 128, 128), |
|
(255, 0, 0), |
|
(0, 255, 0), |
|
(255, 255, 0), |
|
(0, 0, 255), |
|
(255, 0, 255), |
|
(0, 255, 255), |
|
(255, 255, 255), |
|
], |
|
) |
|
|
|
MONOKAI = TerminalTheme( |
|
(12, 12, 12), |
|
(217, 217, 217), |
|
[ |
|
(26, 26, 26), |
|
(244, 0, 95), |
|
(152, 224, 36), |
|
(253, 151, 31), |
|
(157, 101, 255), |
|
(244, 0, 95), |
|
(88, 209, 235), |
|
(196, 197, 181), |
|
(98, 94, 76), |
|
], |
|
[ |
|
(244, 0, 95), |
|
(152, 224, 36), |
|
(224, 213, 97), |
|
(157, 101, 255), |
|
(244, 0, 95), |
|
(88, 209, 235), |
|
(246, 246, 239), |
|
], |
|
) |
|
DIMMED_MONOKAI = TerminalTheme( |
|
(25, 25, 25), |
|
(185, 188, 186), |
|
[ |
|
(58, 61, 67), |
|
(190, 63, 72), |
|
(135, 154, 59), |
|
(197, 166, 53), |
|
(79, 118, 161), |
|
(133, 92, 141), |
|
(87, 143, 164), |
|
(185, 188, 186), |
|
(136, 137, 135), |
|
], |
|
[ |
|
(251, 0, 31), |
|
(15, 114, 47), |
|
(196, 112, 51), |
|
(24, 109, 227), |
|
(251, 0, 103), |
|
(46, 112, 109), |
|
(253, 255, 185), |
|
], |
|
) |
|
NIGHT_OWLISH = TerminalTheme( |
|
(255, 255, 255), |
|
(64, 63, 83), |
|
[ |
|
(1, 22, 39), |
|
(211, 66, 62), |
|
(42, 162, 152), |
|
(218, 170, 1), |
|
(72, 118, 214), |
|
(64, 63, 83), |
|
(8, 145, 106), |
|
(122, 129, 129), |
|
(122, 129, 129), |
|
], |
|
[ |
|
(247, 110, 110), |
|
(73, 208, 197), |
|
(218, 194, 107), |
|
(92, 167, 228), |
|
(105, 112, 152), |
|
(0, 201, 144), |
|
(152, 159, 177), |
|
], |
|
) |
|
|
|
SVG_EXPORT_THEME = TerminalTheme( |
|
(41, 41, 41), |
|
(197, 200, 198), |
|
[ |
|
(75, 78, 85), |
|
(204, 85, 90), |
|
(152, 168, 75), |
|
(208, 179, 68), |
|
(96, 138, 177), |
|
(152, 114, 159), |
|
(104, 160, 179), |
|
(197, 200, 198), |
|
(154, 155, 153), |
|
], |
|
[ |
|
(255, 38, 39), |
|
(0, 130, 61), |
|
(208, 132, 66), |
|
(25, 132, 233), |
|
(255, 44, 122), |
|
(57, 130, 128), |
|
(253, 253, 197), |
|
], |
|
) |
|
|