文档 主题

Sublime Merge 界面的外观由主题控制。术语主题严格指 UI 的外观 - 按钮、提交列表、位置栏、命令面板等等。差异的突出显示由 颜色方案 和语法定义的组合控制。

Sublime Merge 的主题引擎基于光栅图形。使用 PNG 来防止纹理退化并提供完整的 alpha 控制。UI 中的每个元素最多可以应用四层纹理或填充,并具有控制不透明度和填充的属性。每个元素上设置的属性可以根据用户交互和设置进行条件更改。

Sublime Merge 主题通过 .sublime-theme 格式实现。它是一种 JSON 格式,用于指定匹配元素并修改其外观的规则。

示例

以下是 .sublime-theme 文件格式的示例。一个完整的主题将有更多规则来涵盖 UI 中使用的所有元素。

{
                "variables":
                {
                    "light_gray": "rgb(240, 240, 240)"
                },
                "rules":
                [
                // Set up the textures for a button
                {
                    "class": "button_control",
                    "layer0.tint": "#000",
                    "layer0.opacity": 1.0,
                    "layer1.texture": "Theme - Example/textures/button_background.png",
                    "layer1.inner_margin": 4,
                    "layer1.opacity": 1.0,
                    "layer2.texture": "Theme - Example/textures/button_highlight.png",
                    "layer2.inner_margin": 4,
                    "layer2.opacity": 0.0,
                    "content_margin": [4, 8, 4, 8]
                },
                // Show the highlight texture when the button is hovered
                {
                    "class": "button_control",
                    "attributes": ["hover"],
                    "layer2.opacity": 1.0
                },
                // Basic text label style
                {
                    "class": "label_control",
                    "fg": "var(light_gray)",
                    "font.bold": true
                },
                // Brighten labels contained in a button on hover
                {
                    "class": "label_control",
                    "parents": [{"class": "button_control", "attributes": ["hover"]}],
                    "fg": "white"
                }
                ]
            }

术语

主题是一个 JSON 对象,它指定规则,以及可选的变量。每个规则对象包含一个 class 键,用于匹配元素。除了 class 之外,还可以通过指定 attributessettingsparentsplatforms 键来进一步限制匹配。属性会影响元素的外观或行为。

变量允许在不同的规则中重复使用值。变量可以包含任何类型的语法,但只能由规则中的顶级键引用。

大多数元素只有一个类名,尽管有些元素有多个类名,以允许通用和特定样式。例如,expand_all_diff_control 类可用于设置展开所有按钮的样式,但 expand_all_diff_control untracked 可用于仅针对未跟踪文件的展开所有按钮。多个 class 值用空格分隔。当规则指定多个类名时,所有类名都必须存在于元素上,规则才会应用。

attributes 由 Sublime Merge 设置,并指示用户交互的状态,或有关元素性质的其他信息。该值是一个字符串数组。示例包括 "hover""pressed""highlighted"

settings 是用户控制的值,可以在运行时更改。该值是一个字符串数组,这些字符串是来自 .sublime-settings 文件的布尔设置的名称。要检查 false 值,请在设置名称前添加 ! 主题还可以创建自己的设置,以允许用户更改样式。

parents 键是一个对象数组,指定必须在父元素中匹配的 classattributes

platforms 键是一个字符串数组,指定要将规则应用到的操作系统。有效选项包括 "osx""windows""linux"

属性是指 JSON 对象中的所有其他键。某些属性在所有元素上都可用,而其他属性则特定于单个元素。

一般信息

以下部分讨论有关图像的信息以及如何指定样式。

特异性

与 CSS 不同,Sublime Merge 主题在将规则应用于元素时不会进行特异性匹配。所有规则都按顺序针对每个元素进行测试。随后匹配的规则将覆盖先前规则的属性。

纹理图像

主题中的所有纹理都使用 PNG 图像指定。每个纹理应以“正常”DPI 保存,其中文件中的每个像素都将映射到一个设备像素。主题定义中的所有文件路径都应引用正常 DPI 版本。

每个纹理的第二个版本也应该以两倍的 DPI 包含,并在扩展名之前在文件名中添加 @2x。Sublime Merge 将在高 DPI 屏幕上显示时自动使用 @2x 版本。也可以为运行在 300% 或更高比例的屏幕上指定纹理的 @3x 变体。

目前不支持 SVG 图像。

尺寸

主题中引用尺寸的整数单位始终以设备无关像素 (DIP) 为单位。Sublime Merge 会根据屏幕密度自动处理缩放 UI 元素。

填充和边距

填充和边距可以通过三种方式之一指定

  • 单个整数值 - 相同的值应用于左侧、顶部、右侧和底部
  • 两个整数的数组 - 第一个值应用于左侧和顶部,而第二个值应用于右侧和底部
  • 四个整数的数组 - 值按顺序应用于左侧、顶部、右侧和底部

变量

可重用变量可以通过顶级键 "variables" 下的 JSON 对象定义。变量名称是字符串,但值可以是字符串、数字、布尔值、数组或对象。使用变量需要指定格式为 var(example_variable_name) 的字符串。

{
                "variables":
                {
                    "light_gray": "rgb(240, 240, 240)"
                },
                "rules":
                [
                {
                    "class": "label_control",
                    "fg": "var(light_gray)"
                }
                ]
            }

变量可以用作任何 属性 的值,但变量必须是整个值,不能嵌入在另一个变量中。此规则的唯一例外是变量可以用作 CSS color() mod 函数的基本颜色。

颜色

主题中的颜色现在可以使用 CSS 语法指定,如 minihtml 所支持的那样。这包括对十六进制、rgb()hsl()、变量和颜色 mod 函数的支持。此外,所有从颜色方案派生的 预定义变量 都可供使用。

白色,以十六进制表示

#fff

白色,使用 rgb() 函数表示法

rgb(255, 255, 255)

50% 透明度白色,使用 hsla() 函数表示法

hsla(0, 100%, 100%, 0.5)

颜色方案中定义的最接近红色的颜色

var(--redish)

颜色方案中定义的最接近红色的颜色,透明度为 50%

color(var(--redish) a(0.5))

