GTK+ CSS
GTK+ CSS — Свойства CSS GTK+
Поддерживаемые свойства CSS
GTK+ поддерживает свойства и сокращения CSS, насколько они могут быть применены к виджетам, и добавляет свои собственные свойства только при необходимости. Все специфичные для GTK+ свойства имеют префикс -gtk.
Все свойства поддерживают следующие ключевые слова: inherit, initial, unset, со значением, аналогичным значениям в CSS.
Всюду используются следующие базовые типы данных:
〈length〉 = 〈number〉 [ px | pt | em | ex |rem | pc | in | cm | mm ] | 〈calc expression〉
〈percentage〉 = 〈number〉 % | 〈calc expression〉
〈angle〉 = 〈number〉 [ deg | grad | turn ] | 〈calc expression〉
〈time〉 = 〈number〉 [ s | ms ] | 〈calc expression〉
Значения длины с единицами em или ex разрешаются с использованием значения размера шрифта, за исключением случаев задания размера шрифта, в этом случае используется унаследованное значение размера шрифта.
Единица rem разрешается с использованием начального значения размера шрифта, что немного отличается от определения rem в CSS.
В тех случаях, где разрешено число, GTK+ также принимает специфичные для Windows размеры темы:
〈win32 theme size〉 = 〈win32 size〉| 〈win32 part size〉
〈win32 size〉 = -gtk-win32-size ( 〈theme name〉, 〈metric id〉 )
〈win32 part size〉 = [ -gtk-win32-part-width | -gtk-win32-part-height |
-gtk-win32-part-border-top | -gtk-win32-part-border-right |
-gtk-win32-part-border-bottom | -gtk-win32-part-border-left ] ( 〈theme name〉 , 〈integer〉 , 〈integer〉 )
〈calc expression〉 = calc( 〈calc sum〉 )
〈calc sum〉 = 〈calc product〉 [ [ + | - ] 〈calc product〉 ]*
〈calc product〉 = 〈calc value〉 [ * 〈calc value〉 | / 〈number〉 ]*
〈calc value〉 = 〈number〉 | 〈length〉 | 〈percentage〉 | 〈angle〉 | 〈time〉 | ( 〈calc sum〉 )
Нотация calc() значительно расширяет возможности. Существуют ограничения на типы, которые могут быть объединены в таком выражении (например, бессмысленно складывать число и время). Для получения подробной информации см. спецификацию CSS3 Values and Units.
Общей особенностью сокращённых свойств (называемых «четыре стороны») является возможность указания от одного до четырёх значений, чтобы определить значение для каждой стороны области. В этом случае указанные значения интерпретируются следующим образом:
4 значения: | верхний правый нижний левый |
3 значения: | верхний горизонтальный левый |
2 значения: | вертикальный горизонтальный |
1 значение: | все |
Таблица 2. Свойства цвета
Свойство color задаёт цвет для текста, значков и других элементов переднего плана. Свойство opacity задаёт непрозрачность виджета при композиции его с родительским виджетом.
Таблица 3. Свойства шрифта
| Имя | Значение | Начальное | Н. | А. | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| font‑family | 〈family name〉 [ , 〈family name〉 ]* | настройка gtk-font-name | ✓ | CSS2, CSS3 | ||
| font‑size | 〈absolute size〉 | 〈relative size〉 | 〈length〉 | 〈percentage〉 | настройка gtk-font-name | ✓ | ✓ | CSS2, CSS3 | |
| font‑style | normal | oblique | italic | normal | ✓ | CSS2, CSS3 | ||
| font‑variant | normal | small-caps | normal | ✓ | CSS2, CSS3 | поддерживаются только значения CSS2 | |
| font‑weight | normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | normal | ✓ | ✓ | CSS2, CSS3 | normal эквивалентно 400, bold эквивалентно 700 |
| font‑stretch | ultra-condensed | extra-condensed | condensed | semi-condensed | normal | semi-expanded | expanded | extra-expanded | ultra-expanded | normal | ✓ | CSS3 | ||
| ‑gtk‑dpi | 〈number〉 | разрешение экрана | ✓ | ✓ |
| Сокращение | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
| font | [ 〈font-style〉 || 〈font-variant〉 || 〈font-weight〉 || 〈font-stretch〉 ]? 〈font-size〉 〈font-family〉 | см. отдельные свойства | CSS2, CSS3 | CSS позволяет использовать line-height и т.д. |
〈absolute size〉 = xx-small | x-small | small | medium | large | x-large | xx-large
〈relative size〉 = larger | smaller
Свойства шрифта определяют шрифт для рендеринга текста. Относительные размеры и веса шрифта разрешаются относительно унаследованного значения для этих свойств.
Таблица 4. Свойства курсора текста
| Имя | Значение | Начальное | Н. | А. | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| caret-color | 〈color〉 | currentColor | ✓ | ✓ | CSS3 | CSS позволяет использовать значение auto |
| -gtk-secondary-caret-color | 〈color〉 | currentColor | ✓ | ✓ | Используется для вторичного курсора в тексте с двунаправленной ориентацией |
Свойства курсора предоставляют способ изменения внешнего вида курсора ввода в редактируемом тексте.
Таблица 5. Свойства декораций текста
| Имя | Значение | Начальное | Н. | А. | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| letter‑spacing | 〈length〉 | 0px | ✓ | ✓ | CSS3 | |
| text‑decoration‑line | none | underline | line-through | none | CSS2, CSS3 | CSS допускает использование overline | ||
| text‑decoration‑color | 〈color〉 | currentColor | ✓ | CSS3 | ||
| text‑decoration‑style | solid | double | wavy | solid | CSS3 | CSS допускает пунктирную и точечную линию | ||
| text‑shadow | none | 〈shadow〉 | none | ✓ | ✓ | CSS3 |
| Сокращение | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
| text‑decoration | 〈text-decoration-line〉 || 〈text-decoration-style〉 || 〈text-decoration-color〉 | см. отдельные свойства | CSS3 |
〈shadow〉 = 〈length〉 〈length〉 〈color〉?
Свойства декораций текста определяют, применять ли дополнительные декорации при рендеринге текста.
Таблица 6. Свойства иконок
| Имя | Значение | Начальное | Наследуется | Анимация | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| ‑gtk‑icon‑source | builtin | 〈image〉 | none | builtin | ✓ | |||
| ‑gtk‑icon‑transform | none | 〈transform〉+ | none | ✓ | |||
| ‑gtk‑icon‑style | requested | regular | symbolic | requested | ✓ | Определяет предпочтительный стиль иконок, загруженных приложением | ||
| ‑gtk‑icon‑theme | 〈name〉 | текущая тема иконок | ✓ | Тема иконок, используемая с -gtk-icontheme(). С версии 3.20 | ||
| ‑gtk‑icon‑palette | 〈color palette〉 | default | ✓ | ✓ | Используется для изменения цвета символьных иконок (как загруженных приложением, так и из -gtk-icontheme()). С версии 3.20 | |
| ‑gtk‑icon‑shadow | none | 〈shadow〉 | none | ✓ | ✓ | ||
| ‑gtk‑icon‑effect | none | highlight | dim | none | ✓ |
〈transform〉 = matrix( 〈number〉 [ , 〈number〉 ]{5} ) | translate( 〈length〉, 〈length〉 ) | translateX( 〈length〉 ) | translateY( 〈length〉 ) | scale( 〈number〉[ , 〈number〉 ]? ) | scaleX( 〈number〉 ) | scaleY( 〈number〉 ) | rotate( 〈angle〉 ) | skew( 〈angle〉 [ , 〈angle〉 ]? ) |
skewX( 〈angle〉 ) | skewY( 〈angle〉 )
〈color palette〉 = default | 〈name〉 〈color〉 [ , 〈name〉 〈color〉 ]*
Свойство -gtk-icon-source используется виджетами, которые отображают «встроенные» иконки, такие как стрелки, раскрывающиеся элементы, спиннеры, галочки или переключатели.
Свойство -gtk-icon-style определяет предпочтительный стиль иконок, предоставленных приложением.
Свойства -gtk-icon-transform и -gtk-icon-shadow влияют на отображение как встроенных, так и предоставленных приложением иконок.
-gtk-icon-palette определяет цветовую палитру для изменения цвета символьных иконок. Признаваемые названия цветов в символьных иконках — error, warning и success. По умолчанию эта палитра сопоставляет эти три имени со своими символическими цветами @error_color, @warning_color и @error_color.
Таблица 7. Свойства блоков
| Имя | Значение | Начальное | Наследуется | Анимация | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| min‑width | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты | |
| min‑height | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты | |
| margin‑top | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты или auto | |
| margin‑right | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты или auto | |
| margin‑bottom | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты или auto | |
| margin‑left | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты или auto | |
| padding‑top | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты | |
| padding‑right | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты | |
| padding‑bottom | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты | |
| padding‑left | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает проценты |
| Сокращенное | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
| margin | 〈length〉{1,4} | см. отдельные свойства | CSS2, CSS3 | сокращенное для «четырёх сторон» |
| padding | 〈length〉{1,4} | см. отдельные свойства | CSS2, CSS3 | сокращенное для «четырёх сторон» |
Таблица 8. Свойства границ
| Имя | Значение | Исходное | Наследуется | Анимируется | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| border‑top‑width | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает другие значения | |
| border‑right‑width | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает другие значения | |
| border‑bottom‑width | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает другие значения | |
| border‑right‑width | 〈length〉 | 0px | ✓ | CSS2, CSS3 | CSS допускает другие значения | |
| border‑top‑style | 〈border style〉 | none | CSS2, CSS3 | |||
| border‑right‑style | 〈border style〉 | none | CSS2, CSS3 | |||
| border‑bottom‑style | 〈border style〉 | none | CSS2, CSS3 | |||
| border‑left‑style | 〈border style〉 | none | CSS2, CSS3 | |||
| border‑top‑right‑radius | 〈corner radius〉 | 0 | ✓ | CSS2, CSS3 | ||
| border‑bottom‑right‑radius | 〈corner radius〉 | 0 | ✓ | CSS2, CSS3 | ||
| border‑bottom‑left‑radius | 〈corner radius〉 | 0 | ✓ | CSS2, CSS3 | ||
| border‑top‑left‑radius | 〈corner radius〉 | 0 | ✓ | CSS2, CSS3 | ||
| border‑top‑color | 〈color〉 | currentColor | ✓ | CSS2, CSS3 | ||
| border‑right‑color | 〈color〉 | currentColor | ✓ | CSS2, CSS3 | ||
| border‑bottom‑color | 〈color〉 | currentColor | ✓ | CSS2, CSS3 | ||
| border‑left‑color | 〈color〉 | currentColor | ✓ | CSS2, CSS3 | ||
| border‑image‑source | 〈image〉 | none | none | ✓ | CSS3 | ||
| border‑image‑repeat | 〈border repeat〉{1,2} | stretch | CSS3 | |||
| border‑image‑slice | [ 〈number〉 | 〈percentage〉 ]{1,4} && fill? | 100% | CSS3 | краткая запись для четырёх сторон | ||
| border‑image‑width | [ 〈length〉 | 〈number〉 | 〈percentage〉 | auto ]{1,4} | 1 | CSS3 | краткая запись для четырёх сторон |
| Сокращённая запись | Значение | Исходное | Ссылка | Примечания |
|---|---|---|---|---|
| border‑width | 〈length〉{1,4} | см. отдельные свойства | CSS2, CSS3 | краткая запись для четырёх сторон |
| border‑style | 〈border style〉{1,4} | см. отдельные свойства | CSS2, CSS3 | краткая запись для четырёх сторон |
| border‑color | 〈color〉{1,4} | см. отдельные свойства | CSS3 | краткая запись для четырёх сторон |
| border‑top | 〈length〉 || 〈border style〉 || 〈color〉 | см. отдельные свойства | CSS2, CSS3 | |
| border‑left | 〈length〉 || 〈border style〉 || 〈color〉 | см. отдельные свойства | CSS2, CSS3 | |
| border‑bottom | 〈length〉 || 〈border style〉 || 〈color〉 | см. отдельные свойства | CSS2, CSS3 | |
| border‑right | 〈length〉 || 〈border style〉 || 〈color〉 | см. отдельные свойства | CSS2, CSS3 | |
| border | 〈length〉 || 〈border style〉 || 〈color〉 | см. отдельные свойства | CSS2, CSS3 | |
| border‑radius | [ 〈length〉 | 〈percentage〉 ]{1,4} [ / [ 〈length〉 | 〈percentage> ]{1,4} ]? | см. отдельные свойства | CSS3 | |
| border‑image | 〈border-image-source〉 || 〈border-image-slice〉 [ / 〈border-image-width〉 | / 〈border-image-width〉? / 〈border-image-outset〉 ]? || 〈border-image-repeat〉 | см. отдельные свойства | CSS3 |
〈border style〉 = none | solid | inset | outset | hidden | dotted | dashed | double | groove | ridge
〈corner radius〉 = [ 〈length〉 | 〈percentage〉 ]{1,2} Таблица 9. Свойства контура
| Имя | Значение | Начальное | Наследуется | Анимируется | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| outline‑style | none | solid | inset | outset | hidden | dotted | dashed | double | groove | ridge | none | CSS2, CSS3 | |||
| outline‑width | 〈length〉 | 0px | ✓ | CSS2, CSS3 | ||
| outline‑color | 〈color〉 | currentColor | ✓ | CSS2, CSS3 | ||
| outline‑offset | 〈length〉 | 0px | CSS3 | |||
| ‑gtk‑outline‑top‑left‑radius | 〈corner radius〉 | 0 | ✓ | |||
| ‑gtk‑outline‑top‑right‑radius | 〈corner radius〉 | 0 | ✓ | |||
| ‑gtk‑outline‑bottom‑right‑radius | 〈corner radius〉 | 0 | ✓ | |||
| ‑gtk‑outline‑bottom‑left‑radius | 〈corner radius〉 | 0 | ✓ |
| Сокращение | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
| outline | 〈outline-color〉 || 〈outline-style〉 || 〈outline-width〉 | см. отдельные свойства | CSS2, CSS3 | |
| ‑gtk‑outline‑radius | [ 〈length〉|〈percentage〉 ]{1,4} [ / [〈length〉 | 〈percentage> ]{1,4} ]? | см. отдельные свойства |
GTK+ использует свойства CSS outline для отрисовки «прямоугольника фокуса».
Таблица 10. Свойства фона
| Имя | Значение | Начальное | Наследуется | Анимируется | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| background‑color | 〈color〉 | rgba(0,0,0,0) | ✓ | CSS2, CSS3 | ||
| background‑clip | 〈box〉 [ , 〈box〉 ]* | border-box | CSS3 | |||
| background‑origin | 〈box〉 [ , 〈box〉 ]* | padding-box | CSS3 | |||
| background‑size | 〈bg-size〉 [ , 〈bg-size〉 ]* | auto | ✓ | CSS3 | ||
| background‑position | 〈position〉 [ , 〈position〉 ]* | 0 | ✓ | CSS2, CSS3 | ||
| background‑repeat | 〈bg-repeat 〉[ , 〈bg-repeat〉 ]* | repeat | CSS2, CSS3 | |||
| background‑image | 〈bg-image〉[ , 〈bg-image〉 ]* | none | ✓ | CSS2, CSS3 | не поддерживаются: URL без кавычек, радиальные градиенты CSS, цвета в переходах | |
| background-blend-mode | 〈blend-mode〉 [ , 〈blend-mode〉 ]* | normal | только влияет на несколько фонов | |||
| box‑shadow | none | 〈box shadow〉 [ , 〈box shadow〉 ]* | none | ✓ | CSS3 |
| Сокращение | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
фон | [ 〈bg-layer〉 , ]* 〈final-bg-layer〉 | см. отдельные свойства | CSS2, CSS3 |
〈box〉 = border-box | padding-box | content-box
〈bg-size〉 = [ 〈length〉 | 〈percentage〉 | auto ]{1,2} | cover | contain 〈position〉 = [ left | right | center | top | bottom | 〈percentage〉 | 〈length〉 ]{1,2,3,4} 〈bg-repeat〉 = repeat-x | repeat-y | [ no-repeat | repeat | round | space ]{1,2} 〈bg-image〉 = 〈image〉 | none
〈bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉
〈final-bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉|| 〈color〉
〈blend-mode〉 = color || color-burn || color-dodge || darken || difference || exclusion || hard-light || hue || lighten || luminosity || multiply || normal || overlay || saturate || screen || soft-light
〈box shadow〉 = inset? && 〈length〉{2,4}? && 〈color〉? Как и в CSS, цвет фона отображается под всеми слоями изображений фона, поэтому он будет виден только в случае отсутствия изображений фона или наличия прозрачности.
В качестве альтернативы, несколько фонов можно смешать с помощью свойства background-blend-mode.
Таблица 11. Свойства анимации переходов
| Имя | Значение | Начальное | Наследуется | Анимируется | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| transition‑property | none | all | 〈property name〉 [ , 〈property name〉 ]* | all | CSS3 | |||
| transition‑duration | 〈time〉 [ , 〈time〉 ]* | 0s | CSS3 | |||
| transition‑timing‑function | 〈single‑timing‑function〉[ , 〈single‑timing‑function〉 ]* | ease | CSS3 | |||
| transition‑delay | 〈time〉 [ , 〈time〉 ]* | 0s | CSS3 |
| Сокращение | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
| transition | 〈single-transition〉 [ , 〈single-transition〉 ]* | см. отдельные свойства | CSS3 |
〈single-timing-function〉 = ease | linear | ease-in | ease-out | ease-in-out |
step-start | step-end | steps( 〈integer〉 [ , [ start | end ] ]? ) |
cubic-bezier( 〈number〉, 〈number〉, 〈number〉, 〈number〉 )
〈single-transition〉 = [ none | 〈property name〉 ] || 〈time〉 || 〈single-transition-timing-function〉 || 〈time〉
Таблица 12. Свойства анимации
| Имя | Значение | Начальное | Нслед. | Аним. | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| animation‑name | 〈single-animation-name〉 [ , 〈single-animation-name〉 ]* | none | CSS3 | |||
| animation‑duration | 〈time〉 [ , 〈time〉 ]* | 0s | CSS3 | |||
| animation‑timing‑function | 〈single‑timing‑function〉 [ , 〈single‑timing‑function〉 ]* | ease | CSS3 | |||
| animation‑iteration-count | 〈single‑animation‑iteration‑count〉 [ , 〈single‑animation‑iteration‑count〉 ]* | 1 | CSS3 | |||
| animation‑direction | 〈single‑animation‑direction〉 [ , 〈single‑animation‑direction〉 ]* | normal | CSS3 | |||
| animation‑play‑state | 〈single‑animation‑play‑state〉 [ , 〈single‑animation‑play‑state〉 ]* | running | CSS3 | |||
| animation‑delay | 〈time〉 [ , 〈time〉 ]* | 0s | CSS3 | |||
| animation‑fill‑mode | 〈single‑animation‑fill‑mode〉 [ , 〈single‑animation‑fill‑mode〉 ]* | none | CSS3 |
| Сокращенно | Значение | Начальное | Ссылка | Примечания |
|---|---|---|---|---|
| animation | 〈single‑animation〉 [ , 〈single‑animation〉]* | см. отдельные свойства | CSS3 |
〈single-animation-name〉 = none | 〈property name〉
〈single-animation-iteration-count〉 = infinite | 〈number〉
〈single-animation-direction〉 = normal | reverse | alternate | alternate-reverse
〈single-animation-play-state〉 = running | paused
〈single-animation-fill-mode〉 = none | forwards | backwards | both
〈single-animation〉 = 〈single-animation-name〉 || 〈time〉 || 〈single-timing-function〉 || 〈time〉 ||
〈single-animation-iteration-count〉 || 〈single-animation-direction〉 || 〈single-animation-play-state〉 || 〈single-animation-fill-mode〉
Таблица 13. Свойства привязки к клавишам
| Имя | Значение | Начальное | Нслед. | Аним. | Ссылка | Примечания |
|---|---|---|---|---|---|---|
| ‑gtk‑key‑bindings | none | 〈binding name〉 [ , 〈binding name〉 ]* | none |
〈имя_привязки〉 должно быть назначено на набор привязок с помощью правила @binding-set.
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/chap-css-properties.html