ANSI 主题: 将文本透明度的 ANSI 颜色转换为 Monokai 替代主题 (HeaderTitle 在模糊时会使霓虹灯效果生效)
你检查过关闭的问题吗? (https://GitHub.com/Textualize/textual/issues?q=is%3Aissues+is%3Aclosed) (中文(简体) ). 对
您是否检查了最新版本的文本 ? (https://pypi.org/search/?q=textual) (中文(简体) ). 对
□ 这只虫
在ANSI主题('ansi-dark' /'ansi-light')下,将"text-opacity < 100%`"应用到ANSI有色区域,使得它用Rich's Monokai'DefAULT TERMINAL THEME'而不是终端本身的ANSI调色板的硬码RGB来表示.
这发生在装有 " 标题 " 的盒子外。 'App.Default CSS ' 模糊地淡出:
缩略语 : blur 信头标题{ 文本不透明:50%; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
因此,一个带有"背景:ansi green"在终端的绿色的同时,在聚焦的同时使终端的绿色,但当窗口失去焦点("AppBlur")时,标题翻转到一个固定的"`#98e024"(neon 石灰),它忽略了终端,在应用中没有其他"ansi green"元素相匹配. `text-opacity'是背景上的混合体,需要具体的RGB;ANSI颜色是象征性的,所以它们通过Monokai(绿色=`#98e024")来解决数学.
完整的工作示例( 运行时无需修改, 也不需要终端或交互, 它会驱动 ` AppBlur' 本身, 并打印给定的样式 ):
[Python]
导入 Ayncio
从文本导入事件
从正文. app导入 App, ComposeResult
从文字。 部件导入信头
类 Repro( App) :
CSS = “标题{背景:ansi green;颜色:ansi black;}”
def 在 mount(自)- > 无:
自动。 主题 = "Asi-dark"
def 作曲( 自己) - > 作曲续集 :
输出页眉 ()
标题 style( app) :
用于app.screen. compositor.render strips()[0]中的片段:
if side.text.strip () and side.text.strip ()!="QQ" :
返回区段。 样式
async def 主线( ):
app = Repro( )
以 app.run test () 作为飞行员同步 :
等待 pilot. 暂停 ()
打印 (“ 焦点 ” ), 标题 style( app)
app.post 消息(活动. AppBlur () (英语).
等待 pilot. 暂停 ()
打印 ("blurred:", 标题 style(app))
ayncio.run(主要())输出 :
焦点:颜色( 0) 在颜色(2)
模糊: # 98e024 上的 # 597d1f被聚焦,标题是象征性的ANSI("彩色(0)上为颜色(2)"),所以终点站会选择阴影. 模糊,被光栅化为Monokai RGB (`#98e024').
** expected:**在一个ANSI主题下,标题停留在终端的调色板上以模糊(要么是完整的ANSI绿色,要么是真正被淡化的ANSI颜色)来表示,而不是切换到固定的去平板RGB.
** 实际:** 它使“98e024 ” 、 “富人”的Monokai绿色。
ANSI主题下ANSI颜色部件上的“文本不透明”/不透明混合物不具有标题特性。 标题只是用户最早看到它的地方,因为默认模糊的规则会触发每次焦点变化.
工作,对于任何在这里降落的人, 重新拥有完全不透明的权利:
缩略语 屏幕: blur 标题标题{ 文本不透明:100%; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
< 细节>
. . . . . . .内容来源: Textualize/textual