从颜色方案派生的颜色始终基于 Diff.sublime-settings 中定义的颜色方案。

属性

属性指定为字符串数组。每个字符串都是一个属性名称。要检查属性是否存在,请在名称前添加 !

以下属性是所有元素共有的

悬停
每当用户将鼠标悬停在元素上时设置

亮度

虽然并非所有元素都可用,但许多元素都具有根据当前颜色方案的近似亮度设置的属性。大多数元素的属性根据全局颜色方案设置。但是,选项卡和选项卡背景的属性根据所选视图的特定颜色方案设置。

属性根据背景颜色的 V 值分配,当以 HSV 颜色表示时。

file_light
V0.60-1.00
file_medium
V0.30-0.59
file_medium_dark
V0.10-0.29
file_dark
V0.00-0.09

设置

某些 Sublime Merge 设置旨在影响 UI。主题应尊重这些设置并根据这些设置更改元素。

overlay_scroll_bars
这会影响滚动条的样式 - 通常它们应该是半透明的,并且 scroll_area_controloverlay 属性应设置为 true

属性

.sublime-theme 文件的 "rules" 键是一个 JSON 数组,其中包含描述如何设置 UI 元素样式的对象。

图层属性

UI 中的许多元素支持最多四个纹理图层,用于显示填充颜色和光栅图形。

layer0.*
元素的最底部纹理 图层
layer1.*
元素的第二个纹理 图层
layer2.*
元素的第三个纹理 图层
layer3.*
元素的第四个纹理 图层
hit_test_level
一个浮点值,用于设置像素的所需不透明度,以便单击被视为“命中”。
content_margin
内容周围的 边距

每个图层都以 layer#.sub-key 格式具有点分隔的子键。有效的子键包括

layer#.opacity

一个从 0.01.0 的浮点值,用于控制图层的母版不透明度。

示例:0.9
layer#.tint

要应用于图层的填充颜色的 颜色值

示例:[255, 0, 0, 127]
layer#.texture

相对于 Packages/ 文件夹的 PNG 图像文件路径的字符串。

示例:"Theme - Merge/button.png"
layer#.inner_margin

纹理图像通过切分成 9 个网格(使用四条线)来拉伸以适应元素。请参阅 填充和边距 以了解用于指定用于创建切片的边距的有效格式。

示例:[5, 2, 5, 2]
layer#.draw_center

一个布尔值,用于控制是否绘制通过 layer#.inner_margin 创建的 9 个网格的中心矩形。这是一种优化,可以跳过未使用的纹理部分。

示例:false
layer#.repeat

一个布尔值,用于控制纹理是重复还是拉伸。

示例:false

值动画

由浮点数指定的属性可以在一段时间内进行动画处理。动画不是通过提供单个数值来指定的,而是通过包含动画详细信息的对象来指定的。值动画主要用于随时间改变不透明度。 对象键是

target

一个从 0.01.0 的浮点值,用于控制目标值

示例:1.0
speed

一个大于或等于 1.0 的浮点值,用于控制动画的相对持续时间

示例:1.5
interpolation

一个可选字符串,允许指定使用 smoothstep 函数而不是默认的线性函数。

默认值:"linear"
示例:"smoothstep"

纹理动画

layer#.texture 子键可以是一个对象,用于指定基于两个或多个 PNG 图像的动画。对象键是

keyframes

一个字符串数组,包含指向 PNG 图像的路径,按顺序排列

示例:["Theme - Merge/spinner.png", "Theme - Merge/spinner1.png"]
loop

一个可选布尔值,用于控制动画是否应该重复

默认值:false
示例:true
frame_time

一个可选浮点数,用于指定每个帧应该显示多长时间。1.0 代表 1 秒。

默认值:0.0333 (30 fps)
示例:0.0166 (60 fps)

纹理着色属性

某些元素具有可用的着色值,该值由当前配色方案的背景设置。着色可以修改并应用于 layer#.texture 图像。

tint_index

控制将着色应用于哪个图层。必须是 03 之间的整数。

tint_modifier

一个包含四个整数的数组,范围为 0255。前三个与着色颜色中的 RGB 值混合,第四个值指定要应用这些 RGB 修改器值的多少。

间距属性

一些控件用于控制元素在水平或垂直线上的布局。它们支持以下属性

spacing
一个整数,指定元素之间的间距

最小尺寸属性

一些容器控件允许指定最小尺寸,以便对齐控件。它们支持以下属性

min_size
一个包含两个整数的数组,指定最小宽度和高度

标签属性

标签元素允许设置以下属性

fg
用于标签文本的 颜色值

字体属性

某些文本元素允许设置以下字体属性

font.face
字体名称
font.size
一个整数点大小
font.bold
一个布尔值,表示字体是否应该加粗
font.italic
一个布尔值,表示字体是否应该倾斜

阴影属性

一些文本元素允许设置以下属性

shadow_color
用于文本阴影的 颜色值
shadow_offset
一个包含阴影的 X 和 Y 偏移量的 2 元素数组

过滤器标签属性

快速面板中使用的标签根据选择和匹配进行颜色控制

fg
未选中、未匹配文本的 颜色值
match_fg
未选中、匹配文本的 颜色值
bg
未选中行的背景的 颜色值
selected_fg
选中、未匹配文本的 颜色值
selected_match_fg
选中、匹配文本的 颜色值
bg
选中行的背景的 颜色值
font.face
字体名称
font.size
一个整数点大小

数据表属性

基于行的表格提供以下属性

dark_content
如果背景是深色的 - 用于为滚动条设置 dark 属性
row_padding
添加到每一行的填充,使用 填充和边距 中描述的格式之一

样式化容器属性

某些标签和容器允许对它们的外观进行额外的控制。它们支持以下属性

border_color
标签/容器边框的颜色值
background_color
标签/容器背景的颜色值
border_width
表示边框线宽度的值。可以与边距相同的方式指定。
border_radius
表示边框圆角的值。可以与边距相同的方式指定。

图标属性

图标控件支持以下属性

content_margin
对于图标,边距指定尺寸

元素

以下是构成 Sublime Merge UI 的所有元素的完整列表,以及支持的属性和特性。

窗口

title_bar

