【问题标题】:How to access/override "vs-dark" or "vs" uiTheme colors如何访问/覆盖“vs-dark”或“vs”uiTheme颜色
【发布时间】:2019-12-19 11:42:17
【问题描述】:

当 VSCode 将主题归为两个 uiTheme 时,会有一些严重的主题限制: “vs”(适用于所有浅色主题)或“vs-dark”(适用于所有深色主题)。

这不允许人们制作不属于任一类别的 VSCode 颜色主题。我想知道如何通过自定义扩展访问和覆盖 uiTheme 颜色以允许更有趣的颜色主题。也许,这可以通过自定义 CSS 来完成?如果是这样,我希望有人能给我一个如何做到这一点的例子。

编辑:看起来这个资源存储在:

C:/Users/micha/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.main.css

看起来我需要一个带有vscode-custom-css 扩展名的css。但是,我不知道如何确定要自定义的资源的名称。我知道我可能需要在 VSCode 中使用开发者模式。但是,我不知道该怎么做。

【问题讨论】:

    标签: css visual-studio-code themes


    【解决方案1】:

    对于custom themesdark vs light主要有以下含义:

    • 使用了theme colors 的基本集。自定义主题会覆盖这些基色

    • 使用哪种变体的图标(适用于较暗背景的图标与专为较浅背景光设计的图标)。主题也可以自定义一些图标颜色

    • 当用户选择主题时,会在哪个类别主题中列出(dark vs light

    但是darklight 决不会限制自定义主题可以或不能使用的颜色。例如,light 主题可以将每种 UI 颜色设置为各种深灰色,也可以使用霓虹彩虹色。

    简而言之:除了darklight 之外,您不需要创建新的主题类别,也不需要使用自定义css。

    【讨论】:

    • 是的,我已经知道预定义的深色/浅色 UI 主题元素是什么;因为,我已经发布了一个扩展主题(使用深色 UI 基础主题)。看起来有一个扩展完全符合我的要求:github.com/be5invis/vscode-custom-css。我只需要看看它是否可以包含在我自己的主题中,而不依赖于 vscode 自定义 CSS 扩展。
    • 你具体想做什么?以编程方式设置颜色?
    • VSCode 主题具有某些不可主题化的元素颜色。这些不可主题的元素假定主题的所有组成部分要么是“黑暗”,要么是“光明”。因此,设计具有“深色”侧边栏和“深色”面板以及浅色编辑器背景或其他方式的主题是非常困难的。代码折叠图标、拆分编辑器/拆分终端图标、命令调色板快捷键图标颜色等非主题元素都包含在深色或浅色兼容的基本“集”中,无法混合和匹配或独立定义。
    • 我需要帮助来通过我的主题扩展(与 VSCode-Custom-CSS 扩展中使用的方法相同)控制这些非主题元素的颜色。我唯一能做的就是尝试弄清楚这个扩展是如何做到的,或者在这里询问如何做到这一点。例如,如何更改我的主题中的代码折叠图标的颜色。
    【解决方案2】:

    我能够弄清楚这一切。我尝试了 vscode-custom-cssvscode-vibrancy VScode 扩展,它们都允许我注入我自己的自定义 CSS 代码来修改通常无法自定义的 VSCode 部分。我从替换 VSCode 的代码折叠图标开始。然后我最终使用了 Vibrancy 扩展程序的代码,因为它没有像其他扩展程序那样在 VSCode 中产生“安装损坏”消息。此外,它还具有活力(模糊透明度)功能作为奖励。然后我将该代码(MIT 开源)集成到我自己的主题扩展中。

    我使用 VSCode 的开发者模式来检查它现有的 CSS;并且,制作自定义 CSS。下面是我使用的 CSS:

    body {
      background: transparent !important;
    }
    .monaco-editor.vs-dark .margin-view-overlays .folding,
    body {
    background-image: url(../themes/images/arrow_down.png);
    }
    .monaco-editor.vs-dark .margin-view-overlays .folding.collapsed,
    body {
    background-image: url(../themes/images/arrow_right.png);
    }
    
    .monaco-editor .inline-folded,
    body {
    background-image: url(../themes/images/fold.png);
    }

    这是我的 VSCode 扩展的链接:

    MKANET Theme V2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2012-01-03
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多