gtk2/gtk/theme/win32/gtk-win32-base.css
Benjamin Otte 89121e058a win32 theme: Add a naive switch implementation
I couldn't come up with anything better than a button on a button.
But the Windows theme sucks...
2016-03-02 14:49:37 +01:00

1484 lines
43 KiB
CSS

@define-color bg_color -gtk-win32-color(button, btnface);
@define-color text_color -gtk-win32-color(button, btntext);
@define-color selected_bg_color -gtk-win32-color(button, highlight);
@define-color selected_fg_color -gtk-win32-color(button, highlighttext);
@define-color info_fg_color rgb (181, 171, 156);
@define-color info_bg_color rgb (252, 252, 189);
@define-color warning_fg_color rgb (173, 120, 41);
@define-color warning_bg_color rgb (250, 173, 61);
@define-color question_fg_color rgb (97, 122, 214);
@define-color question_bg_color rgb (138, 173, 212);
@define-color error_fg_color rgb (166, 38, 38);
@define-color error_bg_color rgb (237, 54, 54);
@define-color app_notification_a #aeaea4;
@define-color app_notification_b #d1d1cb;
@define-color app_notification_c #d8d8d3;
@define-color app_notification_border #949486;
@define-color primary_toolbarbutton_text_shadow alpha(black, 0.1);
.background,
viewport {
/* XXX: This should be the default, but isn't?! */
font-family: "Segoe UI", Sans;
font-size: 9px;
background-color: -gtk-win32-color(window, btnface);
color: -gtk-win32-color(window, btntext);
}
* {
-GtkScrolledWindow-scrollbars-spacing: 0;
}
:link {
color: -gtk-win32-color(button, hotlight);
}
:visited {
color: -gtk-win32-color(button, hotlight);
}
*:disabled {
color: -gtk-win32-color(button, graytext);
}
*:selected,
*:selected:focus {
background-color: @selected_bg_color;
color: @selected_fg_color;
}
.info {
background-color: @info_bg_color;
color: @info_fg_color;
}
.warning {
background-color: @warning_bg_color;
color: @warning_fg_color;
}
.question {
background-color: @question_bg_color;
color: @question_fg_color;
}
.error {
background-color: @error_bg_color;
color: @error_fg_color;
}
.highlight {
background-color: @selected_bg_color;
color: @selected_fg_color;
}
.light-area-focus {
color: #000;
}
.dark-area-focus {
color: #fff;
}
scrolledwindow.frame {
border-style: solid;
border-width: 2px;
border-image: -gtk-win32-theme-part(listview, 5, 1) 2 2 2 2 stretch;
}
.view {
border-width: 0;
border-radius: 0;
background-color: -gtk-win32-color(edit, window);
color: @text_color;
}
.view:selected {
background-color: shade (-gtk-win32-color(edit, window), 0.9);
color: @fg_color;
}
.view:selected:focus {
background-color: @selected_bg_color;
color: @selected_fg_color;
}
tooltip, tooltip.background {
background-color: -gtk-win32-color(tooltip, infobk);
background-image: -gtk-win32-theme-part(tooltip, 1, 1);
color: -gtk-win32-color(button, infotext);
padding: 2px;
}
assistant .sidebar .highlight {
font: bold;
color: -gtk-win32-color(button, captiontext);
}
/* checkmarks */
check {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 1);
min-width: -gtk-win32-part-width(button, 3, 1);
min-height: -gtk-win32-part-height(button, 3, 1);
}
check:hover {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 2);
min-width: -gtk-win32-part-width(button, 3, 2);
min-height: -gtk-win32-part-height(button, 3, 2);
}
check:active {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 3);
min-width: -gtk-win32-part-width(button, 3, 3);
min-height: -gtk-win32-part-height(button, 3, 3);
}
check:disabled {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 4);
min-width: -gtk-win32-part-width(button, 3, 4);
min-height: -gtk-win32-part-height(button, 3, 4);
}
check:checked {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 5);
min-width: -gtk-win32-part-width(button, 3, 5);
min-height: -gtk-win32-part-height(button, 3, 5);
}
check:checked:hover {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 6);
min-width: -gtk-win32-part-width(button, 3, 6);
min-height: -gtk-win32-part-height(button, 3, 6);
}
check:checked:active {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 7);
min-width: -gtk-win32-part-width(button, 3, 7);
min-height: -gtk-win32-part-height(button, 3, 7);
}
check:checked:disabled {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 8);
min-width: -gtk-win32-part-width(button, 3, 8);
min-height: -gtk-win32-part-height(button, 3, 8);
}
check:indeterminate {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 9);
min-width: -gtk-win32-part-width(button, 3, 9);
min-height: -gtk-win32-part-height(button, 3, 9);
}
check:indeterminate:hover {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 10);
min-width: -gtk-win32-part-width(button, 3, 10);
min-height: -gtk-win32-part-height(button, 3, 10);
}
check:indeterminate:active {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 11);
min-width: -gtk-win32-part-width(button, 3, 11);
min-height: -gtk-win32-part-height(button, 3, 11);
}
check:indeterminate:disabled {
-gtk-icon-source: -gtk-win32-theme-part(button, 3, 12);
min-width: -gtk-win32-part-width(button, 3, 12);
min-height: -gtk-win32-part-height(button, 3, 12);
}
/* radiomarks */
radio {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 1);
min-width: -gtk-win32-part-width(button, 2, 1);
min-height: -gtk-win32-part-height(button, 2, 1);
}
radio:hover {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 2);
min-width: -gtk-win32-part-width(button, 2, 2);
min-height: -gtk-win32-part-height(button, 2, 2);
}
radio:active {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 3);
min-width: -gtk-win32-part-width(button, 2, 3);
min-height: -gtk-win32-part-height(button, 2, 3);
}
radio:disabled {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 4);
min-width: -gtk-win32-part-width(button, 2, 4);
min-height: -gtk-win32-part-height(button, 2, 4);
}
radio:checked {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 5);
min-width: -gtk-win32-part-width(button, 2, 5);
min-height: -gtk-win32-part-height(button, 2, 5);
}
radio:checked:hover {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 6);
min-width: -gtk-win32-part-width(button, 2, 6);
min-height: -gtk-win32-part-height(button, 2, 6);
}
radio:checked:active {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 7);
min-width: -gtk-win32-part-width(button, 2, 7);
min-height: -gtk-win32-part-height(button, 2, 7);
}
radio:checked:disabled {
-gtk-icon-source: -gtk-win32-theme-part(button, 2, 8);
min-width: -gtk-win32-part-width(button, 2, 8);
min-height: -gtk-win32-part-height(button, 2, 8);
}
radio:indeterminate {
-gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2, 5), -gtk-win32-theme-part(button, 2, 1));
min-width: -gtk-win32-part-width(button, 2, 9);
min-height: -gtk-win32-part-height(button, 2, 9);
}
radio:indeterminate:hover {
-gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2, 6), -gtk-win32-theme-part(button, 2, 2));
min-width: -gtk-win32-part-width(button, 2, 2);
min-height: -gtk-win32-part-height(button, 2, 2);
}
radio:indeterminate:active {
-gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2, 7), -gtk-win32-theme-part(button, 2, 3));
min-width: -gtk-win32-part-width(button, 2, 3);
min-height: -gtk-win32-part-height(button, 2, 3);
}
radio:indeterminate:disabled {
-gtk-icon-source: cross-fade(30% -gtk-win32-theme-part(button, 2, 8), -gtk-win32-theme-part(button, 2, 4));
min-width: -gtk-win32-part-width(button, 2, 4);
min-height: -gtk-win32-part-height(button, 2, 4);
}
/* Buttons */
button {
background-image: -gtk-win32-theme-part(button, 1, 1);
padding-top: calc(1px + -gtk-win32-part-border-top(button, 1, 1));
padding-right: calc(1px + -gtk-win32-part-border-right(button, 1, 1));
padding-bottom: calc(1px + -gtk-win32-part-border-bottom(button, 1, 1));
padding-left: calc(1px + -gtk-win32-part-border-left(button, 1, 1));
}
button.default {
background-image: -gtk-win32-theme-part(button, 1, 5);
padding-top: calc(1px + -gtk-win32-part-border-top(button, 1, 5));
padding-right: calc(1px + -gtk-win32-part-border-right(button, 1, 5));
padding-bottom: calc(1px + -gtk-win32-part-border-bottom(button, 1, 5));
padding-left: calc(1px + -gtk-win32-part-border-left(button, 1, 5));
}
button:hover {
background-image: -gtk-win32-theme-part(button, 1, 2);
padding-top: calc(1px + -gtk-win32-part-border-top(button, 1, 2));
padding-right: calc(1px + -gtk-win32-part-border-right(button, 1, 2));
padding-bottom: calc(1px + -gtk-win32-part-border-bottom(button, 1, 2));
padding-left: calc(1px + -gtk-win32-part-border-left(button, 1, 2));
}
button:active, button:checked {
background-image: -gtk-win32-theme-part(button, 1, 3);
padding-top: calc(1px + -gtk-win32-part-border-top(button, 1, 3));
padding-right: calc(1px + -gtk-win32-part-border-right(button, 1, 3));
padding-bottom: calc(1px + -gtk-win32-part-border-bottom(button, 1, 3));
padding-left: calc(1px + -gtk-win32-part-border-left(button, 1, 3));
}
/* XXX: Figure out how to handle disabled active togglebuttons */
button:disabled {
background-image: -gtk-win32-theme-part(button, 1, 4);
padding-top: calc(1px + -gtk-win32-part-border-top(button, 1, 4));
padding-right: calc(1px + -gtk-win32-part-border-right(button, 1, 4));
padding-bottom: calc(1px + -gtk-win32-part-border-bottom(button, 1, 4));
padding-left: calc(1px + -gtk-win32-part-border-left(button, 1, 4));
}
/* checkbuttons */
/* This is the magic spacing that's hardcoded in Wine */
checkbutton:dir(ltr) check,
radiobutton:dir(ltr) radio {
margin-right: 6px;
}
checkbutton:dir(rtl) check,
radiobutton:dir(rtl) radio {
margin-left: 6px;
}
/* Frame */
frame {
padding: 0px 10px;
}
frame > border {
margin: 0px -10px;
background-image: -gtk-win32-theme-part(button, 4, 1);
padding-top: -gtk-win32-part-border-top(button, 4, 1);
padding-right: -gtk-win32-part-border-right(button, 4, 1);
padding-bottom: -gtk-win32-part-border-bottom(button, 4, 1);
padding-left: -gtk-win32-part-border-left(button, 4, 1);
}
frame:disabled > border {
margin: 0px -10px;
background-image: -gtk-win32-theme-part(button, 4, 2);
padding-top: -gtk-win32-part-border-top(button, 4, 2);
padding-right: -gtk-win32-part-border-right(button, 4, 2);
padding-bottom: -gtk-win32-part-border-bottom(button, 4, 2);
padding-left: -gtk-win32-part-border-left(button, 4, 2);
}
frame > :not(border) {
margin: 0px 2px;
}
/* Notebooks */
notebook > stack {
background-image: -gtk-win32-theme-part(tab, 9, 1);
}
notebook > header > tabs {
padding: 2px;
}
notebook > header.top > tabs {
padding-bottom: 0px;
}
notebook > header.right > tabs {
padding-left: 0px;
}
notebook > header.bottom > tabs {
padding-top: 0px;
}
notebook > header.left > tabs {
padding-right: 0px;
}
notebook > header > tabs > tab {
background-image: -gtk-win32-theme-part(tab, 1, 1);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 1, 1));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 1, 1));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 1, 1));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 1, 1));
}
notebook > header > tabs > tab:hover {
background-image: -gtk-win32-theme-part(tab, 1, 2);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 1, 2));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 1, 2));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 1, 2));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 1, 2));
}
notebook > header > tabs > tab:focus {
background-image: -gtk-win32-theme-part(tab, 1, 5);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 1, 5));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 1, 5));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 1, 5));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 1, 5));
}
notebook > header > tabs > tab:disabled {
background-image: -gtk-win32-theme-part(tab, 1, 4);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 1, 4));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 1, 4));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 1, 4));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 1, 4));
}
notebook > header > tabs > tab:checked {
background-image: -gtk-win32-theme-part(tab, 5, 3);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 5, 3));
padding-right: calc(5px + -gtk-win32-part-border-right(tab, 5, 3));
padding-bottom: calc(4px + -gtk-win32-part-border-bottom(tab, 5, 3));
padding-left: calc(5px + -gtk-win32-part-border-left(tab, 5, 3));
margin: -2px;
}
notebook > header > tabs > tab:first-child {
background-image: -gtk-win32-theme-part(tab, 2, 1);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 2, 1));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 2, 1));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 2, 1));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 2, 1));
}
notebook > header > tabs > tab:first-child:hover {
background-image: -gtk-win32-theme-part(tab, 2, 2);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 2, 2));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 2, 2));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 2, 2));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 2, 2));
}
notebook > header > tabs > tab:first-child:focus {
background-image: -gtk-win32-theme-part(tab, 1, 5);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 2, 5));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 2, 5));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 2, 5));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 2, 5));
}
notebook > header > tabs > tab:first-child:disabled {
background-image: -gtk-win32-theme-part(tab, 1, 4);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 2, 4));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 2, 4));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 2, 4));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 2, 4));
}
notebook > header > tabs > tab:first-child:checked {
background-image: -gtk-win32-theme-part(tab, 6, 3);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 6, 3));
padding-right: calc(5px + -gtk-win32-part-border-right(tab, 6, 3));
padding-bottom: calc(4px + -gtk-win32-part-border-bottom(tab, 6, 3));
padding-left: calc(5px + -gtk-win32-part-border-left(tab, 6, 3));
margin: -2px;
}
notebook > header > tabs > tab:last-child {
background-image: -gtk-win32-theme-part(tab, 3, 1);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 3, 1));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 3, 1));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 3, 1));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 3, 1));
}
notebook > header > tabs > tab:last-child:hover {
background-image: -gtk-win32-theme-part(tab, 3, 2);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 3, 2));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 3, 2));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 3, 2));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 3, 2));
}
notebook > header > tabs > tab:last-child:focus {
background-image: -gtk-win32-theme-part(tab, 3, 5);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 3, 5));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 3, 5));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 3, 5));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 3, 5));
}
notebook > header > tabs > tab:last-child:disabled {
background-image: -gtk-win32-theme-part(tab, 3, 4);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 3, 4));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 3, 4));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 3, 4));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 3, 4));
}
notebook > header > tabs > tab:last-child:checked {
background-image: -gtk-win32-theme-part(tab, 7, 3);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 7, 3));
padding-right: calc(5px + -gtk-win32-part-border-right(tab, 7, 3));
padding-bottom: calc(4px + -gtk-win32-part-border-bottom(tab, 7, 3));
padding-left: calc(5px + -gtk-win32-part-border-left(tab, 7, 3));
margin: -2px;
}
notebook > header > tabs > tab:only-child {
background-image: -gtk-win32-theme-part(tab, 4, 1);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 4, 1));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 4, 1));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 4, 1));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 4, 1));
}
notebook > header > tabs > tab:only-child:hover {
background-image: -gtk-win32-theme-part(tab, 4, 2);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 4, 2));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 4, 2));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 4, 2));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 4, 2));
}
notebook > header > tabs > tab:only-child:focus {
background-image: -gtk-win32-theme-part(tab, 4, 5);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 4, 5));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 4, 5));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 4, 5));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 4, 5));
}
notebook > header > tabs > tab:only-child:disabled {
background-image: -gtk-win32-theme-part(tab, 4, 4);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 4, 4));
padding-right: calc(3px + -gtk-win32-part-border-right(tab, 4, 4));
padding-bottom: calc(2px + -gtk-win32-part-border-bottom(tab, 4, 4));
padding-left: calc(3px + -gtk-win32-part-border-left(tab, 4, 4));
}
notebook > header > tabs > tab:only-child:checked {
background-image: -gtk-win32-theme-part(tab, 8, 3);
padding-top: calc(1px + -gtk-win32-part-border-top(tab, 8, 3));
padding-right: calc(5px + -gtk-win32-part-border-right(tab, 8, 3));
padding-bottom: calc(4px + -gtk-win32-part-border-bottom(tab, 8, 3));
padding-left: calc(5px + -gtk-win32-part-border-left(tab, 8, 3));
margin: -2px;
}
/* Scrollbars */
/* TODO: Win32 has different concept for upper and lower trough, we
don't use this atm */
scrollbar {
background-color: transparent;
-GtkRange-arrow-scaling: 0.0;
-GtkRange-slider-width: -gtk-win32-size(scrollbar, cyhscroll);
}
scrollbar.vertical {
-GtkRange-slider-width: -gtk-win32-size(scrollbar, cxvscroll);
}
scrollbar button.bottom {
background-image: -gtk-win32-theme-part(scrollbar, 1, 5);
}
scrollbar button.bottom:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 6);
}
scrollbar button.bottom:active,
scrollbar button.bottom:active:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 7);
}
scrollbar button.bottom:disabled {
background-image: -gtk-win32-theme-part(scrollbar, 1, 8);
}
scrollbar button.top {
background-image: -gtk-win32-theme-part(scrollbar, 1, 1);
}
scrollbar button.top:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 2);
}
scrollbar button.top:active,
scrollbar button.top:active:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 3);
}
scrollbar button.top:disabled {
background-image: -gtk-win32-theme-part(scrollbar, 1, 4);
}
scrollbar button.left {
background-image: -gtk-win32-theme-part(scrollbar, 1, 9);
}
scrollbar button.left:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 10);
}
scrollbar button.left:active,
scrollbar button.left:active:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 11);
}
scrollbar button.left:disabled {
background-image: -gtk-win32-theme-part(scrollbar, 1, 12);
}
scrollbar button.right {
background-image: -gtk-win32-theme-part(scrollbar, 1, 13);
}
scrollbar button.right:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 14);
}
scrollbar button.right:active,
scrollbar button.right:active:hover {
background-image: -gtk-win32-theme-part(scrollbar, 1, 15);
}
scrollbar button.right:disabled {
background-image: -gtk-win32-theme-part(scrollbar, 1, 16);
}
scrollbar trough {
border-width: 0;
background-image: -gtk-win32-theme-part(scrollbar, 2, 1, over (4, 1));
}
scrollbar trough.vertical {
border-width: 0;
background-image: -gtk-win32-theme-part(scrollbar, 2, 1, over (6, 1));
}
scrollbar slider {
border-width: 0;
background-image: -gtk-win32-theme-part(scrollbar, 2, 1, over (8, 1));
}
scrollbar slider:hover {
background-image: -gtk-win32-theme-part(scrollbar, 2, 2, over (8, 2));
}
scrollbar slider:active {
background-image: -gtk-win32-theme-part(scrollbar, 2, 3, over (8, 3));
}
scrollbar slider:disabled {
/* There's a theme part for "disabled slider", but the only app observed
to have a disabled scrollbar (Notepad) does not draw its slider at all
when scrollbar is disabled. */
background-image: none;
background-color: transparent;
}
scrollbar.vertical slider {
background-image: -gtk-win32-theme-part(scrollbar, 3, 1, over (9, 1));
}
scrollbar.vertical slider:hover {
background-image: -gtk-win32-theme-part(scrollbar, 3, 2, over (9, 2));
}
scrollbar.vertical slider:active {
background-image: -gtk-win32-theme-part(scrollbar, 3, 3, over (9, 3));
}
scrollbar.vertical slider:disabled {
background-image: none;
background-color: transparent;
}
/* Entry */
textview.view,
entry {
background-image: -gtk-win32-theme-part(edit, 1, 1);
/* The 1em/3 is the "margin" that Windows uses. I'm pretty sure that's the "ABC width"
of the font. But we don't get those fancy things in CSS. */
padding: -gtk-win32-size(edit, cyedge) calc(-gtk-win32-size(edit, cxedge) + 1em/3);
}
textview.view:focus,
entry:focus {
background-image: -gtk-win32-theme-part(edit, 1, 3);
}
textview.view:disabled,
entry:disabled {
background-image: -gtk-win32-theme-part(edit, 1, 4);
color: -gtk-win32-color(edit, graytext);
}
selection {
background: -gtk-win32-color(edit, highlight);
color: -gtk-win32-color(edit, highlighttext);
}
entry.flat {
padding: 0px;
background-image: -gtk-win32-theme-part(edit, 3, 1);
}
entry.flat:focus {
background-image: -gtk-win32-theme-part(edit, 3, 3);
}
entry.flat:disabled {
background-image: -gtk-win32-theme-part(edit, 3, 4);
color: -gtk-win32-color(edit, graytext);
}
/* Spinbutton (horizontal) */
spinbutton.horizontal {
padding: 2px 1px;
background-image: -gtk-win32-theme-part(edit, 1, 1);
}
spinbutton.horizontal:focus {
background-image: -gtk-win32-theme-part(edit, 1, 3);
}
spinbutton.horizontal:disabled {
background-image: -gtk-win32-theme-part(edit, 1, 4);
}
spinbutton.horizontal entry {
all: unset;
padding: 0px calc(1em/3);
}
spinbutton.horizontal button {
all: unset;
color: transparent;
min-width: 15px;
min-height: 9px;
background-size: 15px 9px;
background-repeat: no-repeat;
}
spinbutton.horizontal button.down {
background-image: -gtk-win32-theme-part(spin, 2, 1);
background-position: top center;
padding-left: 1px;
margin-left: -1px;
margin-top: 8px;
margin-bottom: -8px;
margin-right: -1px;
}
spinbutton.horizontal button.up {
background-image: -gtk-win32-theme-part(spin, 1, 1);
background-position: bottom center;
margin-top: -8px;
margin-bottom: 8px;
margin-left: -16px;
margin-right: -1px;
}
spinbutton.horizontal button.down:hover {
background-image: -gtk-win32-theme-part(spin, 2, 2);
}
spinbutton.horizontal button.up:hover {
background-image: -gtk-win32-theme-part(spin, 1, 2);
}
spinbutton.horizontal button.down:active {
background-image: -gtk-win32-theme-part(spin, 2, 3);
}
spinbutton.horizontal button.up:active {
background-image: -gtk-win32-theme-part(spin, 1, 3);
}
spinbutton.horizontal button.down:disabled {
background-image: -gtk-win32-theme-part(spin, 2, 4);
}
spinbutton.horizontal button.up:disabled {
background-image: -gtk-win32-theme-part(spin, 1, 4);
}
/* Spinbutton (vertical) */
spinbutton.vertical button,
spinbutton.vertical button:focus {
background-color: transparent;
color: rgba(0, 0, 0, 0);
background-image: -gtk-win32-theme-part(spin, 1, 1, margins(0 -1 -0 -1));
}
spinbutton.vertical button:last-child,
spinbutton.vertical button:focus:last-child {
background-image: -gtk-win32-theme-part(spin, 2, 1, margins(0 -1 0 -1));
}
spinbutton.vertical button:hover,
spinbutton.vertical button:hover:focus {
background-image: -gtk-win32-theme-part(spin, 1, 2, margins(0 -1 -0 -1));
}
spinbutton.vertical button:hover:last-child,
spinbutton.vertical button:hover:focus:last-child {
background-image: -gtk-win32-theme-part(spin, 2, 2, margins(0 -1 0 -1));
}
spinbutton.vertical button:active,
spinbutton.vertical button:active:hover,
spinbutton.vertical button:active:focus,
spinbutton.vertical button:active:hover:focus {
background-image: -gtk-win32-theme-part(spin, 1, 3, margins(0 -1 -0 -1));
}
spinbutton.vertical button:active:last-child,
spinbutton.vertical button:active:hover:last-child,
spinbutton.vertical button:active:focus:last-child,
spinbutton.vertical button:active:hover:focus:last-child {
background-image: -gtk-win32-theme-part(spin, 2, 3, margins(0 -1 0 -1));
}
spinbutton.vertical button:disabled {
background-image: -gtk-win32-theme-part(spin, 1, 4, margins(0 -1 -0 -1));
}
spinbutton.vertical button:disabled:last-child {
background-image: -gtk-win32-theme-part(spin, 2, 4, margins(0 -1 0 -1));
}
spinbutton button:dir(rtl),
spinbutton button:focus:dir(rtl) {
background-color: transparent;
background-image: -gtk-win32-theme-part(spin, 2, 1, margins(0 -1 -1 -1));
color: rgba(0, 0, 0, 0);
}
spinbutton button:first-child:dir(rtl),
spinbutton button:focus:first-child:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 1, 1, margins(-1 -1 0 -1));
}
spinbutton button:hover:dir(rtl),
spinbutton button:hover:focus:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 2, 2, margins(0 -1 -1 -1));
}
spinbutton button:hover:first-child:dir(rtl),
spinbutton button:hover:focus:first-child:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 1, 2, margins(-1 -1 0 -1));
}
spinbutton button:active:dir(rtl),
spinbutton button:active:hover:dir(rtl),
spinbutton button:active:focus:dir(rtl),
spinbutton button:active:hover:focus:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 2, 3, margins(0 -1 -1 -1));
}
spinbutton button:active:first-child:dir(rtl),
spinbutton button:active:hover:first-child:dir(rtl),
spinbutton button:active:focus:first-child:dir(rtl),
spinbutton button:active:hover:focus:first-child:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 1, 3, margins(-1 -1 0 -1));
}
spinbutton button:disabled:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 2, 4, margins(0 -1 -1 -1));
}
spinbutton button:disabled:first-child:dir(rtl) {
background-image: -gtk-win32-theme-part(spin, 1, 4, margins(-1 -1 0 -1));
}
/* Ranges */
/* TODO: The trough is not quite right, it covers everything,
but in win32 the slider 'sticks out' on the sides of the
trough */
scale {
background-color: transparent;
-GtkScale-value-spacing: 0;
-GtkScale-slider-length: 12;
-GtkRange-slider-width: 20;
}
scale trough {
margin: 8px 0;
border-style: none;
border-width: 0;
background-image: -gtk-win32-theme-part(trackbar, 1, 1);
}
scale.vertical trough {
margin: 0 8px;
background-image: -gtk-win32-theme-part(trackbar, 1, 1);
}
scale.mark.separator {
/* defines the color of the actuall marks on the scale */
color: shade(@bg_color, 0.6);
}
scale slider {
background-color: transparent;
border-width: 0;
color: rgba(0,0,0,0);
background-image: -gtk-win32-theme-part(trackbar, 3, 1);
}
scale slider:hover {
background-image: -gtk-win32-theme-part(trackbar, 3, 2);
}
scale slider:active,
scale slider:hover:active {
background-image: -gtk-win32-theme-part(trackbar, 3, 3);
}
scale slider:focus {
background-image: -gtk-win32-theme-part(trackbar, 3, 4);
}
scale slider:disabled {
background-image: -gtk-win32-theme-part(trackbar, 3, 5);
}
scale.vertical slider {
background-image: -gtk-win32-theme-part(trackbar, 6, 1);
}
scale.vertical slider:hover {
background-image: -gtk-win32-theme-part(trackbar, 6, 2);
}
scale.vertical slider:active,
scale.vertical slider:hover:active {
background-image: -gtk-win32-theme-part(trackbar, 6, 3);
}
scale.vertical slider:focus {
background-image: -gtk-win32-theme-part(trackbar, 6, 4);
}
scale.vertical slider:disabled {
background-image: -gtk-win32-theme-part(trackbar, 6, 5);
}
scale marks.bottom {
background-image: -gtk-win32-theme-part(trackbar, 4, 1, margins(0 -2 0 0));
}
scale marks.bottom:hover {
background-image: -gtk-win32-theme-part(trackbar, 4, 2, margins(0 -2 0 0));
}
scale marks.bottom:active,
scale marks.bottom:hover:active {
background-image: -gtk-win32-theme-part(trackbar, 4, 3, margins(0 -2 0 0));
}
scale marks.bottom:focus {
background-image: -gtk-win32-theme-part(trackbar, 4, 4, margins(0 -2 0 0));
}
scale marks.bottom:disabled {
background-image: -gtk-win32-theme-part(trackbar, 4, 5, margins(0 -2 0 0));
}
scale.vertical marks.bottom {
background-image: -gtk-win32-theme-part(trackbar, 8, 1, margins(0 0 -2 0));
}
scale.vertical marks.bottom:hover {
background-image: -gtk-win32-theme-part(trackbar, 8, 2, margins(0 0 -2 0));
}
scale.vertical marks.bottom:active,
scale.vertical marks.bottom:hover:active {
background-image: -gtk-win32-theme-part(trackbar, 8, 3, margins(0 0 -2 0));
}
scale.vertical marks.bottom:focus {
background-image: -gtk-win32-theme-part(trackbar, 8, 4, margins(0 0 -2 0));
}
scale.vertical marks.bottom:disabled {
background-image: -gtk-win32-theme-part(trackbar, 8, 5, margins(0 0 -2 0));
}
scale marks.top {
background-image: -gtk-win32-theme-part(trackbar, 5, 1, margins(0 -2 0 0));
}
scale marks.top:hover {
background-image: -gtk-win32-theme-part(trackbar, 5, 2, margins(0 -2 0 0));
}
scale marks.top:active,
scale marks.top:hover:active {
background-image: -gtk-win32-theme-part(trackbar, 5, 3, margins(0 -2 0 0));
}
scale marks.top:focus {
background-image: -gtk-win32-theme-part(trackbar, 5, 4, margins(0 -2 0 0));
}
scale marks.top:disabled {
background-image: -gtk-win32-theme-part(trackbar, 5, 5, margins(0 -2 0 0));
}
scale.vertical marks.top {
background-image: -gtk-win32-theme-part(trackbar, 7, 1, margins(0 0 -2 0));
}
scale.vertical marks.top:hover {
background-image: -gtk-win32-theme-part(trackbar, 7, 2, margins(0 0 -2 0));
}
scale.vertical marks.top:active,
scale.vertical marks.top:hover:active {
background-image: -gtk-win32-theme-part(trackbar, 7, 3, margins(0 0 -2 0));
}
scale.vertical marks.top:focus {
background-image: -gtk-win32-theme-part(trackbar, 7, 4, margins(0 0 -2 0));
}
scale.vertical marks.top:disabled {
background-image: -gtk-win32-theme-part(trackbar, 7, 5, margins(0 0 -2 0));
}
/* Progress bars */
progressbar {
background-color: transparent;
padding: 0;
}
progressbar trough {
border-width: 0;
background-image: -gtk-win32-theme-part(progress, 1, 1);
}
progressbar progress,
entry progress,
entry progress:focus {
border-width: 0;
background-image: -gtk-win32-theme-part(progress, 5, 1);
}
progressbar progress.pulse,
entry progress.pulse,
entry progress.pulse:focus {
background-color: transparent;
background-image: -gtk-win32-theme-part(progress, 8, 1);
}
progressbar.vertical trough {
background-image: -gtk-win32-theme-part(progress, 2, 1);
}
progressbar.vertical progress {
background-image: -gtk-win32-theme-part(progress, 6, 1);
}
progressbar.vertical progress.pulse {
background-image: -gtk-win32-theme-part(progress, 10, 1);
}
/* Combobox */
combobox-entry button {
background-color: transparent;
border-width: 0;
background-image: -gtk-win32-theme-part(combobox, 1, 1);
color: rgba(0, 0, 0, 0);
/* Remove padding from comboboxbutton (GtkArrow inside of it is hardcoded to be
16x16, but we draw even smaller arrow instead, so padding is completely unnecessary,
it only makes thebutton bigger for not good reason).
Only do this for combobox-entry, because non-entry combobox IS thebutton,
and it does need to be as thick as the items of the list it pops up (and it's
still slimmer than padded combobox-entry!). */
padding: 0px;
}
combobox-entry button:hover,
combobox-entry button:focus,
combobox-entry button:hover:focus {
background-image: -gtk-win32-theme-part(combobox, 1, 2);
}
combobox-entry button:active,
combobox-entry button:active:focus,
combobox-entry button:active:hover,
combobox-entry button:active:focus:hover {
background-image: -gtk-win32-theme-part(combobox, 1, 3);
}
combobox-entry button:disabled {
background-image: -gtk-win32-theme-part(combobox, 1, 4);
}
/* Dropdown list should have "window" color, as listbox contents do (usually it's "white") */
combobox cellview * {
background-color: -gtk-win32-color(listview, window);
}
/* Draw "arrow" for non-entry comboboxes. Select the box, since selecting
the arrow itself does not seem to work as intended. */
combobox box {
color: rgba(255, 0, 0, 0);
background-image: -gtk-win32-theme-part(combobox, 6, 1);
}
combobox box:disabled {
color: rgba(255, 0, 0, 0);
background-image: -gtk-win32-theme-part(combobox, 6, 4);
}
/* Make sure the style above does not touch comboboxes with entries by
disabling background image for the box again */
combobox-entry box {
color: rgba(255, 0, 0, 0);
background-image: none;
}
combobox-entry box:disabled {
color: rgba(255, 0, 0, 0);
background-image: none;
}
/* The arrow is part of the background image drawn by the theme, don't draw GTK's own arrow */
combobox-entry GtkArrow {
color: rgba(255, 0, 0, 0);
}
combobox-entry GtkArrow:disabled {
color: rgba(255, 0, 0, 0);
}
combobox arrow {
color: rgba(255, 0, 0, 0);
}
combobox arrow:disabled {
color: rgba(255, 0, 0, 0);
}
/* Toolbar */
toolbar {
background-color: transparent;
border-width: 0;
background-image: -gtk-win32-theme-part(rebar, 6, 1);
}
toolbar button,
toolbar button:focus {
background-color: transparent;
background-image: -gtk-win32-theme-part(toolbar, 1, 1);
}
toolbar button:hover,
toolbar button:hover:focus {
background-image: -gtk-win32-theme-part(toolbar, 1, 2);
}
toolbar button:active {
background-image: -gtk-win32-theme-part(toolbar, 1, 3);
}
toolbar button:active:hover {
background-image: -gtk-win32-theme-part(toolbar, 1, 6);
}
toolbar button:disabled {
background-image: -gtk-win32-theme-part(toolbar, 1, 4);
}
/* Column headers */
column-header button,
column-header button:focus {
background-color: transparent;
border-width: 0;
background-image: -gtk-win32-theme-part(header, 1, 1);
}
column-header button:hover,
column-header button:hover:focus {
background-image: -gtk-win32-theme-part(header, 1, 2);
}
column-header button:active,
column-header button:active:hover,
column-header button:active:focus,
column-header button:active:hover:focus {
background-image: -gtk-win32-theme-part(header, 1, 3);
}
/* Switch */
switch {
background-image: -gtk-win32-theme-part(button, 1, 1);
}
switch:checked {
background-image: -gtk-win32-theme-part(button, 1, 3);
}
switch:disabled {
background-image: -gtk-win32-theme-part(button, 1, 4);
}
switch slider {
background-image: -gtk-win32-theme-part(button, 1, 1);
}
switch:hover slider {
background-image: -gtk-win32-theme-part(button, 1, 2);
}
switch:active slider {
background-image: -gtk-win32-theme-part(button, 1, 3);
}
switch:disabled slider {
background-image: -gtk-win32-theme-part(button, 1, 4);
}
/* Menus */
menu {
background-color: -gtk-win32-color(button, menu);
border-color: shade (-gtk-win32-color(button, menu), 0.6);
border-style: solid;
border-width: 1px;
padding: 2px;
}
menuitem {
color: -gtk-win32-color(button, menutext);
}
menubar menuitem *:backdrop {
color: mix (-gtk-win32-color(button, menutext), white, 0.5);
}
menubar > menuitem {
padding: 3px 5px;
}
/* Add more padding to menus, increasing visible height of each menuitem */
menu * {
padding: 2px;
}
/* Assistant */
GtkAssistant .sidebar .highlight {
background-color: gray;
font: bold;
}
GtkAssistant .sidebar {
padding: 12px;
background-color: white;
border-image: none;
border-width: 0 1px 0 0;
border-style: solid;
}
colorswatch {
border-style: solid;
border-width: 1px;
}
colorswatch:hover {
border-color: shade (@bg_color, 0.2);
}
separator,
separator:hover {
color: shade (@bg_color, 0.6);
}
statusbar > frame {
border-width: 1px 1px 1px 1px;
border-style: solid;
border-image: -gtk-win32-theme-part(status, 0, 0, margins (-1 0 0 0)) 2 1 1 1 stretch;
background-image: none;
}
/* Spinner */
@keyframes spin {
to { -gtk-icon-transform: rotate(1turn); }
}
spinner {
background: none;
opacity: 0;
-gtk-icon-source: -gtk-icontheme('process-working-symbolic');
}
spinner:checked {
opacity: 1;
animation: spin 1s linear infinite;
}
spinner:checked:disabled
{
opacity: 0.5;
}
spinner:active {
background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
animation: spinner 1s infinite linear;
}
/* Popovers */
popover {
border-radius: 3px;
background-clip: border-box;
background-color: @bg_color;
border-color: rgba(0, 0, 0, 1);
border-width: 1px;
border-style: solid;
box-shadow: 0 2px 3px alpha(black, 0.5);
margin: 10px;
padding: 2px;
}
popover > list,
popover > .view,
popover > toolbar {
background-color: transparent;
}
/* Listbox */
list {
background-color: -gtk-win32-color(listbox, window);
}
/* Dim label */
.dim-label {
color: alpha(currentColor, 0.55);
text-shadow: none;
}
/* Modelbuttons */
modelbutton:focus,
modelbutton {
background-color: transparent;
background-image: -gtk-win32-theme-part(menu, 14, 1);
}
modelbutton:active,
modelbutton:active:focus {
background-color: transparent;
background-image: -gtk-win32-theme-part(menu, 14, 1);
}
modelbutton:active:hover:focus,
modelbutton:hover:focus,
modelbutton:hover {
background-image: -gtk-win32-theme-part(menu, 14, 2);
}
modelbutton:active:hover:disabled:focus,
modelbutton:hover:disabled:focus,
modelbutton:hover:disabled {
background-image: -gtk-win32-theme-part(menu, 14, 4);
}
modelbutton radio:focus,
modelbutton radio,
modelbutton radio:hover,
modelbutton radio:disabled {
background-color: transparent;
background-image: none;
border-width: 0;
}
modelbutton radio:active:focus,
modelbutton radio:active,
modelbutton radio:active:hover {
background-image: -gtk-win32-theme-part(menu, 12, 2, over (11, 3));
border-width: 0;
}
modelbutton radio:indeterminate:focus,
modelbutton radio:indeterminate,
modelbutton radio:indeterminate:disabled,
modelbutton radio:indeterminate:hover,
modelbutton radio:indeterminate:active,
modelbutton radio:indeterminate:active:hover {
background-image: none; /* Fall back to default, this state is not in win32 */
border-width: 0;
}
modelbutton radio:disabled:active:focus,
modelbutton radio:disabled:active,
modelbutton radio:disabled:active:hover {
background-image: -gtk-win32-theme-part(menu, 12, 1, over (11, 4));
border-width: 0;
}
modelbutton check:focus,
modelbutton check,
modelbutton check:disabled,
modelbutton check:hover,
modelbutton check:hover:focus {
background-color: transparent;
background-image: none;
border-width: 0;
}
modelbutton check:active:focus,
modelbutton check:active,
modelbutton check:active:hover:focus,
modelbutton check:active:hover {
background-image: -gtk-win32-theme-part(menu, 12, 2, over (11, 1));
border-width: 0;
}
modelbutton check:indeterminate:focus,
modelbutton check:indeterminate,
modelbutton check:indeterminate:disabled,
modelbutton check:indeterminate:disabled:focus,
modelbutton check:indeterminate:hover,
modelbutton check:indeterminate:hover:focus,
modelbutton check:indeterminate:active,
modelbutton check:indeterminate:active:focus,
modelbutton check:indeterminate:active:hover:focus,
modelbutton check:indeterminate:active:hover {
background-image: none; /* Fall back to default, this state is not in win32 */
border-width: 0;
}
modelbutton check:disabled:active:focus,
modelbutton check:disabled:active,
modelbutton check:disabled:active:hover:focus,
modelbutton check:disabled:active:hover {
background-image: -gtk-win32-theme-part(menu, 12, 1, over (11, 2));
border-width: 0;
}
/* Application notification */
.app-notification {
border-style: solid;
border-color: @app_notification_border;
border-width: 0 1px 1px 1px;
border-radius: 0 0 5px 5px;
padding: 8px;
background-image: linear-gradient(to bottom,
@app_notification_a,
@app_notification_b 18%,
@app_notification_c);
color: @theme_text_color;
text-shadow: 0 1px @primary_toolbarbutton_text_shadow;
border-image: none;
}