仅在 OS X 10.10+ 上支持。

属性

fg
用于窗口标题文本的颜色值
bg
用于标题栏背景的颜色值
switch_project_window

此元素包含切换仓库窗口,并用于 parents 指定符中。

属性

panel_control switch_project_panel

负责渲染切换仓库窗口背景的控件

属性

层属性

标签

root_tabs

包含仓库标签、标签下拉菜单和新建标签按钮的容器

属性

层属性 间距属性
tabset_control

处理仓库标签布局的控件

属性

亮度属性

属性

纹理着色属性
content_margin

tab_controls 周围的边距

tab_overlap

标签重叠的 DIP 数

tab_width

有足够空间时的默认标签宽度

tab_min_width

标签滚动发生前的最小标签宽度

tab_height

标签的高度(以 DIP 为单位)

mouse_wheel_switch

鼠标滚轮是否应该切换标签 - 仅当设置 enable_tab_scrolling 为 false 时,此值应设置为 true

tab_control

用于仓库标签的基本标签类

属性

close_button_side

要显示的边 - "left""right"

默认值:"right"
max_margin_trim

当标签空间极其有限时,可以移除多少左、右 content_margin

tint_index

控制将着色应用于哪个图层。必须是 03 之间的整数。

tint_modifier

一个包含四个整数的数组,范围为 0255。前三个与着色颜色中的 RGB 值混合,第四个值指定要应用这些 RGB 修改器值的多少。

tab_close_button

用于关闭仓库标签的按钮

属性

层属性 最小尺寸属性
new_tab_button

在标签栏中显示的图标按钮,单击后会创建一个新标签

属性

层属性 最小尺寸属性
new_tab_icon

标签栏中新建标签按钮的图标

属性

层属性 图标属性
tab_dropdown_button

在标签栏中显示的图标按钮,单击后会显示打开的标签列表

属性

层属性 最小尺寸属性
tab_select_dropdown_icon

标签栏中标签下拉菜单按钮的图标

属性

层属性 图标属性
repository_tab_label_container

包装标签标题标签的容器

属性

层属性 间距属性
tab_label

标签标题标签

属性

层属性 图标属性
icon_folder

用于表示仓库标签的图标

属性

层属性 图标属性

标题栏

header

工具栏的容器

属性

层属性
search_dialog

搜索框的容器,包含在 header

属性

层属性
search_text_control

搜索输入本身,包含在 search_dialog

属性

层属性
button_control

标题栏中的基本按钮。在显示合并工具时用于文本按钮。

属性

层属性 最小尺寸属性
button_control icon_button

标题栏中的基本按钮,包含一个图标。与以下图标一起使用

  • icon_location_bar
  • icon_back
  • icon_forward
  • icon_pop_stash
  • icon_search
  • icon_more

属性

层属性 最小尺寸属性
button_control_left

双按钮对中的左侧按钮。可以使用 button_control_left icon_button 进一步定位图标按钮,该按钮与以下图标一起使用

  • icon_stash
  • icon_push
  • icon_pull

属性

层属性 最小尺寸属性
button_control_right

双按钮对中的右侧按钮。可以使用 button_control_right icon_button 进一步定位图标按钮,该按钮与以下图标一起使用

  • icon_options_dropdown

属性

层属性 最小尺寸属性
icon_location_bar

标题栏中位置栏按钮的图标

属性

层属性 图标属性
icon_back

标题栏中后退按钮的图标

属性

层属性 图标属性
icon_forward

标题栏中前进按钮的图标

属性

层属性 图标属性
icon_stash

标题栏中 Stash 按钮的图标

属性

层属性 图标属性
icon_pop_stash

标题栏中 Pop Stash 按钮的图标

属性

层属性 图标属性
icon_options_dropdown

标题栏中 Stash、Push 和 Pull 按钮右侧的额外选项按钮的图标

属性

层属性 图标属性
icon_search

标题栏中搜索按钮的图标

属性

层属性 图标属性
icon_more

标题栏中搜索按钮右侧的 ... 按钮的图标

属性

层属性 图标属性
icon_push

标题栏中 Push 按钮的图标

属性

层属性 图标属性
icon_pull

标题栏中 Pull 按钮的图标

属性

层属性 图标属性
icon_side_bar

标题栏中切换侧边栏按钮的图标

属性

层属性 图标属性
info_area

显示在 header 中间的框,包含

  • 一个显示当前分支名称的 label_control,或者 icon_cancel 按钮和一个显示当前正在运行的操作的 label_control,或者 info_area_linefailed_label 和一个显示最后一次 git 错误的 label_control
  • 左侧的 git_output_button
  • 右侧的 toggle_diverged_banner_button,当当前分支处于分叉状态时
  • 在运行包含进度信息的 git 操作时,底部边缘的 progress_bar_controlprogress_gauge_control

属性

层属性 最小尺寸属性
icon_spacing
一个包含两个整数的数组,指定左侧和右侧图标按钮周围的 x 和 y 间距 - git_output_buttontoggle_diverged_banner_button
icon_cancel

显示在 info_area 中当前正在运行的操作左侧的取消按钮

属性

层属性 图标属性
git_output_button

显示在 info_area 左侧的图标按钮。

此类存在四种变体,指示最后一次运行的 git 命令的状态

  • git_output_button succeeded
  • git_output_button failed
  • git_output_button running
  • git_output_button cancelled

属性

层属性
toggle_diverged_banner_button

当当前分支与其跟踪分支分叉时,显示在 info_area 右侧的图标按钮。

当显示分叉横幅时,类名将为 toggle_diverged_banner_button hide,表示可以按下按钮隐藏横幅。

属性

层属性
info_area_line

当 git 命令失败时,info_area 会显示文本 failed:,后跟错误的第一行。这包含控制 failed: 标签和错误消息之间的间距。

属性

间距属性
failed_label

当 git 命令失败时,在 info_area 中显示文本 failed:错误消息本身只是一个 label_control,可以通过父选择器定位。

属性

字体属性 阴影属性 样式化容器属性
diverged_container

当当前分支与其跟踪分支分叉时,此横幅显示在 header 的底部。

