1

rich项目允许指定控制台标记,包括文本颜色。然而,似乎任何颜色选择都需要硬编码,例如使用红色表示重要消息:

from rich import print

print('[red bold]This is a very important notification[/]')

这在具有浅色背景色(例如日晒光)的终端上看起来不错:

浅色背景上的红色

然而,当用户的背景颜色较深时,会使其难以阅读(例如 Solarized dark):

深色背景上的红色

但是,作为使用 的命令行应用程序的开发人员rich,我不能为用户的终端假设任何背景颜色,因此硬编码特定颜色似乎不是一个好主意(我也不想修改背景颜色,因为用户可能有充分的理由选择它)。所以我想知道是否rich提供背景感知颜色选择(例如通过主题,所以我可以指定类似的东西category='important')?

4

1 回答 1

0

终端中的前 16 种颜色(包括红色)是由终端软件定义的,通常被选择为可以很好地协同工作。例如,在 MacOS 上的 iTerm 中,这里是红底黑字。

终端中黑底红字的例子

黑底红字在几乎所有终端上都可以完美读取。一个值得注意的例外是经典的 Windows 终端(我猜你正在使用它),它有一些经过深思熟虑的调色板。

关于硬编码颜色,您可以通过主题创建主题别名,以便您可以使用"[important] message"而不是"[bold red] message"

于 2021-09-27T19:59:15.530 回答