GTK CSS属性 [src]
GTK支持在控件上下文中应用的CSS属性和缩写,并在需要时才添加自己的属性。所有的GTK-特定属性都有-gtk前缀。
基本类型
所有属性都支持以下关键词:inherit(继承)、initial(初始)、unset(未设置),其意义与CSS层叠和继承规范中的定义相同。
以下是支持的基本数据类型单位:
- 长度
- px, pt, em, ex, rem, pc, in, cm, mm
- 百分比
- %
- 角度
- deg, rad, grad, turn
- 时间
- s, ms
使用em或ex单位的长度值将通过字体大小值解析,除非它们用于设置字体大小本身,在这种情况下,它们将使用继承的字体大小值进行解析。
rem单位使用初始字体大小值解析,这与CSS对rem的定义并不完全相同。
使用物理单位(pt, pc, in, cm, mm)的长度值将转换为px,使用由-gtk-dpi属性指定的dpi值,这与CSS的定义不同,CSS使用96的固定dpi。
calc()
语法为所有这些数据类型添加了相当大的表现力。在这样的表达式中可以组合的类型有限制(例如,将数字与时间相加没有意义)。有关完整详情,请参阅CSS值和单位规范。
缩写属性(称为“四边”)中的常见模式是,可以指定一个到四个值,以确定区域每一边的值。在这种情况下,指定的值按以下方式解释:
- 4个值
- 上 右 下 左
- 3个值
- 上 水平 下
- 2个值
- 垂直 水平
- 1个值
- 全部
自定义属性
GTK支持按照CSS层叠变量自定义属性规范定义的自定义属性。
自定义属性如下定义:
--prop: red;
并通过var
关键字使用
color: var(--prop);
自定义属性可以为无效的引用属性提供后备值
color: var(--prop, green);
颜色
CSS颜色
CSS中可以以多种方式表达颜色(参见颜色模块。GTK支持其中许多(但不是全部)。
您可以使用rgb()、rgba()、hsl()
的遗留或现代CSS语法,以及将calc()
用于颜色表达式中。还支持hwb()、oklab()、oklch()、color()、color-mix()和相对颜色。
非CSS颜色
GTK通过几种额外的方式扩展了CSS语法来指定颜色。
这些扩展已经弃用,应使用等效的标准CSS概念。
第一种是通过在CSS中使用define
-color规则定义的颜色引用。定义define
-color规则的语法如下:
@define-color name color
要引用由define
-color规则定义的颜色,请在名称前加上@。
应该使用自定义属性、:root 和 var() 来代替 define
-color 的标准 CSS 机制。
GTK 还支持颜色表达式,这允许颜色转换成新颜色。颜色表达式可以进行嵌套,提供定义颜色的丰富语言。颜色表达式类似于函数,接受 1 个或多个颜色以及在某些情况下一个数字作为参数。
lighter(color)
- 生成
color
的一个更亮的变体。 darker(color)
- 生成
color
的一个更暗的变体。 shade(color, number)
- 改变
color
的亮度。这个number
的范围是从 0(黑色)到 2(白色)。 alpha(color, number)
- 将
color
的alpha值乘以number
(在 0 到 1 之间)。 mix(color1, color2, number)
- 在这两个颜色之间进行插值。
图像
GTK 扩展了 CSS 用于图像的语法,并也用它来指定图标。要加载一个主题图标,使用
-gtk-icontheme(name)
指定的图标名称用于查找主题图标,同时考虑到 -gtk-icon-palette 属性的值。这种类型的图像主要用作 -gtk-icon-source 属性的值。
从图标主题中获取的符号图标会根据 -gtk-icon-palette 属性重新着色,该属性定义了一个命名颜色列表。符号图标中颜色识别的名称有 error、warning 和 success。默认调色板将这些三个名称映射到分别具有 error_color
、warning_color
和 success_color
名称的符号颜色。定义自定义调色板的语法是一个以逗号分隔的名称-颜色对列表,例如
success blue, warning #fc3, error magenta
有时需要为不是图标主题一部分的图像进行重新着色,并且
-gtk-recolor(uri, palette)
这个语法使得这成为可能。-gtk-recolor 以 URL 作为第一个参数。其余参数指定要使用的调色板。如果没有明确指定调色板,将使用 -gtk-icon-palette 属性的当前值。
GTK 支持高分辨率显示上的缩放渲染。如果图像可以指定普通和高分辨率变体,这会工作得最好。从 CSS 来做,可以用
-gtk-scaled(image1, image2)
GTK CSS 属性
属性 | 参考 | 注意事项 |
---|---|---|
color | CSS 颜色级 3 | |
opacity | CSS 颜色级 3 | |
filter | CSS 过滤效果级 1 | |
font-family | CSS 字体级 3 | 默认为 gtk-font-name 设置 |
font-size | CSS 字体级 3 | 默认为 gtk-font-name 设置 |
font-style | CSS 字体级 3 | |
font-variant | CSS 字体级 3 | 仅支持 CSS2 值 |
font-weight | CSS 字体级 3 | |
font-stretch | CSS 字体级 3 | |
font-kerning | CSS 字体级 3 | |
font-variant-ligatures | CSS 字体级 3 | |
font-variant-position | CSS 字体级 3 | |
font-variant-caps | CSS 字体级 3 | |
font-variant-numeric | CSS 字体级 3 | |
font-variant-alternates | CSS 字体级 3 | |
font-variant-east-asian | CSS 字体级 3 | |
font-feature-settings | CSS 字体级 3 | |
font-variation-settings | CSS 字体级 4 | |
-gtk-dpi | 数字 | 默认为屏幕分辨率 |
font | CSS 字体级 3 | CSS 允许 line-height 等 |
font-variant | CSS 字体级 3 | |
caret-color | CSS 基础用户界面级 3 | CSS 允许 auto 值 |
-gtk-secondary-caret-color | 颜色 | 用于双向文本的次要光标 |
字间距 | CSS 文本级别 3 | |
文本转换 | CSS 文本级别 3 | CSS 允许全角和全角片假名。从4.6版本开始 |
行高 | CSS 内联布局级别 3 | 从4.6版本开始 |
文本装饰线 | CSS 文本装饰级别 3 | |
文本装饰颜色 | CSS 文本装饰级别 3 | |
文本装饰样式 | CSS 文本装饰级别 3 | CSS 允许虚线和点线 |
文本阴影 | CSS 文本装饰级别 3 | |
文本装饰 | CSS 文本装饰级别 3 | |
-gtk-icon-source | 图像、builtin 或 none |
用于按钮和展开器的内建图标 |
-gtk-icon-size | 长度 | 按钮和展开器内建图标使用的大小 |
-gtk-icon-style | requested 、regular 或 symbolic |
应用程序加载图标的首选样式 |
-gtk-icon-transform | 变换列表 或 none |
应用于内建和应用程序加载的图标 |
-gtk-icon-palette | 颜色调色板,如上所述 | 用于重新着色符号图标的调色板 |
-gtk-icon-shadow | 阴影 或 none |
应用于内建和应用程序加载的图标 |
-gtk-icon-filter | 过滤器值列表 或 none |
应用于内建和应用程序加载的图标 |
变换 | CSS 变换级别 1 | |
变换原点 | CSS 变换级别 1 | CSS 允许指定 z 轴分量 |
最小宽度 | CSS 盒子模型级别 3 | CSS 允许百分比 |
最小高度 | CSS 盒子模型级别 3 | CSS 允许百分比 |
上边距 | CSS 盒子模型级别 3 | CSS 允许百分比或自动 |
右边距 | CSS 盒子模型级别 3 | CSS 允许百分比或自动 |
下边距 | CSS 盒子模型级别 3 | CSS 允许百分比或自动 |
左边距 | CSS 盒子模型级别 3 | CSS 允许百分比或自动 |
上内边距 | CSS 盒子模型级别 3 | CSS 允许百分比 |
右内边距 | CSS 盒子模型级别 3 | CSS 允许百分比 |
下内边距 | CSS 盒子模型级别 3 | CSS 允许百分比 |
左内边距 | CSS 盒子模型级别 3 | CSS 允许百分比 |
边距 | CSS 盒子模型级别 3 | ‘四周边距’属性 |
内边距 | CSS 盒子模型级别 3 | ‘四周边距’属性 |
上边框宽度 | CSS 背景和边框级别 3 | CSS 允许其他值 |
右边框宽度 | CSS 背景和边框级别 3 | CSS 允许其他值 |
下边框宽度 | CSS 背景和边框级别 3 | CSS 允许其他值 |
左边框宽度 | CSS 背景和边框级别 3 | CSS 允许其他值 |
上边框样式 | CSS 背景和边框级别 3 | |
右边框样式 | CSS 背景和边框级别 3 | |
下边框样式 | CSS 背景和边框级别 3 | |
左边框样式 | CSS 背景和边框级别 3 | |
上右边框弧度 | CSS 背景和边框级别 3 | |
下右边框弧度 | CSS 背景和边框级别 3 | |
下左边框弧度 | CSS 背景和边框级别 3 | |
上左边框弧度 | CSS 背景和边框级别 3 | |
上边框颜色 | CSS 背景和边框级别 3 | |
右边框颜色 | CSS 背景和边框级别 3 | |
下边框颜色 | CSS 背景和边框级别 3 | |
左边框颜色 | CSS 背景和边框级别 3 | |
边框图像源 | CSS 背景和边框级别 3 | |
边框图像重复 | CSS 背景和边框级别 3 | |
边框图像切割 | CSS 背景和边框级别 3 | ‘四周边距’属性 |
边框图像宽度 | CSS 背景和边框级别 3 | ‘四周边距’属性 |
边框宽度 | CSS 背景和边框级别 3 | ‘四周边距’属性 |
边框样式 | CSS 背景和边框级别 3 | ‘四周边距’属性 |
边框颜色 | CSS 背景和边框级别 3 | ‘四周边距’属性 |
上边框 | CSS 背景和边框级别 3 | |
右边框 | CSS 背景和边框级别 3 | |
下边框 | CSS 背景和边框级别 3 | |
左边框 | CSS 背景和边框级别 3 | |
边框 | CSS 背景和边框级别 3 | |
边框半径 | CSS 背景和边框级别 3 | |
边框图像 | CSS 背景和边框级别 3 | |
轮廓样式 | CSS 基础用户界面级 3 | 初始值是 none,不支持 auto |
轮廓宽度 | CSS 基础用户界面级 3 | |
轮廓颜色 | CSS 基础用户界面级 3 | 初始值是 currentColor,不支持 invert |
轮廓偏移量 | CSS 基础用户界面级 3 | |
轮廓 | CSS 基础用户界面级 3 | |
背景颜色 | CSS 背景和边框级别 3 | |
背景剪辑 | CSS 背景和边框级别 3 | |
背景原点 | CSS 背景和边框级别 3 | |
背景大小 | CSS 背景和边框级别 3 | |
背景位置 | CSS 背景和边框级别 3 | |
背景重复 | CSS 背景和边框级别 3 | |
背景图像 | CSS 背景和边框级别 3 | 不支持:不带引号的 urls |
盒子阴影 | CSS 背景和边框级别 3 | |
背景混合模式 | CSS 组合和混合级别 1 | 仅影响多个背景 |
背景 | CSS 背景和边框级别 3 | |
过渡属性 | CSS 过渡 | |
过渡持续时间 | CSS 过渡 | |
过渡时间函数 | CSS 过渡 | |
过渡延迟 | CSS 过渡 | |
过渡 | CSS 过渡 | |
动画名称 | CSS 动画级别 1 | |
动画持续时间 | CSS 动画级别 1 | |
动画计时函数 | CSS 动画级别 1 | |
动画迭代次数 | CSS 动画级别 1 | |
动画方向 | CSS 动画级别 1 | |
动画播放状态 | CSS 动画级别 1 | |
动画延迟 | CSS 动画级别 1 | |
动画填充模式 | CSS 动画级别 1 | |
动画 | CSS 动画级别 1 | |
边框间距 | CSS 三级表格级别 | 由 GtkBoxLayout、GtkGridLayout、GtkCenterLayout 所尊重 |