使用父选择器可以定位分叉横幅中显示的标签和按钮。

属性

层属性
diverged_button_container

用于控制分叉容器中按钮之间间距的容器

属性

间距属性

侧边栏

side_bar_container

包裹任何侧边栏(例如文件侧边栏)的容器。您还可以定位 side_bar_container with_graph 来定位图形侧边栏。

属性

层属性 间距属性
side_bar_tabs

包裹每个侧边栏的选项卡的容器

属性

层属性 间距属性

位置栏

location_bar_container

处理滚动的主要位置栏容器

属性

层属性
location_bar_tree

包含多个 location_bar_row 的树形控件

属性

数据表属性
indent
一个整数,用于缩进树结构的每个级别
indent_offset
每行都应用了一个额外的缩进,用于定位disclosure_button_controlclose_button
indent_top_level
如果树中的顶级行应该缩进,则为布尔值
spacer_rows
一个布尔值,控制当“打开的文件”和“文件夹”部分都可见时,是否应该在侧边栏的这两个部分之间添加一个空白行。
location_bar_row

一行可能包含标题、分支、远程、标签、隐藏或子模块

属性

selectable
当一行可选择时
selected
当一个可选择的行被选中时
expandable
当一行可展开时
expanded
当一个可展开的行被展开时

属性

层属性
location_bar_heading

侧边栏中的“分支”、“远程”、“标签”、“隐藏”或“子模块”标题之一

属性

字体属性 阴影属性
fg
用于文本的颜色值
case

用于标题的案例修改 - "upper""lower""title"

默认值:"upper"
location_bar_label

分支、远程、标签、隐藏或子模块的名称

属性

字体属性 阴影属性
fg
用于文本的颜色值
disclosure_button_control

所有可展开的tree_row中都存在一个展开/折叠图标

属性

层属性
content_margin
对于按钮,边距指定尺寸
location_bar_branch_row

一个仅用于间距的容器,包含icon_visible(或icon_hidden)和branch_stats_meta容器。

属性

间距属性
button_control icon_button transparent

一个包含icon_visibleicon_hidden的按钮

属性

层属性 最小尺寸属性
icon_visible

如果引用在提交列表中可见,则显示

属性

层属性 图标属性
icon_hidden

如果引用在提交列表中隐藏,则显示

属性

层属性 图标属性
icon_uninitialized_submodule

用于尚未初始化的子模块

属性

层属性 图标属性
icon_section_actions

用于在标题右侧显示子模块菜单

属性

层属性 图标属性
submodule_stat

在子模块旁边显示一个数字,其中包含已修改和未跟踪文件的数量

属性

字体属性 阴影属性 样式化容器属性
branch_stats_meta

一个仅用于间距的容器,包含超前和落后统计计数器,并允许控制它们之间的间距

属性

间距属性
branch_stat

一个可主题化的容器,包含一个计数器和一个箭头,指示分支是否超前或落后于其跟踪分支。

如果超前和落后计数器都存在,则此元素将以两种形式存在:branch_stat leftbranch_stat right

branch_stat_meta

一个仅用于间距的容器,包含超前或落后计数器的箭头和数字

属性

间距属性
branch_stat_label

显示分支超前或落后于其跟踪分支的提交次数

属性

字体属性 阴影属性
icon_ahead

显示在分支超前于其跟踪分支的提交次数旁边

属性

层属性 图标属性
icon_behind

显示在分支落后于其跟踪分支的提交次数旁边

属性

层属性 图标属性
submodule_annotation

子模块检出的分支的标签

属性

参见标签

submodule_light_annotation

子模块检出的提交的标签

属性

参见标签

ref_filter_input_container

包装位置栏过滤器输入的容器

属性

层属性
button_control icon_button close_refs_filter

嵌入在位置栏过滤器输入中的关闭按钮

属性

层属性 最小尺寸属性
button_control icon_button search_refs

用于切换位置栏过滤器的按钮。请注意,规则button_control icon_button filtering search_refsbutton_control icon_button not_filtering search_refs可用于在各自的过滤器状态下定位按钮。

属性

层属性 最小尺寸属性
icon_filter

在位置栏过滤器切换按钮中使用的图标

属性

层属性 图标属性

目录

table_of_contents_heading

用于目录中节标题的标签(例如,已修改的文件)

属性

字体属性 阴影属性
color
用于文本的颜色值
table_of_contents_heading_container

包装每个目录标题的容器(用于间距目的)

属性

层属性 间距属性
table_of_contents_icon

目录中图标的基本类

属性

层属性 图标属性
table_of_contents_icon_wrapper

包装目录中所有图标的控件(用于填充目的)

属性

层属性
table_of_contents_label

目录中每个文件条目使用的标签

属性

字体属性 阴影属性
color
用于文本的颜色值
table_of_contents_row_container

包裹目录中每一行的容器

属性

层属性
table_of_contents_tree

目录中使用的顶级表格

属性

数据表属性
close_button_control

在目录中选定文件旁边显示的关闭按钮

属性

层属性 最小尺寸属性
table_of_contents_style_selector

用于在目录中切换更改和树形样式的切换按钮

属性

层属性 最小尺寸属性
table_of_contents_style_container

包裹两个样式切换按钮的容器

属性

层属性 间距属性

命令历史记录覆盖层

command_history_container

包裹命令历史列表中每个条目的容器

属性

层属性 间距属性
message_content_margin
提交消息周围的额外边距
command_history_label

当没有以前的命令历史记录时显示的标签

属性

字体属性 阴影属性
command_table

列出每个已运行命令的表格

属性

数据表属性
command_table_container command_history

包裹命令表格的容器,提供背景颜色

属性

层属性
git_output_data_container

包裹命令历史记录中单个命令输出的容器

属性

层属性

提交列表

commit_table_container

处理滚动的主要提交列表容器

属性

层属性
commit_table

处理滚动的主要提交列表容器

属性

数据表属性
commit_table_row

每一行包含一个commit_summary_control

属性

selectable
当一行可选择时
selected
当一个可选择的行被选中时
expandable
当一行可展开时
expanded
当一个可展开的行被展开时

属性

层属性
commit_summary_control

用于提交信息的容器

属性

层属性
commit_edges_control

绘制提交图边缘(线条)的控件

属性

line_width
边缘的整数 DIP 宽度 - 将被捕捉到设备像素以实现清晰的绘制
num_colors
绘制边缘时循环遍历的颜色数量的整数(最大 8 个)
color0 ... color7
用作边缘颜色的颜色值
index_files_label

提交列表中“提交更改”行的顶行标签

属性

字体属性 阴影属性
index_action_label

提交列表中“提交更改”行的底行标签

属性

字体属性 阴影属性
message_label

commit_summary_control中包含提交消息

属性

字体属性 阴影属性
author_label

commit_summary_control中包含作者姓名

属性

字体属性 阴影属性
time_label

commit_summary_control中包含提交时间

属性

字体属性 阴影属性
commit_file_name_label

在提交列表中显示扩展提交视图时包含文件名。这可以通过单击提交左侧的彩色框来查看。

属性

字体属性 阴影属性
commit_file_path_label

在提交列表中显示扩展提交视图时包含文件路径。这可以通过单击提交左侧的彩色框来查看。

属性

字体属性 阴影属性
commit_annotation

表示显示在提交上的任何分支注释的基类

此外,您可以针对commit_annotation bordered 作为提交中最左侧的分支,以及commit_annotation branch head 作为签出的分支

属性

字体属性 阴影属性 样式化容器属性
commit_annotation_container

包裹分支标签和压缩分支计数的容器

属性

spacing
condensed_branch_annotation

当没有足够的空间渲染所有分支时,包含分支计数的注释

属性

字体属性 阴影属性
condensed_branch_annotation_container

包裹condensed_branch_iconcondensed_branch_annotation 的样式化容器

属性

图层属性 样式化容器属性
condensed_branch_icon

显示在压缩分支注释旁边的图标

属性

层属性 图标属性
commit_annotations

包裹给定提交的所有注释的容器

属性

num_unique_columns
绘制提交注释时循环遍历的颜色数量的整数(最大 8 个)。应用column_# 属性(例如column_1)。应与commit_edges_controlnum_colors 属性匹配。
tag_annotation

包含标签的名称。显示在commit_summary_control 中提交作者的右侧,或在Commit Detail 视图中提交信息表格的“标签”行中。

属性

字体属性 阴影属性
tag_annotation_icon

显示在标签注释旁边的图标

属性

层属性 图标属性
tag_annotation_container

包裹标签注释和标签图标的样式化容器

属性

图层属性 样式化容器属性
stash_annotation

包含文本stash。显示在commit_summary_control 中提交作者的右侧。

属性

字体属性 阴影属性 样式化容器属性
file_annotation

包含提交中修改的文件数量。显示在commit_summary_control 中提交消息的右侧。

属性

字体属性 阴影属性 样式化容器属性
annotation_with_icon_row

用于带有图标的注释标签的容器(例如,压缩分支注释)。

属性

间距属性

搜索视图

button_control icon_button search_close

搜索输入框中嵌入的关闭按钮

属性

层属性 最小尺寸属性
button_control icon_button search_history_dropdown

搜索输入框中嵌入的用于查看和选择搜索历史的按钮

属性

层属性 最小尺寸属性
icon_dropdown_button

搜索历史下拉菜单中使用的图标

属性

层属性 图标属性
search_message

关于搜索语法错误显示的容器

属性

层属性
search_help

打开搜索视图时显示的搜索语法帮助消息

属性

font properties
content_margin
帮助文本周围的边距
background_color
用作消息背景的颜色值
color
用作基本文本颜色的颜色值
headline_color
用作标题文本颜色的颜色值
link_color
用作链接文本颜色的颜色值
searching

在提交列表中显示的活动指示器,表示正在进行搜索。通常这将是一个纹理动画。

属性

层属性 图标属性

Blame 视图

blame_commit_summary

将鼠标悬停在责备视图的边距上时显示的弹出窗口

属性

font properties
content_margin
帮助文本周围的边距
background_color
用作消息背景的颜色值
color
用作基本文本颜色的颜色值
headline_color
用作标题文本颜色的颜色值
link_color
用作链接文本颜色的颜色值
blame_text_control

打开搜索视图时显示的搜索语法帮助消息

属性

font properties
num_colors
绘制提交边距颜色时循环使用的颜色数量的整数(最大 20)
color0 ... color19
在边距中使用的颜色值

提交视图

提交视图既用作提交对话框(在暂存文件和编写提交消息时),也用作提交详细信息(在查看现有提交的详细信息时)。

details_panel

用于显示差异和责备控件的最右侧窗格的容器

属性

层属性
details_tab_bar

包裹提交视图中选项卡的容器

属性

层属性 间距属性
commit_dialog_header

提交对话框中用于提交对话框文本区域和按钮的容器

属性

层属性
commit_dialog_summary_container

在渲染提交对话框中的摘要部分时使用的容器

属性

层属性
commit_dialog_section_container

在渲染提交对话框中的单个部分(例如,仅修改的部分)时使用的容器

属性

层属性
commit_author_container

用于显示提交消息文本区域下方提交作者的标签的容器。一旦用户输入了提交消息,它将变为选择信息。

属性

层属性
label_control commit_author

显示将用于提交的作者信息的标签。一旦输入了提交消息,其内容将变为选择信息。

属性

字体属性 阴影属性
commit_buttons

用于布局提交按钮的仅间距容器

属性

间距属性
commit_button

提交按钮。显示的文本可能会根据存储库状态而改变,例如:继续变基完成樱桃选择

属性

层属性 最小尺寸属性
split_commit_button

当同时显示提交按钮和选项下拉菜单时,用于它们的容器

属性

minimum size properties
commit_details_header

用于提交详细信息视图顶部的提交详细信息表的容器

属性

层属性
commit_message_container

用于布局提交详细信息顶部的提交详细信息按钮、操作按钮和提交消息的容器。

属性

层属性 间距属性
message_content_margin
提交消息周围的额外边距
recent_commit_messages icon_options_dropdown

一个按钮,当选中时会显示最近的提交消息

属性

层属性 最小尺寸属性
recent_commit_messages_dropdown_container

包裹最近提交消息按钮的容器,主要负责添加填充

属性

层属性 间距属性
edit_button_container

用于在编辑提交消息时布局编辑和取消按钮的仅间距容器

属性

间距属性
field_name_label

提交详细信息表中字段名称的标签

属性

字体属性 阴影属性
deleted_annotation

给定提交/文件的删除行数的标签

属性

字体属性 阴影属性
inserted_annotation

给定提交/文件的插入行数的标签

属性

字体属性 阴影属性
label_control bad_signature

签名验证失败时显示的标签

属性

字体属性 阴影属性
label_control good_signature

签名验证成功时显示的标签

属性

字体属性 阴影属性
commit_metadata_container

包裹所有提交元数据(例如作者、提交消息等)的容器

属性

层属性 间距属性
message_content_margin
提交消息周围的额外边距
commit_metadata_standin

当提交元数据未显示时使用的占位符控件(用于控制填充)

属性

层属性
separator_container

用于显示提交对话框中工作目录和暂存部分之间的分隔符的容器

属性

content_margin
分隔符周围的边距
separator

显示在提交对话框中工作目录和暂存部分之间的分隔符图标

属性

层属性 图标属性
terminator_container

提交列表末尾和提交视图中差异末尾显示的终止符容器。

属性

content_margin
终止符周围的边距
terminator

提交列表末尾和提交视图中差异末尾显示的终止符图标。

属性

层属性 图标属性
loading

在加载某些内容(例如提交的树视图)时,在详细信息窗格中显示的活动指示器。通常这将是一个纹理动画。

属性

层属性 图标属性

文件差异

diff scroll_area_control

用于处理差异文本水平滚动的scroll_area_control(有关更多详细信息,请参阅滚动条)。

diff_text_control

用于渲染差异文本的文本控件。

属性

line_selection_color
用于对差异文本中选择的背景进行着色的颜色值
line_selection_border_color
用于对差异文本中选择的边框颜色进行着色的颜色值
line_selection_border_width
描述选择边框宽度的浮点值。
line_selection_border_radius
描述选择边框角的圆角程度的浮点值。
button_control all_button

用于执行“全部”操作(例如全部暂存、全部删除等)的按钮控件。

属性

层属性 最小尺寸属性
button_control icon_button file_button

在文件中显示的按钮,用于显示文件上下文菜单(即“...”按钮)。

属性

层属性 最小尺寸属性
expand_all_diff_control

展开或折叠一个或多个file_diff_control的控件。包含一个file_diff_header,该file_diff_header反过来包含一个disclosure_button_controllabel_control

属性

层属性
file_diff_control

文件差异的容器。包含一个file_diff_header和一个或多个file_diff_hunk_container

属性

expanded
当差异展开以显示块时。

属性

层属性 间距属性
file_diff_header

文件差异的标题,包含

  • 用于展开和折叠的disclosure_button_control
  • 包含有关文件详细信息的file_meta容器。
  • 一个或多个button_control。这些将是按钮,例如暂存删除丢弃或更多(...)按钮。

您还可以针对所有可折叠文件差异的file_diff_header collapsible

属性

selected
当差异标题获得输入焦点时。

属性

层属性 间距属性
eliding_label_control

用于显示差异中文件名的标签控件。

属性

字体属性 阴影属性
color
用于文本的颜色值
file_badge

围绕文件类型徽章(例如修改徽章)的容器。当存在多个徽章时,还可以额外针对file_badge left_badgefile_badge right_badge

您还可以额外针对以下徽章

  • unmerged_badge
  • modified_badge
  • untracked_badge
  • staged_badge

属性

层属性 最小尺寸属性
file_badge_split_container

将多个文件徽章包装在一起的容器(例如已删除的暂存文件)。

属性

层属性 间距属性
file_meta

用于布局文件信息的仅间距容器。包含

  • 零个或多个file_icon。当文件被删除、暂存、最近修改或所有三种情况的组合时,这些图标存在。当存在两个或多个图标时,它们将被包装在一个file_icons容器中,并且类将是file_icon file_icon_leftfile_icon file_icon right
  • 如果文件被重命名,则包含多个label_controllabel_control insertedlabel_control deletedlabel_control diff_separatorrenamed_file_container
  • 如果文件未被重命名,则为基本的label_control

属性

间距属性
file_icon

包含图标或图标和文本的容器。当作为一对的一部分时,类将是file_icon file_icon_leftfile_icon file_icon_right

将包含以下内容之一

  • icon_unmerged
  • icon_created
  • icon_deleted
  • icon_staged
  • icon_recent
  • 包含icon_texttotal_untracked
  • 包含icon_recenticon_textrecently_modified

属性

层属性 最小尺寸属性
file_icons

当存在多个file_icon时,它们将被包装在这个仅间距容器中。

属性

间距属性
icon_unmerged

显示在未合并文件的file_meta中。

属性

层属性 图标属性
icon_created

显示在已新建文件的file_meta中。

属性

层属性 图标属性
icon_deleted

显示在已删除文件的file_meta中。

属性

层属性 图标属性
icon_staged

显示在已暂存文件的file_meta中。

属性

层属性 图标属性
icon_recent

显示在最近修改的未跟踪文件的file_meta中。

属性

层属性 图标属性
recently_modified

包含icon_recenticon_text的仅间距容器。

属性

间距属性
total_untracked

包含带有未跟踪文件数量的icon_text的仅间距容器。

属性

间距属性
icon_text

file_icon容器中显示的标签

属性

字体属性 阴影属性
file_diff_hunk_container

文件差异的容器。包含一个file_diff_hunk_header和一个hunk_description_containerdiff scroll_area_control,其中包含一个diff_text_control

file_diff_hunk_header

文件差异中一个块的容器。包含一个hunk_label_container,其中包含一个label_control和零个或多个button_control hunk_button

属性

selected
当差异标题获得输入焦点时。

属性

层属性
hunk_button

包含在特定块中的按钮

属性

参见按钮

hunk_label_container

标识块的标签的容器

属性

层属性
hunk_description_container

块描述的容器。当块表示二进制文件或文件模式更改时,使用块描述。

属性

层属性
image_diff_container

图像差异的顶级容器

属性

层属性 间距属性
image_diff_control

负责渲染图像差异的控件

属性

bg
用于图像后面背景颜色的颜色值(如果图像被缩放,则相关)
fg
用于图像加载失败时错误文本的颜色值
checkerboard_main_bg
如果图像具有透明度,则用于棋盘格颜色之一的颜色值
checkerboard_alt_bg
如果图像具有透明度,则用于棋盘格颜色之一的颜色值
image_dimensions_container

包裹水平和垂直图像尺寸的容器

属性

层属性 间距属性
image_metadata_label

用于显示图像元数据(如图像尺寸)的标签

属性

字体属性 阴影属性
onion_skin_slider

洋葱皮图像差异中使用的滑块

属性

track_color
用于滑块轨道的颜色值
puck_color
用于滑块滑块的颜色值
puck_border_color
用于滑块滑块边框的颜色值
max_width
用于滑块轨道最大宽度的浮点数
side_by_side_and_metadata_container

包裹并排图像和元数据的容器

属性

层属性 间距属性
side_by_side_image_container

包裹并排图像的容器

属性

层属性 间距属性

文件和侧边栏标签

tab_body_container

包裹侧边栏中选项卡和侧边栏内容的容器

属性

层属性 间距属性
tab_separator

用于分隔选项卡的分隔符

属性

层属性
tab_separator_container

包裹选项卡分隔符的容器 - 主要用于填充目的

属性

层属性 最小尺寸属性

树视图

tree_details

用于显示提交树的标题和正文的容器。没有可主题化属性,但在父选择器中很有用。

tree

显示文件和文件夹(即树)的树控件,用于特定提交

属性

数据表属性
tree_row

一行可能包含文件或文件夹名称

属性

selectable
当一行可选择时
selected
当一个可选择的行被选中时
expandable
当一行可展开时
expanded
当一个可展开的行被展开时

属性

层属性

合并工具

use_hunk_button

在合并工具的边距中绘制的按钮,允许用户选择一个块以用于合并版本。存在两种变体:use_hunk_button leftuse_hunk_button right

属性

层属性 图标属性

合并命令覆盖层

merge_helper_container

包裹合并覆盖层中控件的顶级容器

属性

层属性 间距属性
merge_helper_buttons_container

包裹合并和取消按钮的容器

属性

层属性 间距属性
label_control merge_helper_help_text_label

用于在合并覆盖层中显示帮助文本的标签

属性

参见标签

label_control merge_helper_highlight_label

用于显示合并目标的标签

属性

参见标签

merge_options_container

包裹合并覆盖层中标志选项的容器

属性

层属性 间距属性

控制台

console_panel

控制台所在的面板。用于在控制台周围添加填充。

属性

层属性

进度

progress_bar_control

进度条容器。进度条显示在用于 OS X 和 Windows 上更新的更新窗口中。它也用于info_area中,以显示提供进度信息的 git 命令的进度。

属性

层属性
progress_gauge_control

表示迄今为止完成的进度的条形

属性

层属性
content_margin
边距指定条形的高度

快速面板

快速面板用于命令面板、切换存储库窗口和 git 输出覆盖层。

overlay_control

快速面板的容器,包括输入和数据表

属性

层属性
quick_panel

显示在输入下方的数据表。通常高度是动态的,因此层将不可见,但是切换项目窗口将使用层来表示过滤选项下方的空白空间。

属性

数据表属性
mini_quick_panel_row

quick_panel 中的一行。每行文本对应一个 quick_panel_label

属性

selected
当行被选中时

属性

层属性
quick_panel_row

切换仓库窗口中的一行。

包含 quick_panel_label 显示仓库名称,以及 quick_panel_path_label 显示仓库路径。

属性

selected
当行被选中时

属性

层属性
quick_panel_label

quick_panel_row 中的仓库名称以及 mini_quick_panel_row 中的所有文本

属性

过滤标签属性
quick_panel_path_label

quick_panel_row 中的仓库路径

属性

过滤标签属性
quick_panel_label 预览

当输入处理器提供预览时,此标签用于在命令面板预览行中显示文本

属性

字体属性 阴影属性
quick_panel_label 命令

此标签用于命令面板行右侧,用于选择命令选项,例如 *Stash…*

属性

字体属性 阴影属性
quick_panel_label 提示

此标签用于在命令面板中显示提示注释

属性

字体属性 阴影属性
quick_panel_label 键绑定

此标签用于在命令面板中显示键绑定

属性

字体属性 阴影属性

对话框

dialog

关于、许可证、更新和更改日志窗口使用此类作为窗口背景

属性

层属性

滚动条

scroll_area_control

滚动区域包含正在滚动的元素,以及滚动条、轨道和滑块。

属性

content_margin
围绕正在滚动的内容添加的 边距
overlay
将滚动条设置为渲染在内容之上
left_shadow
用于绘制阴影以指示区域可以向左滚动的 颜色值
left_shadow_size
当区域可以向左滚动时,要绘制的阴影的宽度(以整数表示)
top_shadow
用于绘制阴影以指示区域可以向上滚动的 颜色值
top_shadow_size
当区域可以向上滚动时,要绘制的阴影的高度(以整数表示)
right_shadow
用于绘制阴影以指示区域可以向右滚动的 颜色值
right_shadow_size
当区域可以向右滚动时,要绘制的阴影的宽度(以整数表示)
bottom_shadow
用于绘制阴影以指示区域可以向下滚动的 颜色值
bottom_shadow_size
当区域可以向下滚动时,要绘制的阴影的高度(以整数表示)
scroll_bar_control

滚动条包含滚动轨道。色调根据正在滚动的元素的背景颜色设置。

属性

dark
当滚动区域内容为深色时,需要使用浅色滚动条
horizontal
当滚动条应为水平而不是垂直时

属性

图层属性 纹理着色属性
scroll_track_control

滑块在其上运行的轨道。色调根据正在滚动的元素的背景颜色设置。

属性

dark
当滚动区域内容为深色时,需要使用浅色滚动条
horizontal
当滚动条应为水平而不是垂直时

属性

图层属性 纹理着色属性
scroll_corner_control

当垂直和水平滚动条都显示时,scroll_area_control 右下角的空白区域。

属性

dark
当滚动区域内容为深色时,需要使用浅色滚动条

属性

图层属性 纹理着色属性
puck_control

滚动滑块或手柄。色调根据正在滚动的元素的背景颜色设置。

属性

dark
当滚动区域内容为深色时,需要使用浅色滚动条
horizontal
当滚动条应为水平而不是垂直时

属性

图层属性 纹理着色属性

输入

text_line_control

快速面板和切换仓库窗口使用的文本输入。

属性

层属性
color_scheme_tint
用于对颜色方案背景进行着色的 颜色值
color_scheme_tint_2
用于对颜色方案背景添加二次着色的 颜色值
radio_button_list_control

一个仅用于间距的容器,用于控制一个或多个 checkbox_control 的布局

属性

间距属性
checkbox_control

一个仅用于间距的容器,用于控制 checkbox_box_control 旁边 label_control 的布局

属性

box_margin
一个整数,用于控制方框和标签之间的间距
checkbox_box_control

属性

checked
当复选框被选中时

属性

层属性
content_margin
边距 指定尺寸

自动完成

popup_control auto_complete_popup

自动完成弹出窗口的主要容器

属性

层属性
auto_complete

用于完成数据的表格。色调根据应用于显示弹出窗口的视图的颜色方案的背景颜色设置。

属性

亮度属性

属性

数据表属性 纹理着色属性
table_row

auto_complete 中的一行

属性

selected
当用户突出显示一个完成项时

属性

层属性
auto_complete_label

table_row 中的文本

属性

过滤标签属性
fg_blend
一个布尔值,控制是否将 fgmatch_fgselected_fgselected_match_fg 值混合到当前视图颜色方案的前景色上

按钮

button_control

文本按钮

属性

pressed
当按钮被按下时设置
confirm
当按钮需要再次按下以确保用户想要执行破坏性或重要操作时设置
highlighted
当按钮是用户应该执行的下一个操作时设置

属性

层属性 最小尺寸属性
toggle_button

用于控制切换状态的按钮

您还可以使用 toggle_button lefttoggle_button right 来定位左右切换按钮

属性

使用与 button_control 相同的属性 - 请参见上文

标签

label_control

标签在整个界面中使用。可以通过使用 parents 键来定位特定的标签。

属性

字体属性 阴影属性
color
用于文本的颜色值
title_label_control

标题标签用于“关于”窗口和欢迎屏幕

属性

字体属性 阴影属性
color
用于文本的颜色值
subtitle_label_control

副标题标签用于欢迎屏幕

属性

字体属性 阴影属性
color
用于文本的颜色值

工具提示

tool_tip_control

将鼠标悬停在选项卡和按钮上时显示的工具提示

属性

content_margin
工具提示文本周围的边距
tool_tip_label_control

工具提示中显示的文本

属性

字体属性 阴影属性
color
用于文本的颜色值

提示

当用户在特定时间范围内未确认按钮存在时,将为“危险”按钮显示提示。这可以通过单击文件块的丢弃按钮一次并等待来观察。它们还用于在 git 命令失败时引起对 info_area 的注意。

提示由两个主要部分组成,hint_stemhint_control,它们是兄弟节点。

hint_stem

用于将源控件连接到 hint_control 的茎。根据提示显示在源控件的哪一侧,将使用以下变体

  • hint_stem bottom
  • hint_stem left
  • hint_stem top
  • hint_stem right

属性

层属性
content_margin
边距 指定尺寸
hint_control

提示的主要容器。包含一个或多个 hint_label。根据提示显示在源控件的哪一侧,将使用以下变体

  • hint_control bottom
  • hint_control left
  • hint_control top
  • hint_control right

属性

层属性
hint_label

每个提示文本行使用一个标签

属性

字体属性 阴影属性
color
用于文本的颜色值

输入焦点

focus_highlight_control

用于通过 Tab 键切换焦点时突出显示输入焦点的控件

属性

highlight_color
用于输入焦点背景的颜色值
highlight_border_color
用于输入焦点边框的颜色值
highlight_time
一个浮点值,用于表示突出显示应出现的时间(秒)

偏好设置屏幕

preference_wrapper

包装单个首选项及其输入的容器

属性

层属性 间距属性
preference_text_input_container

包装需要文本输入的首选项条目的容器

属性

层属性 间距属性
preferences_section_label

用于显示首选项部分标题的标签

属性

参见标签

preference_title_label

用于显示首选项标题的标签

属性

参见标签

preference_help_text_label

用于显示首选项帮助文本的标签

属性

参见标签

preferences_overlay_left

用于包装首选项页面左侧(即首选项部分)的容器

属性

层属性 间距属性
preferences_overlay_right

用于包装首选项页面右侧(即首选项详细信息)的容器

属性

层属性 间距属性
preferences_section_table

用于列出各种首选项部分的表格

属性

数据表属性
preferences_buttons_container

包装首选项页面上的关闭按钮的容器

属性

层属性 间距属性

欢迎/克隆屏幕

welcome_overlay

欢迎叠加容器,位于存储库上方背景中

属性

层属性
welcome_overlay_contents
位于 welcome_overlay 中的内容的顶级包装器

属性

层属性 间距属性
open_new_repository_buttons_container

包装打开和新建存储库按钮的容器

属性

层属性 间距属性
recent_repository_button

最近存储库列表中的可点击条目

属性

层属性 最小尺寸属性
recent_repository_row

包装最近存储库列表中的可点击条目的容器

属性

层属性 间距属性

自定义

用户可以通过创建一个包含新规则的文件来定制主题,这些规则将附加到原始主题定义中。

要创建主题的特定于用户的自定义,请创建一个与主题同名的文件,但将其保存在 Packages/User/ 目录中。

例如,要自定义 Merge 主题,请创建一个名为 Packages/User/Merge.sublime-theme 的文件。将以下规则添加到该文件中将增加位置栏中文本的大小。

[
            {
                "class": "location_bar_heading",
                "font.size": 15,
            },
            {
                "class": "location_bar_label",
                "font.size": 14
            }
        ]