diff --git a/Breeze-gtk/build_theme.sh b/Breeze-gtk/build_theme.sh new file mode 100644 index 0000000..8a454d3 --- /dev/null +++ b/Breeze-gtk/build_theme.sh @@ -0,0 +1,27 @@ +#! /bin/bash + +SOURCE_DIR=src + +if [ -d gtk-2.0 ]; + then rm -rf gtk-2.0; +fi + +if [ -d gtk-3.0 ]; + then rm -rf gtk-3.0; +fi + +mkdir gtk-2.0 +mkdir gtk-2.0/assets +mkdir gtk-3.0 + +if [ $HOME/.config/kdeglobals ]; + then python $SOURCE_DIR/render_theme.py $HOME/.config/kdeglobals; +else python $SOURCE_DIR/render_theme.py; +fi + +sass --cache-location /tmp/sass-cache $SOURCE_DIR/gtk3/gtk.scss $SOURCE_DIR/gtk3/gtk.css +glib-compile-resources --sourcedir=$SOURCE_DIR/gtk3 $SOURCE_DIR/gtk3/gtk.gresource.xml +cp -R $SOURCE_DIR/gtk3/assets gtk-3.0/ +cp -R $SOURCE_DIR/gtk3/gtk.css gtk-3.0/ +cp $SOURCE_DIR/gtk3/gtk.gresource gtk-3.0/ +cp -R $SOURCE_DIR/gtk2/* gtk-2.0/ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-down-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-down-active.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-down-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-down-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-down-hover.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-down-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-down-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-down-insensitive.png new file mode 100644 index 0000000..f5db011 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-down-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-down.png b/Breeze-gtk/gtk-2.0/assets/arrow-down.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-down.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-left-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-left-active.png new file mode 100644 index 0000000..5f09594 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-left-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-left-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-left-hover.png new file mode 100644 index 0000000..5f09594 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-left-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-left-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-left-insensitive.png new file mode 100644 index 0000000..2417aa4 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-left-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-left.png b/Breeze-gtk/gtk-2.0/assets/arrow-left.png new file mode 100644 index 0000000..5f09594 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-left.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-right-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-right-active.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-right-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-right-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-right-hover.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-right-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-right-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-right-insensitive.png new file mode 100644 index 0000000..4221d02 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-right-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-right.png b/Breeze-gtk/gtk-2.0/assets/arrow-right.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-right.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-down-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-down-active.png new file mode 100644 index 0000000..58beca3 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-down-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-down-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-down-hover.png new file mode 100644 index 0000000..58beca3 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-down-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-down-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-down-insensitive.png new file mode 100644 index 0000000..6ec6f2c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-down-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-down.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-down.png new file mode 100644 index 0000000..58beca3 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-down.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-left-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-left-active.png new file mode 100644 index 0000000..11b9eb1 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-left-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-left-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-left-hover.png new file mode 100644 index 0000000..11b9eb1 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-left-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-left-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-left-insensitive.png new file mode 100644 index 0000000..c6b7d1d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-left-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-left.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-left.png new file mode 100644 index 0000000..11b9eb1 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-left.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-right-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-right-active.png new file mode 100644 index 0000000..f321783 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-right-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-right-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-right-hover.png new file mode 100644 index 0000000..f321783 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-right-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-right-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-right-insensitive.png new file mode 100644 index 0000000..d8c3ef3 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-right-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-right.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-right.png new file mode 100644 index 0000000..f321783 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-right.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-up-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-up-active.png new file mode 100644 index 0000000..890c1ea Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-up-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-up-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-up-hover.png new file mode 100644 index 0000000..890c1ea Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-up-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-up-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-up-insensitive.png new file mode 100644 index 0000000..beea418 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-up-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-small-up.png b/Breeze-gtk/gtk-2.0/assets/arrow-small-up.png new file mode 100644 index 0000000..890c1ea Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-small-up.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-up-active.png b/Breeze-gtk/gtk-2.0/assets/arrow-up-active.png new file mode 100644 index 0000000..588e47c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-up-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-up-hover.png b/Breeze-gtk/gtk-2.0/assets/arrow-up-hover.png new file mode 100644 index 0000000..588e47c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-up-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-up-insensitive.png b/Breeze-gtk/gtk-2.0/assets/arrow-up-insensitive.png new file mode 100644 index 0000000..670d5c4 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-up-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/arrow-up.png b/Breeze-gtk/gtk-2.0/assets/arrow-up.png new file mode 100644 index 0000000..588e47c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/arrow-up.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/button-active.png b/Breeze-gtk/gtk-2.0/assets/button-active.png new file mode 100644 index 0000000..b5a166d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/button-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/button-hover.png b/Breeze-gtk/gtk-2.0/assets/button-hover.png new file mode 100644 index 0000000..d8aa31b Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/button-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/button-insensitive.png b/Breeze-gtk/gtk-2.0/assets/button-insensitive.png new file mode 100644 index 0000000..8ee01ea Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/button-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/button.png b/Breeze-gtk/gtk-2.0/assets/button.png new file mode 100644 index 0000000..c884625 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/button.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-checked-active.png b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-active.png new file mode 100644 index 0000000..7f4b2d0 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-checked-hover.png b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-hover.png new file mode 100644 index 0000000..dee6b31 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-checked-insensitive.png b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-insensitive.png new file mode 100644 index 0000000..37f3c7e Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-checked-selected.png b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-selected.png new file mode 100644 index 0000000..53630a3 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-checked-selected.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-checked.png b/Breeze-gtk/gtk-2.0/assets/checkbox-checked.png new file mode 100644 index 0000000..7f4b2d0 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-checked.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-active.png b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-active.png new file mode 100644 index 0000000..b89e73d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-hover.png b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-hover.png new file mode 100644 index 0000000..d719aa5 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-insensitive.png b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-insensitive.png new file mode 100644 index 0000000..2b62619 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-selected.png b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-selected.png new file mode 100644 index 0000000..650bbf9 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked-selected.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked.png b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked.png new file mode 100644 index 0000000..345fc85 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/checkbox-unchecked.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/entry-active.png b/Breeze-gtk/gtk-2.0/assets/entry-active.png new file mode 100644 index 0000000..c5cef9c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/entry-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/entry-insensitive.png b/Breeze-gtk/gtk-2.0/assets/entry-insensitive.png new file mode 100644 index 0000000..b76933d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/entry-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/entry.png b/Breeze-gtk/gtk-2.0/assets/entry.png new file mode 100644 index 0000000..2b058cb Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/entry.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/frame-gap-end.png b/Breeze-gtk/gtk-2.0/assets/frame-gap-end.png new file mode 100644 index 0000000..6624078 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/frame-gap-end.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/frame-gap-start.png b/Breeze-gtk/gtk-2.0/assets/frame-gap-start.png new file mode 100644 index 0000000..3172f49 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/frame-gap-start.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/frame.png b/Breeze-gtk/gtk-2.0/assets/frame.png new file mode 100644 index 0000000..4a90cee Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/frame.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/handle-h.png b/Breeze-gtk/gtk-2.0/assets/handle-h.png new file mode 100644 index 0000000..349f07c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/handle-h.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/handle-v.png b/Breeze-gtk/gtk-2.0/assets/handle-v.png new file mode 100644 index 0000000..1fafdcf Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/handle-v.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/line-h.png b/Breeze-gtk/gtk-2.0/assets/line-h.png new file mode 100644 index 0000000..bb1ff29 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/line-h.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/line-v.png b/Breeze-gtk/gtk-2.0/assets/line-v.png new file mode 100644 index 0000000..6e875eb Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/line-v.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/menu-arrow-insensitive.png b/Breeze-gtk/gtk-2.0/assets/menu-arrow-insensitive.png new file mode 100644 index 0000000..4221d02 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/menu-arrow-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/menu-arrow.png b/Breeze-gtk/gtk-2.0/assets/menu-arrow.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/menu-arrow.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/menu-frame.png b/Breeze-gtk/gtk-2.0/assets/menu-frame.png new file mode 100644 index 0000000..4de6f5d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/menu-frame.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/menu-line.png b/Breeze-gtk/gtk-2.0/assets/menu-line.png new file mode 100644 index 0000000..3f83143 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/menu-line.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/menubar-button.png b/Breeze-gtk/gtk-2.0/assets/menubar-button.png new file mode 100644 index 0000000..58e1666 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/menubar-button.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/minus.png b/Breeze-gtk/gtk-2.0/assets/minus.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/minus.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/notebook-gap-horizontal.png b/Breeze-gtk/gtk-2.0/assets/notebook-gap-horizontal.png new file mode 100644 index 0000000..5036b7b Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/notebook-gap-horizontal.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/notebook-gap-vertical.png b/Breeze-gtk/gtk-2.0/assets/notebook-gap-vertical.png new file mode 100644 index 0000000..73bf4a1 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/notebook-gap-vertical.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/notebook.png b/Breeze-gtk/gtk-2.0/assets/notebook.png new file mode 100644 index 0000000..4de6f5d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/notebook.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/null.png b/Breeze-gtk/gtk-2.0/assets/null.png new file mode 100644 index 0000000..bdf4c81 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/null.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/plus.png b/Breeze-gtk/gtk-2.0/assets/plus.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/plus.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/progressbar-bar.png b/Breeze-gtk/gtk-2.0/assets/progressbar-bar.png new file mode 100644 index 0000000..66e1462 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/progressbar-bar.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/progressbar-trough.png b/Breeze-gtk/gtk-2.0/assets/progressbar-trough.png new file mode 100644 index 0000000..d61bec9 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/progressbar-trough.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-checked-active.png b/Breeze-gtk/gtk-2.0/assets/radio-checked-active.png new file mode 100644 index 0000000..d043ef2 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-checked-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-checked-hover.png b/Breeze-gtk/gtk-2.0/assets/radio-checked-hover.png new file mode 100644 index 0000000..ee41e3b Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-checked-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-checked-insensitive.png b/Breeze-gtk/gtk-2.0/assets/radio-checked-insensitive.png new file mode 100644 index 0000000..94c0955 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-checked-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-checked-selected.png b/Breeze-gtk/gtk-2.0/assets/radio-checked-selected.png new file mode 100644 index 0000000..bc331c0 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-checked-selected.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-checked.png b/Breeze-gtk/gtk-2.0/assets/radio-checked.png new file mode 100644 index 0000000..d043ef2 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-checked.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-unchecked-active.png b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-active.png new file mode 100644 index 0000000..f7eaa2c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-unchecked-hover.png b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-hover.png new file mode 100644 index 0000000..f01a335 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-unchecked-insensitive.png b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-insensitive.png new file mode 100644 index 0000000..755122a Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-unchecked-selected.png b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-selected.png new file mode 100644 index 0000000..86fc8dc Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-unchecked-selected.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/radio-unchecked.png b/Breeze-gtk/gtk-2.0/assets/radio-unchecked.png new file mode 100644 index 0000000..eacf8b2 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/radio-unchecked.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scale-slider-active.png b/Breeze-gtk/gtk-2.0/assets/scale-slider-active.png new file mode 100644 index 0000000..3e7f554 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scale-slider-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scale-slider-insensitive.png b/Breeze-gtk/gtk-2.0/assets/scale-slider-insensitive.png new file mode 100644 index 0000000..cae7592 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scale-slider-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scale-slider.png b/Breeze-gtk/gtk-2.0/assets/scale-slider.png new file mode 100644 index 0000000..a104267 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scale-slider.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scale-trough-horizontal.png b/Breeze-gtk/gtk-2.0/assets/scale-trough-horizontal.png new file mode 100644 index 0000000..4136c51 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scale-trough-horizontal.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scale-trough-vertical.png b/Breeze-gtk/gtk-2.0/assets/scale-trough-vertical.png new file mode 100644 index 0000000..03f7f19 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scale-trough-vertical.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-active.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-active.png new file mode 100644 index 0000000..858f408 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-hover.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-hover.png new file mode 100644 index 0000000..d010fb0 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-insensitive.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-insensitive.png new file mode 100644 index 0000000..d54eb3d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal.png new file mode 100644 index 0000000..78733fd Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-horizontal.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-active.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-active.png new file mode 100644 index 0000000..435fb24 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-hover.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-hover.png new file mode 100644 index 0000000..56abfe5 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-insensitive.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-insensitive.png new file mode 100644 index 0000000..2d7a80e Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical.png new file mode 100644 index 0000000..7655c92 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-slider-vertical.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-trough-horizontal.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-trough-horizontal.png new file mode 100644 index 0000000..efeff2d Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-trough-horizontal.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/scrollbar-trough-vertical.png b/Breeze-gtk/gtk-2.0/assets/scrollbar-trough-vertical.png new file mode 100644 index 0000000..bcedd60 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/scrollbar-trough-vertical.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/selected-menu-arrow.png b/Breeze-gtk/gtk-2.0/assets/selected-menu-arrow.png new file mode 100644 index 0000000..43daf58 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/selected-menu-arrow.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/spinbutton-down-insensitive.png b/Breeze-gtk/gtk-2.0/assets/spinbutton-down-insensitive.png new file mode 100644 index 0000000..c4246da Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/spinbutton-down-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/spinbutton-down.png b/Breeze-gtk/gtk-2.0/assets/spinbutton-down.png new file mode 100644 index 0000000..ed5996a Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/spinbutton-down.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/spinbutton-up-insensitive.png b/Breeze-gtk/gtk-2.0/assets/spinbutton-up-insensitive.png new file mode 100644 index 0000000..22afce9 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/spinbutton-up-insensitive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/spinbutton-up.png b/Breeze-gtk/gtk-2.0/assets/spinbutton-up.png new file mode 100644 index 0000000..4d7901a Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/spinbutton-up.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-bottom-active.png b/Breeze-gtk/gtk-2.0/assets/tab-bottom-active.png new file mode 100644 index 0000000..127addf Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-bottom-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-bottom-inactive.png b/Breeze-gtk/gtk-2.0/assets/tab-bottom-inactive.png new file mode 100644 index 0000000..9a32c50 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-bottom-inactive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-left-active.png b/Breeze-gtk/gtk-2.0/assets/tab-left-active.png new file mode 100644 index 0000000..c63794c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-left-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-left-inactive.png b/Breeze-gtk/gtk-2.0/assets/tab-left-inactive.png new file mode 100644 index 0000000..9d4d148 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-left-inactive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-right-active.png b/Breeze-gtk/gtk-2.0/assets/tab-right-active.png new file mode 100644 index 0000000..3298a85 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-right-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-right-inactive.png b/Breeze-gtk/gtk-2.0/assets/tab-right-inactive.png new file mode 100644 index 0000000..8b7304f Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-right-inactive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-top-active.png b/Breeze-gtk/gtk-2.0/assets/tab-top-active.png new file mode 100644 index 0000000..098c99c Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-top-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tab-top-inactive.png b/Breeze-gtk/gtk-2.0/assets/tab-top-inactive.png new file mode 100644 index 0000000..b4c9d14 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tab-top-inactive.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/toolbar-background.png b/Breeze-gtk/gtk-2.0/assets/toolbar-background.png new file mode 100644 index 0000000..37fe449 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/toolbar-background.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/toolbutton-active.png b/Breeze-gtk/gtk-2.0/assets/toolbutton-active.png new file mode 100644 index 0000000..350cb23 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/toolbutton-active.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/toolbutton-hover.png b/Breeze-gtk/gtk-2.0/assets/toolbutton-hover.png new file mode 100644 index 0000000..958c8a8 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/toolbutton-hover.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/toolbutton-toggled.png b/Breeze-gtk/gtk-2.0/assets/toolbutton-toggled.png new file mode 100644 index 0000000..dc82cf2 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/toolbutton-toggled.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/toolbutton.png b/Breeze-gtk/gtk-2.0/assets/toolbutton.png new file mode 100644 index 0000000..bdf4c81 Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/toolbutton.png differ diff --git a/Breeze-gtk/gtk-2.0/assets/tree-header.png b/Breeze-gtk/gtk-2.0/assets/tree-header.png new file mode 100644 index 0000000..8cff94f Binary files /dev/null and b/Breeze-gtk/gtk-2.0/assets/tree-header.png differ diff --git a/Breeze-gtk/gtk-2.0/widgets/buttons b/Breeze-gtk/gtk-2.0/widgets/buttons new file mode 100644 index 0000000..284dd5c --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/buttons @@ -0,0 +1,163 @@ +style "button" +{ + xthickness = 4 + ythickness = 5 + + engine "pixmap" + { + image + { + function = BOX + state = NORMAL + file = "assets/button.png" + border = {4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = PRELIGHT + file = "assets/button-hover.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = ACTIVE + file = "assets/button-active.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = INSENSITIVE + file = "assets/button-insensitive.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "spinbutton" = "default" +{ + #bg[NORMAL] = @bg_color + + xthickness = 3 + ythickness = 3 + GtkWidget::interior_focus = 1 + +engine "pixmap" + { + image + { + function = ARROW + } + + #Spin-up + image + { + function = BOX + state = NORMAL + detail = "spinbutton_up" + file = "assets/spinbutton-up.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = PRELIGHT + detail = "spinbutton_up" + file = "assets/spinbutton-up.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up-hover.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = INSENSITIVE + detail = "spinbutton_up" + file = "assets/spinbutton-up-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = ACTIVE + detail = "spinbutton_up" + file = "assets/spinbutton-up.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up-active.png" + overlay_stretch = FALSE + } + + # Spin-Down + image + { + function = BOX + state = NORMAL + detail = "spinbutton_down" + file = "assets/spinbutton-down.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = PRELIGHT + detail = "spinbutton_down" + file = "assets/spinbutton-down.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down-hover.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = INSENSITIVE + detail = "spinbutton_down" + file = "assets/spinbutton-down-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = ACTIVE + detail = "spinbutton_down" + file = "assets/spinbutton-down.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down-hover.png" + overlay_stretch = FALSE + } + } +} + +style "button_label" { + fg[NORMAL] = @button_fg_color + fg[ACTIVE] = @button_fg_color + fg[INSENSITIVE] = @button_insensitive_fg_color +} + +style "combobox_separator" +{ + xthickness = 0 + ythickness = 0 + GtkWidget::wide-separators = 1 +} diff --git a/Breeze-gtk/gtk-2.0/widgets/default b/Breeze-gtk/gtk-2.0/widgets/default new file mode 100644 index 0000000..fb10729 --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/default @@ -0,0 +1,543 @@ +gtk-auto-mnemonics = 1 + +style "default" +{ + xthickness = 1 + ythickness = 1 + + # Style Properties + + GtkScrollbar::activate-slider = 1 + GtkWidget::focus-line-width = 0 + GtkWidget::new-tooltip-style = 1 + GtkWidget::tooltip-alpha = 230 + GtkWidget::tooltip-radius = 2 + GtkMenuBar::window-dragging = 1 + GtkToolbar::window-dragging = 1 + GtkToolbar::internal-padding = 5 + GtkToolButton::icon-spacing = 4 + + GtkSeparatorMenuItem::horizontal-padding = 3 + GtkSeparatorMenuItem::wide-separators = 1 + GtkSeparatorMenuItem::separator-height = 1 + + GtkCheckMenuItem::indicator-size = 20 + GtkRadioMenuItem::indicator-size = 20 + + GtkButton::child-displacement-y = 0 + GtkButton::default-border = { 0, 0, 0, 0 } + GtkButton::default-outside_border = { 0, 0, 0, 0 } + + GtkScrollbar::trough-border = 5 + GtkScrollbar::slider-width = 10 + GtkRange::trough-border = 0 + GtkRange::slider-width = 7 + GtkRange::stepper-size = 0 + + GtkScrollbar::has-backward-stepper = 1 + GtkScrollbar::has-forward-stepper = 1 + GtkScrollbar::stepper-size = 8 + GtkScrollbar::stepper-spacing = 0 + GtkScrolledWindow ::scrollbar-spacing = 0 + GtkScrolledWindow ::scrollbars-within-bevel = 1 + + GtkVScale::slider_length = 20 + GtkVScale::slider_width = 20 + GtkHScale::slider_length = 20 + GtkHScale::slider_width = 20 + + GtkStatusbar::shadow_type = GTK_SHADOW_NONE + GtkSpinButton::shadow_type = GTK_SHADOW_NONE + GtkMenuBar::shadow-type = GTK_SHADOW_NONE + GtkMenuBar::internal-padding = 3 + GtkMenu::horizontal-padding = 2 + GtkMenu::vertical-padding = 2 + + GtkNotebook::tab-overlap = 1 + GtkNotebook::tab-curvature = 3 + + GtkCheckButton::indicator_spacing = 3 + GtkOptionMenu::indicator_spacing = 0 #{ 8, 2, 0, 0 } + + GtkTreeView::row_ending_details = 0 + GtkTreeView::expander-size = 12 + GtkTreeView::vertical-separator = 1 + GtkTreeView::horizontal-separator = 4 + GtkTreeView::allow-rules = 1 + + GtkProgressBar::min-horizontal-bar-height = 6 + GtkProgressBar::min-vertical-bar-width = 6 + + GtkEntry::state-hint = 1 + + # Colors + + bg[NORMAL] = @bg_color + bg[PRELIGHT] = @bg_color + bg[SELECTED] = @selected_bg_color + bg[INSENSITIVE] = @bg_color + bg[ACTIVE] = @bg_color + + fg[NORMAL] = @fg_color + fg[PRELIGHT] = @fg_color + fg[SELECTED] = @selected_fg_color + fg[INSENSITIVE] = @insensitive_fg_color + fg[ACTIVE] = @fg_color + + text[NORMAL] = @text_color + text[PRELIGHT] = @text_color + text[SELECTED] = @selected_fg_color + text[INSENSITIVE] = @insensitive_text_color + text[ACTIVE] = @selected_fg_color + + base[NORMAL] = @base_color + base[PRELIGHT] = @base_color + base[SELECTED] = @selected_bg_color + base[INSENSITIVE] = @bg_color + base[ACTIVE] = @selected_bg_color + + # All pixmap options are consolidated below this point + + engine "pixmap" + { + + # Check Buttons + + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = OUT + overlay_file = "assets/checkbox-unchecked-hover.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-active.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = IN + overlay_file = "assets/checkbox-checked-hover.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = IN + overlay_file = "assets/checkbox-checked-active.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = IN + overlay_file = "assets/checkbox-checked-insensitive.png" + overlay_stretch = FALSE + } + + # Radio Buttons + + image + { + function = OPTION + state = NORMAL + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = PRELIGHT + shadow = OUT + overlay_file = "assets/radio-unchecked-hover.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = ACTIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-active.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = SELECTED + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = NORMAL + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = PRELIGHT + shadow = IN + overlay_file = "assets/radio-checked-hover.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = ACTIVE + shadow = IN + overlay_file = "assets/radio-checked-active.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = SELECTED + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = IN + overlay_file = "assets/radio-checked-insensitive.png" + overlay_stretch = FALSE + } + + # Arrows + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-up.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-up-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-up-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-up-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-down.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-down-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-down-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-down-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-left.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-left-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-left-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-left-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-right.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-right-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-right-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-right-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + + # Option Menu assets + + image + { + function = TAB + state = INSENSITIVE + overlay_file = "assets/arrow-down-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = TAB + state = NORMAL + overlay_file = "assets/arrow-down.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + } + image + { + function = TAB + state = PRELIGHT + overlay_file = "assets/arrow-down.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + } + + #Lines + + image + { + function = VLINE + file = "assets/line-v.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + } + image + { + function = HLINE + file = "assets/line-h.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + } + + # Handles + + image + { + function = HANDLE + overlay_file = "assets/handle-h.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + image + { + function = HANDLE + overlay_file = "assets/handle-v.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + # Expanders + + image + { + function = EXPANDER + expander_style = COLLAPSED + file = "assets/plus.png" + } + + image + { + function = EXPANDER + expander_style = EXPANDED + file = "assets/minus.png" + } + + image + { + function = EXPANDER + expander_style = SEMI_EXPANDED + file = "assets/minus.png" + } + + image + { + function = EXPANDER + expander_style = SEMI_COLLAPSED + file = "assets/plus.png" + } + + image + { + function = RESIZE_GRIP + state = NORMAL + detail = "statusbar" + overlay_file = "assets/null.png" + overlay_border = { 0,0,0,0 } + overlay_stretch = FALSE + } + + # Shadows ( this area needs help :P ) + + image + { + function = SHADOW_GAP + file = "assets/null.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + diff --git a/Breeze-gtk/gtk-2.0/widgets/entry b/Breeze-gtk/gtk-2.0/widgets/entry new file mode 100644 index 0000000..f57758e --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/entry @@ -0,0 +1,51 @@ +style "entry" +{ + xthickness = 4 + ythickness = 4 + + base[NORMAL] = @base_color + base[ACTIVE] = @base_color + base[INSENSITIVE] = @insensitive_base_color + + engine "pixmap" + { + image + { + function = SHADOW + detail = "entry" + state = NORMAL + shadow = IN + file = "assets/entry.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = SHADOW + detail = "entry" + state = INSENSITIVE + shadow = IN + file = "assets/entry-insensitive.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = SHADOW + detail = "entry" + state = ACTIVE + file = "assets/entry-active.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = FLAT_BOX + detail = "entry_bg" + state = ACTIVE + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/gtk-2.0/widgets/menu b/Breeze-gtk/gtk-2.0/widgets/menu new file mode 100644 index 0000000..fced2d1 --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/menu @@ -0,0 +1,248 @@ +style "menubar" +{ + bg[PRELIGHT] = "#FFF" #does this make sense, does it do anything? + fg[SELECTED] = @fg_color + + xthickness = 0 + ythickness = 0 + + engine "pixmap" + { + image + { + function = BOX + recolorable = TRUE + state = PRELIGHT + file = "assets/menubar-button.png" + + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "menu" +{ + xthickness = 0 + ythickness = 0 + + GtkMenuItem::arrow-scaling = 0.4 +} + +style "menu_item" +{ + xthickness = 2 + ythickness = 4 + + bg[PRELIGHT] = @selected_bg_color + fg[PRELIGHT] = @selected_fg_color + text[PRELIGHT] = @selected_fg_color + + GtkMenuItem::toggle-spacing = 10 + + engine "pixmap" + { + + # Check Buttons + + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = TRUE #needed for LibreOffice + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = OUT + overlay_file = "assets/checkbox-unchecked-selected.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = OUT + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-insensitive.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = IN + overlay_file = "assets/checkbox-checked-selected.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = IN + overlay_file = "assets/checkbox-checked-insensitive.png" + overlay_stretch = TRUE + } + + # Radio Buttons + + image + { + function = OPTION + state = NORMAL + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = PRELIGHT + shadow = OUT + overlay_file = "assets/radio-unchecked-selected.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = ACTIVE + shadow = OUT + overlay_file = "assets/radio-checked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = NORMAL + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = PRELIGHT + shadow = IN + overlay_file = "assets/radio-checked-selected.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = ACTIVE + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = IN + overlay_file = "assets/radio-checked-insensitive.png" + overlay_stretch = TRUE + } + image + { + function = SHADOW # This fixes boxy Qt menu items + file = "assets/null.png" + border = { 10, 10, 10, 10 } + stretch = TRUE + } + + # Arrow Buttons + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/menu-arrow.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/selected-menu-arrow.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/menu-arrow-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + } +} + +style "menubar_item" +{ + xthickness = 2 + ythickness = 2 + bg[PRELIGHT] = @selected_fg_color + fg[PRELIGHT] = @selected_fg_color +} + +style "menu_framed_box" #this is not needed in Gnome +{ + engine "pixmap" + { + image + { + function = BOX + detail = "menu" + file = "assets/menu-frame.png" + border = { 3, 3, 3, 3 } + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/gtk-2.0/widgets/misc b/Breeze-gtk/gtk-2.0/widgets/misc new file mode 100644 index 0000000..b32a93b --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/misc @@ -0,0 +1,175 @@ +style "separator_menu_item" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/menu-line.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + } + } +} + +style "treeview" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/tree-header.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + } + } +} + +style "scrolled_window" +{ + engine "pixmap" + { + image + { + function = SHADOW + file = "assets/frame.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + } + } +} + +style "frame" +{ + xthickness = 1 + ythickness = 1 + + engine "pixmap" + { + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = IN + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = IN + } + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = OUT + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = OUT + } + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = ETCHED_IN + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = ETCHED_IN + } + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = ETCHED_OUT + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = ETCHED_OUT + } + } +} + +style "tooltips" +{ + xthickness = 8 + ythickness = 4 + + bg[NORMAL] = @tooltip_bg_color + fg[NORMAL] = @tooltip_fg_color + bg[SELECTED] = @tooltip_bg_color +} + +# Chromium + +style "chrome-gtk-frame" +{ + ChromeGtkFrame::frame-color = @border_color + ChromeGtkFrame::inactive-frame-color = @border_color + + ChromeGtkFrame::frame-gradient-size = 90 + ChromeGtkFrame::frame-gradient-color = @bg_color + + ChromeGtkFrame::incognito-frame-color = lighter (@bg_color) + ChromeGtkFrame::incognito-inactive-frame-color = lighter (@bg_color) + + ChromeGtkFrame::incognito-frame-gradient-size = 16 + ChromeGtkFrame::incognito-frame-gradient-color = @bg_color + + ChromeGtkFrame::scrollbar-trough-color = shade (0.912, @bg_color) + ChromeGtkFrame::scrollbar-slider-prelight-color = shade (1.04, @bg_color) + ChromeGtkFrame::scrollbar-slider-normal-color = @bg_color +} + +style "null" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/null.png" + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/gtk-2.0/widgets/notebook b/Breeze-gtk/gtk-2.0/widgets/notebook new file mode 100644 index 0000000..df0e061 --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/notebook @@ -0,0 +1,138 @@ +style "notebook_tab_label" +{ + fg[ACTIVE] = @fg_color +} + + +style "notebook" +{ + + xthickness = 5 + ythickness = 2 + + engine "pixmap" + { + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-bottom-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = TOP + } + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-top-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = BOTTOM + } + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-left-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = RIGHT + } + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-right-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = LEFT + } + image + { + function = EXTENSION + file = "assets/tab-top-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = BOTTOM + } + image + { + function = EXTENSION + file = "assets/tab-bottom-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = TOP + } + image + { + function = EXTENSION + file = "assets/tab-left-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = RIGHT + } + image + { + function = EXTENSION + file = "assets/tab-right-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = LEFT + } + +# How to draw boxes with a gap on one side (ie the page of a notebook) + + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-horizontal.png" + gap_border = { 1, 1, 0, 0 } + gap_side = TOP + } + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-horizontal.png" + gap_border = { 1, 1, 0, 0 } + gap_side = BOTTOM + } + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-vertical.png" + gap_border = { 0, 0, 1, 1 } + gap_side = LEFT + } + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-vertical.png" + gap_border = { 0, 0, 1, 1 } + gap_side = RIGHT + } + +# How to draw the box of a notebook when it isnt attached to a tab + + image + { + function = BOX + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + diff --git a/Breeze-gtk/gtk-2.0/widgets/progressbar b/Breeze-gtk/gtk-2.0/widgets/progressbar new file mode 100644 index 0000000..ba437ac --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/progressbar @@ -0,0 +1,45 @@ +style "progressbar" { + xthickness = 0 + ythickness = 0 + + engine "pixmap" + { + image + { + function = BOX + detail = "trough" + file = "assets/progressbar-trough.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "bar" + file = "assets/progressbar-bar.png" + stretch = TRUE + border = { 4, 4, 4, 4 } + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "trough" + file = "assets/progressbar-trough.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + orientation = VERTICAL + } + image + { + function = BOX + detail = "bar" + file = "assets/progressbar-bar.png" + stretch = TRUE + border = { 4, 4, 4, 4 } + orientation = VERTICAL + } + } +} + diff --git a/Breeze-gtk/gtk-2.0/widgets/range b/Breeze-gtk/gtk-2.0/widgets/range new file mode 100644 index 0000000..58b0e35 --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/range @@ -0,0 +1,108 @@ +style "range" +{ + engine "pixmap" + { + image + { + function = BOX + detail = "trough" + file = "assets/scale-trough-horizontal.png" + border = { 4, 4, 0, 0 } + stretch = TRUE + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "trough" + file = "assets/scale-trough-vertical.png" + border = { 0, 0, 4, 4 } + stretch = TRUE + orientation = VERTICAL + } + + # Horizontal + + image + { + function = SLIDER + state = NORMAL + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider-active.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + + # Vertical + + image + { + function = SLIDER + state = NORMAL + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider-active.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + # Function below removes ugly boxes + + image + { + function = BOX + file = "assets/null.png" + border = { 3, 3, 3, 3 } + stretch = TRUE + } + + } +} + diff --git a/Breeze-gtk/gtk-2.0/widgets/scrollbar b/Breeze-gtk/gtk-2.0/widgets/scrollbar new file mode 100644 index 0000000..9f25945 --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/scrollbar @@ -0,0 +1,110 @@ +style "scrollbar" +{ + engine "pixmap" + { + image + { + function = BOX + detail = "trough" + file = "assets/scrollbar-trough-horizontal.png" + border = { 25,25, 5, 5 } #large borders while LibreOffice won't use GtkScrollbar::stepper-spacing=1 + stretch = TRUE + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "trough" + file = "assets/scrollbar-trough-vertical.png" + border = { 5, 5, 25, 25 } + stretch = TRUE + orientation = VERTICAL + } + +# Sliders + + image + { + function = SLIDER + state = NORMAL + file = "assets/scrollbar-slider-horizontal.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + image + { + function = SLIDER + state = ACTIVE + file = "assets/scrollbar-slider-horizontal-active.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/scrollbar-slider-horizontal-hover.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/scrollbar-slider-horizontal-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + +# X Verticals + + image + { + function = SLIDER + state = NORMAL + file = "assets/scrollbar-slider-vertical.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + image + { + function = SLIDER + state = ACTIVE + file = "assets/scrollbar-slider-vertical-active.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/scrollbar-slider-vertical-hover.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/scrollbar-slider-vertical-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + } +} diff --git a/Breeze-gtk/gtk-2.0/widgets/styles b/Breeze-gtk/gtk-2.0/widgets/styles new file mode 100644 index 0000000..3bf7fb1 --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/styles @@ -0,0 +1,43 @@ +class "GtkWidget" style "default" +class "GtkScrollbar" style "scrollbar" +class "GtkButton" style "button" +class "GtkEntry" style "entry" +class "GtkOldEditable" style "entry" +class "GtkSpinButton" style "spinbutton" +class "GtkNotebook" style "notebook" +class "GtkRange" style "range" +class "GtkProgressBar" style "progressbar" +class "GtkSeparatorMenuItem" style "separator_menu_item" +class "GtkScrolledWindow" style "scrolled_window" +class "GtkFrame" style "frame" +class "GtkToolbutton" style "toolbuttons" +class "ChromeGtkFrame" style "chrome-gtk-frame" + +widget_class "**" style "menubar" +widget_class "**" style "menu" +widget_class "**" style "menu_framed_box" +widget_class "**" style "menu_item" +widget_class "*.*" style "menubar_item" +widget_class "*Nautilus*ToolBar*" style "toolbar" +widget_class "*HandleBox" style "toolbar" +widget_class "*BonoboDockItem" style "toolbar" +widget_class "*HandleBox" style "toolbar" +widget_class "*" style "toolbar" +widget_class "*.*" style "treeview" +widget_class "*Tool*GtkButton" style "toolbuttons" +widget_class "*Tool*GtkToggleButton" style "tooltoggle_buttons" +widget_class "**" style "tooltoggle_buttons" +widget_class "**" style "button_label" +widget_class "*.." style "button_label" +widget_class "**" style "combobox_separator" +widget_class "**GtkToggleButton*" style "toolbuttons" +widget_class "**GtkComboBox*" style "button" +widget_class "*." style "notebook_tab_label" +widget "gtk-tooltip*" style "tooltips" + +# Xchat special cases +widget "*xchat-inputbox" style "entry" + +# Chrome/Chromium +widget_class "*Chrom*Button*" style "button" +widget "*swt*toolbar*" style "null" diff --git a/Breeze-gtk/gtk-2.0/widgets/toolbar b/Breeze-gtk/gtk-2.0/widgets/toolbar new file mode 100644 index 0000000..e302b4d --- /dev/null +++ b/Breeze-gtk/gtk-2.0/widgets/toolbar @@ -0,0 +1,94 @@ +style "toolbar" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/toolbar-background.png" + stretch = TRUE + } + } +} + +style "toolbuttons" +{ + xthickness = 2 + ythickness = 2 + GtkWidget::focus_padding = 2 + + engine "pixmap" { + +image + { + function = BOX + state = NORMAL + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } +image + { + function = BOX + state = PRELIGHT + file = "assets/toolbutton-hover.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } +image + { + function = BOX + state = ACTIVE + file = "assets/toolbutton-active.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } +image + { + function = BOX + state = INSENSITIVE + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "tooltoggle_buttons" +{ + engine "pixmap" + { + image + { + function = BOX + state = NORMAL + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = PRELIGHT + file = "assets/toolbutton-hover.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = ACTIVE + file = "assets/toolbutton-toggled.png" + border = { 4, 4, 4, 4} + stretch = TRUE + } + image + { + function = BOX + state = INSENSITIVE + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-active.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-active.png new file mode 100644 index 0000000..6d5c351 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-active.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-backdrop.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-backdrop.png new file mode 100644 index 0000000..70f3163 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-backdrop.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-hover.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-hover.png new file mode 100644 index 0000000..a9e3c25 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked-hover.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked.png new file mode 100644 index 0000000..6d5c351 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-checked.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-active.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-active.png new file mode 100644 index 0000000..bdb8bb2 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-active.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-backdrop.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-backdrop.png new file mode 100644 index 0000000..5b417a3 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-backdrop.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-hover.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-hover.png new file mode 100644 index 0000000..7cbc351 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked-hover.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked.png b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked.png new file mode 100644 index 0000000..5b417a3 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/checkbox-selectionmode-unchecked.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-horizontal-backdrop-insensitive.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-horizontal-backdrop-insensitive.png new file mode 100644 index 0000000..4e8c6a5 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-horizontal-backdrop-insensitive.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-horizontal-insensitive.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-horizontal-insensitive.png new file mode 100644 index 0000000..4e8c6a5 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-horizontal-insensitive.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-active.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-active.png new file mode 100644 index 0000000..e960ad7 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-active.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-backdrop-insensitive.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-backdrop-insensitive.png new file mode 100644 index 0000000..9f7178d Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-backdrop-insensitive.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-backdrop.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-backdrop.png new file mode 100644 index 0000000..350ab95 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-backdrop.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-hover.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-hover.png new file mode 100644 index 0000000..5254350 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-hover.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-insensitive.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-insensitive.png new file mode 100644 index 0000000..9f7178d Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical-insensitive.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical.png new file mode 100644 index 0000000..350ab95 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-slider-vertical.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-trough-vertical-backdrop.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-trough-vertical-backdrop.png new file mode 100644 index 0000000..bcedd60 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-trough-vertical-backdrop.png differ diff --git a/Breeze-gtk/gtk-3.0/assets/scrollbar-trough-vertical.png b/Breeze-gtk/gtk-3.0/assets/scrollbar-trough-vertical.png new file mode 100644 index 0000000..bcedd60 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/assets/scrollbar-trough-vertical.png differ diff --git a/Breeze-gtk/gtk-3.0/gtk.gresource b/Breeze-gtk/gtk-3.0/gtk.gresource new file mode 100644 index 0000000..8d97886 Binary files /dev/null and b/Breeze-gtk/gtk-3.0/gtk.gresource differ diff --git a/Breeze-gtk/src/Breeze.colors b/Breeze-gtk/src/Breeze.colors new file mode 100644 index 0000000..a428fa1 --- /dev/null +++ b/Breeze-gtk/src/Breeze.colors @@ -0,0 +1,105 @@ +[ColorEffects:Disabled] +Color=56,56,56 +ColorAmount=0 +ColorEffect=0 +ContrastAmount=0.65 +ContrastEffect=1 +IntensityAmount=0.1 +IntensityEffect=2 + +[ColorEffects:Inactive] +ChangeSelectionColor=true +Color=112,111,110 +ColorAmount=0.025 +ColorEffect=2 +ContrastAmount=0.1 +ContrastEffect=2 +Enable=false +IntensityAmount=0 +IntensityEffect=0 + +[Colors:Button] +BackgroundAlternate=189,195,199 +BackgroundNormal=239,240,241 +DecorationFocus=61,174,233 +DecorationHover=147,206,233 +ForegroundActive=61,174,233 +ForegroundInactive=127,140,141 +ForegroundLink=41,128,185 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=49,54,59 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[Colors:Selection] +BackgroundAlternate=29,153,243 +BackgroundNormal=61,174,233 +DecorationFocus=61,174,233 +DecorationHover=147,206,233 +ForegroundActive=252,252,252 +ForegroundInactive=239,240,241 +ForegroundLink=253,188,75 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=239,240,241 +ForegroundPositive=39,174,96 +ForegroundVisited=189,195,199 + +[Colors:Tooltip] +BackgroundAlternate=77,77,77 +BackgroundNormal=49,54,59 +DecorationFocus=61,174,233 +DecorationHover=147,206,233 +ForegroundActive=61,174,233 +ForegroundInactive=189,195,199 +ForegroundLink=41,128,185 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=239,240,241 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[Colors:View] +BackgroundAlternate=239,240,241 +BackgroundNormal=252,252,252 +DecorationFocus=61,174,233 +DecorationHover=147,206,233 +ForegroundActive=61,174,233 +ForegroundInactive=127,140,141 +ForegroundLink=41,128,185 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=49,54,59 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[Colors:Window] +BackgroundAlternate=189,195,199 +BackgroundNormal=239,240,241 +DecorationFocus=61,174,233 +DecorationHover=147,206,233 +ForegroundActive=61,174,233 +ForegroundInactive=127,140,141 +ForegroundLink=41,128,185 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=49,54,59 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[General] +ColorScheme=Breeze +Name=Breeze +shadeSortColumn=true + +[KDE] +contrast=4 + +[WM] +activeBackground=71,80,87 +activeBlend=255,255,255 +activeForeground=239,240,241 +inactiveBackground=239,240,241 +inactiveBlend=75,71,67 +inactiveForeground=189,195,199 diff --git a/Breeze-gtk/src/assets.py b/Breeze-gtk/src/assets.py new file mode 100644 index 0000000..58a8795 --- /dev/null +++ b/Breeze-gtk/src/assets.py @@ -0,0 +1,286 @@ +import svgwrite +import cairosvg +from colorFunctions import buttongradient + +class Shapes: + def __init__(self, name, w=20, h=20): + self.dwg = svgwrite.Drawing(filename=name, size=(w,h)) + + def base(self, color): + self.dwg.add(self.dwg.rect((0,0),(20,20), fill=color)) + + def shadow(self, color='black', alpha=0.15): + self.dwg.add(self.dwg.path(d='m 3,18 c 0,0.5 1.5,1.5 2.5,1.5 l 10.5,0 c 2,0 3.5,-1.5 3.5,-3.5 l 0,-10 c 0,-1 -1,-2.5 -1.5,-2.5', fill='none', stroke=color, opacity=alpha)) + + def background(self, color, x=1, y=1, w=18, h=18, rx=3, ry=3, alpha=1): + self.dwg.add(self.dwg.rect((x,y), (w,h), rx, ry, fill=color, opacity=alpha)) + + def background_gradient(self, color, state='', alpha=1): + [stop1,stop2] = buttongradient(color,state) + gradient = self.dwg.linearGradient((0, 0), (0, 1)) + self.dwg.defs.add(gradient) + gradient.add_stop_color(0, stop1) + gradient.add_stop_color(1, stop2) + self.dwg.add(self.dwg.rect((1,1),(18,18), 3, 3, fill=gradient.get_paint_server(default='currentColor'), opacity=alpha)) + + def border(self, color, x=1.5, y=1.5, w=17, h=17, rx=2.5, ry=2.5, alpha=1): + self.dwg.add(self.dwg.rect((x,y), (w,h), rx, ry, fill='none', stroke=color, opacity=alpha)) + + def checkmark(self, color, x=4, y=4, alpha=1): + self.dwg.add(self.dwg.rect((x,y), (12,12), 1, 1, fill=color, opacity=alpha)) + + def checkmark_mixed(self, color, alpha=1): + self.dwg.add(self.dwg.path(d='M 4,5 4,15 c 0,0.5 0.5,1 1,1 l 10,0 c 0.5,0 1,-0.5 1,-1 l 0,-10 c 0,-0.5 -0.5,-1 -1,-1 l -10,0 c -0.5,0 -1,0.5 -1,1 z M 6,14 13,14 c 0.5,0 1,-0.5 1,-1 v -7 z', fill=color, fill_rule='evenodd', opacity=alpha)) + + def radio(self, color, alpha): + self.dwg.add(self.dwg.circle((10,10), 8.5, fill='none', stroke=color, stroke_opacity=alpha)) + + def radio_shadow(self, color='black', alpha=0.15): + self.dwg.add(self.dwg.path(d='M 14.127 2.572 A 8.5 8.5 0 0 1 18.5 10 A 8.5 8.5 0 0 1 10 18.5 A 8.5 8.5 0 0 1 2.549 14.072 A 9 9 0 0 0 11 20 A 9 9 0 0 0 20 11 A 9 9 0 0 0 14.127 2.572 z', fill=color, opacity=alpha)) + + def radiomark(self, color, alpha=1): + self.dwg.add(self.dwg.circle((10,10), 6, fill=color, opacity=alpha)) + + def radiomark_mixed(self, color, alpha=1): + self.dwg.add(self.dwg.path(d='M 16,10 a 6,6 0 0 1 -6,6 6,6 0 0 1 -6,-6 6,6 0 0 1 6,-6 6,6 0 0 1 6,6 z M 6,10 14,10 c 0,2 -2,4 -4,4 -2,0 -4,-2 -4,-4 z', transform='rotate(-45 10 10)', fill=color, fill_rule='evenodd', opacity=alpha)) + + def tab(self, color, rotation=0, alpha=1): + self.dwg.add(self.dwg.path(d='m 0,20 0,-17 c 0,-1.5 1.5,-3 3,-3 h 14,0 c 1.5,0 3,1.5 3,3 v 0,17 z', transform='rotate( %d 10 10)' %rotation, fill=color, opacity=alpha)) + + def tab_border(self, color, rotation=0, alpha=1): + self.dwg.add(self.dwg.path(d='m 0.5,20 0,-17 c 0,-1.25 1.25,-2.5 2.5,-2.5 h 14,0 c 1.25,0 2.5,1.25 2.5,2.5 v 0,17', transform='rotate( %d 10 10)' %rotation, stroke=color, fill='none')) + + def combo_entry(self, color, rotation=0, alpha=1): + self.dwg.add(self.dwg.path(d='m 20,1 -16,0 c -1.5,0 -3,1.5 -3,3 l 0,12 c 0,1.5 1.5,3 3,3 l 16,0 z', fill=color, opacity=alpha, transform='rotate( %d 10 10)' %rotation)) + + def combo_entry_border(self, color, rotation=0, alpha=1): + self.dwg.add(self.dwg.path(d='m 20,1.5 -16,0 c -1.5,0 -2.5,1 -2.5,2.5 l 0,12 c 0,1.5 1,2.5 2.5,2.5 l 16,0', fill='none', stroke=color, opacity=alpha, transform='rotate( %d 10 10)' %rotation)) + + def spinbutton(self, color, rotation=0, alpha=1): + self.dwg.add(self.dwg.path(d='m 0,1 16,0 c 1.5,0 3,1.5 3,3 l 0,16 -19,0 z', fill=color, opacity=alpha, transform='rotate( %d 10 10)' %rotation)) + + def spinbutton_border(self, color, rotation=0, alpha=1): + self.dwg.add(self.dwg.path(d='m 0,1.5 16,0 c 1.5,0 2.5,1 2.5,2.5 l 0,16', fill='none', stroke=color, opacity=alpha, transform='rotate( %d 10 10)' %rotation)) + + def arrow(self, color, rotation, alpha=1): + self.dwg.add(self.dwg.polyline([(1,8), (6,3), (11,8)], stroke=color, fill='none', opacity=alpha, transform='rotate( %d 6 6)' %rotation)) + + def arrow_small(self, color, rotation, alpha=1): + self.dwg.add(self.dwg.polyline([(1,6), (4,3), (7,6)], stroke=color, fill='none', opacity=alpha, transform='rotate( %d 4 4)' %rotation)) + + def tree_header(self, color, border_color): + self.dwg.add(self.dwg.rect((0,0), (20,20), fill=color)) + self.dwg.add(self.dwg.path(d='m 0,19.5 19.5,0 0,-19.5', fill='none', stroke=border_color)) + + def scale_slider(self, color): + self.dwg.add(self.dwg.circle((10,10), 10, fill=color)) + + def scale_border(self, color): + self.dwg.add(self.dwg.circle((10,10), 9.5, fill='none', stroke=color)) + + def titlebutton_background(self,color): + self.dwg.add(self.dwg.circle((9,9), 9, fill=color)) + + def close(self,color): + self.dwg.add(self.dwg.line((5,5), (13,13), stroke=color)) + self.dwg.add(self.dwg.line((13,5), (5,13), stroke=color)) + + def minimize(self,color): + self.dwg.add(self.dwg.polyline([(4,7), (9,12), (14,7)], stroke=color, fill='none')) + + def maximize(self,color): + self.dwg.add(self.dwg.polyline([(4,11), (9,6), (14,11)], stroke=color, fill='none')) + + def maximize_maximized(self,color): + self.dwg.add(self.dwg.polygon([(4.5,9), (9,4.5), (13.5,9), (9,13.5)], stroke=color, fill='none')) + + def save(self, filename, dpi=90): + cairosvg.svg2png(self.dwg.tostring(), write_to=filename, dpi=dpi) + +#------------------------------------------------------------------------------- +# assets +#------------------------------------------------------------------------------- + +def assets(widget, suffix='' ,state='', w=20, h=20, color='none', color2='none', color3='none', prefix='', alpha=1, gtk_version ='gtk2'): + filename = 'src/{0}/assets/{1}{2}{3}{4}.png'.format(gtk_version,prefix,widget,suffix,state) + drawing = Shapes(filename,w,h) + rotation = 0 + + if widget == 'button': + drawing.shadow() + drawing.background_gradient(color, state=state) + drawing.border(color2, alpha=alpha) + + elif widget == 'toolbutton': + drawing.background(color) + drawing.border(color2) + + elif widget == 'spinbutton': + if suffix == '-down': + rotation = 90 + drawing.spinbutton(color, rotation) + drawing.spinbutton_border(color2, rotation, alpha=alpha) + + elif widget == 'checkbox': + drawing.shadow() + drawing.border(color, alpha=alpha) + if suffix == '-checked': + drawing.checkmark(color, alpha=alpha) + if suffix == '-mixed': + drawing.checkmark_mixed(color, alpha=alpha) + + elif widget == 'checkbox-selectionmode': + drawing.background(color2,8,8,24,24,6,6,alpha=max(0,0.8 - 1 + alpha)) + drawing.border(color,11.5,11.5, alpha=alpha) + if suffix == '-checked': + drawing.checkmark(color,14,14, alpha=alpha) + + elif widget == 'radio': + drawing.radio_shadow() + drawing.radio(color, alpha=alpha) + if suffix == '-checked': + drawing.radiomark(color, alpha=alpha) + if suffix == '-mixed': + drawing.radiomark_mixed(color, alpha=alpha) + + elif widget == 'arrow': + if suffix == '-right': + rotation = 90 + elif suffix == '-down': + rotation = 180 + elif suffix == '-left': + rotation = 270 + drawing.arrow(color, rotation, alpha=alpha) + + elif widget == 'arrow-small': + if suffix == '-right': + rotation = 90 + elif suffix == '-down': + rotation = 180 + elif suffix == '-left': + rotation = 270 + drawing.arrow_small(color, rotation, alpha=alpha) + + elif widget == 'entry': + drawing.base(color) + drawing.background(color3) + drawing.border(color2, alpha=alpha) + + elif widget == 'combo-entry': + if suffix == '-button': + rotation = 180 + drawing.base(color) + drawing.combo_entry(color3,rotation) + drawing.combo_entry_border(color2,rotation, alpha=alpha) + + elif widget == 'tab': + if suffix == '-right': + rotation = 90 + if suffix == '-bottom': + rotation = 180 + if suffix == '-left': + rotation = 270 + drawing.tab(color, rotation, alpha=alpha) + if state == '-active': + drawing.tab_border(color2, rotation, alpha=alpha) + + elif widget == 'notebook-gap': + if suffix == '-horizontal': + drawing.background(color,1,0,2,2,0,0) + else: + drawing.background(color,0,1,2,2,0,0) + + elif widget == 'notebook': + drawing.background(color,0,0,20,20) + drawing.border(color2,0.5,0.5,19,19) + + elif widget == 'progressbar': + drawing.background(color,0,0,10,10) + + elif widget == 'scale-slider': + drawing.scale_slider(color) + drawing.scale_border(color2) + + elif widget == 'scale-trough': + if suffix == '-vertical': + drawing.background(color,7,0,6,20) + else: + drawing.background(color,0,7,20,6) + + elif widget == 'scrollbar-slider': + if gtk_version=='gtk-2.0': + if suffix == '-horizontal': + drawing.background(color, 2,0,26,10,5,5,alpha=alpha) + else: + drawing.background(color, 0,2,10,26,5,5,alpha=alpha) + else: + if suffix == '-horizontal': + drawing.background(color, 1,5,26,10,5,5,alpha=alpha) + else: + drawing.background(color, 5,1,10,26,5,5,alpha=alpha) + + elif widget == 'scrollbar-trough': + if suffix == '-horizontal': + drawing.background(color, 15,5,26,10,5,5, alpha=alpha) + else: + drawing.background(color, 5,15,10,26,5,5, alpha=alpha) + + elif widget == 'plus': + drawing.arrow(color, 90) + + elif widget == 'minus': + drawing.arrow(color, 180) + + elif widget == 'menu-arrow': + drawing.arrow(color, 90, alpha=alpha) + + elif widget == 'handle': + if suffix == '-h': + drawing.background(color,0,0,20,2,0,0) + else: + drawing.background(color,0,0,2,20,0,0) + + elif widget == 'line': + if suffix == '-h': + drawing.background(color,0,1,8,1,0,0) + elif suffix == '-v': + drawing.background(color,1,0,1,8,0,0) + elif prefix == 'menu-': + drawing.background(color,0,0,8,1,0,0) + + elif widget == 'menubar-button': + drawing.background(color,1,1,18,18,0,0) + + elif widget == 'toolbar-background': + drawing.base(color) + + elif widget == 'null': + drawing.base('none') + + elif widget == 'tree-header': + drawing.tree_header(color,color2) + + elif widget == 'frame': + drawing.background(color,0,0,20,20) + drawing.border(color2,0.5,0.5,19,19) + + elif widget == 'frame-gap': + if suffix == '-start': + drawing.background(color,1,0,1,1,0,0) + else: + drawing.background(color,0,0,1,1,0,0) + + elif widget == 'titlebutton': + drawing.titlebutton_background(color) + if suffix == '-close': + drawing.close(color2) + elif suffix == '-minimize': + drawing.minimize(color2) + elif suffix == '-maximize': + drawing.maximize(color2) + elif suffix == '-maximize-maximized': + drawing.maximize_maximized(color2) + + drawing.save(filename) + if gtk_version == 'gtk-3.0': + drawing.save('{0}/assets/{1}{2}{3}{4}@2.png'.format(gtk_version,prefix,widget,suffix,state), dpi=180) diff --git a/Breeze-gtk/src/colorFunctions.py b/Breeze-gtk/src/colorFunctions.py new file mode 100644 index 0000000..6b3db22 --- /dev/null +++ b/Breeze-gtk/src/colorFunctions.py @@ -0,0 +1,115 @@ +import grapefruit as gft + +def htmlColor(color): + return gft.Color.NewFromRgb(float(color.split(',')[0])/255,float(color.split(',')[1])/255,float(color.split(',')[2])/255).html + +def buttongradient(color, state=''): + r,g,b = gft.Color.HtmlToRgb(color) + if state == '-active': + h,s,l = gft.Color.RgbToHsl(r,g,b) + stop1 = gft.Color.NewFromHsl(h, s, l).ColorWithLightness(1.03*l).html + stop2 = gft.Color.NewFromHsl(h, s, l).ColorWithLightness(l/1.10).html + else: + h,s,l = gft.Color.RgbToHsl(r,g,b) + stop1 = gft.Color.NewFromHsl(h, s, l).ColorWithLightness(1.01*l).html + stop2 = gft.Color.NewFromHsl(h, s, l).ColorWithLightness(l/1.03).html + return (stop1, stop2) + +def mixColor(color1,color2,amount): + r1,g1,b1 = gft.Color.HtmlToRgb(color1) + r2,g2,b2 = gft.Color.HtmlToRgb(color2) + color1 = gft.Color.NewFromRgb(r1,g1,b1) + color2 = gft.Color.NewFromRgb(r2,g2,b2) + return color1.Blend(color2, amount).html + +def closeHover(color): + r,g,b = gft.Color.HtmlToRgb(color) + h,s,l = gft.Color.RgbToHsl(r,g,b) + return gft.Color.NewFromHsl(h, s, l).ColorWithLightness(l*1.5).html + +def readColors(input_file, output_file): + Colors = {} + with open(input_file, 'r') as colors: + for widget in ['Button', 'Selection', 'Tooltip', 'View', 'Window', 'WM']: + for line in colors: + if line.strip().split(':')[-1].strip('[]') == widget: + break + for line in colors: + if line == '\n': + break + color = line.strip().split('=')[0] + if color == 'activeFont': + continue + value = htmlColor(line.strip().split('=')[1]) + Colors['{0}_{1}'.format(widget,color)] = value + with open(output_file, 'a') as gtk3: + gtk3.write('${0}_{1}:{2};\n'.format(widget,color,value)) + return Colors + +def readColorEffects(input_file, output_file): + ColorEffects = {} + with open(input_file, 'r') as colors: + for state in ['Disabled', 'Inactive']: + for line in colors: + if line.strip().split(':')[-1].strip('[]') == state: + break + for line in colors: + if line == '\n': + break + effect = line.strip().split('=')[0] + value = line.strip().split('=')[1] + if effect == 'Color': + value = htmlColor(value) + ColorEffects['{0}_{1}'.format(state,effect)] = value + with open(output_file, 'a') as gtk3: + gtk3.write('${0}_{1}:{2};\n'.format(state,effect,value)) + return ColorEffects + +def colorEffect(color,effect_color, effect, amount): + r,g,b = gft.Color.HtmlToRgb(color) + h,s,l = gft.Color.RgbToHsl(r,g,b) + if effect == 1: + if amount >= 0: + return gft.Color.NewFromHsl(h, s, l).Desaturate(amount).html + else: + return gft.Color.NewFromHsl(h, s, l).Saturate(abs(amount)).html + elif effect == 2 or effect == 3: # don't really know what they do, tinting should be mixing with white + return mixColor(effect_color,color, amount) + else: + return color + +def intensityEffect(color, effect, amount): + r,g,b = gft.Color.HtmlToRgb(color) + h,s,l = gft.Color.RgbToHsl(r,g,b) + if effect == 1: + if amount >= 0: + return mixColor('white',color,amount) + else: + return mixColor('black',color,amount) + elif effect == 2: + if amount >= 0: + return gft.Color.NewFromHsl(h, s, l).DarkerColor(amount).html + else: + return gft.Color.NewFromHsl(h, s, l).ColorWithLightness(l*(1+abs(amount))).html + elif effect == 3: + if amount >= 0: + return gft.Color.NewFromHsl(h, s, l).LighterColor(amount).html + else: + return gft.Color.NewFromHsl(h, s, l).ColorWithLightness(l/(1+abs(amount))).html + else: + return color + +def contrastEffect(bg_color, fg_color, color, effect, amount): + r1,g1,b1 = gft.Color.HtmlToRgb(bg_color) + h1,s1,l1 = gft.Color.RgbToHsl(r1,g1,b1) + r2,g2,b2 = gft.Color.HtmlToRgb(fg_color) + h2,s2,l2 = gft.Color.RgbToHsl(r2,g2,b2) + r3,g3,b3 = gft.Color.HtmlToRgb(color) + h3,s3,l3 = gft.Color.RgbToHsl(r3,g3,b3) + if effect == 1 or effect == 2: # can't see any difference + if l1 > l2 and l1 > l3: + return 1-amount + elif l1 < l2 and l1 < l3: + return 1-amount + else: + return 1 diff --git a/Breeze-gtk/src/gtk2/assets/arrow-down-active.png b/Breeze-gtk/src/gtk2/assets/arrow-down-active.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-down-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-down-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-down-hover.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-down-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-down-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-down-insensitive.png new file mode 100644 index 0000000..f5db011 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-down-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-down.png b/Breeze-gtk/src/gtk2/assets/arrow-down.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-down.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-left-active.png b/Breeze-gtk/src/gtk2/assets/arrow-left-active.png new file mode 100644 index 0000000..5f09594 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-left-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-left-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-left-hover.png new file mode 100644 index 0000000..5f09594 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-left-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-left-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-left-insensitive.png new file mode 100644 index 0000000..2417aa4 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-left-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-left.png b/Breeze-gtk/src/gtk2/assets/arrow-left.png new file mode 100644 index 0000000..5f09594 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-left.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-right-active.png b/Breeze-gtk/src/gtk2/assets/arrow-right-active.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-right-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-right-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-right-hover.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-right-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-right-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-right-insensitive.png new file mode 100644 index 0000000..4221d02 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-right-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-right.png b/Breeze-gtk/src/gtk2/assets/arrow-right.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-right.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-down-active.png b/Breeze-gtk/src/gtk2/assets/arrow-small-down-active.png new file mode 100644 index 0000000..58beca3 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-down-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-down-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-small-down-hover.png new file mode 100644 index 0000000..58beca3 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-down-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-down-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-small-down-insensitive.png new file mode 100644 index 0000000..6ec6f2c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-down-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-down.png b/Breeze-gtk/src/gtk2/assets/arrow-small-down.png new file mode 100644 index 0000000..58beca3 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-down.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-left-active.png b/Breeze-gtk/src/gtk2/assets/arrow-small-left-active.png new file mode 100644 index 0000000..11b9eb1 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-left-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-left-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-small-left-hover.png new file mode 100644 index 0000000..11b9eb1 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-left-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-left-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-small-left-insensitive.png new file mode 100644 index 0000000..c6b7d1d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-left-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-left.png b/Breeze-gtk/src/gtk2/assets/arrow-small-left.png new file mode 100644 index 0000000..11b9eb1 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-left.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-right-active.png b/Breeze-gtk/src/gtk2/assets/arrow-small-right-active.png new file mode 100644 index 0000000..f321783 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-right-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-right-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-small-right-hover.png new file mode 100644 index 0000000..f321783 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-right-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-right-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-small-right-insensitive.png new file mode 100644 index 0000000..d8c3ef3 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-right-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-right.png b/Breeze-gtk/src/gtk2/assets/arrow-small-right.png new file mode 100644 index 0000000..f321783 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-right.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-up-active.png b/Breeze-gtk/src/gtk2/assets/arrow-small-up-active.png new file mode 100644 index 0000000..890c1ea Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-up-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-up-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-small-up-hover.png new file mode 100644 index 0000000..890c1ea Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-up-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-up-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-small-up-insensitive.png new file mode 100644 index 0000000..beea418 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-up-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-small-up.png b/Breeze-gtk/src/gtk2/assets/arrow-small-up.png new file mode 100644 index 0000000..890c1ea Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-small-up.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-up-active.png b/Breeze-gtk/src/gtk2/assets/arrow-up-active.png new file mode 100644 index 0000000..588e47c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-up-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-up-hover.png b/Breeze-gtk/src/gtk2/assets/arrow-up-hover.png new file mode 100644 index 0000000..588e47c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-up-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-up-insensitive.png b/Breeze-gtk/src/gtk2/assets/arrow-up-insensitive.png new file mode 100644 index 0000000..670d5c4 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-up-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/arrow-up.png b/Breeze-gtk/src/gtk2/assets/arrow-up.png new file mode 100644 index 0000000..588e47c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/arrow-up.png differ diff --git a/Breeze-gtk/src/gtk2/assets/button-active.png b/Breeze-gtk/src/gtk2/assets/button-active.png new file mode 100644 index 0000000..b5a166d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/button-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/button-hover.png b/Breeze-gtk/src/gtk2/assets/button-hover.png new file mode 100644 index 0000000..d8aa31b Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/button-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/button-insensitive.png b/Breeze-gtk/src/gtk2/assets/button-insensitive.png new file mode 100644 index 0000000..8ee01ea Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/button-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/button.png b/Breeze-gtk/src/gtk2/assets/button.png new file mode 100644 index 0000000..c884625 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/button.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-checked-active.png b/Breeze-gtk/src/gtk2/assets/checkbox-checked-active.png new file mode 100644 index 0000000..7f4b2d0 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-checked-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-checked-hover.png b/Breeze-gtk/src/gtk2/assets/checkbox-checked-hover.png new file mode 100644 index 0000000..dee6b31 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-checked-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-checked-insensitive.png b/Breeze-gtk/src/gtk2/assets/checkbox-checked-insensitive.png new file mode 100644 index 0000000..37f3c7e Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-checked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-checked-selected.png b/Breeze-gtk/src/gtk2/assets/checkbox-checked-selected.png new file mode 100644 index 0000000..53630a3 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-checked-selected.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-checked.png b/Breeze-gtk/src/gtk2/assets/checkbox-checked.png new file mode 100644 index 0000000..7f4b2d0 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-checked.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-active.png b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-active.png new file mode 100644 index 0000000..b89e73d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-hover.png b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-hover.png new file mode 100644 index 0000000..d719aa5 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-insensitive.png b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-insensitive.png new file mode 100644 index 0000000..2b62619 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-selected.png b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-selected.png new file mode 100644 index 0000000..650bbf9 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked-selected.png differ diff --git a/Breeze-gtk/src/gtk2/assets/checkbox-unchecked.png b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked.png new file mode 100644 index 0000000..345fc85 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/checkbox-unchecked.png differ diff --git a/Breeze-gtk/src/gtk2/assets/entry-active.png b/Breeze-gtk/src/gtk2/assets/entry-active.png new file mode 100644 index 0000000..c5cef9c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/entry-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/entry-insensitive.png b/Breeze-gtk/src/gtk2/assets/entry-insensitive.png new file mode 100644 index 0000000..b76933d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/entry-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/entry.png b/Breeze-gtk/src/gtk2/assets/entry.png new file mode 100644 index 0000000..2b058cb Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/entry.png differ diff --git a/Breeze-gtk/src/gtk2/assets/frame-gap-end.png b/Breeze-gtk/src/gtk2/assets/frame-gap-end.png new file mode 100644 index 0000000..6624078 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/frame-gap-end.png differ diff --git a/Breeze-gtk/src/gtk2/assets/frame-gap-start.png b/Breeze-gtk/src/gtk2/assets/frame-gap-start.png new file mode 100644 index 0000000..3172f49 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/frame-gap-start.png differ diff --git a/Breeze-gtk/src/gtk2/assets/frame.png b/Breeze-gtk/src/gtk2/assets/frame.png new file mode 100644 index 0000000..4a90cee Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/frame.png differ diff --git a/Breeze-gtk/src/gtk2/assets/handle-h.png b/Breeze-gtk/src/gtk2/assets/handle-h.png new file mode 100644 index 0000000..349f07c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/handle-h.png differ diff --git a/Breeze-gtk/src/gtk2/assets/handle-v.png b/Breeze-gtk/src/gtk2/assets/handle-v.png new file mode 100644 index 0000000..1fafdcf Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/handle-v.png differ diff --git a/Breeze-gtk/src/gtk2/assets/line-h.png b/Breeze-gtk/src/gtk2/assets/line-h.png new file mode 100644 index 0000000..bb1ff29 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/line-h.png differ diff --git a/Breeze-gtk/src/gtk2/assets/line-v.png b/Breeze-gtk/src/gtk2/assets/line-v.png new file mode 100644 index 0000000..6e875eb Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/line-v.png differ diff --git a/Breeze-gtk/src/gtk2/assets/menu-arrow-insensitive.png b/Breeze-gtk/src/gtk2/assets/menu-arrow-insensitive.png new file mode 100644 index 0000000..4221d02 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/menu-arrow-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/menu-arrow.png b/Breeze-gtk/src/gtk2/assets/menu-arrow.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/menu-arrow.png differ diff --git a/Breeze-gtk/src/gtk2/assets/menu-frame.png b/Breeze-gtk/src/gtk2/assets/menu-frame.png new file mode 100644 index 0000000..4de6f5d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/menu-frame.png differ diff --git a/Breeze-gtk/src/gtk2/assets/menu-line.png b/Breeze-gtk/src/gtk2/assets/menu-line.png new file mode 100644 index 0000000..3f83143 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/menu-line.png differ diff --git a/Breeze-gtk/src/gtk2/assets/menubar-button.png b/Breeze-gtk/src/gtk2/assets/menubar-button.png new file mode 100644 index 0000000..58e1666 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/menubar-button.png differ diff --git a/Breeze-gtk/src/gtk2/assets/minus.png b/Breeze-gtk/src/gtk2/assets/minus.png new file mode 100644 index 0000000..94cae33 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/minus.png differ diff --git a/Breeze-gtk/src/gtk2/assets/notebook-gap-horizontal.png b/Breeze-gtk/src/gtk2/assets/notebook-gap-horizontal.png new file mode 100644 index 0000000..5036b7b Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/notebook-gap-horizontal.png differ diff --git a/Breeze-gtk/src/gtk2/assets/notebook-gap-vertical.png b/Breeze-gtk/src/gtk2/assets/notebook-gap-vertical.png new file mode 100644 index 0000000..73bf4a1 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/notebook-gap-vertical.png differ diff --git a/Breeze-gtk/src/gtk2/assets/notebook.png b/Breeze-gtk/src/gtk2/assets/notebook.png new file mode 100644 index 0000000..4de6f5d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/notebook.png differ diff --git a/Breeze-gtk/src/gtk2/assets/null.png b/Breeze-gtk/src/gtk2/assets/null.png new file mode 100644 index 0000000..bdf4c81 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/null.png differ diff --git a/Breeze-gtk/src/gtk2/assets/plus.png b/Breeze-gtk/src/gtk2/assets/plus.png new file mode 100644 index 0000000..5b17dad Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/plus.png differ diff --git a/Breeze-gtk/src/gtk2/assets/progressbar-bar.png b/Breeze-gtk/src/gtk2/assets/progressbar-bar.png new file mode 100644 index 0000000..66e1462 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/progressbar-bar.png differ diff --git a/Breeze-gtk/src/gtk2/assets/progressbar-trough.png b/Breeze-gtk/src/gtk2/assets/progressbar-trough.png new file mode 100644 index 0000000..d61bec9 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/progressbar-trough.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-checked-active.png b/Breeze-gtk/src/gtk2/assets/radio-checked-active.png new file mode 100644 index 0000000..d043ef2 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-checked-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-checked-hover.png b/Breeze-gtk/src/gtk2/assets/radio-checked-hover.png new file mode 100644 index 0000000..ee41e3b Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-checked-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-checked-insensitive.png b/Breeze-gtk/src/gtk2/assets/radio-checked-insensitive.png new file mode 100644 index 0000000..94c0955 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-checked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-checked-selected.png b/Breeze-gtk/src/gtk2/assets/radio-checked-selected.png new file mode 100644 index 0000000..bc331c0 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-checked-selected.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-checked.png b/Breeze-gtk/src/gtk2/assets/radio-checked.png new file mode 100644 index 0000000..d043ef2 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-checked.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-unchecked-active.png b/Breeze-gtk/src/gtk2/assets/radio-unchecked-active.png new file mode 100644 index 0000000..f7eaa2c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-unchecked-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-unchecked-hover.png b/Breeze-gtk/src/gtk2/assets/radio-unchecked-hover.png new file mode 100644 index 0000000..f01a335 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-unchecked-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-unchecked-insensitive.png b/Breeze-gtk/src/gtk2/assets/radio-unchecked-insensitive.png new file mode 100644 index 0000000..755122a Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-unchecked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-unchecked-selected.png b/Breeze-gtk/src/gtk2/assets/radio-unchecked-selected.png new file mode 100644 index 0000000..86fc8dc Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-unchecked-selected.png differ diff --git a/Breeze-gtk/src/gtk2/assets/radio-unchecked.png b/Breeze-gtk/src/gtk2/assets/radio-unchecked.png new file mode 100644 index 0000000..eacf8b2 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/radio-unchecked.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scale-slider-active.png b/Breeze-gtk/src/gtk2/assets/scale-slider-active.png new file mode 100644 index 0000000..3e7f554 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scale-slider-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scale-slider-insensitive.png b/Breeze-gtk/src/gtk2/assets/scale-slider-insensitive.png new file mode 100644 index 0000000..cae7592 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scale-slider-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scale-slider.png b/Breeze-gtk/src/gtk2/assets/scale-slider.png new file mode 100644 index 0000000..a104267 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scale-slider.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scale-trough-horizontal.png b/Breeze-gtk/src/gtk2/assets/scale-trough-horizontal.png new file mode 100644 index 0000000..4136c51 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scale-trough-horizontal.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scale-trough-vertical.png b/Breeze-gtk/src/gtk2/assets/scale-trough-vertical.png new file mode 100644 index 0000000..03f7f19 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scale-trough-vertical.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-active.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-active.png new file mode 100644 index 0000000..858f408 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-hover.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-hover.png new file mode 100644 index 0000000..d010fb0 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-insensitive.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-insensitive.png new file mode 100644 index 0000000..d54eb3d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal.png new file mode 100644 index 0000000..78733fd Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-horizontal.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-active.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-active.png new file mode 100644 index 0000000..435fb24 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-hover.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-hover.png new file mode 100644 index 0000000..56abfe5 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-insensitive.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-insensitive.png new file mode 100644 index 0000000..2d7a80e Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical.png b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical.png new file mode 100644 index 0000000..7655c92 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-slider-vertical.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-trough-horizontal.png b/Breeze-gtk/src/gtk2/assets/scrollbar-trough-horizontal.png new file mode 100644 index 0000000..efeff2d Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-trough-horizontal.png differ diff --git a/Breeze-gtk/src/gtk2/assets/scrollbar-trough-vertical.png b/Breeze-gtk/src/gtk2/assets/scrollbar-trough-vertical.png new file mode 100644 index 0000000..bcedd60 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/scrollbar-trough-vertical.png differ diff --git a/Breeze-gtk/src/gtk2/assets/selected-menu-arrow.png b/Breeze-gtk/src/gtk2/assets/selected-menu-arrow.png new file mode 100644 index 0000000..43daf58 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/selected-menu-arrow.png differ diff --git a/Breeze-gtk/src/gtk2/assets/spinbutton-down-insensitive.png b/Breeze-gtk/src/gtk2/assets/spinbutton-down-insensitive.png new file mode 100644 index 0000000..c4246da Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/spinbutton-down-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/spinbutton-down.png b/Breeze-gtk/src/gtk2/assets/spinbutton-down.png new file mode 100644 index 0000000..ed5996a Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/spinbutton-down.png differ diff --git a/Breeze-gtk/src/gtk2/assets/spinbutton-up-insensitive.png b/Breeze-gtk/src/gtk2/assets/spinbutton-up-insensitive.png new file mode 100644 index 0000000..22afce9 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/spinbutton-up-insensitive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/spinbutton-up.png b/Breeze-gtk/src/gtk2/assets/spinbutton-up.png new file mode 100644 index 0000000..4d7901a Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/spinbutton-up.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-bottom-active.png b/Breeze-gtk/src/gtk2/assets/tab-bottom-active.png new file mode 100644 index 0000000..127addf Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-bottom-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-bottom-inactive.png b/Breeze-gtk/src/gtk2/assets/tab-bottom-inactive.png new file mode 100644 index 0000000..9a32c50 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-bottom-inactive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-left-active.png b/Breeze-gtk/src/gtk2/assets/tab-left-active.png new file mode 100644 index 0000000..c63794c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-left-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-left-inactive.png b/Breeze-gtk/src/gtk2/assets/tab-left-inactive.png new file mode 100644 index 0000000..9d4d148 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-left-inactive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-right-active.png b/Breeze-gtk/src/gtk2/assets/tab-right-active.png new file mode 100644 index 0000000..3298a85 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-right-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-right-inactive.png b/Breeze-gtk/src/gtk2/assets/tab-right-inactive.png new file mode 100644 index 0000000..8b7304f Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-right-inactive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-top-active.png b/Breeze-gtk/src/gtk2/assets/tab-top-active.png new file mode 100644 index 0000000..098c99c Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-top-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tab-top-inactive.png b/Breeze-gtk/src/gtk2/assets/tab-top-inactive.png new file mode 100644 index 0000000..b4c9d14 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tab-top-inactive.png differ diff --git a/Breeze-gtk/src/gtk2/assets/toolbar-background.png b/Breeze-gtk/src/gtk2/assets/toolbar-background.png new file mode 100644 index 0000000..37fe449 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/toolbar-background.png differ diff --git a/Breeze-gtk/src/gtk2/assets/toolbutton-active.png b/Breeze-gtk/src/gtk2/assets/toolbutton-active.png new file mode 100644 index 0000000..350cb23 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/toolbutton-active.png differ diff --git a/Breeze-gtk/src/gtk2/assets/toolbutton-hover.png b/Breeze-gtk/src/gtk2/assets/toolbutton-hover.png new file mode 100644 index 0000000..958c8a8 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/toolbutton-hover.png differ diff --git a/Breeze-gtk/src/gtk2/assets/toolbutton-toggled.png b/Breeze-gtk/src/gtk2/assets/toolbutton-toggled.png new file mode 100644 index 0000000..dc82cf2 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/toolbutton-toggled.png differ diff --git a/Breeze-gtk/src/gtk2/assets/toolbutton.png b/Breeze-gtk/src/gtk2/assets/toolbutton.png new file mode 100644 index 0000000..bdf4c81 Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/toolbutton.png differ diff --git a/Breeze-gtk/src/gtk2/assets/tree-header.png b/Breeze-gtk/src/gtk2/assets/tree-header.png new file mode 100644 index 0000000..8cff94f Binary files /dev/null and b/Breeze-gtk/src/gtk2/assets/tree-header.png differ diff --git a/Breeze-gtk/src/gtk2/gtkrc b/Breeze-gtk/src/gtk2/gtkrc new file mode 100644 index 0000000..4a1ce1b --- /dev/null +++ b/Breeze-gtk/src/gtk2/gtkrc @@ -0,0 +1,29 @@ +# Theme: Breeze-gtk +# Description: Breeze theme for GTK+2.0 + +gtk-color-scheme = "text_color:#31363b" +gtk-color-scheme = "base_color:#fcfcfc" +gtk-color-scheme = "insensitive_base_color:#e3e3e3" +gtk-color-scheme = "fg_color:#31363b" +gtk-color-scheme = "bg_color:#eff0f1" +gtk-color-scheme = "selected_fg_color:#eff0f1" +gtk-color-scheme = "selected_bg_color:#3daee9" +gtk-color-scheme = "button_fg_color:#31363b" +gtk-color-scheme = "tooltip_fg_color:#eff0f1" +gtk-color-scheme = "tooltip_bg_color:#31363b" +gtk-color-scheme = "insensitive_fg_color:#a4a6a8" +gtk-color-scheme = "insensitive_text_color:#adaeaf" +gtk-color-scheme = "button_insensitive_fg_color:#a4a6a8" +gtk-color-scheme = "border_color:#c0c2c3" + +include "widgets/default" +include "widgets/buttons" +include "widgets/menu" +include "widgets/entry" +include "widgets/notebook" +include "widgets/range" +include "widgets/scrollbar" +include "widgets/toolbar" +include "widgets/progressbar" +include "widgets/misc" +include "widgets/styles" diff --git a/Breeze-gtk/src/gtk2/widgets/buttons b/Breeze-gtk/src/gtk2/widgets/buttons new file mode 100644 index 0000000..284dd5c --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/buttons @@ -0,0 +1,163 @@ +style "button" +{ + xthickness = 4 + ythickness = 5 + + engine "pixmap" + { + image + { + function = BOX + state = NORMAL + file = "assets/button.png" + border = {4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = PRELIGHT + file = "assets/button-hover.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = ACTIVE + file = "assets/button-active.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = INSENSITIVE + file = "assets/button-insensitive.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "spinbutton" = "default" +{ + #bg[NORMAL] = @bg_color + + xthickness = 3 + ythickness = 3 + GtkWidget::interior_focus = 1 + +engine "pixmap" + { + image + { + function = ARROW + } + + #Spin-up + image + { + function = BOX + state = NORMAL + detail = "spinbutton_up" + file = "assets/spinbutton-up.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = PRELIGHT + detail = "spinbutton_up" + file = "assets/spinbutton-up.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up-hover.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = INSENSITIVE + detail = "spinbutton_up" + file = "assets/spinbutton-up-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = ACTIVE + detail = "spinbutton_up" + file = "assets/spinbutton-up.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-up-active.png" + overlay_stretch = FALSE + } + + # Spin-Down + image + { + function = BOX + state = NORMAL + detail = "spinbutton_down" + file = "assets/spinbutton-down.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = PRELIGHT + detail = "spinbutton_down" + file = "assets/spinbutton-down.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down-hover.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = INSENSITIVE + detail = "spinbutton_down" + file = "assets/spinbutton-down-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = BOX + state = ACTIVE + detail = "spinbutton_down" + file = "assets/spinbutton-down.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + overlay_file = "assets/arrow-small-down-hover.png" + overlay_stretch = FALSE + } + } +} + +style "button_label" { + fg[NORMAL] = @button_fg_color + fg[ACTIVE] = @button_fg_color + fg[INSENSITIVE] = @button_insensitive_fg_color +} + +style "combobox_separator" +{ + xthickness = 0 + ythickness = 0 + GtkWidget::wide-separators = 1 +} diff --git a/Breeze-gtk/src/gtk2/widgets/default b/Breeze-gtk/src/gtk2/widgets/default new file mode 100644 index 0000000..fb10729 --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/default @@ -0,0 +1,543 @@ +gtk-auto-mnemonics = 1 + +style "default" +{ + xthickness = 1 + ythickness = 1 + + # Style Properties + + GtkScrollbar::activate-slider = 1 + GtkWidget::focus-line-width = 0 + GtkWidget::new-tooltip-style = 1 + GtkWidget::tooltip-alpha = 230 + GtkWidget::tooltip-radius = 2 + GtkMenuBar::window-dragging = 1 + GtkToolbar::window-dragging = 1 + GtkToolbar::internal-padding = 5 + GtkToolButton::icon-spacing = 4 + + GtkSeparatorMenuItem::horizontal-padding = 3 + GtkSeparatorMenuItem::wide-separators = 1 + GtkSeparatorMenuItem::separator-height = 1 + + GtkCheckMenuItem::indicator-size = 20 + GtkRadioMenuItem::indicator-size = 20 + + GtkButton::child-displacement-y = 0 + GtkButton::default-border = { 0, 0, 0, 0 } + GtkButton::default-outside_border = { 0, 0, 0, 0 } + + GtkScrollbar::trough-border = 5 + GtkScrollbar::slider-width = 10 + GtkRange::trough-border = 0 + GtkRange::slider-width = 7 + GtkRange::stepper-size = 0 + + GtkScrollbar::has-backward-stepper = 1 + GtkScrollbar::has-forward-stepper = 1 + GtkScrollbar::stepper-size = 8 + GtkScrollbar::stepper-spacing = 0 + GtkScrolledWindow ::scrollbar-spacing = 0 + GtkScrolledWindow ::scrollbars-within-bevel = 1 + + GtkVScale::slider_length = 20 + GtkVScale::slider_width = 20 + GtkHScale::slider_length = 20 + GtkHScale::slider_width = 20 + + GtkStatusbar::shadow_type = GTK_SHADOW_NONE + GtkSpinButton::shadow_type = GTK_SHADOW_NONE + GtkMenuBar::shadow-type = GTK_SHADOW_NONE + GtkMenuBar::internal-padding = 3 + GtkMenu::horizontal-padding = 2 + GtkMenu::vertical-padding = 2 + + GtkNotebook::tab-overlap = 1 + GtkNotebook::tab-curvature = 3 + + GtkCheckButton::indicator_spacing = 3 + GtkOptionMenu::indicator_spacing = 0 #{ 8, 2, 0, 0 } + + GtkTreeView::row_ending_details = 0 + GtkTreeView::expander-size = 12 + GtkTreeView::vertical-separator = 1 + GtkTreeView::horizontal-separator = 4 + GtkTreeView::allow-rules = 1 + + GtkProgressBar::min-horizontal-bar-height = 6 + GtkProgressBar::min-vertical-bar-width = 6 + + GtkEntry::state-hint = 1 + + # Colors + + bg[NORMAL] = @bg_color + bg[PRELIGHT] = @bg_color + bg[SELECTED] = @selected_bg_color + bg[INSENSITIVE] = @bg_color + bg[ACTIVE] = @bg_color + + fg[NORMAL] = @fg_color + fg[PRELIGHT] = @fg_color + fg[SELECTED] = @selected_fg_color + fg[INSENSITIVE] = @insensitive_fg_color + fg[ACTIVE] = @fg_color + + text[NORMAL] = @text_color + text[PRELIGHT] = @text_color + text[SELECTED] = @selected_fg_color + text[INSENSITIVE] = @insensitive_text_color + text[ACTIVE] = @selected_fg_color + + base[NORMAL] = @base_color + base[PRELIGHT] = @base_color + base[SELECTED] = @selected_bg_color + base[INSENSITIVE] = @bg_color + base[ACTIVE] = @selected_bg_color + + # All pixmap options are consolidated below this point + + engine "pixmap" + { + + # Check Buttons + + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = OUT + overlay_file = "assets/checkbox-unchecked-hover.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-active.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = IN + overlay_file = "assets/checkbox-checked-hover.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = IN + overlay_file = "assets/checkbox-checked-active.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = FALSE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = IN + overlay_file = "assets/checkbox-checked-insensitive.png" + overlay_stretch = FALSE + } + + # Radio Buttons + + image + { + function = OPTION + state = NORMAL + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = PRELIGHT + shadow = OUT + overlay_file = "assets/radio-unchecked-hover.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = ACTIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-active.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = SELECTED + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = NORMAL + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = PRELIGHT + shadow = IN + overlay_file = "assets/radio-checked-hover.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = ACTIVE + shadow = IN + overlay_file = "assets/radio-checked-active.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = SELECTED + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = IN + overlay_file = "assets/radio-checked-insensitive.png" + overlay_stretch = FALSE + } + + # Arrows + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-up.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-up-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-up-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-up-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = UP + } + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-down.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-down-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-down-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-down-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-left.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-left-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-left-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-left-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/arrow-right.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/arrow-right-hover.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = ACTIVE + overlay_file = "assets/arrow-right-active.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/arrow-right-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + + # Option Menu assets + + image + { + function = TAB + state = INSENSITIVE + overlay_file = "assets/arrow-down-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = TAB + state = NORMAL + overlay_file = "assets/arrow-down.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + } + image + { + function = TAB + state = PRELIGHT + overlay_file = "assets/arrow-down.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + } + + #Lines + + image + { + function = VLINE + file = "assets/line-v.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + } + image + { + function = HLINE + file = "assets/line-h.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + } + + # Handles + + image + { + function = HANDLE + overlay_file = "assets/handle-h.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + image + { + function = HANDLE + overlay_file = "assets/handle-v.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + # Expanders + + image + { + function = EXPANDER + expander_style = COLLAPSED + file = "assets/plus.png" + } + + image + { + function = EXPANDER + expander_style = EXPANDED + file = "assets/minus.png" + } + + image + { + function = EXPANDER + expander_style = SEMI_EXPANDED + file = "assets/minus.png" + } + + image + { + function = EXPANDER + expander_style = SEMI_COLLAPSED + file = "assets/plus.png" + } + + image + { + function = RESIZE_GRIP + state = NORMAL + detail = "statusbar" + overlay_file = "assets/null.png" + overlay_border = { 0,0,0,0 } + overlay_stretch = FALSE + } + + # Shadows ( this area needs help :P ) + + image + { + function = SHADOW_GAP + file = "assets/null.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + diff --git a/Breeze-gtk/src/gtk2/widgets/entry b/Breeze-gtk/src/gtk2/widgets/entry new file mode 100644 index 0000000..f57758e --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/entry @@ -0,0 +1,51 @@ +style "entry" +{ + xthickness = 4 + ythickness = 4 + + base[NORMAL] = @base_color + base[ACTIVE] = @base_color + base[INSENSITIVE] = @insensitive_base_color + + engine "pixmap" + { + image + { + function = SHADOW + detail = "entry" + state = NORMAL + shadow = IN + file = "assets/entry.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = SHADOW + detail = "entry" + state = INSENSITIVE + shadow = IN + file = "assets/entry-insensitive.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = SHADOW + detail = "entry" + state = ACTIVE + file = "assets/entry-active.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = FLAT_BOX + detail = "entry_bg" + state = ACTIVE + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/src/gtk2/widgets/menu b/Breeze-gtk/src/gtk2/widgets/menu new file mode 100644 index 0000000..fced2d1 --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/menu @@ -0,0 +1,248 @@ +style "menubar" +{ + bg[PRELIGHT] = "#FFF" #does this make sense, does it do anything? + fg[SELECTED] = @fg_color + + xthickness = 0 + ythickness = 0 + + engine "pixmap" + { + image + { + function = BOX + recolorable = TRUE + state = PRELIGHT + file = "assets/menubar-button.png" + + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "menu" +{ + xthickness = 0 + ythickness = 0 + + GtkMenuItem::arrow-scaling = 0.4 +} + +style "menu_item" +{ + xthickness = 2 + ythickness = 4 + + bg[PRELIGHT] = @selected_bg_color + fg[PRELIGHT] = @selected_fg_color + text[PRELIGHT] = @selected_fg_color + + GtkMenuItem::toggle-spacing = 10 + + engine "pixmap" + { + + # Check Buttons + + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = TRUE #needed for LibreOffice + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = OUT + overlay_file = "assets/checkbox-unchecked-selected.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = OUT + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-insensitive.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = IN + overlay_file = "assets/checkbox-checked-selected.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = TRUE + } + image + { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = IN + overlay_file = "assets/checkbox-checked-insensitive.png" + overlay_stretch = TRUE + } + + # Radio Buttons + + image + { + function = OPTION + state = NORMAL + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = PRELIGHT + shadow = OUT + overlay_file = "assets/radio-unchecked-selected.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = ACTIVE + shadow = OUT + overlay_file = "assets/radio-checked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-insensitive.png" + overlay_stretch = FALSE + } + image + { + function = OPTION + state = NORMAL + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = PRELIGHT + shadow = IN + overlay_file = "assets/radio-checked-selected.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = ACTIVE + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = TRUE + } + image + { + function = OPTION + state = INSENSITIVE + shadow = IN + overlay_file = "assets/radio-checked-insensitive.png" + overlay_stretch = TRUE + } + image + { + function = SHADOW # This fixes boxy Qt menu items + file = "assets/null.png" + border = { 10, 10, 10, 10 } + stretch = TRUE + } + + # Arrow Buttons + + image + { + function = ARROW + state = NORMAL + overlay_file = "assets/menu-arrow.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = PRELIGHT + overlay_file = "assets/selected-menu-arrow.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + image + { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/menu-arrow-insensitive.png" + overlay_border = { 0, 0, 0, 0 } + overlay_stretch = FALSE + arrow_direction = RIGHT + } + } +} + +style "menubar_item" +{ + xthickness = 2 + ythickness = 2 + bg[PRELIGHT] = @selected_fg_color + fg[PRELIGHT] = @selected_fg_color +} + +style "menu_framed_box" #this is not needed in Gnome +{ + engine "pixmap" + { + image + { + function = BOX + detail = "menu" + file = "assets/menu-frame.png" + border = { 3, 3, 3, 3 } + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/src/gtk2/widgets/misc b/Breeze-gtk/src/gtk2/widgets/misc new file mode 100644 index 0000000..b32a93b --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/misc @@ -0,0 +1,175 @@ +style "separator_menu_item" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/menu-line.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + } + } +} + +style "treeview" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/tree-header.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + } + } +} + +style "scrolled_window" +{ + engine "pixmap" + { + image + { + function = SHADOW + file = "assets/frame.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + } + } +} + +style "frame" +{ + xthickness = 1 + ythickness = 1 + + engine "pixmap" + { + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = IN + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = IN + } + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = OUT + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = OUT + } + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = ETCHED_IN + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = ETCHED_IN + } + image + { + function = SHADOW + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + shadow = ETCHED_OUT + } + image + { + function = SHADOW_GAP + file = "assets/frame.png" + border = { 1, 1, 1, 1 } + stretch = TRUE + gap_start_file = "assets/frame-gap-start.png" + gap_start_border = { 1, 0, 0, 0 } + gap_end_file = "assets/frame-gap-end.png" + gap_end_border = { 0, 1, 0, 0 } + shadow = ETCHED_OUT + } + } +} + +style "tooltips" +{ + xthickness = 8 + ythickness = 4 + + bg[NORMAL] = @tooltip_bg_color + fg[NORMAL] = @tooltip_fg_color + bg[SELECTED] = @tooltip_bg_color +} + +# Chromium + +style "chrome-gtk-frame" +{ + ChromeGtkFrame::frame-color = @border_color + ChromeGtkFrame::inactive-frame-color = @border_color + + ChromeGtkFrame::frame-gradient-size = 90 + ChromeGtkFrame::frame-gradient-color = @bg_color + + ChromeGtkFrame::incognito-frame-color = lighter (@bg_color) + ChromeGtkFrame::incognito-inactive-frame-color = lighter (@bg_color) + + ChromeGtkFrame::incognito-frame-gradient-size = 16 + ChromeGtkFrame::incognito-frame-gradient-color = @bg_color + + ChromeGtkFrame::scrollbar-trough-color = shade (0.912, @bg_color) + ChromeGtkFrame::scrollbar-slider-prelight-color = shade (1.04, @bg_color) + ChromeGtkFrame::scrollbar-slider-normal-color = @bg_color +} + +style "null" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/null.png" + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/src/gtk2/widgets/notebook b/Breeze-gtk/src/gtk2/widgets/notebook new file mode 100644 index 0000000..df0e061 --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/notebook @@ -0,0 +1,138 @@ +style "notebook_tab_label" +{ + fg[ACTIVE] = @fg_color +} + + +style "notebook" +{ + + xthickness = 5 + ythickness = 2 + + engine "pixmap" + { + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-bottom-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = TOP + } + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-top-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = BOTTOM + } + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-left-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = RIGHT + } + image + { + function = EXTENSION + state = ACTIVE + file = "assets/tab-right-inactive.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = LEFT + } + image + { + function = EXTENSION + file = "assets/tab-top-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = BOTTOM + } + image + { + function = EXTENSION + file = "assets/tab-bottom-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = TOP + } + image + { + function = EXTENSION + file = "assets/tab-left-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = RIGHT + } + image + { + function = EXTENSION + file = "assets/tab-right-active.png" + border = { 3,3,3,3 } + stretch = TRUE + gap_side = LEFT + } + +# How to draw boxes with a gap on one side (ie the page of a notebook) + + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-horizontal.png" + gap_border = { 1, 1, 0, 0 } + gap_side = TOP + } + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-horizontal.png" + gap_border = { 1, 1, 0, 0 } + gap_side = BOTTOM + } + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-vertical.png" + gap_border = { 0, 0, 1, 1 } + gap_side = LEFT + } + image + { + function = BOX_GAP + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + gap_file = "assets/notebook-gap-vertical.png" + gap_border = { 0, 0, 1, 1 } + gap_side = RIGHT + } + +# How to draw the box of a notebook when it isnt attached to a tab + + image + { + function = BOX + file = "assets/notebook.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + diff --git a/Breeze-gtk/src/gtk2/widgets/progressbar b/Breeze-gtk/src/gtk2/widgets/progressbar new file mode 100644 index 0000000..ba437ac --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/progressbar @@ -0,0 +1,45 @@ +style "progressbar" { + xthickness = 0 + ythickness = 0 + + engine "pixmap" + { + image + { + function = BOX + detail = "trough" + file = "assets/progressbar-trough.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "bar" + file = "assets/progressbar-bar.png" + stretch = TRUE + border = { 4, 4, 4, 4 } + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "trough" + file = "assets/progressbar-trough.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + orientation = VERTICAL + } + image + { + function = BOX + detail = "bar" + file = "assets/progressbar-bar.png" + stretch = TRUE + border = { 4, 4, 4, 4 } + orientation = VERTICAL + } + } +} + diff --git a/Breeze-gtk/src/gtk2/widgets/range b/Breeze-gtk/src/gtk2/widgets/range new file mode 100644 index 0000000..58b0e35 --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/range @@ -0,0 +1,108 @@ +style "range" +{ + engine "pixmap" + { + image + { + function = BOX + detail = "trough" + file = "assets/scale-trough-horizontal.png" + border = { 4, 4, 0, 0 } + stretch = TRUE + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "trough" + file = "assets/scale-trough-vertical.png" + border = { 0, 0, 4, 4 } + stretch = TRUE + orientation = VERTICAL + } + + # Horizontal + + image + { + function = SLIDER + state = NORMAL + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider-active.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + + # Vertical + + image + { + function = SLIDER + state = NORMAL + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider-active.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/null.png" + border = { 0, 0, 0, 0 } + stretch = TRUE + overlay_file = "assets/scale-slider.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + # Function below removes ugly boxes + + image + { + function = BOX + file = "assets/null.png" + border = { 3, 3, 3, 3 } + stretch = TRUE + } + + } +} + diff --git a/Breeze-gtk/src/gtk2/widgets/scrollbar b/Breeze-gtk/src/gtk2/widgets/scrollbar new file mode 100644 index 0000000..9f25945 --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/scrollbar @@ -0,0 +1,110 @@ +style "scrollbar" +{ + engine "pixmap" + { + image + { + function = BOX + detail = "trough" + file = "assets/scrollbar-trough-horizontal.png" + border = { 25,25, 5, 5 } #large borders while LibreOffice won't use GtkScrollbar::stepper-spacing=1 + stretch = TRUE + orientation = HORIZONTAL + } + image + { + function = BOX + detail = "trough" + file = "assets/scrollbar-trough-vertical.png" + border = { 5, 5, 25, 25 } + stretch = TRUE + orientation = VERTICAL + } + +# Sliders + + image + { + function = SLIDER + state = NORMAL + file = "assets/scrollbar-slider-horizontal.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + image + { + function = SLIDER + state = ACTIVE + file = "assets/scrollbar-slider-horizontal-active.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/scrollbar-slider-horizontal-hover.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/scrollbar-slider-horizontal-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = HORIZONTAL + + } + +# X Verticals + + image + { + function = SLIDER + state = NORMAL + file = "assets/scrollbar-slider-vertical.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + image + { + function = SLIDER + state = ACTIVE + file = "assets/scrollbar-slider-vertical-active.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + image + { + function = SLIDER + state = PRELIGHT + file = "assets/scrollbar-slider-vertical-hover.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + image + { + function = SLIDER + state = INSENSITIVE + file = "assets/scrollbar-slider-vertical-insensitive.png" + border = { 5, 5, 5, 5 } + stretch = TRUE + orientation = VERTICAL + + } + } +} diff --git a/Breeze-gtk/src/gtk2/widgets/styles b/Breeze-gtk/src/gtk2/widgets/styles new file mode 100644 index 0000000..3bf7fb1 --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/styles @@ -0,0 +1,43 @@ +class "GtkWidget" style "default" +class "GtkScrollbar" style "scrollbar" +class "GtkButton" style "button" +class "GtkEntry" style "entry" +class "GtkOldEditable" style "entry" +class "GtkSpinButton" style "spinbutton" +class "GtkNotebook" style "notebook" +class "GtkRange" style "range" +class "GtkProgressBar" style "progressbar" +class "GtkSeparatorMenuItem" style "separator_menu_item" +class "GtkScrolledWindow" style "scrolled_window" +class "GtkFrame" style "frame" +class "GtkToolbutton" style "toolbuttons" +class "ChromeGtkFrame" style "chrome-gtk-frame" + +widget_class "**" style "menubar" +widget_class "**" style "menu" +widget_class "**" style "menu_framed_box" +widget_class "**" style "menu_item" +widget_class "*.*" style "menubar_item" +widget_class "*Nautilus*ToolBar*" style "toolbar" +widget_class "*HandleBox" style "toolbar" +widget_class "*BonoboDockItem" style "toolbar" +widget_class "*HandleBox" style "toolbar" +widget_class "*" style "toolbar" +widget_class "*.*" style "treeview" +widget_class "*Tool*GtkButton" style "toolbuttons" +widget_class "*Tool*GtkToggleButton" style "tooltoggle_buttons" +widget_class "**" style "tooltoggle_buttons" +widget_class "**" style "button_label" +widget_class "*.." style "button_label" +widget_class "**" style "combobox_separator" +widget_class "**GtkToggleButton*" style "toolbuttons" +widget_class "**GtkComboBox*" style "button" +widget_class "*." style "notebook_tab_label" +widget "gtk-tooltip*" style "tooltips" + +# Xchat special cases +widget "*xchat-inputbox" style "entry" + +# Chrome/Chromium +widget_class "*Chrom*Button*" style "button" +widget "*swt*toolbar*" style "null" diff --git a/Breeze-gtk/src/gtk2/widgets/toolbar b/Breeze-gtk/src/gtk2/widgets/toolbar new file mode 100644 index 0000000..e302b4d --- /dev/null +++ b/Breeze-gtk/src/gtk2/widgets/toolbar @@ -0,0 +1,94 @@ +style "toolbar" +{ + engine "pixmap" + { + image + { + function = BOX + file = "assets/toolbar-background.png" + stretch = TRUE + } + } +} + +style "toolbuttons" +{ + xthickness = 2 + ythickness = 2 + GtkWidget::focus_padding = 2 + + engine "pixmap" { + +image + { + function = BOX + state = NORMAL + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } +image + { + function = BOX + state = PRELIGHT + file = "assets/toolbutton-hover.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } +image + { + function = BOX + state = ACTIVE + file = "assets/toolbutton-active.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } +image + { + function = BOX + state = INSENSITIVE + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "tooltoggle_buttons" +{ + engine "pixmap" + { + image + { + function = BOX + state = NORMAL + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = PRELIGHT + file = "assets/toolbutton-hover.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + image + { + function = BOX + state = ACTIVE + file = "assets/toolbutton-toggled.png" + border = { 4, 4, 4, 4} + stretch = TRUE + } + image + { + function = BOX + state = INSENSITIVE + file = "assets/toolbutton.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} diff --git a/Breeze-gtk/src/gtk3/_colors.scss b/Breeze-gtk/src/gtk3/_colors.scss new file mode 100755 index 0000000..c406506 --- /dev/null +++ b/Breeze-gtk/src/gtk3/_colors.scss @@ -0,0 +1,115 @@ +//apps rely on some named colors to be exported +/* GTK NAMED COLORS + ---------------- + use responsibly! */ + +// Sass thinks we're using the colors in the variables as strings and may shoot +// warning, it's innocuous and can be defeated by using "" + $var +/* +widget text/foreground color */ +@define-color theme_fg_color #{"" + w_color(text)}; + +/* +text color for entries, views and content in general */ +@define-color theme_text_color #{"" +v_color(text)}; + +/* +widget base background color */ +@define-color theme_bg_color #{"" +w_color(normal)}; + +/* +text widgets and the like base background color */ +@define-color theme_base_color #{"" +v_color(normal)}; + +/* +base background color of selections */ +@define-color theme_selected_bg_color #{"" +s_color(normal)}; + +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color #{"" +s_color(text)}; + +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color #{"" +insensitive(w_color(normal))}; + +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color #{"" +insensitive(w_color(text))}; + +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color #{"" +insensitive(v_color(text))}; + +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color #{"" +backdrop(w_color(text))}; + +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color #{"" +backdrop(v_color(text))}; + +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #{"" +backdrop(w_color(normal))}; + +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #{"" +backdrop(v_color(normal))}; + +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color #{"" +backdrop(s_color(backdrop))}; + +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color #{"" + backdrop(s_color(text))}; + +/* +widgets main borders color */ +@define-color borders #{"" +$border_color}; + +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #{"" +backdrop($border_color)}; + +/* +widgets main borders color insensitive */ +@define-color insensitive_borders #{"" +insensitive($border_color)}; +/* +these are pretty self explicative */ +@define-color warning_color #{"" +$warning_color}; +@define-color error_color #{"" +$error_color}; +@define-color success_color #{"" +$success_color}; + +//@define-color destructive_color #{$destructive_color} + +//WM + +// $_wm_highlight: if($variant=='light', $top_hilight, // Sass gets mad if this is +// transparentize(black,1)); // done directly in the +// // color definition +// +// /* +// these colors are exported for the window manager and shouldn't be used in applications, +// read if you used those and something break with a version upgrade you're on your own... */ +// @define-color wm_title #{$titlebar_fg_color}; +// @define-color wm_unfocused_title #{$backdrop_fg_color}; +// @define-color wm_highlight #{"" + $_wm_highlight}; +// @define-color wm_borders_edge #{"" + $borders_edge}; +// +// @define-color wm_bg_a #{$titlebar_bg_color}; +// @define-color wm_bg_b #{$titlebar_bg_color}; +// +// @define-color wm_shadow alpha(black, 0.35); +// @define-color wm_border alpha(black, 0.18); +// +// @define-color wm_button_hover_color_a shade(#{$bg_color}, 1.3); +// @define-color wm_button_hover_color_b #{$bg_color}; +// @define-color wm_button_active_color_a shade(#{$bg_color}, 0.85); +// @define-color wm_button_active_color_b shade(#{$bg_color}, 0.89); +// @define-color wm_button_active_color_c shade(#{$bg_color}, 0.9); + +//FIXME this is really an API + +@define-color content_view_bg #{"" + v_color(normal)}; diff --git a/Breeze-gtk/src/gtk3/_functions.scss b/Breeze-gtk/src/gtk3/_functions.scss new file mode 100644 index 0000000..af9d818 --- /dev/null +++ b/Breeze-gtk/src/gtk3/_functions.scss @@ -0,0 +1,244 @@ +// +// Theme color functions +// + +// Button Color +@function b_color($c: normal) { + @if $c == normal { + @return $Button_BackgroundNormal; + } + @if $c == hover { + @return $Button_DecorationHover; + } + @if $c == active { + @return $Button_DecorationFocus; + } + @if $c == text { + @return $Button_ForegroundNormal; + } + @if $c == active-text { + @return $Selection_ForegroundNormal; + } +} + +// Selection Color +@function s_color($c: normal) { + @if $c == normal { + @return $Selection_BackgroundNormal; + } + @if $c == text { + @return $Selection_ForegroundNormal; + } + @if $c == backdrop { + @return transparentize($Selection_BackgroundNormal,0.5); + } +} + +// View Color +@function v_color($c: normal) { + @if $c == normal { + @return $View_BackgroundNormal; + } + @if $c == hover { + @return $View_DecorationHover; + } + @if $c == active { + @return $View_DecorationFocus; + } + @if $c == text { + @return $View_ForegroundNormal; + } +} + +// Window Color +@function w_color($c: normal) { + @if $c == normal { + @return $Window_BackgroundNormal; + } + @if $c == text { + @return $Window_ForegroundNormal; + } +} + +// Titlebar color +@function t_color($c: text) { + @if $c == text { + @return $WM_activeForeground; + } + @if $c == background { + @return $WM_activeBackground; + } + @if $c == backdrop-text { + @return $WM_inactiveForeground; + } + @if $c == backdrop-background { + @return $WM_inactiveBackground; + } +} + +@function tooltip($c: text) { + @if $c == text { + @return $Tooltip_ForegroundNormal; + } + @if $c == background { + @return $Tooltip_BackgroundNormal; + } +} + +@function button_gradient($c, $state: normal) { + @if $state == normal { + @return linear-gradient(to bottom, change-color($c, $lightness: lightness($c)*1.01), change-color($c, $lightness:lightness($c)/1.03)); + } + @else { + @return linear-gradient(to bottom, change-color($c, $lightness: lightness($c)*1.03), change-color($c, $lightness:lightness($c)/1.10)); + } +} + +$border_color: mix($Window_BackgroundNormal,$Window_ForegroundNormal, 75%); +$menu_color: mix($Window_BackgroundNormal,$View_BackgroundNormal, 30%); +$link_color: $View_ForegroundLink; +$link_visited_color: $View_ForegroundVisited; + +$warning_color: $View_ForegroundNeutral; +$error_color: $View_ForegroundNegative; +$success_color: $View_ForegroundPositive; +$destructive_color: $error_color; +// +// Color effects +// +// +// Color maps for color effect functions +// +$Color: ( + Disabled: $Disabled_Color, + Inactive: $Inactive_Color + ); +$ColorAmount: ( + Disabled: $Disabled_ColorAmount, + Inactive: $Inactive_ColorAmount + ); +$ColorEffect: ( + Disabled: $Disabled_ColorEffect, + Inactive: $Inactive_ColorEffect + ); +$ContrastAmount: ( + Disabled: $Disabled_ContrastAmount, + Inactive: $Inactive_ContrastAmount + ); +$ContrastEffect: ( + Disabled: $Disabled_ContrastEffect, + Inactive: $Inactive_ContrastEffect + ); +$IntensityAmount: ( + Disabled: $Disabled_IntensityAmount, + Inactive: $Inactive_IntensityAmount + ); +$IntensityEffect: ( + Disabled: $Disabled_IntensityEffect, + Inactive: $Inactive_IntensityEffect + ); + +$r: 3px; // standard radius + +@function insensitive($c) { + @return Color(Intensity(Contrast($c, Disabled), Disabled), Disabled); +} + +@function backdrop($c) { + @if $Inactive_Enable == true { + @return Color(Intensity(Contrast($c, Inactive), Inactive), Inactive); + } + @else { + @return $c; + } +} + +@function Contrast($c, $state) { + + @if map-get($ContrastEffect, $state) == 0 { + @return $c; + } + + @if map-get($ContrastEffect, $state) == 1 { + @if lightness(w_color()) > lightness(w_color(text)) { + @if lightness($c) < lightness(w_color()) or ($c == t_color(text) and lightness(t_color(background)) <= lightness(t_color(text))) { + @return transparentize($c, map-get($ContrastAmount, $state)); + } + @else { @return $c; } + } + @if lightness(w_color()) <= lightness(w_color(text)) { + @if lightness($c) > lightness(w_color()) or ($c == t_color(text) and lightness(t_color(background)) > lightness(t_color(text))) { + @return transparentize($c, map-get($ContrastAmount, $state)); + } + @else { @return $c; } + } + } + + @if map-get($ContrastEffect, $state) == 2 { + @if lightness(w_color()) > lightness(w_color(text)) { // don't know what a reasonable lightness treshhold is for Contrast + @if lightness($c) < lightness(w_color()) or ($c == t_color(text) and lightness(t_color(background)) <= lightness(t_color(text))) { + @return transparentize($c, map-get($ContrastAmount, $state)); + } + @else { @return $c; } + } + @if lightness(w_color()) <= lightness(w_color(text)) { + @if lightness($c) > lightness(w_color()) or ($c == t_color(text) and lightness(t_color(background)) > lightness(t_color(text))){ + @return transparentize($c, map-get($ContrastAmount, $state)); + } + @else { @return $c; } + } + } +} + +@function Color($c, $state) { + + @if map-get($ColorEffect, $state) ==0 { + @return $c; + } + + @if map-get($ColorEffect, $state) ==1 { + @if map-get($ColorAmount, $state) >=0 { + @return desaturate($c, percentage(map-get($ColorAmount, $state))); + } + @else { + @return saturate($c, percentage(abs(map-get($ColorAmount, $state)))); + } + } + + @if map-get($ColorEffect, $state)==2 or map-get($ColorEffect, $state)==3 { // 2 and 3 seem to do the same + @return mix(map-get($Color, $state),$c, percentage(map-get($ColorAmount, $state))); + } +} + +@function Intensity($c, $state) { + + @if map-get($IntensityEffect, $state) == 0 { + @return $c; + } + @if map-get($IntensityEffect, $state) == 1 { + @if map-get($IntensityAmount, $state) >= 0 { + @return mix(white, $c, percentage(map-get($IntensityAmount, $state))); + } + @else { + @return mix(black, $c, percentage(abs(map-get($IntensityAmount, $state)))); + } + } + + @if map-get($IntensityEffect, $state) == 2 { + @if map-get($IntensityAmount, $state) >= 0 { + @return darken($c, percentage(map-get($IntensityAmount, $state))); + } + @else { + @return lighten($c, percentage(abs(map-get($IntensityAmount, $state)))); + } + } + + @if map-get($IntensityEffect, $state) == 3 { + @if map-get($IntensityAmount, $state) >=0 { + @return lighten($c, percentage(map-get($IntensityAmount, $state))); + } + @else { + @return darken($c, percentage(abs(map-get($IntensityAmount, $state)))); + } + } +} diff --git a/Breeze-gtk/src/gtk3/_global.scss b/Breeze-gtk/src/gtk3/_global.scss new file mode 100755 index 0000000..21f1625 --- /dev/null +++ b/Breeze-gtk/src/gtk3/_global.scss @@ -0,0 +1,82 @@ +$Button_BackgroundAlternate:#bdc3c7; +$Button_BackgroundNormal:#eff0f1; +$Button_DecorationFocus:#3daee9; +$Button_DecorationHover:#93cee9; +$Button_ForegroundActive:#3daee9; +$Button_ForegroundInactive:#7f8c8d; +$Button_ForegroundLink:#2980b9; +$Button_ForegroundNegative:#da4453; +$Button_ForegroundNeutral:#f67400; +$Button_ForegroundNormal:#31363b; +$Button_ForegroundPositive:#27ae60; +$Button_ForegroundVisited:#7f8c8d; +$Selection_BackgroundAlternate:#1d99f3; +$Selection_BackgroundNormal:#3daee9; +$Selection_DecorationFocus:#3daee9; +$Selection_DecorationHover:#93cee9; +$Selection_ForegroundActive:#fcfcfc; +$Selection_ForegroundInactive:#eff0f1; +$Selection_ForegroundLink:#fdbc4b; +$Selection_ForegroundNegative:#da4453; +$Selection_ForegroundNeutral:#f67400; +$Selection_ForegroundNormal:#eff0f1; +$Selection_ForegroundPositive:#27ae60; +$Selection_ForegroundVisited:#bdc3c7; +$Tooltip_BackgroundAlternate:#4d4d4d; +$Tooltip_BackgroundNormal:#31363b; +$Tooltip_DecorationFocus:#3daee9; +$Tooltip_DecorationHover:#93cee9; +$Tooltip_ForegroundActive:#3daee9; +$Tooltip_ForegroundInactive:#bdc3c7; +$Tooltip_ForegroundLink:#2980b9; +$Tooltip_ForegroundNegative:#da4453; +$Tooltip_ForegroundNeutral:#f67400; +$Tooltip_ForegroundNormal:#eff0f1; +$Tooltip_ForegroundPositive:#27ae60; +$Tooltip_ForegroundVisited:#7f8c8d; +$View_BackgroundAlternate:#eff0f1; +$View_BackgroundNormal:#fcfcfc; +$View_DecorationFocus:#3daee9; +$View_DecorationHover:#93cee9; +$View_ForegroundActive:#3daee9; +$View_ForegroundInactive:#7f8c8d; +$View_ForegroundLink:#2980b9; +$View_ForegroundNegative:#da4453; +$View_ForegroundNeutral:#f67400; +$View_ForegroundNormal:#31363b; +$View_ForegroundPositive:#27ae60; +$View_ForegroundVisited:#7f8c8d; +$Window_BackgroundAlternate:#bdc3c7; +$Window_BackgroundNormal:#eff0f1; +$Window_DecorationFocus:#3daee9; +$Window_DecorationHover:#93cee9; +$Window_ForegroundActive:#3daee9; +$Window_ForegroundInactive:#7f8c8d; +$Window_ForegroundLink:#2980b9; +$Window_ForegroundNegative:#da4453; +$Window_ForegroundNeutral:#f67400; +$Window_ForegroundNormal:#31363b; +$Window_ForegroundPositive:#27ae60; +$Window_ForegroundVisited:#7f8c8d; +$WM_activeBackground:#475057; +$WM_activeBlend:#ffffff; +$WM_activeForeground:#eff0f1; +$WM_inactiveBackground:#eff0f1; +$WM_inactiveBlend:#4b4743; +$WM_inactiveForeground:#bdc3c7; +$Disabled_Color:#383838; +$Disabled_ColorAmount:0; +$Disabled_ColorEffect:0; +$Disabled_ContrastAmount:0.65; +$Disabled_ContrastEffect:1; +$Disabled_IntensityAmount:0.1; +$Disabled_IntensityEffect:2; +$Inactive_ChangeSelectionColor:true; +$Inactive_Color:#706f6e; +$Inactive_ColorAmount:0.025; +$Inactive_ColorEffect:2; +$Inactive_ContrastAmount:0.1; +$Inactive_ContrastEffect:2; +$Inactive_Enable:false; +$Inactive_IntensityAmount:0; +$Inactive_IntensityEffect:0; diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-checked-active.png b/Breeze-gtk/src/gtk3/assets/checkbox-checked-active.png new file mode 100644 index 0000000..7f4b2d0 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-checked-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-checked-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/checkbox-checked-backdrop-insensitive.png new file mode 100644 index 0000000..f534279 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-checked-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-checked-backdrop.png b/Breeze-gtk/src/gtk3/assets/checkbox-checked-backdrop.png new file mode 100644 index 0000000..a9e6071 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-checked-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-checked-hover.png b/Breeze-gtk/src/gtk3/assets/checkbox-checked-hover.png new file mode 100644 index 0000000..dee6b31 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-checked-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-checked-insensitive.png b/Breeze-gtk/src/gtk3/assets/checkbox-checked-insensitive.png new file mode 100644 index 0000000..37f3c7e Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-checked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-checked.png b/Breeze-gtk/src/gtk3/assets/checkbox-checked.png new file mode 100644 index 0000000..7f4b2d0 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-checked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-mixed-active.png b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-active.png new file mode 100644 index 0000000..93cfef3 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-mixed-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-backdrop-insensitive.png new file mode 100644 index 0000000..f534279 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-mixed-backdrop.png b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-backdrop.png new file mode 100644 index 0000000..c27bab6 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-mixed-hover.png b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-hover.png new file mode 100644 index 0000000..ea4e691 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-mixed-insensitive.png b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-insensitive.png new file mode 100644 index 0000000..9f439d1 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-mixed-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-mixed.png b/Breeze-gtk/src/gtk3/assets/checkbox-mixed.png new file mode 100644 index 0000000..93cfef3 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-mixed.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-active.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-active.png new file mode 100644 index 0000000..6d5c351 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-backdrop.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-backdrop.png new file mode 100644 index 0000000..70f3163 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-hover.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-hover.png new file mode 100644 index 0000000..a9e3c25 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked.png new file mode 100644 index 0000000..6d5c351 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-checked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-active.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-active.png new file mode 100644 index 0000000..bdb8bb2 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-backdrop.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-backdrop.png new file mode 100644 index 0000000..5b417a3 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-hover.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-hover.png new file mode 100644 index 0000000..7cbc351 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked.png b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked.png new file mode 100644 index 0000000..5b417a3 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-selectionmode-unchecked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-active.png b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-active.png new file mode 100644 index 0000000..b89e73d Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-backdrop-insensitive.png new file mode 100644 index 0000000..f534279 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-backdrop.png b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-backdrop.png new file mode 100644 index 0000000..345fc85 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-hover.png b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-hover.png new file mode 100644 index 0000000..d719aa5 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-insensitive.png b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-insensitive.png new file mode 100644 index 0000000..2b62619 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/checkbox-unchecked.png b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked.png new file mode 100644 index 0000000..345fc85 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/checkbox-unchecked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-checked-active.png b/Breeze-gtk/src/gtk3/assets/radio-checked-active.png new file mode 100644 index 0000000..d043ef2 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-checked-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-checked-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/radio-checked-backdrop-insensitive.png new file mode 100644 index 0000000..d8a44ed Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-checked-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-checked-backdrop.png b/Breeze-gtk/src/gtk3/assets/radio-checked-backdrop.png new file mode 100644 index 0000000..bd7b3cb Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-checked-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-checked-hover.png b/Breeze-gtk/src/gtk3/assets/radio-checked-hover.png new file mode 100644 index 0000000..ee41e3b Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-checked-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-checked-insensitive.png b/Breeze-gtk/src/gtk3/assets/radio-checked-insensitive.png new file mode 100644 index 0000000..94c0955 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-checked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-checked.png b/Breeze-gtk/src/gtk3/assets/radio-checked.png new file mode 100644 index 0000000..d043ef2 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-checked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-mixed-active.png b/Breeze-gtk/src/gtk3/assets/radio-mixed-active.png new file mode 100644 index 0000000..00008b9 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-mixed-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-mixed-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/radio-mixed-backdrop-insensitive.png new file mode 100644 index 0000000..d8a44ed Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-mixed-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-mixed-backdrop.png b/Breeze-gtk/src/gtk3/assets/radio-mixed-backdrop.png new file mode 100644 index 0000000..780cebd Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-mixed-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-mixed-hover.png b/Breeze-gtk/src/gtk3/assets/radio-mixed-hover.png new file mode 100644 index 0000000..0ff81e9 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-mixed-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-mixed-insensitive.png b/Breeze-gtk/src/gtk3/assets/radio-mixed-insensitive.png new file mode 100644 index 0000000..7660849 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-mixed-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-mixed.png b/Breeze-gtk/src/gtk3/assets/radio-mixed.png new file mode 100644 index 0000000..00008b9 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-mixed.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-unchecked-active.png b/Breeze-gtk/src/gtk3/assets/radio-unchecked-active.png new file mode 100644 index 0000000..f7eaa2c Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-unchecked-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-unchecked-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/radio-unchecked-backdrop-insensitive.png new file mode 100644 index 0000000..d8a44ed Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-unchecked-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-unchecked-backdrop.png b/Breeze-gtk/src/gtk3/assets/radio-unchecked-backdrop.png new file mode 100644 index 0000000..eacf8b2 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-unchecked-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-unchecked-hover.png b/Breeze-gtk/src/gtk3/assets/radio-unchecked-hover.png new file mode 100644 index 0000000..f01a335 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-unchecked-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-unchecked-insensitive.png b/Breeze-gtk/src/gtk3/assets/radio-unchecked-insensitive.png new file mode 100644 index 0000000..755122a Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-unchecked-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/radio-unchecked.png b/Breeze-gtk/src/gtk3/assets/radio-unchecked.png new file mode 100644 index 0000000..eacf8b2 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/radio-unchecked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-active.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-active.png new file mode 100644 index 0000000..e1247ad Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-backdrop-insensitive.png new file mode 100644 index 0000000..4e8c6a5 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-backdrop.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-backdrop.png new file mode 100644 index 0000000..2949789 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-hover.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-hover.png new file mode 100644 index 0000000..596761a Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-insensitive.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-insensitive.png new file mode 100644 index 0000000..4e8c6a5 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal.png new file mode 100644 index 0000000..2949789 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-horizontal.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-active.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-active.png new file mode 100644 index 0000000..e960ad7 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-backdrop-insensitive.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-backdrop-insensitive.png new file mode 100644 index 0000000..9f7178d Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-backdrop-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-backdrop.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-backdrop.png new file mode 100644 index 0000000..350ab95 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-hover.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-hover.png new file mode 100644 index 0000000..5254350 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-insensitive.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-insensitive.png new file mode 100644 index 0000000..9f7178d Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical-insensitive.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical.png b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical.png new file mode 100644 index 0000000..350ab95 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-slider-vertical.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-trough-horizontal-backdrop.png b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-horizontal-backdrop.png new file mode 100644 index 0000000..efeff2d Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-horizontal-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-trough-horizontal.png b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-horizontal.png new file mode 100644 index 0000000..efeff2d Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-horizontal.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-trough-vertical-backdrop.png b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-vertical-backdrop.png new file mode 100644 index 0000000..bcedd60 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-vertical-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/scrollbar-trough-vertical.png b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-vertical.png new file mode 100644 index 0000000..bcedd60 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/scrollbar-trough-vertical.png differ diff --git a/Breeze-gtk/src/gtk3/assets/selected-checkbox-checked.png b/Breeze-gtk/src/gtk3/assets/selected-checkbox-checked.png new file mode 100644 index 0000000..53630a3 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/selected-checkbox-checked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/selected-checkbox-mixed.png b/Breeze-gtk/src/gtk3/assets/selected-checkbox-mixed.png new file mode 100644 index 0000000..c919f34 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/selected-checkbox-mixed.png differ diff --git a/Breeze-gtk/src/gtk3/assets/selected-checkbox-unchecked.png b/Breeze-gtk/src/gtk3/assets/selected-checkbox-unchecked.png new file mode 100644 index 0000000..650bbf9 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/selected-checkbox-unchecked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/selected-radio-checked.png b/Breeze-gtk/src/gtk3/assets/selected-radio-checked.png new file mode 100644 index 0000000..bc331c0 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/selected-radio-checked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/selected-radio-mixed.png b/Breeze-gtk/src/gtk3/assets/selected-radio-mixed.png new file mode 100644 index 0000000..781ddf8 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/selected-radio-mixed.png differ diff --git a/Breeze-gtk/src/gtk3/assets/selected-radio-unchecked.png b/Breeze-gtk/src/gtk3/assets/selected-radio-unchecked.png new file mode 100644 index 0000000..86fc8dc Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/selected-radio-unchecked.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-close-active.png b/Breeze-gtk/src/gtk3/assets/titlebutton-close-active.png new file mode 100644 index 0000000..5438e61 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-close-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-close-backdrop.png b/Breeze-gtk/src/gtk3/assets/titlebutton-close-backdrop.png new file mode 100644 index 0000000..5c400f6 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-close-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-close-hover.png b/Breeze-gtk/src/gtk3/assets/titlebutton-close-hover.png new file mode 100644 index 0000000..577b8e0 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-close-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-close.png b/Breeze-gtk/src/gtk3/assets/titlebutton-close.png new file mode 100644 index 0000000..c3e9077 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-close.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-active.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-active.png new file mode 100644 index 0000000..7b3396b Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-backdrop.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-backdrop.png new file mode 100644 index 0000000..2a18962 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-hover.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-hover.png new file mode 100644 index 0000000..9db2a47 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-active.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-active.png new file mode 100644 index 0000000..d637407 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-backdrop.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-backdrop.png new file mode 100644 index 0000000..a26fe8d Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-hover.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-hover.png new file mode 100644 index 0000000..e1cdae5 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized.png new file mode 100644 index 0000000..1d27cfd Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize-maximized.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-maximize.png b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize.png new file mode 100644 index 0000000..6950c10 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-maximize.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-active.png b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-active.png new file mode 100644 index 0000000..09a846a Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-active.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-backdrop.png b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-backdrop.png new file mode 100644 index 0000000..ddea1a7 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-backdrop.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-hover.png b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-hover.png new file mode 100644 index 0000000..57f91ec Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize-hover.png differ diff --git a/Breeze-gtk/src/gtk3/assets/titlebutton-minimize.png b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize.png new file mode 100644 index 0000000..cfcb791 Binary files /dev/null and b/Breeze-gtk/src/gtk3/assets/titlebutton-minimize.png differ diff --git a/Breeze-gtk/src/gtk3/gtk.css b/Breeze-gtk/src/gtk3/gtk.css new file mode 100644 index 0000000..2057fb3 --- /dev/null +++ b/Breeze-gtk/src/gtk3/gtk.css @@ -0,0 +1,3072 @@ +/* GTK NAMED COLORS + ---------------- + use responsibly! */ +/* +widget text/foreground color */ +@define-color theme_fg_color #31363b; +/* +text color for entries, views and content in general */ +@define-color theme_text_color #31363b; +/* +widget base background color */ +@define-color theme_bg_color #eff0f1; +/* +text widgets and the like base background color */ +@define-color theme_base_color #fcfcfc; +/* +base background color of selections */ +@define-color theme_selected_bg_color #3daee9; +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color #eff0f1; +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color rgba(212, 214, 217, 0.35); +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color rgba(26, 29, 31, 0.35); +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color rgba(26, 29, 31, 0.35); +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color #31363b; +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color #31363b; +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #eff0f1; +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #fcfcfc; +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color rgba(61, 174, 233, 0.5); +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color #eff0f1; +/* +widgets main borders color */ +@define-color borders #bfc1c3; +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #bfc1c3; +/* +widgets main borders color insensitive */ +@define-color insensitive_borders rgba(165, 168, 170, 0.35); +/* +these are pretty self explicative */ +@define-color warning_color #f67400; +@define-color error_color #da4453; +@define-color success_color #27ae60; +@define-color content_view_bg #fcfcfc; +* { + padding: 0; + -GtkToolButton-icon-spacing: 4; + -GtkTextView-error-underline-color: #da4453; + -GtkButton-child-displacement-x: 0; + -GtkButton-child-displacement-y: 0; + -GtkCheckButton-indicator-size: 20; + -GtkCheckMenuItem-indicator-size: 20; + -GtkScrolledWindow-scrollbar-spacing: 0; + -GtkScrolledWindow-scrollbars-within-bevel: 1; + -GtkToolItemGroup-expander-size: 11; + -GtkExpander-expander-size: 16; + -GtkTreeView-expander-size: 11; + -GtkTreeView-horizontal-separator: 4; + -GtkMenu-horizontal-padding: 0; + -GtkMenu-vertical-padding: 0; + -GtkWidget-link-color: #2980b9; + -GtkWidget-visited-link-color: #7f8c8d; + -GtkWidget-focus-padding: 2; + -GtkWidget-focus-line-width: 1; + -GtkWidget-text-handle-width: 20; + -GtkWidget-text-handle-height: 20; + -GtkDialog-button-spacing: 4; + -GtkDialog-action-area-border: 0; + -GtkStatusbar-shadow-type: none; + outline-width: 0px; } + +/*************** + * Base States * + ***************/ +.background { + color: #31363b; + background-color: #eff0f1; } + .background:backdrop { + text-shadow: none; + icon-shadow: none; + color: #31363b; + background-color: #eff0f1; } + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Everytime a wildcard is used a kitten dies, painfully. +*/ +*:insensitive { + -gtk-image-effect: dim; } + +.gtkstyle-fallback { + background-color: #eff0f1; + color: #31363b; } + .gtkstyle-fallback:prelight { + background-color: white; + color: #31363b; } + .gtkstyle-fallback:active { + background-color: #d4d6d9; + color: #31363b; } + .gtkstyle-fallback:insensitive { + background-color: rgba(212, 214, 217, 0.35); + color: rgba(26, 29, 31, 0.35); } + .gtkstyle-fallback:selected { + background-color: #3daee9; + color: #eff0f1; } + +.view { + color: #31363b; + background-color: #fcfcfc; } + .view:backdrop { + color: #31363b; + background-color: #fcfcfc; } + .view:selected { + border-radius: 3px; } + +.rubberband { + border: 1px solid #3daee9; + background-color: rgba(61, 174, 233, 0.2); } + .rubberband:backdrop { + border-color: #3daee9; + background-color: rgba(61, 174, 233, 0.2); } + +.label.separator, GtkPlacesSidebar.sidebar .view .label.separator { + color: #31363b; } + .label.separator:backdrop, GtkPlacesSidebar.sidebar .view .label.separator:backdrop { + color: #31363b; } +.label:insensitive { + color: rgba(26, 29, 31, 0.35); } + .label:insensitive:backdrop { + color: rgba(26, 29, 31, 0.35); } + +.dim-label, .label.separator, GtkPlacesSidebar.sidebar .view .label.separator, .titlebar .subtitle, +.header-bar .subtitle { + opacity: 0.5; + text-shadow: none; } + +GtkAssistant .sidebar { + background-color: #31363b; + border-top: 1px solid #bfc1c3; } + GtkAssistant .sidebar:dir(ltr) { + border-right: 1px solid #bfc1c3; } + GtkAssistant .sidebar:dir(rtl) { + border-left: 1px solid #bfc1c3; } + GtkAssistant .sidebar:backdrop { + background-color: #31363b; + border-color: #bfc1c3; } +GtkAssistant.csd .sidebar { + border-top-style: none; } +GtkAssistant .sidebar .label { + padding: 6px 12px; } +GtkAssistant .sidebar .label.highlight { + background-color: #d3d4d5; } + +GtkTextView { + background-color: #f5f6f6; } + GtkTextView:backdrop { + background-color: #f5f6f6; } + +.grid-child { + padding: 3px; + border-radius: 3px; } + +.app-notification, +.app-notification.frame, .popover.osd, .osd { + color: #31363b; + border: 1px solid #eff0f1; + background-color: rgba(239, 240, 241, 0.8); + background-clip: padding-box; + box-shadow: none; + text-shadow: none; + icon-shadow: none; } + .app-notification:backdrop, .popover.osd:backdrop, .osd:backdrop { + color: #31363b; + background-color: rgba(239, 240, 241, 0.8); } + +.view:selected, .label:selected, .label:selected:focus, .label:selected:hover, .grid-child:selected, .entry:selected, .entry:selected:focus, .list-row:selected, .sidebar:selected, +.sidebar .view:selected, GtkPlacesSidebar.sidebar .view:selected { + background-color: #3daee9; + color: #eff0f1; } + .view:backdrop:selected, .label:backdrop:selected, .grid-child:backdrop:selected, .entry:backdrop:selected, .list-row:backdrop:selected, .sidebar:backdrop:selected, GtkPlacesSidebar.sidebar .view:backdrop:selected { + background-color: rgba(61, 174, 233, 0.5); + color: #fcfcfc; } + +/*********** + * Buttons * + ***********/ +@keyframes needs_attention { + from { + background-image: -gtk-gradient(radial, center center, 0, center center, 0.01, to(#3daee9), to(transparent)); } + to { + background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(#3daee9), to(transparent)); } } +.button, .button.osd, .osd .button { + border: 1px solid; + border-radius: 3px; + padding: 6px; + background-clip: border-box; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .flat.button { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + transition: none; } + .flat.button:hover { + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-duration: 500ms; } + .flat.button:hover:active { + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + .flat.button:checked { + background-color: #bfc1c3; } + .button:hover { + color: #31363b; + border-color: #93cee9; + -gtk-image-effect: highlight; } + .button:active, .button:checked { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); + transition-duration: 50ms; } + .button:active:hover, .button:checked:hover { + color: #31363b; + border-color: #93cee9; + background-image: linear-gradient(to bottom, #9cd2eb, #76c1e3); } + .button:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); + -gtk-image-effect: none; } + .button:backdrop:active, .button:backdrop:checked { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .button:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .button:backdrop:insensitive > .label { + color: inherit; } + .button:backdrop:insensitive:active, .button:backdrop:insensitive:checked { + color: rgba(212, 214, 217, 0.35); + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .button:backdrop:insensitive:active > .label, .button:backdrop:insensitive:checked > .label { + color: inherit; } + .flat.button:backdrop { + -gtk-image-effect: none; + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: #31363b; } + .flat.button:insensitive { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: rgba(26, 29, 31, 0.35); } + .flat.button:backdrop:insensitive { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: rgba(26, 29, 31, 0.35); } + .button:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .button:insensitive > .label { + color: inherit; } + .button:insensitive:active, .button:insensitive:checked { + color: rgba(212, 214, 217, 0.35); + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .button:insensitive:active > .label, .button:insensitive:checked > .label { + color: inherit; } + +.button.suggested-action, .button.suggested-action.osd .button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #40afe9, #35abe8); } + .button.suggested-action.flat, .button.suggested-action.osd .button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: #3daee9; } + .button.suggested-action:hover, .button.suggested-action.osd .button:hover { + color: white; + border-color: #3daee9; } + .button.suggested-action:active, .button.suggested-action:checked, .button.suggested-action.osd .button:active, .button.suggested-action.osd .button:checked { + color: white; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .button.suggested-action:backdrop, .button.suggested-action.flat:backdrop, .button.suggested-action.osd .button:backdrop, .button.suggested-action.osd .button.flat:backdrop { + color: white; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #40afe9, #35abe8); } + .button.suggested-action:backdrop:active, .button.suggested-action:backdrop:checked, .button.suggested-action.flat:backdrop:active, .button.suggested-action.flat:backdrop:checked, .button.suggested-action.osd .button:backdrop:active, .button.suggested-action.osd .button:backdrop:checked, .button.suggested-action.osd .button.flat:backdrop:active, .button.suggested-action.osd .button.flat:backdrop:checked { + color: white; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .button.suggested-action:backdrop:insensitive, .button.suggested-action.flat:backdrop:insensitive, .button.suggested-action.osd .button:backdrop:insensitive, .button.suggested-action.osd .button.flat:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .button.suggested-action:backdrop:insensitive > .label, .button.suggested-action.flat:backdrop:insensitive > .label, .button.suggested-action.osd .button:backdrop:insensitive > .label, .button.suggested-action.osd .button.flat:backdrop:insensitive > .label { + color: inherit; } + .button.suggested-action:backdrop:insensitive:active, .button.suggested-action:backdrop:insensitive:checked, .button.suggested-action.flat:backdrop:insensitive:active, .button.suggested-action.flat:backdrop:insensitive:checked, .button.suggested-action.osd .button:backdrop:insensitive:active, .button.suggested-action.osd .button:backdrop:insensitive:checked, .button.suggested-action.osd .button.flat:backdrop:insensitive:active, .button.suggested-action.osd .button.flat:backdrop:insensitive:checked { + color: #e6e6e6; + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .button.suggested-action:backdrop:insensitive:active > .label, .button.suggested-action:backdrop:insensitive:checked > .label, .button.suggested-action.flat:backdrop:insensitive:active > .label, .button.suggested-action.flat:backdrop:insensitive:checked > .label, .button.suggested-action.osd .button:backdrop:insensitive:active > .label, .button.suggested-action.osd .button:backdrop:insensitive:checked > .label, .button.suggested-action.osd .button.flat:backdrop:insensitive:active > .label, .button.suggested-action.osd .button.flat:backdrop:insensitive:checked > .label { + color: inherit; } + .button.suggested-action.flat:backdrop, .button.suggested-action.flat:insensitive, .button.suggested-action.flat:backdrop:insensitive, .button.suggested-action.osd .button.flat:backdrop, .button.suggested-action.osd .button.flat:insensitive, .button.suggested-action.osd .button.flat:backdrop:insensitive { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: rgba(61, 174, 233, 0.8); } + .button.suggested-action:insensitive, .button.suggested-action.osd .button:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .button.suggested-action:insensitive > .label, .button.suggested-action.osd .button:insensitive > .label { + color: inherit; } + .button.suggested-action:insensitive:active, .button.suggested-action:insensitive:checked, .button.suggested-action.osd .button:insensitive:active, .button.suggested-action.osd .button:insensitive:checked { + color: #e6e6e6; + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .button.suggested-action:insensitive:active > .label, .button.suggested-action:insensitive:checked > .label, .button.suggested-action.osd .button:insensitive:active > .label, .button.suggested-action.osd .button:insensitive:checked > .label { + color: inherit; } +.button.destructive-action, .button.destructive-action.osd .button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #eff0f1; + border-color: #da4453; + background-image: linear-gradient(to bottom, #da4655, #d93d4d); } + .button.destructive-action.flat, .button.destructive-action.osd .button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: #da4453; } + .button.destructive-action:hover, .button.destructive-action.osd .button:hover { + color: white; + border-color: #da4453; } + .button.destructive-action:active, .button.destructive-action:checked, .button.destructive-action.osd .button:active, .button.destructive-action.osd .button:checked { + color: white; + border-color: #da4453; + background-image: linear-gradient(to bottom, #db4b5a, #d62e3f); } + .button.destructive-action:backdrop, .button.destructive-action.flat:backdrop, .button.destructive-action.osd .button:backdrop, .button.destructive-action.osd .button.flat:backdrop { + color: white; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #da4655, #d93d4d); } + .button.destructive-action:backdrop:active, .button.destructive-action:backdrop:checked, .button.destructive-action.flat:backdrop:active, .button.destructive-action.flat:backdrop:checked, .button.destructive-action.osd .button:backdrop:active, .button.destructive-action.osd .button:backdrop:checked, .button.destructive-action.osd .button.flat:backdrop:active, .button.destructive-action.osd .button.flat:backdrop:checked { + color: white; + border-color: #da4453; + background-image: linear-gradient(to bottom, #db4b5a, #d62e3f); } + .button.destructive-action:backdrop:insensitive, .button.destructive-action.flat:backdrop:insensitive, .button.destructive-action.osd .button:backdrop:insensitive, .button.destructive-action.osd .button.flat:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .button.destructive-action:backdrop:insensitive > .label, .button.destructive-action.flat:backdrop:insensitive > .label, .button.destructive-action.osd .button:backdrop:insensitive > .label, .button.destructive-action.osd .button.flat:backdrop:insensitive > .label { + color: inherit; } + .button.destructive-action:backdrop:insensitive:active, .button.destructive-action:backdrop:insensitive:checked, .button.destructive-action.flat:backdrop:insensitive:active, .button.destructive-action.flat:backdrop:insensitive:checked, .button.destructive-action.osd .button:backdrop:insensitive:active, .button.destructive-action.osd .button:backdrop:insensitive:checked, .button.destructive-action.osd .button.flat:backdrop:insensitive:active, .button.destructive-action.osd .button.flat:backdrop:insensitive:checked { + color: #e6e6e6; + border-color: rgba(196, 39, 55, 0.35); + background-image: linear-gradient(to bottom, rgba(202, 40, 56, 0.35), rgba(178, 35, 50, 0.35)); } + .button.destructive-action:backdrop:insensitive:active > .label, .button.destructive-action:backdrop:insensitive:checked > .label, .button.destructive-action.flat:backdrop:insensitive:active > .label, .button.destructive-action.flat:backdrop:insensitive:checked > .label, .button.destructive-action.osd .button:backdrop:insensitive:active > .label, .button.destructive-action.osd .button:backdrop:insensitive:checked > .label, .button.destructive-action.osd .button.flat:backdrop:insensitive:active > .label, .button.destructive-action.osd .button.flat:backdrop:insensitive:checked > .label { + color: inherit; } + .button.destructive-action.flat:backdrop, .button.destructive-action.flat:insensitive, .button.destructive-action.flat:backdrop:insensitive, .button.destructive-action.osd .button.flat:backdrop, .button.destructive-action.osd .button.flat:insensitive, .button.destructive-action.osd .button.flat:backdrop:insensitive { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + color: rgba(218, 68, 83, 0.8); } + .button.destructive-action:insensitive, .button.destructive-action.osd .button:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .button.destructive-action:insensitive > .label, .button.destructive-action.osd .button:insensitive > .label { + color: inherit; } + .button.destructive-action:insensitive:active, .button.destructive-action:insensitive:checked, .button.destructive-action.osd .button:insensitive:active, .button.destructive-action.osd .button:insensitive:checked { + color: #e6e6e6; + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(202, 40, 56, 0.35), rgba(178, 35, 50, 0.35)); } + .button.destructive-action:insensitive:active > .label, .button.destructive-action:insensitive:checked > .label, .button.destructive-action.osd .button:insensitive:active > .label, .button.destructive-action.osd .button:insensitive:checked > .label { + color: inherit; } +.button.image-button { + padding: 6px; } +.button.text-button { + padding: 6px; } +.button.text-button.image-button { + padding: 6px; } + .button.text-button.image-button .label:first-child { + padding-left: 8px; } + .button.text-button.image-button .label:last-child { + padding-right: 8px; } +.stack-switcher > .button > .label { + padding-left: 6px; + padding-right: 6px; } +.stack-switcher > .button > GtkImage { + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + padding-bottom: 3px; } +.stack-switcher > .button.text-button { + padding: 6px; } +.stack-switcher > .button.image-button { + padding: 3px 0px; } +.stack-switcher > .button.needs-attention:active > .label, .stack-switcher > .button.needs-attention:active > GtkImage, .stack-switcher > .button.needs-attention:checked > .label, .stack-switcher > .button.needs-attention:checked > GtkImage { + animation: none; + background-image: none; } +.inline-toolbar .button, .inline-toolbar .button:backdrop { + border-radius: 3px; + border-width: 1px; } +.primary-toolbar .button { + icon-shadow: none; } + +/************** + * ComboBoxes * + **************/ +GtkComboBox { + -GtkComboBox-arrow-scaling: 0.5; + -GtkComboBox-shadow-type: none; } + GtkComboBox > .button { + padding: 5px 4px; } + GtkComboBox:insensitive { + color: rgba(26, 29, 31, 0.35); + text-shadow: none; + icon-shadow: none; } + GtkComboBox:backdrop { + color: #31363b; + text-shadow: none; + icon-shadow: none; } + GtkComboBox:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); } + GtkComboBox .menuitem { + text-shadow: none; } + GtkComboBox .separator.vertical, GtkComboBox GtkPlacesSidebar.sidebar .view .vertical.separator, GtkPlacesSidebar.sidebar .view GtkComboBox .vertical.separator { + -GtkWidget-wide-separators: true; } + +.stack-switcher > .button.needs-attention > .label, .stack-switcher > .button.needs-attention > GtkImage, .sidebar-item.needs-attention > .label { + animation: needs_attention 150ms ease-in; + background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(#3daee9), to(transparent)), -gtk-gradient(radial, center center, 0, center center, 0.5, to(#31363b), to(transparent)); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + background-position: right 3px, right 4px; } + .stack-switcher > .button.needs-attention > .label:backdrop, .stack-switcher > .button.needs-attention > GtkImage:backdrop, .sidebar-item.needs-attention > .label:backdrop { + background-size: 6px 6px, 0 0; } + .stack-switcher > .button.needs-attention > .label:dir(rtl), .stack-switcher > .button.needs-attention > GtkImage:dir(rtl), .sidebar-item.needs-attention > .label:dir(rtl) { + background-position: left 3px, left 4px; } + +.inline-toolbar .button, .inline-toolbar .button:backdrop, .linked > .button, .linked > .button:hover, .linked > .button:active, .linked > .button:checked, .linked > .button:backdrop, GtkComboBox.combobox-entry .entry, GtkComboBox.combobox-entry .button, GtkComboBox.combobox-entry .button:backdrop { + border-radius: 3px; } + .inline-toolbar .button:dir(rtl), .linked > .button:dir(rtl), GtkComboBox.combobox-entry .entry:dir(rtl), GtkComboBox.combobox-entry .button:dir(rtl) { + border-radius: 3px; } + +.inline-toolbar .button:first-child, .linked > .button:first-child, GtkComboBox.combobox-entry .entry:first-child, GtkComboBox.combobox-entry .button:first-child { + border-radius: 3px; + border-style: solid; } +.inline-toolbar .button:last-child, .linked > .button:last-child, GtkComboBox.combobox-entry .entry:last-child, GtkComboBox.combobox-entry .button:last-child { + border-radius: 3px; } +.inline-toolbar .button:only-child, .linked > .button:only-child, GtkComboBox.combobox-entry .entry:only-child, GtkComboBox.combobox-entry .button:only-child { + border-radius: 3px; + border-style: solid; } + +.linked.vertical > .button, .linked.vertical > .button:hover, .linked.vertical > .button:active, .linked.vertical > .button:checked, .linked.vertical > .button:backdrop { + border-style: solid; + border-radius: 3px; } + +.linked.vertical > .button:first-child { + border-radius: 3px; } +.linked.vertical > .button:last-child { + border-radius: 3px; + border-style: solid; } +.linked.vertical > .button:only-child { + border-radius: 3px; + border-style: solid; } + +.app-notification .button.flat, +.app-notification.frame .button.flat, .app-notification .button.flat:hover, +.app-notification.frame .button.flat:hover, .app-notification .button.flat:active, +.app-notification.frame .button.flat:active, .app-notification .button.flat:backdrop, .app-notification .button.flat:insensitive, .app-notification .button.flat:backdrop:insensitive, +.app-notification.frame .button.flat:backdrop, +.app-notification.frame .button.flat:insensitive, +.app-notification.frame .button.flat:backdrop:insensitive, GtkCalendar.button, GtkCalendar.button:hover, GtkCalendar.button:active, GtkCalendar.button:backdrop, .titlebar .button.flat:insensitive, +.header-bar .button.flat:insensitive, .button:link, .button:visited, .button:link:hover, .button:link:active, .button:link:checked, .button:visited:hover, .button:visited:active, .button:visited:checked, .button:link:backdrop, .button:visited:backdrop, .list-row.button, +.list-row.button:backdrop, +.list-row.button:backdrop:active, +.list-row.button:backdrop:checked, +.list-row.button:backdrop:insensitive, +.list-row.button:backdrop:insensitive:active, +.list-row.button:backdrop:insensitive:checked, +.list-row.button:insensitive:active, +.list-row.button:insensitive:checked, .menuitem.button.flat, .menuitem.button.flat:backdrop, .menuitem.button.flat:backdrop:hover, .scale-popup .button, +.scale-popup .button.flat, .scale-popup .button:hover, +.scale-popup .button.flat:hover, .scrollbar .button, .scrollbar .button:hover, .scrollbar .button:backdrop, .header-bar .button.titlebutton, +.titlebar .button.titlebutton, .header-bar .button.titlebutton:hover, .header-bar .button.titlebutton:active, .header-bar .button.titlebutton:checked, .header-bar .button.titlebutton:backdrop, .header-bar .button.titlebutton:active:hover, +.titlebar .button.titlebutton:hover, +.titlebar .button.titlebutton:active, +.titlebar .button.titlebutton:checked, +.titlebar .button.titlebutton:backdrop, +.titlebar .button.titlebutton:active:hover { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + text-shadow: none; + icon-shadow: none; } + +/**************** + * Text Entries * + ****************/ +.entry { + border: 1px solid; + padding: 5px 8px 5px; + border-radius: 3px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: #31363b; + border-color: #bfc1c3; + background-color: #fcfcfc; + box-shadow: none; } + .entry.image.left { + padding-left: 0; } + .entry.image.right { + padding-right: 0; } + .entry.flat, .entry.flat:focus { + padding: 2px; + color: #31363b; + border-color: #bfc1c3; + background-color: #fcfcfc; + box-shadow: none; + border: none; + border-radius: 0; } + .entry:focus { + border-color: #3daee9; } + .entry:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-color: #e3e3e3; } + .entry:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-color: #fcfcfc; } + .entry:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-color: #e3e3e3; } + .entry.progressbar { + margin: 1px; + border-radius: 0; + border-width: 0 0 2px; + border-color: #3daee9; + border-style: solid; + background-image: none; + background-color: transparent; + box-shadow: none; } + .entry.progressbar:backdrop { + background-color: transparent; + border-color: rgba(61, 174, 233, 0.5); } + .entry.error { + color: #da4453; + border-color: #da4453; + background-color: rgba(218, 68, 83, 0.5); } + .entry.error:focus { + border-color: #da4453; + background-color: rgba(218, 68, 83, 0.5); } + .entry.error:selected, .entry.error:selected:focus { + background-color: #da4453; } + .entry.error:backdrop { + color: #da4453; + border-color: #da4453; + background-color: rgba(218, 68, 83, 0.5); } + .entry.warning { + color: #f67400; + border-color: #f67400; + background-color: rgba(246, 116, 0, 0.5); } + .entry.warning:focus { + border-color: #f67400; + background-color: rgba(246, 116, 0, 0.5); } + .entry.warning:selected, .entry.warning:selected:focus { + background-color: #f67400; } + .entry.warning:backdrop { + color: #f67400; + border-color: #f67400; + background-color: rgba(246, 116, 0, 0.5); } + .entry.image { + color: #31363b; } + .entry.image:hover { + color: #93cee9; } + .entry.image:active { + color: #3daee9; } + .entry.image:backdrop { + color: #31363b; } + +/********************* + * App Notifications * + *********************/ +.app-notification, +.app-notification.frame { + padding: 10px; + border-top-width: 0px; + border-radius: 0px 0px 3px 3px; } + .app-notification:backdrop, + .app-notification.frame:backdrop { + background-image: none; } + .app-notification .button, + .app-notification.frame .button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .app-notification .button.flat, + .app-notification.frame .button.flat { + icon-shadow: none; + text-shadow: none; } + .app-notification .button.flat:hover, + .app-notification.frame .button.flat:hover { + color: #93cee9; } + .app-notification .button.flat:active, + .app-notification.frame .button.flat:active { + color: #3daee9; } + .app-notification .button:hover, + .app-notification.frame .button:hover { + color: #31363b; + border-color: #93cee9; } + .app-notification .button:active, .app-notification .button:checked, .app-notification .button:backdrop:active, .app-notification .button:backdrop:checked, + .app-notification.frame .button:active, + .app-notification.frame .button:checked, + .app-notification.frame .button:backdrop:active, + .app-notification.frame .button:backdrop:checked { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .app-notification .button:insensitive, .app-notification .button:backdrop:insensitive, + .app-notification.frame .button:insensitive, + .app-notification.frame .button:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .app-notification .button:insensitive > .label, .app-notification .button:backdrop:insensitive > .label, + .app-notification.frame .button:insensitive > .label, + .app-notification.frame .button:backdrop:insensitive > .label { + color: inherit; } + .app-notification .button:backdrop, + .app-notification.frame .button:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + +/************ + * Calendar * + ***********/ +GtkCalendar { + color: #31363b; + border: 1px solid #bfc1c3; + background-color: #fcfcfc; } + GtkCalendar:selected { + background-color: #bfc1c3; } + GtkCalendar.header { + border: 1px solid #bfc1c3; + border-radius: 0; + color: #31363b; } + GtkCalendar.header:backdrop { + color: #31363b; + border-color: #bfc1c3; } + GtkCalendar.button { + color: #31363b; } + GtkCalendar.button:hover { + color: #93cee9; } + GtkCalendar.button:active { + color: #3daee9; } + GtkCalendar.button:backdrop { + color: #31363b; } + GtkCalendar:inconsistent, GtkCalendar.highlight { + color: rgba(49, 54, 59, 0.5); } + GtkCalendar:inconsistent:backdrop, GtkCalendar.highlight:backdrop { + color: rgba(49, 54, 59, 0.5); } + GtkCalendar:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-color: #fcfcfc; } + +/************************* + * Check and Radio items * + *************************/ +.check { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked.png"), url("assets/checkbox-unchecked@2.png")); + icon-shadow: none; } + +.check:hover { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-hover.png"), url("assets/checkbox-unchecked-hover@2.png")); + icon-shadow: none; } + +.check:active { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-active.png"), url("assets/checkbox-unchecked-active@2.png")); + icon-shadow: none; } + +.check:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-insensitive.png"), url("assets/checkbox-unchecked-insensitive@2.png")); + icon-shadow: none; } + +.check:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-backdrop.png"), url("assets/checkbox-unchecked-backdrop@2.png")); + icon-shadow: none; } + +.check:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-backdrop-insensitive.png"), url("assets/checkbox-unchecked-backdrop-insensitive@2.png")); + icon-shadow: none; } + +.check:inconsistent { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed.png"), url("assets/checkbox-mixed@2.png")); + icon-shadow: none; } + +.check:inconsistent:hover { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-hover.png"), url("assets/checkbox-mixed-hover@2.png")); + icon-shadow: none; } + +.check:inconsistent:selected { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-active.png"), url("assets/checkbox-mixed-active@2.png")); + icon-shadow: none; } + +.check:inconsistent:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-backdrop.png"), url("assets/checkbox-mixed-backdrop@2.png")); + icon-shadow: none; } + +.check:inconsistent:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-insensitive.png"), url("assets/checkbox-mixed-insensitive@2.png")); + icon-shadow: none; } + +.check:inconsistent:insensitive:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-backdrop-insensitive.png"), url("assets/checkbox-mixed-backdrop-insensitive@2.png")); + icon-shadow: none; } + +.check:checked { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked.png"), url("assets/checkbox-checked@2.png")); + icon-shadow: none; } + +.check:checked:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-insensitive.png"), url("assets/checkbox-checked-insensitive@2.png")); + icon-shadow: none; } + +.check:checked:hover { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-hover.png"), url("assets/checkbox-checked-hover@2.png")); + icon-shadow: none; } + +.check:checked:active { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-active.png"), url("assets/checkbox-checked-active@2.png")); + icon-shadow: none; } + +.check:backdrop:checked { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-backdrop.png"), url("assets/checkbox-checked-backdrop@2.png")); + icon-shadow: none; } + +.check:backdrop:checked:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-backdrop-insensitive.png"), url("assets/checkbox-checked-backdrop-insensitive@2.png")); + icon-shadow: none; } + +.view.check:selected, +.list-row:selected .check { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-unchecked.png"), url("assets/selected-checkbox-unchecked@2.png")); } + +.menu .menuitem.check, +.popover .button.flat.check { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked.png"), url("assets/checkbox-unchecked-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.check:hover, + .popover .button.flat.check:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-unchecked.png"), url("assets/selected-checkbox-unchecked@2.png")); } + .menu .menuitem.check:insensitive, + .popover .button.flat.check:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-insensitive.png"), url("assets/checkbox-unchecked-insensitive@2.png")); } + .menu .menuitem.check:backdrop, + .popover .button.flat.check:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-backdrop.png"), url("assets/checkbox-unchecked-backdrop@2.png")); } + .menu .menuitem.check:backdrop:insensitive, + .popover .button.flat.check:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-unchecked-backdrop-insensitive.png"), url("assets/checkbox-unchecked-backdrop-insensitive@2.png")); } + +.view.check:active:selected, +.list-row:selected .check:active { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-checked.png"), url("assets/selected-checkbox-checked@2.png")); } + +.menu .menuitem.check:active, +.popover .button.flat.check:active { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked.png"), url("assets/checkbox-checked-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.check:active:hover, + .popover .button.flat.check:active:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-checked.png"), url("assets/selected-checkbox-checked@2.png")); } + .menu .menuitem.check:active:insensitive, + .popover .button.flat.check:active:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-insensitive.png"), url("assets/checkbox-checked-insensitive@2.png")); } + .menu .menuitem.check:active:backdrop, + .popover .button.flat.check:active:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-backdrop.png"), url("assets/checkbox-checked-backdrop@2.png")); } + .menu .menuitem.check:active:backdrop:insensitive, + .popover .button.flat.check:active:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-backdrop-insensitive.png"), url("assets/checkbox-checked-backdrop-insensitive@2.png")); } + +.view.check:checked:selected, +.list-row:selected .check:checked { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-checked.png"), url("assets/selected-checkbox-checked@2.png")); } + +.menu .menuitem.check:checked, +.popover .button.flat.check:checked { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked.png"), url("assets/checkbox-checked-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.check:checked:hover, + .popover .button.flat.check:checked:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-checked.png"), url("assets/selected-checkbox-checked@2.png")); } + .menu .menuitem.check:checked:insensitive, + .popover .button.flat.check:checked:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-insensitive.png"), url("assets/checkbox-checked-insensitive@2.png")); } + .menu .menuitem.check:checked:backdrop, + .popover .button.flat.check:checked:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-backdrop.png"), url("assets/checkbox-checked-backdrop@2.png")); } + .menu .menuitem.check:checked:backdrop:insensitive, + .popover .button.flat.check:checked:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-backdrop-insensitive.png"), url("assets/checkbox-checked-backdrop-insensitive@2.png")); } + +.view.check:inconsistent:selected, +.list-row:selected .check:inconsistent { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-mixed.png"), url("assets/selected-checkbox-mixed@2.png")); } + +.menu .menuitem.check:inconsistent, +.popover .button.flat.check:inconsistent { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed.png"), url("assets/checkbox-mixed-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.check:inconsistent:hover, + .popover .button.flat.check:inconsistent:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-checkbox-mixed.png"), url("assets/selected-checkbox-mixed@2.png")); } + .menu .menuitem.check:inconsistent:insensitive, + .popover .button.flat.check:inconsistent:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-insensitive.png"), url("assets/checkbox-mixed-insensitive@2.png")); } + .menu .menuitem.check:inconsistent:backdrop, + .popover .button.flat.check:inconsistent:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-backdrop.png"), url("assets/checkbox-mixed-backdrop@2.png")); } + .menu .menuitem.check:inconsistent:backdrop:insensitive, + .popover .button.flat.check:inconsistent:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-mixed-backdrop-insensitive.png"), url("assets/checkbox-mixed-backdrop-insensitive@2.png")); } + +.radio { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked.png"), url("assets/radio-unchecked@2.png")); + icon-shadow: none; } + +.radio:hover { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-hover.png"), url("assets/radio-unchecked-hover@2.png")); + icon-shadow: none; } + +.radio:active { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-active.png"), url("assets/radio-unchecked-active@2.png")); + icon-shadow: none; } + +.radio:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-insensitive.png"), url("assets/radio-unchecked-insensitive@2.png")); + icon-shadow: none; } + +.radio:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-backdrop.png"), url("assets/radio-unchecked-backdrop@2.png")); + icon-shadow: none; } + +.radio:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-backdrop-insensitive.png"), url("assets/radio-unchecked-backdrop-insensitive@2.png")); + icon-shadow: none; } + +.radio:inconsistent { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed.png"), url("assets/radio-mixed@2.png")); + icon-shadow: none; } + +.radio:inconsistent:hover { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-hover.png"), url("assets/radio-mixed-hover@2.png")); + icon-shadow: none; } + +.radio:inconsistent:selected { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-active.png"), url("assets/radio-mixed-active@2.png")); + icon-shadow: none; } + +.radio:inconsistent:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-backdrop.png"), url("assets/radio-mixed-backdrop@2.png")); + icon-shadow: none; } + +.radio:inconsistent:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-insensitive.png"), url("assets/radio-mixed-insensitive@2.png")); + icon-shadow: none; } + +.radio:inconsistent:insensitive:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-backdrop-insensitive.png"), url("assets/radio-mixed-backdrop-insensitive@2.png")); + icon-shadow: none; } + +.radio:checked { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked.png"), url("assets/radio-checked@2.png")); + icon-shadow: none; } + +.radio:checked:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-insensitive.png"), url("assets/radio-checked-insensitive@2.png")); + icon-shadow: none; } + +.radio:checked:hover { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-hover.png"), url("assets/radio-checked-hover@2.png")); + icon-shadow: none; } + +.radio:checked:active { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-active.png"), url("assets/radio-checked-active@2.png")); + icon-shadow: none; } + +.radio:backdrop:checked { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-backdrop.png"), url("assets/radio-checked-backdrop@2.png")); + icon-shadow: none; } + +.radio:backdrop:checked:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-backdrop-insensitive.png"), url("assets/radio-checked-backdrop-insensitive@2.png")); + icon-shadow: none; } + +.view.radio:selected, +.list-row:selected .radio { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-unchecked.png"), url("assets/selected-radio-unchecked@2.png")); } + +.menu .menuitem.radio, +.popover .button.flat.radio { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked.png"), url("assets/radio-unchecked-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.radio:hover, + .popover .button.flat.radio:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-unchecked.png"), url("assets/selected-radio-unchecked@2.png")); } + .menu .menuitem.radio:insensitive, + .popover .button.flat.radio:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-insensitive.png"), url("assets/radio-unchecked-insensitive@2.png")); } + .menu .menuitem.radio:backdrop, + .popover .button.flat.radio:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-backdrop.png"), url("assets/radio-unchecked-backdrop@2.png")); } + .menu .menuitem.radio:backdrop:insensitive, + .popover .button.flat.radio:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-unchecked-backdrop-insensitive.png"), url("assets/radio-unchecked-backdrop-insensitive@2.png")); } + +.view.radio:active:selected, +.list-row:selected .radio:active { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-checked.png"), url("assets/selected-radio-checked@2.png")); } + +.menu .menuitem.radio:active, +.popover .button.flat.radio:active { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked.png"), url("assets/radio-checked-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.radio:active:hover, + .popover .button.flat.radio:active:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-checked.png"), url("assets/selected-radio-checked@2.png")); } + .menu .menuitem.radio:active:insensitive, + .popover .button.flat.radio:active:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-insensitive.png"), url("assets/radio-checked-insensitive@2.png")); } + .menu .menuitem.radio:active:backdrop, + .popover .button.flat.radio:active:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-backdrop.png"), url("assets/radio-checked-backdrop@2.png")); } + .menu .menuitem.radio:active:backdrop:insensitive, + .popover .button.flat.radio:active:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-backdrop-insensitive.png"), url("assets/radio-checked-backdrop-insensitive@2.png")); } + +.view.radio:checked:selected, +.list-row:selected .radio:checked { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-checked.png"), url("assets/selected-radio-checked@2.png")); } + +.menu .menuitem.radio:checked, +.popover .button.flat.radio:checked { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked.png"), url("assets/radio-checked-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.radio:checked:hover, + .popover .button.flat.radio:checked:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-checked.png"), url("assets/selected-radio-checked@2.png")); } + .menu .menuitem.radio:checked:insensitive, + .popover .button.flat.radio:checked:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-insensitive.png"), url("assets/radio-checked-insensitive@2.png")); } + .menu .menuitem.radio:checked:backdrop, + .popover .button.flat.radio:checked:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-backdrop.png"), url("assets/radio-checked-backdrop@2.png")); } + .menu .menuitem.radio:checked:backdrop:insensitive, + .popover .button.flat.radio:checked:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-checked-backdrop-insensitive.png"), url("assets/radio-checked-backdrop-insensitive@2.png")); } + +.view.radio:inconsistent:selected, +.list-row:selected .radio:inconsistent { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-mixed.png"), url("assets/selected-radio-mixed@2.png")); } + +.menu .menuitem.radio:inconsistent, +.popover .button.flat.radio:inconsistent { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed.png"), url("assets/radio-mixed-unchecked@2.png")); + icon-shadow: none; } + .menu .menuitem.radio:inconsistent:hover, + .popover .button.flat.radio:inconsistent:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-radio-mixed.png"), url("assets/selected-radio-mixed@2.png")); } + .menu .menuitem.radio:inconsistent:insensitive, + .popover .button.flat.radio:inconsistent:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-insensitive.png"), url("assets/radio-mixed-insensitive@2.png")); } + .menu .menuitem.radio:inconsistent:backdrop, + .popover .button.flat.radio:inconsistent:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-backdrop.png"), url("assets/radio-mixed-backdrop@2.png")); } + .menu .menuitem.radio:inconsistent:backdrop:insensitive, + .popover .button.flat.radio:inconsistent:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/radio-mixed-backdrop-insensitive.png"), url("assets/radio-mixed-backdrop-insensitive@2.png")); } + +.view.check, .view.radio, +.list-row .check, list-row .radio { + icon-shadow: none; } + .view.check:selected, .view.check:hover, .view.radio:selected, .view.radio:hover, + .list-row .check:selected, + .list-row .check:hover, list-row .radio:selected, list-row .radio:hover { + icon-shadow: none; } + +.view.content-view.check { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-unchecked.png"), url("assets/checkbox-selectionmode-unchecked@2.png")); + background-color: transparent; } + +.view.content-view.check:hover { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-unchecked-hover.png"), url("assets/checkbox-selectionmode-unchecked-hover@2.png")); + background-color: transparent; } + +.view.content-view.check:active { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-unchecked-active.png"), url("assets/checkbox-selectionmode-unchecked-active@2.png")); + background-color: transparent; } + +.view.content-view.check:backdrop { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-unchecked-backdrop.png"), url("assets/checkbox-selectionmode-unchecked-backdrop@2.png")); + background-color: transparent; } + +.view.content-view.check:checked { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-checked.png"), url("assets/checkbox-selectionmode-checked@2.png")); + background-color: transparent; } + +.view.content-view.check:checked:hover { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-checked-hover.png"), url("assets/checkbox-selectionmode-checked-hover@2.png")); + background-color: transparent; } + +.view.content-view.check:checked:active { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-checked-active.png"), url("assets/checkbox-selectionmode-checked-active@2.png")); + background-color: transparent; } + +.view.content-view.check:backdrop:checked { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode-checked-backdrop.png"), url("assets/checkbox-selectionmode-checked-backdrop@2.png")); + background-color: transparent; } + +GtkCheckButton.text-button, GtkRadioButton.text-button { + padding: 1px 2px 4px; + outline-offset: 0; } + GtkCheckButton.text-button:insensitive, GtkCheckButton.text-button:insensitive:active, GtkCheckButton.text-button:insensitive:inconsistent, GtkRadioButton.text-button:insensitive, GtkRadioButton.text-button:insensitive:active, GtkRadioButton.text-button:insensitive:inconsistent { + color: rgba(26, 29, 31, 0.35); } + GtkCheckButton.text-button:insensitive:backdrop, GtkCheckButton.text-button:insensitive:active:backdrop, GtkCheckButton.text-button:insensitive:inconsistent:backdrop, GtkRadioButton.text-button:insensitive:backdrop, GtkRadioButton.text-button:insensitive:active:backdrop, GtkRadioButton.text-button:insensitive:inconsistent:backdrop { + color: rgba(26, 29, 31, 0.35); } + +/***************** + * Color Chooser * + *****************/ +:selected GtkColorSwatch { + box-shadow: none; } + :selected GtkColorSwatch.overlay, :selected GtkColorSwatch.overlay:hover { + border-color: #eff0f1; } +GtkColorSwatch:selected { + box-shadow: none; } +GtkColorSwatch.top, GtkColorSwatch.bottom, GtkColorSwatch.left, GtkColorSwatch:first-child:not(.overlay):not(.top), GtkColorSwatch.right, GtkColorSwatch:last-child:not(.overlay):not(.bottom), GtkColorSwatch:only-child:not(.overlay), GtkColorSwatch.top > .overlay, GtkColorSwatch.bottom > .overlay, GtkColorSwatch:first-child:not(.top) > .overlay, GtkColorSwatch:last-child:not(.bottom) > .overlay, GtkColorSwatch:only-child > .overlay { + border-radius: 3px; } +GtkColorSwatch:hover, GtkColorSwatch:hover:selected { + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 50%); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.4); } + GtkColorSwatch:hover.color-dark, GtkColorSwatch:hover:selected.color-dark { + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 50%); } +GtkColorSwatch:backdrop, GtkColorSwatch:backdrop:selected +GtkColorSwatch.color-dark:backdrop, GtkColorSwatch.color-dark:backdrop:selected { + background-image: none; + box-shadow: none; } +GtkColorEditor GtkColorSwatch { + border-radius: 3px; } + GtkColorEditor GtkColorSwatch:hover { + background-image: none; + box-shadow: none; } + GtkColorEditor GtkColorSwatch:backdrop { + box-shadow: none; } +GtkColorSwatch.color-dark { + color: white; + outline-color: rgba(0, 0, 0, 0.3); } + GtkColorSwatch.color-dark:backdrop { + color: rgba(255, 255, 255, 0.3); } +GtkColorSwatch.color-light { + color: black; + outline-color: rgba(255, 255, 255, 0.5); } + GtkColorSwatch.color-light:backdrop { + color: rgba(0, 0, 0, 0.3); } +GtkColorSwatch.overlay, GtkColorSwatch.overlay:selected { + border: 1px solid #bfc1c3; } + GtkColorSwatch.overlay:hover, GtkColorSwatch.overlay:selected:hover { + border-color: #93cee9; } +GtkColorSwatch#add-color-button { + border-style: solid; + border-width: 1px; + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + GtkColorSwatch#add-color-button:hover { + color: #31363b; + border-color: #93cee9; } + GtkColorSwatch#add-color-button:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + GtkColorSwatch#add-color-button .overlay { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; } + +GtkColorButton.button { + padding: 5px; } + GtkColorButton.button GtkColorSwatch:first-child:last-child { + border-radius: 0; + box-shadow: none; } + GtkColorButton.button GtkColorSwatch:first-child:last-child:insensitive, GtkColorButton.button GtkColorSwatch:first-child:last-child:backdrop { + box-shadow: none; } + +/*********** + * Dialogs * + ***********/ +.message-dialog { + -GtkDialog-button-spacing: 8; + -GtkDialog-action-area-border: 8; } + .message-dialog.background { + background-color: #eff0f1; } + .message-dialog:backdrop { + background-color: #eff0f1; } + .message-dialog .titlebar { + box-shadow: none; } + +GtkFileChooserDialog .search-bar { + background-color: #eff0f1; + border-color: #eff0f1; + box-shadow: none; } + GtkFileChooserDialog .search-bar:backdrop { + background-color: #eff0f1; + border-color: #eff0f1; + color: #31363b; } +GtkFileChooserDialog .dialog-action-box { + border-top: 1px solid #bfc1c3; } + GtkFileChooserDialog .dialog-action-box:backdrop { + border-top-color: #bfc1c3; } + +/*************** + * Header bars * + ***************/ +.titlebar, +.header-bar { + transition: none; + padding: 4px 6px; + border-width: 0px 0px 1px 0px; + border-radius: 3px 3px 0px 0px; + border-style: solid; + border-color: #3daee9; + color: #eff0f1; + background-color: #475057; } + .titlebar:backdrop, + .header-bar:backdrop { + border-color: transparent; + background-color: #eff0f1; + color: #bdc3c7; + box-shadow: none; } + .titlebar .path-bar .button, + .header-bar .path-bar .button { + color: #eff0f1; } + .titlebar .button, + .header-bar .button { + transition: none; + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #eff0f1; + text-shadow: none; + icon-shadow: none; } + .titlebar .button.flat, + .header-bar .button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #eff0f1; + text-shadow: none; + icon-shadow: none; } + .titlebar .button:hover, + .header-bar .button:hover { + color: #eff0f1; + border-color: #93cee9; } + .titlebar .button:hover:backdrop, + .header-bar .button:hover:backdrop { + border-color: #eff0f1; } + .titlebar .button:active, .titlebar .button:checked, + .header-bar .button:active, + .header-bar .button:checked { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .titlebar .button:active:hover, .titlebar .button:checked:hover, + .header-bar .button:active:hover, + .header-bar .button:checked:hover { + color: #31363b; + border-color: #93cee9; + background-image: linear-gradient(to bottom, #9cd2eb, #76c1e3); } + .titlebar .button:active:backdrop, .titlebar .button:checked:backdrop, + .header-bar .button:active:backdrop, + .header-bar .button:checked:backdrop { + background-image: none; + background-color: #eff0f1; + border-color: #eff0f1; + color: #bdc3c7; } + .titlebar .button:backdrop, + .header-bar .button:backdrop { + background-color: #eff0f1; + color: #bdc3c7; } + .titlebar .button.flat:backdrop, .titlebar .button.flat:backdrop:insensitive, .titlebar .button:insensitive:backdrop, + .header-bar .button.flat:backdrop, + .header-bar .button.flat:backdrop:insensitive, + .header-bar .button:insensitive:backdrop { + background-image: none; + background-color: #eff0f1; + color: #bdc3c7; + border-color: transparent; } + .titlebar .button.flat:insensitive, + .header-bar .button.flat:insensitive { + color: rgba(212, 214, 217, 0.35); } + .titlebar .button:insensitive, + .header-bar .button:insensitive { + background-color: #475057; + color: rgba(212, 214, 217, 0.35); } + .titlebar .button:insensitive:active, .titlebar .button:insensitive:checked, + .header-bar .button:insensitive:active, + .header-bar .button:insensitive:checked { + color: rgba(212, 214, 217, 0.35); + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .titlebar .button:insensitive:active > .label, .titlebar .button:insensitive:checked > .label, + .header-bar .button:insensitive:active > .label, + .header-bar .button:insensitive:checked > .label { + color: inherit; } + .titlebar .title, + .header-bar .title { + font-weight: normal; + padding: 0px 12px; } + .titlebar .subtitle, + .header-bar .subtitle { + font-size: smaller; + padding: 0 12px; } + .titlebar .header-bar-separator, .titlebar > GtkBox > .separator.vertical, + GtkPlacesSidebar.sidebar .view .titlebar > GtkBox > .vertical.separator:backdrop, + .header-bar .header-bar-separator, + .header-bar > GtkBox > .separator.vertical, + GtkPlacesSidebar.sidebar .view .header-bar > GtkBox > .vertical.separator:backdrop { + -GtkWidget-wide-separators: true; + -GtkWidget-separator-width: 1px; + border-width: 0px; + background-color: #475057; + border-color: #475057; } + .titlebar .header-bar-separator:backdrop, .titlebar > GtkBox > .separator.vertical:backdrop, + .header-bar .header-bar-separator:backdrop, + .header-bar > GtkBox > .separator.vertical:backdrop { + background-color: #eff0f1; + border-color: #eff0f1; } + .titlebar.selection-mode .selection-menu, + .header-bar.selection-mode .selection-menu { + padding-left: 10px; + padding-right: 10px; } + .titlebar.selection-mode .selection-menu GtkArrow, + .header-bar.selection-mode .selection-menu GtkArrow { + -GtkArrow-arrow-scaling: 1; } + .titlebar.selection-mode .selection-menu .arrow, + .header-bar.selection-mode .selection-menu .arrow { + -gtk-icon-source: -gtk-icontheme("arrow-down"); + icon-shadow: none; } + .tiled .titlebar, .maximized .titlebar, .tiled + .header-bar, .maximized + .header-bar { + border-radius: 0; } + .titlebar.default-decoration, + .header-bar.default-decoration { + padding: 4px; } + .titlebar.default-decoration .button, + .header-bar.default-decoration .button { + padding: 5px; } + +.titlebar .button.suggested-action, +.header-bar .button.suggested-action, .titlebar.selection-mode.suggested-action, +.header-bar.selection-mode.suggested-action { + background-image: none; + background-color: #3daee9; } + .titlebar .button.suggested-action:hover, + .header-bar .button.suggested-action:hover, .titlebar.selection-mode.suggested-action:hover, + .header-bar.selection-mode.suggested-action:hover { + background-color: #93cee9; + color: #31363b; } + .titlebar .button.suggested-action:insensitive, + .header-bar .button.suggested-action:insensitive, .titlebar.selection-mode.suggested-action:insensitive, + .header-bar.selection-mode.suggested-action:insensitive { + background-color: transparent; + background-image: none; + color: rgba(212, 214, 217, 0.35); } + .titlebar .button.suggested-action:insensitive:active, + .header-bar .button.suggested-action:insensitive:active, .titlebar.selection-mode.suggested-action:insensitive:active, + .header-bar.selection-mode.suggested-action:insensitive:active, .titlebar .button.suggested-action:insensitive:checked, + .header-bar .button.suggested-action:insensitive:checked, .titlebar.selection-mode.suggested-action:insensitive:checked, + .header-bar.selection-mode.suggested-action:insensitive:checked { + color: rgba(212, 214, 217, 0.35); + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .titlebar .button.suggested-action:insensitive:active > .label, + .header-bar .button.suggested-action:insensitive:active > .label, .titlebar.selection-mode.suggested-action:insensitive:active > .label, + .header-bar.selection-mode.suggested-action:insensitive:active > .label, .titlebar .button.suggested-action:insensitive:checked > .label, + .header-bar .button.suggested-action:insensitive:checked > .label, .titlebar.selection-mode.suggested-action:insensitive:checked > .label, + .header-bar.selection-mode.suggested-action:insensitive:checked > .label { + color: inherit; } + .titlebar .button.suggested-action:backdrop, + .header-bar .button.suggested-action:backdrop, .titlebar.selection-mode.suggested-action:backdrop, + .header-bar.selection-mode.suggested-action:backdrop { + background-color: #eff0f1; + border-color: transparent; + color: #bdc3c7; } + .titlebar .button.suggested-action:backdrop:insensitive, + .header-bar .button.suggested-action:backdrop:insensitive, .titlebar.selection-mode.suggested-action:backdrop:insensitive, + .header-bar.selection-mode.suggested-action:backdrop:insensitive { + color: rgba(161, 170, 176, 0.35); } + +/************** + * GtkInfoBar * + **************/ +GtkInfoBar { + border-style: none; + border-bottom: 1px solid #bfc1c3; } + GtkInfoBar:backdrop { + border-bottom: 1px solid #bfc1c3; } + +.info, .titlebar.selection-mode, +.header-bar.selection-mode, +.question, +.warning, +.error { + background-color: #eff0f1; + color: #f67400; + text-shadow: none; } + .info:backdrop, .titlebar.selection-mode:backdrop, + .header-bar.selection-mode:backdrop, + .question:backdrop, + .warning:backdrop, + .error:backdrop { + background-color: #eff0f1; + color: #f67400; } + .info .button, .titlebar.selection-mode .button, + .header-bar.selection-mode .button, + .question .button, + .warning .button, + .error .button { + box-shadow: none; + background-image: none; + background-color: rgba(246, 116, 0, 0.5); + border-color: rgba(246, 116, 0, 0.5); + color: #31363b; } + .info .button:hover, .titlebar.selection-mode .button:hover, + .header-bar.selection-mode .button:hover, + .question .button:hover, + .warning .button:hover, + .error .button:hover { + background-color: rgba(246, 116, 0, 0.25); + border-color: #f67400; } + .info .button:active, .titlebar.selection-mode .button:active, + .header-bar.selection-mode .button:active, .info .button:checked, .titlebar.selection-mode .button:checked, + .header-bar.selection-mode .button:checked, + .question .button:active, + .question .button:checked, + .warning .button:active, + .warning .button:checked, + .error .button:active, + .error .button:checked { + background-image: linear-gradient(to bottom, #f87500, #ef7100); + color: #eff0f1; + border-color: #f67400; } + .info .button:insensitive, .titlebar.selection-mode .button:insensitive, + .header-bar.selection-mode .button:insensitive, + .question .button:insensitive, + .warning .button:insensitive, + .error .button:insensitive { + background-color: rgba(195, 92, 0, 0); + border-color: rgba(195, 92, 0, 0); + color: rgba(26, 29, 31, 0.35); } + .info .button:backdrop, .titlebar.selection-mode .button:backdrop, + .header-bar.selection-mode .button:backdrop, + .question .button:backdrop, + .warning .button:backdrop, + .error .button:backdrop { + background-color: rgba(246, 116, 0, 0.5); + border-color: rgba(246, 116, 0, 0.5); + color: #31363b; } + .info .button:backdrop:active, .titlebar.selection-mode .button:backdrop:active, + .header-bar.selection-mode .button:backdrop:active, .info .button:backdrop:checked, .titlebar.selection-mode .button:backdrop:checked, + .header-bar.selection-mode .button:backdrop:checked, + .question .button:backdrop:active, + .question .button:backdrop:checked, + .warning .button:backdrop:active, + .warning .button:backdrop:checked, + .error .button:backdrop:active, + .error .button:backdrop:checked { + background-image: linear-gradient(to bottom, #f87500, #ef7100); + color: #eff0f1; + border-color: #f67400; } + .info .button:backdrop:insensitive, .titlebar.selection-mode .button:backdrop:insensitive, + .header-bar.selection-mode .button:backdrop:insensitive, + .question .button:backdrop:insensitive, + .warning .button:backdrop:insensitive, + .error .button:backdrop:insensitive { + background-color: rgba(195, 92, 0, 0); + border-color: rgba(195, 92, 0, 0); + color: rgba(26, 29, 31, 0.35); } + .info .button:backdrop:insensitive:active, .titlebar.selection-mode .button:backdrop:insensitive:active, + .header-bar.selection-mode .button:backdrop:insensitive:active, .info .button:backdrop:insensitive:checked, .titlebar.selection-mode .button:backdrop:insensitive:checked, + .header-bar.selection-mode .button:backdrop:insensitive:checked, + .question .button:backdrop:insensitive:active, + .question .button:backdrop:insensitive:checked, + .warning .button:backdrop:insensitive:active, + .warning .button:backdrop:insensitive:checked, + .error .button:backdrop:insensitive:active, + .error .button:backdrop:insensitive:checked { + background-image: linear-gradient(to bottom, rgba(197, 93, 0, 0.35), rgba(189, 89, 0, 0.35)); + color: rgba(212, 214, 217, 0.35); + border-color: rgba(195, 92, 0, 0.35); } + +/********* + * Links * + *********/ +*:link, .button:link, .button:visited { + color: #2980b9; } + *:link:visited, .button:visited { + color: #7f8c8d; } + *:selected *:link:visited, *:selected .button:visited { + color: #a7d5ed; } + *:link:hover, .button:hover:link, .button:hover:visited { + color: #409ad5; } + *:selected *:link:hover, *:selected .button:hover:link, *:selected .button:hover:visited { + color: #dde9f0; } + *:link:active, .button:active:link, .button:active:visited { + color: #2980b9; } + *:selected *:link:active, *:selected .button:active:link, *:selected .button:active:visited { + color: #cbe2ef; } + *:link:backdrop, .button:backdrop:link, .button:backdrop:visited, *:link:backdrop:hover, .button:backdrop:hover:link, .button:backdrop:hover:visited, *:link:backdrop:hover:selected, .titlebar.selection-mode .subtitle:backdrop:hover:link, + .header-bar.selection-mode .subtitle:backdrop:hover:link, .button:backdrop:hover:selected:link, .button:backdrop:hover:selected:visited { + color: rgba(61, 174, 233, 0.5); } + *:link:selected, .titlebar.selection-mode .subtitle:link, + .header-bar.selection-mode .subtitle:link, .button:selected:link, .button:selected:visited, *:selected *:link, *:selected .button:link, *:selected .button:visited { + color: #cbe2ef; } + +.button:link, .button:visited { + text-shadow: none; } + .button:link:hover, .button:link:active, .button:link:checked, .button:visited:hover, .button:visited:active, .button:visited:checked { + text-shadow: none; } + +/********* + * Lists * + *********/ +.list, .list-row { + background-color: #eff0f1; + color: #31363b; + border-width: 0px; } + .list:backdrop, .list-row:backdrop { + background-color: #eff0f1; + color: #31363b; } + +.list-row, +.grid-child { + padding: 0px 2px; + border-style: solid; + border-width: 0px; + border-color: #eff0f1; } + +.list-row.button, +.list-row.button:backdrop, +.list-row.button:backdrop:active, +.list-row.button:backdrop:checked, +.list-row.button:backdrop:insensitive, +.list-row.button:backdrop:insensitive:active, +.list-row.button:backdrop:insensitive:checked, +.list-row.button:insensitive:active, +.list-row.button:insensitive:checked { + background-color: rgba(252, 252, 252, 0); + border-style: none; + border-radius: 0; + box-shadow: none; } + +.list-row.button { + background-color: #eff0f1; } + .list-row.button:hover { + background-color: rgba(147, 206, 233, 0.25); } + .list-row.button:active { + background-color: #3daee9; + box-shadow: none; } + .list-row.button:selected { + background-color: #3daee9; } + .list-row.button:selected:active { + box-shadow: none; } + .list-row.button:selected:hover { + color: #31363b; + border-color: #93cee9; + background-image: linear-gradient(to bottom, #9cd2eb, #76c1e3); } + .list-row.button:selected:backdrop { + background-color: rgba(61, 174, 233, 0.5); } + .list-row.button:backdrop { + background-color: #eff0f1; } + +.list-row:selected .button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .list-row:selected .button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; } + .list-row:selected .button:hover { + color: #31363b; + border-color: #93cee9; } + .list-row:selected .button:active, .list-row:selected .button:checked { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .list-row:selected .button:backdrop, .list-row:selected .button.flat:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .list-row:selected .button:backdrop:active, .list-row:selected .button:backdrop:checked, .list-row:selected .button.flat:backdrop:active, .list-row:selected .button.flat:backdrop:checked { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .list-row:selected .button:backdrop:insensitive, .list-row:selected .button.flat:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .list-row:selected .button:backdrop:insensitive > .label, .list-row:selected .button.flat:backdrop:insensitive > .label { + color: inherit; } + .list-row:selected .button:backdrop:insensitive:active, .list-row:selected .button:backdrop:insensitive:checked, .list-row:selected .button.flat:backdrop:insensitive:active, .list-row:selected .button.flat:backdrop:insensitive:checked { + color: rgba(212, 214, 217, 0.35); + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .list-row:selected .button:backdrop:insensitive:active > .label, .list-row:selected .button:backdrop:insensitive:checked > .label, .list-row:selected .button.flat:backdrop:insensitive:active > .label, .list-row:selected .button.flat:backdrop:insensitive:checked > .label { + color: inherit; } + .list-row:selected .button.flat:backdrop { + background-color: #eff0f1; + color: #31363b; + border-color: transparent; } + .list-row:selected .button:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .list-row:selected .button:insensitive > .label { + color: inherit; } + .list-row:selected .button:insensitive:active, .list-row:selected .button:insensitive:checked { + color: rgba(212, 214, 217, 0.35); + border-color: rgba(25, 152, 218, 0.35); + background-image: linear-gradient(to bottom, rgba(25, 156, 225, 0.35), rgba(23, 138, 198, 0.35)); } + .list-row:selected .button:insensitive:active > .label, .list-row:selected .button:insensitive:checked > .label { + color: inherit; } + +.list-row, list-row.button { + transition: all 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + .list-row:hover, list-row.button:hover { + transition: none; } + +/********* + * Menus * + *********/ +/* menu buttons */ +.menuitem.button.flat { + color: #31363b; } + .menuitem.button.flat:hover { + background-color: #93cee9; } + .menuitem.button.flat:selected { + background-color: #3daee9; + color: #eff0f1; } + .menuitem.button.flat:backdrop, .menuitem.button.flat:backdrop:hover { + color: #31363b; } + +.menubar { + -GtkWidget-window-dragging: true; + padding: 0px; + box-shadow: none; + background-color: #eff0f1; } + .menubar:backdrop { + background-color: #eff0f1; } + .menubar > .menuitem { + padding: 6px 8px; + border: 1px solid #eff0f1; } + .menubar > .menuitem:hover { + background-color: #3daee9; + color: #eff0f1; } + .menubar > .menuitem:insensitive { + color: rgba(26, 29, 31, 0.35); + box-shadow: none; } + .menubar > .menuitem:insensitive:backdrop { + background-color: #eff0f1; + color: rgba(26, 29, 31, 0.35); } + .menubar > .menuitem:backdrop { + background-color: #eff0f1; + border-color: #eff0f1; + color: #31363b; } + +.menu { + padding: 0px; + background-color: #f8f8f8; + border: 1px solid #bfc1c3; + border-radius: 3px; } + .csd .menu { + border: 1px solid #bfc1c3; } + .menu .separator, .menu GtkPlacesSidebar.sidebar .view .separator, GtkPlacesSidebar.sidebar .view .menu .separator { + color: #bfc1c3; } + .menu .menuitem { + text-shadow: none; + padding: 8px 4px; } + .menu .menuitem:hover { + color: #eff0f1; + background-color: #3daee9; + background-clip: padding-box; + border: 2px solid transparent; } + .menu .menuitem:insensitive { + color: rgba(26, 29, 31, 0.35); } + .menu .menuitem:insensitive:backdrop { + color: rgba(26, 29, 31, 0.35); } + .menu .menuitem:backdrop, .menu .menuitem:backdrop:hover { + color: #31363b; + background-color: #eff0f1; } + .menu .menuitem.arrow { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + .menu .menuitem.arrow:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + +.menuitem .accelerator { + color: alpha(currentColor,0.5); } + +/*************** + * Popovers * + ***************/ +.popover { + margin: 10px; + padding: 0px; + border: 1px solid #bfc1c3; + border-radius: 3px; + background-color: #f8f8f8; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.8); } + .popover:backdrop { + box-shadow: none; } + .popover > .list, + .popover > .view, + .popover > .toolbar, + .popover > .inline-toolbar, + .popover > .search-bar, + .popover > .location-bar, .popover.osd > .toolbar, .popover.osd > .inline-toolbar, .popover.osd > .search-bar, .popover.osd > .location-bar { + border-style: none; + background-color: transparent; } + .popover .button.flat { + border-radius: 0px; + color: #31363b; } + .popover .button.flat .label { + padding: 4px 0px; } + .popover .button.flat:hover, .popover .button.flat:checked:hover { + background-image: none; + background-color: #3daee9; + color: #eff0f1; + transition: none; } + .popover .button.flat:backdrop { + background-color: transparent; + color: #31363b; } + +.entry.cursor-handle, +.cursor-handle { + background-color: transparent; + background-image: none; + box-shadow: none; + border-style: none; } + .entry.cursor-handle.top, + .cursor-handle.top { + -gtk-icon-source: -gtk-icontheme("selection-start-symbolic"); } + .entry.cursor-handle.bottom, + .cursor-handle.bottom { + -gtk-icon-source: -gtk-icontheme("selection-end-symbolic"); } + +.scale-popup .button, +.scale-popup .button.flat { + background-color: transparent; + padding: 5px; + color: #31363b; } + .scale-popup .button:hover, + .scale-popup .button.flat:hover { + color: #93cee9; } + .scale-popup .button:active, + .scale-popup .button.flat:active { + color: #3daee9; } + .scale-popup .button:insensitive, + .scale-popup .button.flat:insensitive { + color: rgba(26, 29, 31, 0.35); } + .scale-popup .button:backdrop, + .scale-popup .button.flat:backdrop { + color: #31363b; } + .scale-popup .button:backdrop:insensitive, + .scale-popup .button.flat:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); } + +GtkVolumeButton.button { + padding: 5px; } + +/******** + * Misc * + ********/ +/********** +* Frames * +**********/ +.frame { + border: 1px solid #bfc1c3; + padding: 0; } + .frame.flat { + border-style: none; } + .frame.action-bar { + padding: 6px; + border-width: 1px 0 0; } + .frame.action-bar:backdrop { + border-color: #bfc1c3; } + .frame:backdrop { + border-color: #bfc1c3; } + +GtkScrolledWindow GtkViewport.frame { + border-style: none; } + +.separator, GtkPlacesSidebar.sidebar .view .separator, +GtkPlacesSidebar.sidebar .view .separator:backdrop { + color: transparent; } + .separator.vertical, GtkPlacesSidebar.sidebar .view .vertical.separator { + color: #bfc1c3; } + .separator.vertical:backdrop, GtkPlacesSidebar.sidebar .view .vertical.separator:backdrop { + color: #bfc1c3; } + GtkFileChooserButton .separator.vertical, GtkFileChooserButton GtkPlacesSidebar.sidebar .view .vertical.separator, GtkPlacesSidebar.sidebar .view GtkFileChooserButton .vertical.separator, GtkFontButton .separator.vertical, GtkFontButton GtkPlacesSidebar.sidebar .view .vertical.separator, GtkPlacesSidebar.sidebar .view GtkFontButton .vertical.separator { + -GtkWidget-wide-separators: true; } + +/************* +* Expanders * +*************/ +.expander { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + .expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + .expander:hover { + color: #77838e; } + .expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + +/********* +* Paned * +*********/ +GtkPaned { + -GtkPaned-handle-size: 1; + -gtk-icon-source: none; + margin: 0 8px 8px 0; } + GtkPaned:dir(rtl) { + margin-right: 0; + margin-left: 8px; } + GtkPaned .pane-separator { + background-color: #bfc1c3; } + GtkPaned .pane-separator:backdrop { + background-color: #bfc1c3; } + +GtkPaned.wide { + -GtkPaned-handle-size: 5; + margin: 0; } + GtkPaned.wide .pane-separator { + background-color: transparent; + border-style: none; } + GtkPaned.wide.vertical .pane-separator { + border-style: none; } + GtkPaned.wide .pane-separator:backdrop { + border-color: transparent; } + +/********************* +* Spinner Animation * +*********************/ +@keyframes spin { + to { + -gtk-icon-transform: rotate(1turn); } } +.spinner { + background-image: none; + background-color: blue; + opacity: 0; + -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); } + .spinner:active { + opacity: 1; + animation: spin 1s linear infinite; } + .spinner:active:insensitive { + opacity: 0.5; } + +/***************** + * Notebooks and * + * Tabs * + *****************/ +.notebook { + -GtkNotebook-initial-gap: 0; + -GtkNotebook-arrow-spacing: 5; + -GtkNotebook-tab-curvature: 0; + -GtkNotebook-tab-overlap: 1; + -GtkNotebook-has-tab-gap: false; + -GtkWidget-focus-padding: 0; + -GtkWidget-focus-line-width: 0; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + background-color: #f8f8f8; } + .notebook:backdrop { + background-color: #f8f8f8; } + .notebook.frame { + border: 1px solid #bfc1c3; } + .notebook.frame.top { + border-top-width: 0; } + .notebook.frame.bottom { + border-bottom-width: 0; } + .notebook.frame.right { + border-right-width: 0; } + .notebook.frame.left { + border-left-width: 0; } + .notebook.frame:backdrop { + border-color: #bfc1c3; } + .notebook.header { + background-color: #eff0f1; + padding-top: 4px; } + .notebook.header.frame { + border-style: none; } + .notebook.header.top { + box-shadow: inset 0 -1px #bfc1c3; } + .notebook.header.top:backdrop { + box-shadow: inset 0 -1px #bfc1c3; } + .notebook.header.bottom { + box-shadow: inset 0 1px #bfc1c3; } + .notebook.header.bottom:backdrop { + box-shadow: inset 0 1px #bfc1c3; } + .notebook.header.right { + box-shadow: inset 1px 0 #bfc1c3; } + .notebook.header.right:backdrop { + box-shadow: inset 1px 0 #bfc1c3; } + .notebook.header.left { + box-shadow: inset -1px 0 #bfc1c3; } + .notebook.header.left:backdrop { + box-shadow: inset -1px 0 #bfc1c3; } + .notebook.header:backdrop { + background-color: #eff0f1; } + .notebook tab { + border: 1px solid rgba(49, 54, 59, 0.2); + background-color: rgba(49, 54, 59, 0.2); + background-clip: padding-box; + padding: 8px; } + .notebook tab:backdrop { + background-color: rgba(49, 54, 59, 0.2); } + .notebook tab.reorderable-page { + background-color: #eff0f1; } + .notebook tab.reorderable-page.top, .notebook tab.reorderable-page.bottom { + padding-left: 12px; + padding-right: 6px; + padding-bottom: 8px; } + .notebook tab.top { + border-radius: 3px 3px 0px 0px; + border-bottom-color: transparent; } + .notebook tab.top:active, .notebook tab.top.active-page { + border-color: #bfc1c3; + border-bottom-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.top:active:backdrop, .notebook tab.top.active-page:backdrop { + border-color: #bfc1c3; + border-bottom-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.bottom { + border-radius: 0px 0px 3px 3px; + border-top-color: transparent; } + .notebook tab.bottom:active, .notebook tab.bottom.active-page { + border-color: #bfc1c3; + border-top-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.bottom:active:backdrop, .notebook tab.bottom.active-page:backdrop { + border-color: #bfc1c3; + border-top-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.left { + border-radius: 3px 0px 0px 3px; + border-right-color: transparent; } + .notebook tab.left:active, .notebook tab.left.active-page { + border-color: #bfc1c3; + border-right-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.left:active:backdrop, .notebook tab.left.active-page:backdrop { + border-color: #bfc1c3; + border-right-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.right { + border-radius: 0px 3px 3px 0px; + border-left-color: transparent; } + .notebook tab.right:active, .notebook tab.right.active-page { + border-color: #bfc1c3; + border-left-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab.right:active:backdrop, .notebook tab.right.active-page:backdrop { + border-color: #bfc1c3; + border-left-color: #f8f8f8; + background-color: #f8f8f8; } + .notebook tab:hover, .notebook tab.prelight-page { + background-color: rgba(61, 174, 233, 0.2); + border-color: rgba(61, 174, 233, 0.2); } + .notebook tab.reorderable-page.top { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #eff0f1; + background-clip: padding-box; + border-right-width: 1px; + border-right-color: #bfc1c3; + box-shadow: inset -3px 0px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.top:hover, .notebook tab.reorderable-page.top.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(61, 174, 233, 0.2), inset -3px 0px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.top:active, .notebook tab.reorderable-page.top.active-page { + box-shadow: inset 0px -3px 0px 0px #3daee9, inset -3px 0px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.top:active:backdrop, .notebook tab.reorderable-page.top.active-page:backdrop { + background-color: #eff0f1; + border-color: transparent; + border-right-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.top:backdrop { + background-color: #eff0f1; + border-right-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.bottom { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #eff0f1; + background-clip: padding-box; + border-right-width: 1px; + border-right-color: #bfc1c3; + box-shadow: inset -3px 0px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.bottom:hover, .notebook tab.reorderable-page.bottom.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(61, 174, 233, 0.2), inset -3px 0px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.bottom:active, .notebook tab.reorderable-page.bottom.active-page { + box-shadow: inset 0px -3px 0px 0px #3daee9, inset -3px 0px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.bottom:active:backdrop, .notebook tab.reorderable-page.bottom.active-page:backdrop { + background-color: #eff0f1; + border-color: transparent; + border-right-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.bottom:backdrop { + background-color: #eff0f1; + border-right-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.left { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #eff0f1; + background-clip: padding-box; + border-bottom-width: 1px; + border-bottom-color: #bfc1c3; + box-shadow: inset 0px -3px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.left:hover, .notebook tab.reorderable-page.left.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(61, 174, 233, 0.2), inset 0px -3px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.left:active, .notebook tab.reorderable-page.left.active-page { + box-shadow: inset 0px -3px 0px 0px #3daee9, inset 0px -3px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.left:active:backdrop, .notebook tab.reorderable-page.left.active-page:backdrop { + background-color: #eff0f1; + border-color: transparent; + border-bottom-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.left:backdrop { + background-color: #eff0f1; + border-bottom-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.right { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #eff0f1; + background-clip: padding-box; + border-bottom-width: 1px; + border-bottom-color: #bfc1c3; + box-shadow: inset 0px -3px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.right:hover, .notebook tab.reorderable-page.right.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(61, 174, 233, 0.2), inset 0px -3px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.right:active, .notebook tab.reorderable-page.right.active-page { + box-shadow: inset 0px -3px 0px 0px #3daee9, inset 0px -3px 0px 0px #eff0f1; } + .notebook tab.reorderable-page.right:active:backdrop, .notebook tab.reorderable-page.right.active-page:backdrop { + background-color: #eff0f1; + border-color: transparent; + border-bottom-color: #bfc1c3; + box-shadow: none; } + .notebook tab.reorderable-page.right:backdrop { + background-color: #eff0f1; + border-bottom-color: #bfc1c3; + box-shadow: none; } + .notebook tab .label { + padding: 0 2px; + color: #31363b; } + .notebook tab .label:backdrop { + color: #31363b; } + .notebook tab .button { + padding: 0px; + border: 1px solid transparent; + border-radius: 50%; + background-image: none; + background-color: #bfc1c3; + box-shadow: none; + icon-shadow: none; + transition: none; + color: #eff0f1; } + .notebook tab .button:hover { + background-color: #da4453; + border-color: transparent; + background-image: none; + box-shadow: none; } + .notebook tab .button:active { + color: #eff0f1; + border-color: transparent; + background-image: none; + box-shadow: none; } + .notebook tab .button:backdrop { + color: #eff0f1; + background-color: #bfc1c3; } + .notebook tab .button > GtkImage { + padding: 0px; } + .notebook tab .button .active-page, .notebook tab .button.active-page { + background-color: #da4453; } + .notebook.arrow { + color: #31363b; } + .notebook.arrow:hover { + color: #93cee9; } + .notebook.arrow:active { + color: #3daee9; } + .notebook.arrow:insensitive { + color: rgba(26, 29, 31, 0.35); } + .notebook.arrow:backdrop { + color: #31363b; } + .notebook.arrow:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); } + +/* Decouple the font of context menus from their entry/textview */ +.touch-selection, +.context-menu { + font: initial; } + +.monospace { + font: Monospace; } + +.overshoot.top { + background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, to(#a5a8aa), to(rgba(165, 168, 170, 0))), -gtk-gradient(radial, center top, 0, center top, 0.6, from(rgba(49, 54, 59, 0.07)), to(rgba(49, 54, 59, 0))); + background-size: 100% 5%, 100% 100%; + background-repeat: no-repeat; + background-position: center top; + background-color: transparent; + border: none; + box-shadow: none; } + .overshoot.top:backdrop { + background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, to(#bfc1c3), to(rgba(191, 193, 195, 0))); + background-size: 100% 5%; + background-repeat: no-repeat; + background-position: center top; + background-color: transparent; + border: none; + box-shadow: none; } +.overshoot.bottom { + background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, to(#a5a8aa), to(rgba(165, 168, 170, 0))), -gtk-gradient(radial, center bottom, 0, center bottom, 0.6, from(rgba(49, 54, 59, 0.07)), to(rgba(49, 54, 59, 0))); + background-size: 100% 5%, 100% 100%; + background-repeat: no-repeat; + background-position: center bottom; + background-color: transparent; + border: none; + box-shadow: none; } + .overshoot.bottom:backdrop { + background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, to(#bfc1c3), to(rgba(191, 193, 195, 0))); + background-size: 100% 5%; + background-repeat: no-repeat; + background-position: center bottom; + background-color: transparent; + border: none; + box-shadow: none; } +.overshoot.left { + background-image: -gtk-gradient(radial, left center, 0, left center, 0.5, to(#a5a8aa), to(rgba(165, 168, 170, 0))), -gtk-gradient(radial, left center, 0, left center, 0.6, from(rgba(49, 54, 59, 0.07)), to(rgba(49, 54, 59, 0))); + background-size: 5% 100%, 100% 100%; + background-repeat: no-repeat; + background-position: left center; + background-color: transparent; + border: none; + box-shadow: none; } + .overshoot.left:backdrop { + background-image: -gtk-gradient(radial, left center, 0, left center, 0.5, to(#bfc1c3), to(rgba(191, 193, 195, 0))); + background-size: 5% 100%; + background-repeat: no-repeat; + background-position: left center; + background-color: transparent; + border: none; + box-shadow: none; } +.overshoot.right { + background-image: -gtk-gradient(radial, right center, 0, right center, 0.5, to(#a5a8aa), to(rgba(165, 168, 170, 0))), -gtk-gradient(radial, right center, 0, right center, 0.6, from(rgba(49, 54, 59, 0.07)), to(rgba(49, 54, 59, 0))); + background-size: 5% 100%, 100% 100%; + background-repeat: no-repeat; + background-position: right center; + background-color: transparent; + border: none; + box-shadow: none; } + .overshoot.right:backdrop { + background-image: -gtk-gradient(radial, right center, 0, right center, 0.5, to(#bfc1c3), to(rgba(191, 193, 195, 0))); + background-size: 5% 100%; + background-repeat: no-repeat; + background-position: right center; + background-color: transparent; + border: none; + box-shadow: none; } + +/************ + * Pathbars * + ************/ +.path-bar .button { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: #31363b; + text-shadow: none; + icon-shadow: none; + padding: 4px 8px; + color: #31363b; } + .path-bar .button:hover { + border-color: #93cee9; } + .path-bar .button:active, .path-bar .button:checked { + background-color: #bfc1c3; } + .path-bar .button:first-child { + padding-left: 8px; } + .path-bar .button:last-child { + padding-right: 8px; } + .path-bar .button:only-child { + padding-left: 12px; + padding-right: 12px; } + .path-bar .button .label:last-child { + padding-left: 2px; } + .path-bar .button .label:first-child { + padding-right: 2px; } + .path-bar .button .label:only-child { + padding-right: 0; + padding-left: 0; } + .path-bar .button GtkImage { + padding-top: 1px; } + +/***************** + * Progress bars * + *****************/ +GtkProgressBar { + padding: 0; + font-size: smaller; + color: rgba(49, 54, 59, 0.3); + box-shadow: none; } + GtkProgressBar:backdrop { + color: rgba(49, 54, 59, 0.3); } + GtkProgressBar.osd { + -GtkProgressBar-xspacing: 0; + -GtkProgressBar-yspacing: 0; + -GtkProgressBar-min-horizontal-bar-height: 3; } + GtkProgressBar.trough { + border: 1px solid transparent; + border-radius: 3px; + background-color: rgba(49, 54, 59, 0.3); } + GtkProgressBar.trough.osd { + border: 1px solid transparent; + border-radius: 3px; + background-color: rgba(49, 54, 59, 0.3); } + GtkProgressBar.trough.osd:backdrop { + background-color: rgba(49, 54, 59, 0.3); } + GtkProgressBar.trough:backdrop { + background-color: rgba(49, 54, 59, 0.3); } + +.progressbar { + background-color: #3daee9; + border: 1px solid #3daee9; + border-radius: 0px; + box-shadow: none; } + .progressbar.left { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + .progressbar.right { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + .progressbar.left.right { + box-shadow: none; } + .progressbar.vertical.bottom { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + box-shadow: none; } + .progressbar.vertical.top { + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + .progressbar.osd { + background-image: none; + background-color: #3daee9; + border: 1px solid #3daee9; + border-radius: 3px; } + .progressbar.osd:backdrop { + background-color: rgba(61, 174, 233, 0.5); + border-color: rgba(61, 174, 233, 0.5); } + .progressbar:backdrop { + background-color: rgba(61, 174, 233, 0.5); + border-color: rgba(61, 174, 233, 0.5); } + +/************* + * Level Bar * + *************/ +.level-bar.vertical { + -GtkLevelBar-min-block-width: 6; + -GtkLevelBar-min-block-height: 34; } + +.level-bar { + box-shadow: none; + -GtkLevelBar-min-block-width: 34; + -GtkLevelBar-min-block-height: 6; } + .level-bar.vertical { + -GtkLevelBar-min-block-width: 6; + -GtkLevelBar-min-block-height: 34; } + .level-bar.trough { + border: 1px solid transparent; + padding: 3px; + border-radius: 3px; + background-color: transparent; } + .level-bar.fill-block { + border: 1px solid #3daee9; + background-color: #3daee9; + box-shadow: none; + border-radius: 3px; } + .level-bar.fill-block.indicator-discrete.horizontal { + margin: 0 1px; } + .level-bar.fill-block.indicator-discrete.vertical { + margin: 1px 0; } + .level-bar.fill-block.level-high { + border-color: #27ae60; + background-color: #27ae60; } + .level-bar.fill-block.level-high:backdrop { + background-color: #27ae60; + border-color: #27ae60; } + .level-bar.fill-block.level-low { + border-color: #f67400; + background-color: #f67400; } + .level-bar.fill-block.level-low:backdrop { + background-color: #f67400; + border-color: #f67400; } + .level-bar.fill-block.empty-fill-block { + background-color: rgba(49, 54, 59, 0.3); + border-color: transparent; + box-shadow: none; } + .level-bar.fill-block:backdrop { + border-color: rgba(61, 174, 233, 0.5); + background-color: rgba(61, 174, 233, 0.5); } + +/************ + * GtkScale * + ************/ +.scale, +.scale.scale-has-marks-above.scale-has-marks-below, +.scale.vertical.scale-has-marks-above.scale-has-marks-below { + -GtkScale-slider-length: 18; + -GtkRange-slider-width: 18; + -GtkRange-trough-border: 2; } + .scale.fine-tune.trough, + .scale.scale-has-marks-above.scale-has-marks-below.fine-tune.trough, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.fine-tune.trough { + margin: 8px; + border-radius: 3px; } + .scale.slider, + .scale.scale-has-marks-above.scale-has-marks-below.slider, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider { + background-color: #eff0f1; + border: 1px solid #bfc1c3; + border-radius: 50%; + box-shadow: none; } + .scale.slider:hover, + .scale.scale-has-marks-above.scale-has-marks-below.slider:hover, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:hover { + border-style: solid; + border-width: 2px; + border-color: #93cee9; + border-radius: 50%; } + .scale.slider:hover:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.slider:hover:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:hover:backdrop { + background-color: #eff0f1; + border-color: #93cee9; } + .scale.slider:insensitive, + .scale.scale-has-marks-above.scale-has-marks-below.slider:insensitive, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:insensitive { + border-style: solid; + border-radius: 50%; + background-color: rgba(212, 214, 217, 0.35); + border-color: rgba(165, 168, 170, 0.35); } + .scale.slider:insensitive:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.slider:insensitive:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:insensitive:backdrop { + background-color: rgba(212, 214, 217, 0.35); + border-color: rgba(165, 168, 170, 0.35); } + .scale.slider:active, + .scale.scale-has-marks-above.scale-has-marks-below.slider:active, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:active { + border: 2px solid #3daee9; } + .scale.slider:active:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.slider:active:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:active:backdrop { + background-color: #eff0f1; + border-color: #3daee9; } + .scale.slider:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.slider:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.slider:backdrop { + background-color: #eff0f1; + border-color: #bfc1c3; } + .scale.trough, + .scale.scale-has-marks-above.scale-has-marks-below.trough, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough { + margin: 9px; + border: 1px solid rgba(49, 54, 59, 0.3); + border-radius: 3px; + background-color: rgba(49, 54, 59, 0.3); + box-shadow: none; } + .scale.trough.highlight, + .scale.scale-has-marks-above.scale-has-marks-below.trough.highlight, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough.highlight { + background-color: #3daee9; + border-color: #3daee9; } + .scale.trough.highlight.vertical, + .scale.scale-has-marks-above.scale-has-marks-below.trough.highlight.vertical, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough.highlight.vertical { + background-color: #3daee9; + border-color: #3daee9; } + .scale.trough.highlight:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.trough.highlight:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough.highlight:backdrop { + background-color: rgba(61, 174, 233, 0.5); + border-color: rgba(61, 174, 233, 0.5); } + .scale.trough:insensitive, .scale.trough.vertical:insensitive, + .scale.scale-has-marks-above.scale-has-marks-below.trough:insensitive, + .scale.scale-has-marks-above.scale-has-marks-below.trough.vertical:insensitive, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough:insensitive, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough.vertical:insensitive { + border-color: rgba(26, 29, 31, 0); + background-color: rgba(26, 29, 31, 0); + box-shadow: none; } + .scale.trough:insensitive:backdrop, .scale.trough.vertical:insensitive:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.trough:insensitive:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.trough.vertical:insensitive:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough:insensitive:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough.vertical:insensitive:backdrop { + background-color: rgba(26, 29, 31, 0); + border-color: rgba(26, 29, 31, 0); } + .scale.trough:backdrop, + .scale.scale-has-marks-above.scale-has-marks-below.trough:backdrop, + .scale.vertical.scale-has-marks-above.scale-has-marks-below.trough:backdrop { + background-color: rgba(49, 54, 59, 0.3); + border-color: rgba(49, 54, 59, 0.3); } + +/************** + * Scrollbars * + **************/ +.scrollbar { + -GtkRange-trough-border: 0; + -GtkScrollbar-has-backward-stepper: true; + -GtkScrollbar-has-forward-stepper: true; + -GtkRange-slider-width: 20; + -GtkScrollbar-min-slider-length: 64; + -GtkRange-stepper-spacing: 0; + -GtkRange-trough-under-steppers: 1; } + .scrollbar .button { + color: #31363b; } + .scrollbar .button:hover { + color: #93cee9; } + .scrollbar .button:insensitive { + color: rgba(26, 29, 31, 0.35); } + .scrollbar .button:backdrop { + color: #31363b; } + .scrollbar .button:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); } + .scrollbar.dragging, .scrollbar.hovering { + opacity: 0.9910; } + .scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + opacity: 0.999; } + .scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + -GtkRange-slider-width: 8px; + -GtkScrollbar-has-backward-stepper: false; + -GtkScrollbar-has-forward-stepper: false; } + .scrollbar.overlay-indicator:not(.dragging):not(.hovering) .slider { + margin: 2px; + border: 2px solid transparent; + border-radius: 2px; + background-color: rgba(49, 54, 59, 0.5); } + .scrollbar.overlay-indicator:not(.dragging):not(.hovering) .slider:backdrop { + background-color: rgba(49, 54, 59, 0.5); } + .scrollbar.overlay-indicator:not(.dragging):not(.hovering) .trough { + border: none; + background: none; } + .scrollbar.trough { + border-image: -gtk-scaled(url("assets/scrollbar-trough-vertical.png"), url("assets/scrollbar-trough-vertical@2.png")) 23 10 23 10/23px 10px 23px 10px stretch; + border-width: 23px 10px 23px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.trough.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-trough-horizontal.png"), url("assets/scrollbar-trough-horizontal@2.png")) 10 23 10 23/10px 23px 10px 23px stretch; + border-width: 10px 23px 10px 23px; + border-style: solid; + border-color: transparent; } + .scrollbar.trough:backdrop { + border-image: -gtk-scaled(url("assets/scrollbar-trough-vertical-backdrop.png"), url("assets/scrollbar-trough-vertical-backdrop@2.png")) 23 10 23 10/23px 10px 23px 10px stretch; + border-width: 23px 10px 23px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.trough:backdrop.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-trough-horizontal-backdrop.png"), url("assets/scrollbar-trough-horizontal-backdrop@2.png")) 10 23 10 23/10px 23px 10px 23px stretch; + border-width: 10px 23px 10px 23px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider { + border-image: -gtk-scaled(url("assets/scrollbar-slider-vertical.png"), url("assets/scrollbar-slider-vertical@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-slider-horizontal.png"), url("assets/scrollbar-slider-horizontal@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:hover { + border-image: -gtk-scaled(url("assets/scrollbar-slider-vertical-hover.png"), url("assets/scrollbar-slider-vertical-hover@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:hover.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-slider-horizontal-hover.png"), url("assets/scrollbar-slider-horizontal-hover@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:active { + border-image: -gtk-scaled(url("assets/scrollbar-slider-vertical-active.png"), url("assets/scrollbar-slider-vertical-active@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:active.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-slider-horizontal-active.png"), url("assets/scrollbar-slider-horizontal-active@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:insensitive { + border-image: -gtk-scaled(url("assets/scrollbar-slider-vertical-insensitive.png"), url("assets/scrollbar-slider-vertical-insensitive@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:insensitive.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-slider-horizontal-insensitive.png"), url("assets/scrollbar-slider-horizontal-insensitive@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:backdrop { + border-image: -gtk-scaled(url("assets/scrollbar-slider-vertical-backdrop.png"), url("assets/scrollbar-slider-vertical-backdrop@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + .scrollbar.slider:backdrop.horizontal { + border-image: -gtk-scaled(url("assets/scrollbar-slider-horizontal-backdrop.png"), url("assets/scrollbar-slider-horizontal-backdrop@2.png")) 10 10 10 10/10px 10px 10px 10px stretch; + border-width: 10px 10px 10px 10px; + border-style: solid; + border-color: transparent; } + +.scrollbars-junction, +.scrollbars-junction.frame { + border-color: transparent; + background-color: transparent; + border-image: none; } + +/*********** + * Sidebar * + ***********/ +.sidebar, +.sidebar .view { + border: none; + background-color: #eff0f1; } + .sidebar:backdrop, + .sidebar .view:backdrop { + background-color: #eff0f1; } + +GtkPlacesSidebar.sidebar .view:insensitive { + color: rgba(26, 29, 31, 0.35); } +GtkPlacesSidebar.sidebar .view:backdrop { + color: #31363b; } + GtkPlacesSidebar.sidebar .view:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); } +GtkPlacesSidebar.sidebar .view .image { + color: #31363b; } + GtkPlacesSidebar.sidebar .view .image:selected { + color: #eff0f1; } + GtkPlacesSidebar.sidebar .view .image:selected:backdrop { + color: #31363b; } + GtkPlacesSidebar.sidebar .view .image:insensitive { + color: rgba(26, 29, 31, 0.35); } + GtkPlacesSidebar.sidebar .view .image:backdrop { + color: #31363b; } + GtkPlacesSidebar.sidebar .view .image:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); } + +.sidebar-item { + padding: 10px 4px; } + .sidebar-item > .label { + padding-left: 6px; + padding-right: 6px; } + .sidebar-item.needs-attention > .label { + background-size: 6px 6px, 0 0; } + +/***************** + * GtkSpinButton * + *****************/ +.osd .spinbutton .button:last-child { + border-radius: 0 3px 3px 0; } +.osd .spinbutton .button:dir(rtl):first-child { + border-radius: 3px 0 0 3px; } +.spinbutton.vertical .button, .spinbutton.vertical:dir(rtl) .button { + padding-top: 5px; + padding-bottom: 5px; } + .spinbutton.vertical .button:first-child, .spinbutton.vertical:dir(rtl) .button:first-child { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .spinbutton.vertical .button:first-child:active, .spinbutton.vertical:dir(rtl) .button:first-child:active { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .spinbutton.vertical .button:first-child:hover, .spinbutton.vertical:dir(rtl) .button:first-child:hover { + color: #31363b; + border-color: #93cee9; } + .spinbutton.vertical .button:first-child:insensitive, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .spinbutton.vertical .button:first-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive > .label { + color: inherit; } + .spinbutton.vertical .button:first-child:backdrop, .spinbutton.vertical:dir(rtl) .button:first-child:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .spinbutton.vertical .button:last-child, .spinbutton.vertical:dir(rtl) .button:last-child { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + text-shadow: none; + icon-shadow: none; + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .spinbutton.vertical .button:last-child:active, .spinbutton.vertical:dir(rtl) .button:last-child:active { + color: #eff0f1; + border-color: #3daee9; + background-image: linear-gradient(to bottom, #45b1ea, #25a4e6); } + .spinbutton.vertical .button:last-child:hover, .spinbutton.vertical:dir(rtl) .button:last-child:hover { + color: #31363b; + border-color: #93cee9; } + .spinbutton.vertical .button:last-child:insensitive, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .spinbutton.vertical .button:last-child:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive > .label { + color: inherit; } + .spinbutton.vertical .button:last-child:backdrop, .spinbutton.vertical:dir(rtl) .button:last-child:backdrop { + color: #31363b; + border-color: #bfc1c3; + background-image: linear-gradient(to bottom, #f2f2f3, #e8e9ea); } + .spinbutton.vertical .button:backdrop:insensitive, .spinbutton.vertical:dir(rtl) .button:backdrop:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: linear-gradient(to bottom, rgba(214, 217, 219, 0.35), rgba(205, 208, 211, 0.35)); } + .spinbutton.vertical .button:backdrop:insensitive > .label, .spinbutton.vertical:dir(rtl) .button:backdrop:insensitive > .label { + color: inherit; } +.spinbutton.vertical.entry, .spinbutton.vertical:dir(rtl).entry { + border-radius: 0px; + padding-left: 0px; + padding-right: 0px; } +GtkTreeView .spinbutton.entry, GtkTreeView .spinbutton.entry:focus { + padding: 1px; + border-width: 1px 0; + border-color: #3daee9; + border-radius: 0; + box-shadow: none; } + +.spinbutton .button, .osd .spinbutton .button { + background-image: none; + background-color: transparent; + border-style: none none none solid; + border-color: rgba(191, 193, 195, 0.3); + color: #31363b; + border-radius: 0; + box-shadow: none; } + .spinbutton .button:dir(rtl) { + border-style: none solid none none; } + .spinbutton .button:hover { + color: #93cee9; } + .spinbutton .button:insensitive { + color: rgba(26, 29, 31, 0.35); + border-color: rgba(165, 168, 170, 0); } + .spinbutton .button:active { + color: #3daee9; } + .spinbutton .button:backdrop { + color: #31363b; + border-color: rgba(191, 193, 195, 0.3); + background-color: transparent; } + .spinbutton .button:backdrop:insensitive { + background-image: none; + color: rgba(26, 29, 31, 0.35); + border-style: none none none solid; + border-color: rgba(165, 168, 170, 0); } + .spinbutton .button:backdrop:insensitive:dir(rtl) { + border-style: none solid none none; } + +.spinbutton.vertical .button:first-child, .spinbutton.vertical:dir(rtl) .button:first-child, .spinbutton.vertical .button:first-child:active, .spinbutton.vertical:dir(rtl) .button:first-child:active, .spinbutton.vertical .button:first-child:hover, .spinbutton.vertical:dir(rtl) .button:first-child:hover, .spinbutton.vertical .button:first-child:insensitive, .spinbutton.vertical:dir(rtl) .button:first-child:insensitive, .spinbutton.vertical .button:first-child:backdrop, .spinbutton.vertical:dir(rtl) .button:first-child:backdrop { + border-radius: 3px 3px 0 0; + border-style: solid solid none solid; } + +.spinbutton.vertical .button:last-child, .spinbutton.vertical:dir(rtl) .button:last-child, .spinbutton.vertical .button:last-child:active, .spinbutton.vertical:dir(rtl) .button:last-child:active, .spinbutton.vertical .button:last-child:hover, .spinbutton.vertical:dir(rtl) .button:last-child:hover, .spinbutton.vertical .button:last-child:insensitive, .spinbutton.vertical:dir(rtl) .button:last-child:insensitive, .spinbutton.vertical .button:last-child:backdrop, .spinbutton.vertical:dir(rtl) .button:last-child:backdrop { + border-radius: 0 0 3px 3px; + border-style: none solid solid solid; } + +/********** + * Switch * + **********/ +GtkSwitch { + -GtkSwitch-slider-width: 30px; + font-weight: bold; + font-size: smaller; + outline-offset: 0px; + box-shadow: none; } + GtkSwitch.trough { + border: 1px solid #bfc1c3; + border-radius: 3px; + color: #bfc1c3; + background-image: none; + background-color: transparent; + text-shadow: none; } + GtkSwitch.trough:active { + color: #3daee9; + border-color: #3daee9; + box-shadow: none; + text-shadow: none; } + GtkSwitch.trough:active:hover { + border-color: #93cee9; } + GtkSwitch.trough:hover { + border-color: #93cee9; } + GtkSwitch.trough:insensitive { + color: rgba(165, 168, 170, 0.35); + border-color: rgba(165, 168, 170, 0.35); + background-image: none; + box-shadow: none; + text-shadow: none; } + GtkSwitch.trough:backdrop { + color: #bfc1c3; + border-color: #bfc1c3; } + GtkSwitch.trough:backdrop:insensitive { + color: rgba(165, 168, 170, 0.35); + border-color: rgba(165, 168, 170, 0.35); } + GtkSwitch.slider { + padding: 3px; + border: 3px solid; + border-radius: 2px; + border-color: rgba(255, 255, 255, 0); + box-shadow: none; + background-color: #bfc1c3; } + GtkSwitch.slider:hover { + box-shadow: none; } + GtkSwitch.slider:active { + background-color: #3daee9; } + GtkSwitch.slider:active:hover { + background-color: #93cee9; } + GtkSwitch.slider:insensitive { + background-color: rgba(165, 168, 170, 0.35); } + GtkSwitch.slider:backdrop { + background-color: #bfc1c3; } + GtkSwitch.slider:backdrop:insensitive { + background-color: rgba(165, 168, 170, 0.35); } + .header-bar GtkSwitch.trough:backdrop { + border-color: #bdc3c7; + color: #bdc3c7; } + .header-bar GtkSwitch.slider:backdrop { + background-color: #bdc3c7; } + +/************ + * Toolbars * + ************/ +.toolbar, .inline-toolbar, .search-bar, .location-bar, +.primary-toolbar { + -GtkWidget-window-dragging: true; + padding: 4px; + background-color: #eff0f1; } + .toolbar:backdrop, .inline-toolbar:backdrop, .search-bar:backdrop, .location-bar:backdrop, + .primary-toolbar:backdrop { + background-color: #eff0f1; + box-shadow: none; } + .osd .toolbar, .osd .inline-toolbar, .osd .search-bar, .osd .location-bar, .toolbar.osd, .osd.inline-toolbar, .osd.search-bar, .osd.location-bar, .osd + .primary-toolbar, + .primary-toolbar.osd { + padding: 13px; + border: none; + border-radius: 3px; + background-color: #eff0f1; } + .osd .toolbar:backdrop, .osd .inline-toolbar:backdrop, .osd .search-bar:backdrop, .osd .location-bar:backdrop, .toolbar.osd:backdrop, .osd.inline-toolbar:backdrop, .osd.search-bar:backdrop, .osd.location-bar:backdrop, .osd + .primary-toolbar:backdrop, + .primary-toolbar.osd:backdrop { + border-color: #bfc1c3; + background-color: #eff0f1; + box-shadow: none; } + +.inline-toolbar { + border-width: 0px 0px 1px 0px; + padding: 3px; + border-radius: 0; } + +.search-bar, .location-bar { + border-width: 0px 0px 1px 0px; + padding: 3px; } + +.inline-toolbar, .search-bar, .location-bar { + border-style: solid; + border-color: #bfc1c3; + text-shadow: none; + background-color: #eff0f1; } + +/************ + * Tooltips * + ************/ +.tooltip { + color: #eff0f1; + padding: 4px; + /* not working */ + border-radius: 5px; + box-shadow: none; + text-shadow: none; } + .tooltip.background { + background-color: #31363b; + background-clip: padding-box; } + .tooltip.window-frame.csd { + background-color: transparent; } + +.tooltip * { + padding: 4px; + background-color: transparent; + color: inherit; } + +/************** + * Tree Views * + **************/ +GtkTreeView.view { + -GtkTreeView-grid-line-width: 0; + -GtkTreeView-grid-line-pattern: ''; + -GtkTreeView-tree-line-width: 1; + -GtkTreeView-tree-line-pattern: ''; + -GtkTreeView-expander-size: 16; + border-left-color: #bfc1c3; + border-top-color: transparent; } + GtkTreeView.view:selected { + border-radius: 0; } + GtkTreeView.view:selected { + background-color: #3daee9; + border-left-color: #eff0f1; + border-top-color: #eff0f1; } + GtkTreeView.view:backdrop:selected { + background-color: rgba(61, 174, 233, 0.5); + border-left-color: #eff0f1; + border-top-color: #eff0f1; } + GtkTreeView.view:insensitive { + color: rgba(165, 168, 170, 0.35); } + GtkTreeView.view:insensitive:selected { + color: rgba(212, 214, 217, 0.35); } + GtkTreeView.view:insensitive:selected:backdrop { + color: rgba(212, 214, 217, 0.35); } + GtkTreeView.view:insensitive:backdrop { + color: rgba(165, 168, 170, 0.35); } + GtkTreeView.view.seperator { + color: #bfc1c3; } + GtkTreeView.view.separator:backdrop { + color: #bfc1c3; } + GtkTreeView.view:backdrop { + border-left-color: #bfc1c3; } + GtkTreeView.view.dnd { + border-style: solid none; + border-width: 1px; + border-color: #93cee9; } + GtkTreeView.view.expander { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); + color: #31363b; } + GtkTreeView.view.expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + GtkTreeView.view.expander:hover { + color: #93cee9; } + GtkTreeView.view.expander:selected { + color: #eff0f1; } + GtkTreeView.view.expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + GtkTreeView.view.expander:checked:selected { + color: #eff0f1; } + GtkTreeView.view.expander:checked:backdrop { + color: #fcfcfc; } + GtkTreeView.view.expander:backdrop { + color: #fcfcfc; } + +column-header .button { + color: #31363b; + background-color: #eff0f1; + text-shadow: none; + box-shadow: none; } + column-header .button:hover { + color: #31363b; + background-color: rgba(147, 206, 233, 0.5); + box-shadow: none; + transition: none; } + column-header .button:active { + color: #31363b; + background-color: rgba(147, 206, 233, 0.5); + transition: none; } +column-header:last-child .button, column-header:last-child .button:backdrop, column-header:last-child.button, column-header:last-child.button:backdrop { + border-right-style: none; } + +column-header.button.dnd, column-header .button.dnd, column-header.button.dnd:active, column-header.button.dnd:selected, column-header.button.dnd:hover { + transition: none; + color: #3daee9; + box-shadow: none; } + +column-header .button, column-header .button:hover, column-header .button:active { + padding: 6px; + border-style: none solid solid none; + border-radius: 0; + background-image: none; + border-color: #bfc1c3; + text-shadow: none; } + column-header .button:insensitive { + border-color: rgba(165, 168, 170, 0.35); + color: rgba(26, 29, 31, 0.35); + background-color: rgba(212, 214, 217, 0.35); + background-image: none; } + column-header .button:backdrop { + border-color: #bfc1c3; + border-style: none solid solid none; + color: #31363b; + background-image: none; + background-color: #eff0f1; } + column-header .button:backdrop:insensitive { + border-color: rgba(165, 168, 170, 0.35); + background-image: none; + background-color: rgba(212, 214, 217, 0.35); + color: rgba(26, 29, 31, 0.35); } + +/********************** + * Window Decorations * + *********************/ +.window-frame { + border: 1px solid transparent; + border-radius: 3px; + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); + /* this is used for the resize cursor area */ + margin: 10px; } + .window-frame:backdrop { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); } + .window-frame.tiled { + border-radius: 0; } + .window-frame.popup { + border-radius: 3px; + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1); } + .window-frame.ssd { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.1); } + .window-frame.csd { + border-radius: 3px; } + .window-frame.csd.popup { + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1); } + .window-frame.csd.tooltip { + box-shadow: none; } + .window-frame.csd.message-dialog { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); } + .window-frame.solid-csd { + border-radius: 3px; + margin: 4px; + background-color: #eff0f1; + border: solid 1px #bfc1c3; + box-shadow: none; } + +.header-bar .button.titlebutton, +.titlebar .button.titlebutton { + padding: 0px; } + .header-bar .button.titlebutton:hover, .header-bar .button.titlebutton:active, .header-bar .button.titlebutton:checked, .header-bar .button.titlebutton:backdrop, .header-bar .button.titlebutton:active:hover, + .titlebar .button.titlebutton:hover, + .titlebar .button.titlebutton:active, + .titlebar .button.titlebutton:checked, + .titlebar .button.titlebutton:backdrop, + .titlebar .button.titlebutton:active:hover { + transition: none; } + .header-bar .button.titlebutton.close, + .titlebar .button.titlebutton.close { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url("assets/titlebutton-close.png"), url("assets/titlebutton-close@2.png")); } + .header-bar .button.titlebutton.close:hover, + .titlebar .button.titlebutton.close:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-close-hover.png"), url("assets/titlebutton-close-hover@2.png")); } + .header-bar .button.titlebutton.close:active, + .titlebar .button.titlebutton.close:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-close-active.png"), url("assets/titlebutton-close-active@2.png")); } + .header-bar .button.titlebutton.close:backdrop, + .titlebar .button.titlebutton.close:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-close-backdrop.png"), url("assets/titlebutton-close-backdrop@2.png")); } + .header-bar .button.titlebutton.maximize, + .titlebar .button.titlebutton.maximize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url("assets/titlebutton-maximize.png"), url("assets/titlebutton-maximize@2.png")); } + .header-bar .button.titlebutton.maximize:hover, + .titlebar .button.titlebutton.maximize:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-hover.png"), url("assets/titlebutton-maximize-hover@2.png")); } + .header-bar .button.titlebutton.maximize:active, + .titlebar .button.titlebutton.maximize:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-active.png"), url("assets/titlebutton-maximize-active@2.png")); } + .header-bar .button.titlebutton.maximize:backdrop, + .titlebar .button.titlebutton.maximize:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-backdrop.png"), url("assets/titlebutton-maximize-backdrop@2.png")); } + .header-bar .button.titlebutton.minimize, + .titlebar .button.titlebutton.minimize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url("assets/titlebutton-minimize.png"), url("assets/titlebutton-minimize@2.png")); } + .header-bar .button.titlebutton.minimize:hover, + .titlebar .button.titlebutton.minimize:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-minimize-hover.png"), url("assets/titlebutton-minimize-hover@2.png")); } + .header-bar .button.titlebutton.minimize:active, + .titlebar .button.titlebutton.minimize:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-minimize-active.png"), url("assets/titlebutton-minimize-active@2.png")); } + .header-bar .button.titlebutton.minimize:backdrop, + .titlebar .button.titlebutton.minimize:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-minimize-backdrop.png"), url("assets/titlebutton-minimize-backdrop@2.png")); } + +.maximized .header-bar .button.titlebutton.maximize, .maximized +.titlebar .button.titlebutton.maximize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-maximized.png"), url("assets/titlebutton-maximize-maximized@2.png")); } +.maximized .header-bar .button.titlebutton.maximize:hover, .maximized +.titlebar .button.titlebutton.maximize:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-maximized-hover.png"), url("assets/titlebutton-maximize-maximized-hover@2.png")); } +.maximized .header-bar .button.titlebutton.maximize:active, .maximized +.titlebar .button.titlebutton.maximize:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-maximized-active.png"), url("assets/titlebutton-maximize-maximized-active@2.png")); } +.maximized .header-bar .button.titlebutton.maximize:backdrop, .maximized +.titlebar .button.titlebutton.maximize:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url("assets/titlebutton-maximize-maximized-backdrop.png"), url("assets/titlebutton-maximize-maximized-backdrop@2.png")); } + +.header-bar.selection-mode .button.titlebutton, +.titlebar.selection-mode .button.titlebutton { + text-shadow: none; } + .header-bar.selection-mode .button.titlebutton:backdrop, + .titlebar.selection-mode .button.titlebutton:backdrop { + icon-shadow: none; } + +/*# sourceMappingURL=gtk.css.map */ diff --git a/Breeze-gtk/src/gtk3/gtk.css.map b/Breeze-gtk/src/gtk3/gtk.css.map new file mode 100644 index 0000000..f413406 --- /dev/null +++ b/Breeze-gtk/src/gtk3/gtk.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["_colors.scss","widgets/_base.scss","_functions.scss","_global.scss","widgets/_button.scss","widgets/_entry.scss","widgets/_app_notifications.scss","widgets/_calendar.scss","widgets/_checkboxes.scss","widgets/_color_chooser.scss","widgets/_dialogs.scss","widgets/_headerbar.scss","widgets/_infobar.scss","widgets/_link.scss","widgets/_lists.scss","widgets/_menus.scss","widgets/_misc.scss","widgets/_notebook.scss","widgets/_overshoot.scss","widgets/_pathbar.scss","widgets/_progressbar.scss","widgets/_scale.scss","widgets/_scrollbar.scss","widgets/_sidebar.scss","widgets/_spinbutton.scss","widgets/_switch.scss","widgets/_toolbar.scss","widgets/_tooltips.scss","widgets/_treeview.scss","widgets/_window_decorations.scss"], +"names": [], +"file": "gtk.css" +} diff --git a/Breeze-gtk/src/gtk3/gtk.gresource b/Breeze-gtk/src/gtk3/gtk.gresource new file mode 100644 index 0000000..8d97886 Binary files /dev/null and b/Breeze-gtk/src/gtk3/gtk.gresource differ diff --git a/Breeze-gtk/src/gtk3/gtk.gresource.xml b/Breeze-gtk/src/gtk3/gtk.gresource.xml new file mode 100644 index 0000000..f0ae1e6 --- /dev/null +++ b/Breeze-gtk/src/gtk3/gtk.gresource.xml @@ -0,0 +1,88 @@ + + + + assets/checkbox-checked.png + assets/checkbox-checked-hover.png + assets/checkbox-checked-active.png + assets/checkbox-checked-insensitive.png + assets/checkbox-checked-backdrop.png + assets/checkbox-checked-backdrop-insensitive.png + assets/checkbox-mixed.png + assets/checkbox-mixed-hover.png + assets/checkbox-mixed-active.png + assets/checkbox-mixed-insensitive.png + assets/checkbox-mixed-backdrop.png + assets/checkbox-mixed-backdrop-insensitive.png + assets/checkbox-unchecked.png + assets/checkbox-unchecked-hover.png + assets/checkbox-unchecked-active.png + assets/checkbox-unchecked-insensitive.png + assets/checkbox-unchecked-backdrop.png + assets/checkbox-unchecked-backdrop-insensitive.png + assets/radio-unchecked.png + assets/radio-unchecked-hover.png + assets/radio-unchecked-active.png + assets/radio-unchecked-insensitive.png + assets/radio-unchecked-backdrop.png + assets/radio-unchecked-backdrop-insensitive.png + assets/radio-checked.png + assets/radio-checked-hover.png + assets/radio-checked-active.png + assets/radio-checked-insensitive.png + assets/radio-checked-backdrop.png + assets/radio-checked-backdrop-insensitive.png + assets/radio-mixed.png + assets/radio-mixed-hover.png + assets/radio-mixed-active.png + assets/radio-mixed-insensitive.png + assets/radio-mixed-backdrop.png + assets/radio-mixed-backdrop-insensitive.png + assets/selected-checkbox-checked.png + assets/selected-checkbox-unchecked.png + assets/selected-checkbox-mixed.png + assets/selected-radio-checked.png + assets/selected-radio-unchecked.png + assets/selected-radio-mixed.png + assets/checkbox-selectionmode-checked.png + assets/checkbox-selectionmode-checked-hover.png + assets/checkbox-selectionmode-checked-active.png + assets/checkbox-selectionmode-checked-backdrop.png + assets/checkbox-selectionmode-unchecked.png + assets/checkbox-selectionmode-unchecked-hover.png + assets/checkbox-selectionmode-unchecked-active.png + assets/checkbox-selectionmode-unchecked-backdrop.png + assets/scrollbar-slider-horizontal.png + assets/scrollbar-slider-horizontal-hover.png + assets/scrollbar-slider-horizontal-active.png + assets/scrollbar-slider-horizontal-insensitive.png + assets/scrollbar-slider-horizontal-backdrop.png + assets/scrollbar-slider-horizontal-backdrop-insensitive.png + assets/scrollbar-slider-vertical.png + assets/scrollbar-slider-vertical-hover.png + assets/scrollbar-slider-vertical-active.png + assets/scrollbar-slider-vertical-insensitive.png + assets/scrollbar-slider-vertical-backdrop.png + assets/scrollbar-slider-vertical-backdrop-insensitive.png + assets/scrollbar-trough-horizontal.png + assets/scrollbar-trough-horizontal-backdrop.png + assets/scrollbar-trough-vertical.png + assets/scrollbar-trough-vertical-backdrop.png + assets/titlebutton-close.png + assets/titlebutton-close-hover.png + assets/titlebutton-close-active.png + assets/titlebutton-close-backdrop.png + assets/titlebutton-maximize.png + assets/titlebutton-maximize-hover.png + assets/titlebutton-maximize-active.png + assets/titlebutton-maximize-backdrop.png + assets/titlebutton-maximize-maximized.png + assets/titlebutton-maximize-maximized-hover.png + assets/titlebutton-maximize-maximized-active.png + assets/titlebutton-maximize-maximized-backdrop.png + assets/titlebutton-minimize.png + assets/titlebutton-minimize-hover.png + assets/titlebutton-minimize-active.png + assets/titlebutton-minimize-backdrop.png + gtk.css + + diff --git a/Breeze-gtk/src/gtk3/gtk.scss b/Breeze-gtk/src/gtk3/gtk.scss new file mode 100755 index 0000000..0648ef7 --- /dev/null +++ b/Breeze-gtk/src/gtk3/gtk.scss @@ -0,0 +1,38 @@ +@import 'global'; +@import 'functions'; +@import 'colors'; + +@import "widgets/base"; +@import "widgets/button"; +@import "widgets/entry"; +//@import "widgets/combobox"; +@import "widgets/app_notifications"; +@import "widgets/calendar"; +@import "widgets/checkboxes"; +@import "widgets/color_chooser"; +@import "widgets/dialogs"; +//@import "widgets/expanders"; +//@import "widgets/frames"; +@import "widgets/headerbar"; +@import "widgets/infobar"; +//@import "widgets/levelbar"; +@import "widgets/link"; +@import "widgets/lists"; +@import "widgets/menus"; +@import "widgets/misc"; +@import "widgets/notebook"; +@import "widgets/overshoot"; +//@import "widgets/paned"; +@import "widgets/pathbar"; +//@import "widgets/popovers"; +@import "widgets/progressbar"; +@import "widgets/scale"; +@import "widgets/scrollbar"; +@import "widgets/sidebar"; +@import "widgets/spinbutton"; +//@import "widgets/spinner"; +@import "widgets/switch"; +@import "widgets/toolbar"; +@import "widgets/tooltips"; +@import "widgets/treeview"; +@import "widgets/window_decorations"; diff --git a/Breeze-gtk/src/gtk3/widgets/_app_notifications.scss b/Breeze-gtk/src/gtk3/widgets/_app_notifications.scss new file mode 100644 index 0000000..d68dff2 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_app_notifications.scss @@ -0,0 +1,43 @@ +/********************* + * App Notifications * + *********************/ + +.app-notification, +.app-notification.frame { + @extend %osd; + padding: 10px; + border-top-width: 0px; + border-radius: 0px 0px 3px 3px; + &:backdrop { background-image: none; } + .button { + @include button(normal); + &.flat { + @extend %undecorated_button; + icon-shadow: none; + text-shadow: none; + &:hover { + @extend %undecorated_button; + color: b_color(hover); + } + &:active { + @extend %undecorated_button; + color: b_color(active); + } + &:backdrop, + &:insensitive, + &:backdrop:insensitive { @extend %undecorated_button; } + } + &:hover { @include button(hover); } + &:active, + &:checked, + &:backdrop:active, + &:backdrop:checked { + @include button(active); + } + &:insensitive, + &:backdrop:insensitive { + @include button(insensitive); + } + &:backdrop { @include button(backdrop); } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_base.scss b/Breeze-gtk/src/gtk3/widgets/_base.scss new file mode 100644 index 0000000..ae99516 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_base.scss @@ -0,0 +1,201 @@ +@function gtkalpha($c,$a) { + @return unquote("alpha(#{$c},#{$a})"); +} + +$ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94); + +* { + padding: 0; + -GtkToolButton-icon-spacing: 4; + -GtkTextView-error-underline-color: $error_color; + + -GtkButton-child-displacement-x: 0; + -GtkButton-child-displacement-y: 0; + + -GtkCheckButton-indicator-size: 20; + -GtkCheckMenuItem-indicator-size: 20; + + // The size for scrollbars. The slider is 2px smaller, but we keep it + // up so that the whole area is sensitive to button presses for the + // slider. The stepper button is larger in both directions, the slider + // only in the width + + -GtkScrolledWindow-scrollbar-spacing: 0; + -GtkScrolledWindow-scrollbars-within-bevel: 1; + + -GtkToolItemGroup-expander-size: 11; + -GtkExpander-expander-size: 16; + -GtkTreeView-expander-size: 11; + + -GtkTreeView-horizontal-separator: 4; + + -GtkMenu-horizontal-padding: 0; + -GtkMenu-vertical-padding: 0; + + -GtkWidget-link-color: $link_color; + -GtkWidget-visited-link-color: $link_visited_color; + + -GtkWidget-focus-padding: 2; // FIXME: do we still need these? + -GtkWidget-focus-line-width: 1; // + + -GtkWidget-text-handle-width: 20; + -GtkWidget-text-handle-height: 20; + + -GtkDialog-button-spacing: 4; + -GtkDialog-action-area-border: 0; + + -GtkStatusbar-shadow-type: none; + + outline-width: 0px; +} + + +/*************** + * Base States * + ***************/ + +.background { + color: w_color(text); + background-color: w_color(normal); + + &:backdrop { + text-shadow: none; + icon-shadow: none; + color: backdrop(w_color(text)); + background-color: backdrop(w_color(normal)); + } +} + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Everytime a wildcard is used a kitten dies, painfully. +*/ + +*:insensitive { + -gtk-image-effect: dim; +} + +.gtkstyle-fallback { + background-color: w_color(normal); + color: w_color(text); + &:prelight { + background-color: lighten(w_color(normal), 10%); + color: w_color(text); + } + &:active { + background-color: darken(w_color(normal), 10%); + color: w_color(text); + } + &:insensitive { + background-color: insensitive(w_color(normal)); + color: insensitive(w_color(text)); + } + &:selected { + background-color: s_color(normal); + color: s_color(text); + } +} + +.view { + color: v_color(text); + background-color: v_color(normal); + + &:backdrop { + color: backdrop(v_color(text)); + background-color: backdrop(v_color(normal)); + } + + &:selected { + border-radius: $r; + @extend %selected_items; + } +} + +.rubberband { + border: 1px solid s_color(normal); + background-color: transparentize(s_color(normal),0.8); + &:backdrop { + border-color: backdrop(s_color(normal)); + background-color: backdrop(transparentize(s_color(normal),0.8)); + } +} + +.label { + &.separator { + color: w_color(text); + @extend .dim-label; + &:backdrop { color: backdrop(w_color(text)); } + } + &:selected, + &:selected:focus, + &:selected:hover { + @extend %selected_items; + } + &:insensitive { + color: insensitive(w_color(text)); + &:backdrop { color: backdrop(insensitive(w_color(text))); } + } +} + +.dim-label { + opacity: 0.5; + text-shadow: none; +} + +GtkAssistant { + .sidebar { + background-color: v_color(text); + border-top: 1px solid $border_color; + &:dir(ltr) { border-right: 1px solid $border_color; } + &:dir(rtl) { border-left: 1px solid $border_color; } + &:backdrop { + background-color: backdrop(v_color(text)); + border-color: backdrop($border_color); + } + } + &.csd .sidebar { border-top-style: none; } + .sidebar .label { + padding: 6px 12px; + } + .sidebar .label.highlight { + background-color: mix(v_color(normal), v_color(text), 80%); + } +} + +GtkTextView { // This will get overridden by .view, needed by gedit line numbers + background-color: mix(w_color(normal), v_color(normal), 50%); + &:backdrop { background-color: backdrop(mix(w_color(normal), v_color(normal), 50%)); } +} + +.grid-child { + padding: 3px; + border-radius: $r; + &:selected { + @extend %selected_items; + } +} + +%osd, .osd { + color: w_color(text); + border: 1px solid w_color(normal); + background-color: transparentize(w_color(normal),0.2); + background-clip: padding-box; + box-shadow: none; + text-shadow: none; + icon-shadow: none; + &:backdrop { + color: backdrop(w_color(text)); + background-color: backdrop(transparentize(w_color(normal),0.2)); + } +} + +%selected_items { + background-color: s_color(normal); + color: s_color(text); + &:backdrop { + background-color: backdrop(s_color(backdrop)); + color: backdrop(v_color(normal)); + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_button.scss b/Breeze-gtk/src/gtk3/widgets/_button.scss new file mode 100644 index 0000000..53fcf6a --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_button.scss @@ -0,0 +1,459 @@ + +// buttons + +@mixin button($t, $c:b_color(normal), $tc:b_color(text)) { +// +// Button drawing function +// +// $t: button type, +// $c: base button color for colored* types +// $tc: optional text color for colored* types +// $edge: set to none to not draw the bottom edge or specify a color to not +// use the default one +// +// possible $t values: +// normal, hover, active, insensitive, insensitive-active, +// backdrop, backdrop-active, backdrop-insensitive, backdrop-insensitive-active, +// osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated +// + + @if $t==normal { + // + // normal button + // + box-shadow: 1px 1px 1px rgba(0,0,0,0.2); + text-shadow: none; + icon-shadow: none; + + color: $tc; + border-color: if($c!=b_color(normal), $c, $border_color); + background-image: button_gradient($c, normal); + } + + @else if $t==hover { + // + // hovered button + // + color: $tc; + border-color: if($c!=b_color(normal), $c, b_color(hover)); + } + + @else if $t==active { + // + // pushed button + // + color: if($tc==b_color(text),b_color(active-text), $tc); + border-color: if($c!=b_color(normal), $c, b_color(active)); + background-image: if($c!=b_color(normal), button_gradient($c, active), + button_gradient(b_color(active),active)); + } + + @else if $t==active-hover { + // + // + // + color: $tc; + border-color: if($c!=b_color(normal), transparentize($c, 0.5), b_color(hover)); + background-image: if($c!=b_color(normal), button_gradient(transparentize($c, 0.5),active), + button_gradient(b_color(hover),active)); + } + + @else if $t==insensitive { + // + // insensitive button + // + color: if($tc!=b_color(text),insensitive($tc),insensitive(b_color(text))); + border-color: if($c!=b_color(normal), insensitive($c), insensitive($border_color)); + background-image: if($c!=b_color(normal), button_gradient(insensitive($c), normal), + button_gradient(insensitive(b_color(normal)), normal)); + > .label { color: inherit; } + } + + @else if $t==insensitive-active { + // + // insensitive pushed button + // + color: if($tc!=b_color(text), insensitive($tc), insensitive(b_color(active-text))); + border-color: insensitive(b_color(active)); + background-image: if($c!=b_color(normal), button_gradient(insensitive($c), active), + button_gradient(insensitive(b_color(active)),active)); + > .label { color: inherit; } + } + + @else if $t==backdrop { + // + // backdrop button + // + color: backdrop($tc); + border-color: backdrop($border_color); + background-image: button_gradient(backdrop($c), normal); + } + + @else if $t==backdrop-active { + // + // backdrop pushed button + // + color: if($tc!=b_color(text), backdrop($tc), backdrop(b_color(active-text))); + border-color: if($c!=b_color(normal), backdrop($c), backdrop(b_color(active))); + background-image: if($c!=b_color(normal), button_gradient(backdrop($c), active), + button_gradient(backdrop(b_color(active)),active)); + } + + @else if $t==backdrop-insensitive { + // + // backdrop insensitive button + // + color: backdrop(insensitive($tc)); + border-color: if($c!=b_color(normal), backdrop(insensitive($c)), backdrop(insensitive($border_color))); + background-image: button_gradient(backdrop(insensitive($c))); + > .label { color: inherit; } + } + + @else if $t==backdrop-insensitive-active { + // + // backdrop insensitive pushed button + // + color: if($c!=b_color(normal), backdrop(insensitive($tc)), backdrop(insensitive(b_color(active-text)))); + border-color: if($c!=b_color(normal), backdrop(insensitive($c)), backdrop(insensitive(b_color(active)))); + background-image: if($c!=b_color(normal), button_gradient(backdrop(insensitive($c)), active), + button_gradient(backdrop(insensitive(b_color(active))),active)); + > .label { color: inherit; } + } + + @else if $t==undecorated { + // + // reset + // + border-color: transparentize(white,1); //FIXME needed? + background-color: transparent; + background-image: none; + box-shadow:none; + color: $tc; + + text-shadow: none; + icon-shadow: none; + } +} + +/*********** + * Buttons * + ***********/ + +// stuff for .needs-attention +$_dot_color: b_color(active); +@keyframes needs_attention { + from { + background-image: -gtk-gradient(radial, + center center, 0, + center center, 0.01, + to($_dot_color), + to(transparent)); + } + to { + background-image: -gtk-gradient(radial, + center center, 0, + center center, 0.5, + to(s_color(normal)), + to(transparent)); + } +} + +%buttons { + + $_button_transition: all 200ms $ease-out-quad; + + border: 1px solid; + border-radius: $r; + padding: 6px; + background-clip: border-box; + transition: $_button_transition; + @include button(normal); + &.flat { + @include button(undecorated); + // to avoid adiacent buttons borders clashing when transitioning, the transition on the normal state is set + // to none, while it's added back in the hover state, so the button decoration will fade in on hover, but + // it won't fade out when the pointer leave the button allocation area. To make the transition more evident + // in this case the duration is increased. + transition: none; + &:hover { + transition: $_button_transition; + transition-duration: 500ms; + &:active { transition: $_button_transition; } + } + &:checked { background-color: $border_color;} + } + &:hover { + @include button(hover); + -gtk-image-effect: highlight; // Do we want this? + } + &:active, &:checked { + @include button(active); + transition-duration: 50ms; + &:hover { + @include button(active-hover); + } + } + &:backdrop { + @include button(backdrop); + -gtk-image-effect: none; + &:active, &:checked { + @include button(backdrop-active); + } + &:insensitive { + @include button(backdrop-insensitive); + } + &:insensitive:active, &:insensitive:checked { + @include button(backdrop-insensitive-active); + } + } + &.flat:backdrop { + -gtk-image-effect: none; + @include button(undecorated); + color: backdrop(b_color(text)); + } + &.flat:insensitive { + @include button(undecorated); + color: insensitive(b_color(text)); + } + &.flat:backdrop:insensitive { + @include button(undecorated); + color: backdrop(insensitive(b_color(text))); + } + &:insensitive { + @include button(insensitive); + &:active, &:checked { + @include button(insensitive-active); + } + } +} + +.button { + @extend %buttons; + &.osd { + @extend %buttons; + } + //overlay / OSD style + .osd & { + @extend %buttons; + } + + // Suggested and Destructive Action buttons + @each $b_type, $button_color in (suggested-action, b_color(active)), + (destructive-action, $error_color) { + &.#{$b_type}, + &.#{$b_type}.osd & { + @include button(normal, $button_color, b_color(active-text)); + &.flat { + @include button(undecorated); + color: $button_color; + } + &:hover { @include button(hover, $button_color, white); } //FIXME no hardcoded colors + &:active, &:checked { @include button(active, $button_color, white); } + &:backdrop, &.flat:backdrop { + @include button(backdrop, $button_color, white); + &:active, &:checked { + @include button(backdrop-active, $button_color, white); + } + &:insensitive { + @include button(backdrop-insensitive); + &:active, &:checked { + @include button(backdrop-insensitive-active, $button_color, white); + } + } + } + &.flat:backdrop, &.flat:insensitive, &.flat:backdrop:insensitive { + @include button(undecorated); + color: transparentize($button_color, 0.2); + } + &:insensitive { + @include button(insensitive); + &:active, &:checked { + @include button(insensitive-active, $button_color, white); + } + } + } + } + + &.image-button { padding: 6px; } + + &.text-button { + padding: 6px + } + + &.text-button.image-button { + // those buttons needs uneven horizontal padding, we want the icon side + // to have the image-button padding, while the text side the text-button + // one, so we're adding the missing padding to the label depending on + // its position inside the button + padding: 6px; // same as .button + .label:first-child { padding-left: 8px; } + .label:last-child { padding-right: 8px; } + } + + .stack-switcher > & { + // to position the needs attention dot, padding is added to the button + // child, a label needs just lateral padding while an icon needs vertical + // padding added too. + > .label { + padding-left: 6px; // label padding + padding-right: 6px; // + } + > GtkImage { + padding-left: 6px; // image padding + padding-right: 6px; // + padding-top: 3px; // + padding-bottom: 3px; // + } + &.text-button { + padding: 6px; // needed or it will get overridden + } + &.image-button { + // we want image buttons to have a 1:1 aspect ratio, so compensation + // of the padding added to the GtkImage is needed + padding: 3px 0px; + } + &.needs-attention > .label, + &.needs-attention > GtkImage { @extend %needs_attention; } + &.needs-attention:active > .label, + &.needs-attention:active > GtkImage, + &.needs-attention:checked > .label, + &.needs-attention:checked > GtkImage { + animation: none; + background-image: none; + } + } + + //inline-toolbar buttons + .inline-toolbar &, .inline-toolbar &:backdrop { + border-radius: $r; + border-width: 1px; + @extend %linked; + } + + .primary-toolbar & { icon-shadow: none; } + + .linked > &, + .linked > &:hover, + .linked > &:active, + .linked > &:checked, + .linked > &:backdrop { @extend %linked; } + + .linked.vertical > &, + .linked.vertical > &:hover, + .linked.vertical > &:active, + .linked.vertical > &:checked, + .linked.vertical > &:backdrop { @extend %linked_vertical; } +} + +/************** + * ComboBoxes * + **************/ +GtkComboBox { + > .button { padding: 5px 4px; } // Otherwise combos + // are bigger then + // buttons + -GtkComboBox-arrow-scaling: 0.5; + -GtkComboBox-shadow-type: none; + +// box-shadow: 0 1px $borders_edge; + + + &:insensitive { + color: insensitive(b_color(text)); + text-shadow: none; + icon-shadow: none; + } + &:backdrop { + color: backdrop(b_color(text)); + text-shadow: none; + icon-shadow: none; + } + &:backdrop:insensitive { + color: backdrop(insensitive(b_color(text))); + } + .menuitem { text-shadow: none; } + .separator.vertical { + // always disable separators + -GtkWidget-wide-separators: true; + } + &.combobox-entry .entry { @extend %linked; } + &.combobox-entry .button, &.combobox-entry .button:backdrop { + // It is needed to specify the backdrop button or it gets overridden + @extend %linked; + } +} + +%needs_attention { + animation: needs_attention 150ms ease-in; + $_dot_shadow: b_color(text); + $_dot_shadow_r: 0.5; + background-image: -gtk-gradient(radial, + center center, 0, + center center, 0.5, + to($_dot_color), + to(transparent)), + -gtk-gradient(radial, + center center, 0, + center center, $_dot_shadow_r, + to($_dot_shadow), + to(transparent)); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + background-position: right 3px, right 4px; + &:backdrop {background-size: 6px 6px, 0 0;} + &:dir(rtl) { + background-position: left 3px, left 4px; + } +} + +%linked_middle { + border-radius: $r; + &:dir(rtl) { + border-radius: $r; // needed when including %linked_middle:dir(rtl) + } +} + +%linked { + @extend %linked_middle; + &:first-child { + border-radius: $r; + border-style: solid; + } + &:last-child { + border-radius: $r; + &:dir(rtl) { } + } + &:only-child { + border-radius: $r; + border-style: solid; + } +} + +%linked_vertical_middle { + border-style: solid; + border-radius: $r; +} + +%linked_vertical{ + @extend %linked_vertical_middle; + &:first-child { + border-radius: $r; + } + &:last-child { + border-radius: $r; + border-style: solid; + } + &:only-child { + border-radius: $r; + border-style: solid; + } +} + +%undecorated_button { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow:none; + text-shadow: none; + icon-shadow: none; +} diff --git a/Breeze-gtk/src/gtk3/widgets/_calendar.scss b/Breeze-gtk/src/gtk3/widgets/_calendar.scss new file mode 100644 index 0000000..24159c3 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_calendar.scss @@ -0,0 +1,57 @@ +/************ + * Calendar * + ***********/ +GtkCalendar { + color: v_color(text); + border: 1px solid $border_color; + background-color: v_color(normal); + &:selected { + background-color: $border_color; + } + + &.header { + border: 1px solid $border_color; + border-radius: 0; + color: v_color(text); + + &:backdrop { + color: backdrop(v_color(text)); + border-color: backdrop($border_color); + } + } + + &.button { + @extend %undecorated_button; + color: b_color(text); + + &:hover { + @extend %undecorated_button; + color: b_color(hover); + } + &:active { + @extend %undecorated_button; + color: b_color(active); + } + &:backdrop { + @extend %undecorated_button; + color: backdrop(b_color(text)); + } + } + + &:inconsistent, + &.highlight { + color: transparentize(v_color(text),0.5); + } + + &:inconsistent:backdrop, + &.highlight:backdrop { + color: backdrop(transparentize(v_color(text),0.5)); + } + + + &:backdrop { + color: backdrop(v_color(text)); + border-color: backdrop($border_color); + background-color: backdrop(v_color(normal)); + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_checkboxes.scss b/Breeze-gtk/src/gtk3/widgets/_checkboxes.scss new file mode 100644 index 0000000..8bf20ad --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_checkboxes.scss @@ -0,0 +1,100 @@ +/************************* + * Check and Radio items * + *************************/ + +// draw regular check and radio items using our PNG assets +// all assets are rendered from assets.svg. never add pngs directly + +@each $w,$a in ('check', 'checkbox'), + ('radio','radio') { + + //standard checks and radios + @each $s,$as in ('','-unchecked'), + (':hover', '-unchecked-hover'), + (':active', '-unchecked-active'), + (':insensitive','-unchecked-insensitive'), + (':backdrop', '-unchecked-backdrop'), + (':backdrop:insensitive', '-unchecked-backdrop-insensitive'), + (':inconsistent', '-mixed'), + (':inconsistent:hover', '-mixed-hover'), + (':inconsistent:selected', '-mixed-active'), + (':inconsistent:backdrop', '-mixed-backdrop'), + (':inconsistent:insensitive', '-mixed-insensitive'), + (':inconsistent:insensitive:backdrop', '-mixed-backdrop-insensitive'), + (':checked', '-checked'), + (':checked:insensitive','-checked-insensitive'), + (':checked:hover', '-checked-hover'), + (':checked:active', '-checked-active'), + (':backdrop:checked', '-checked-backdrop'), + (':backdrop:checked:insensitive', '-checked-backdrop-insensitive') { + .#{$w}#{$s} { + -gtk-icon-source: -gtk-scaled(url("assets/#{$a}#{$as}.png"), url("assets/#{$a}#{$as}@2.png")); + icon-shadow: none; + } + } + @each $ms, $ma in ('', '-unchecked'), + (':active', '-checked'), + (':checked', '-checked'), + (':inconsistent','-mixed') { + + .view.#{$w}#{$ms}:selected, + .list-row:selected .#{$w}#{$ms} { + -gtk-icon-source: -gtk-scaled(url("assets/selected-#{$a}#{$ma}.png"), url("assets/selected-#{$a}#{$ma}@2.png")); + } + + .menu .menuitem.#{$w}#{$ms}, + .popover .button.flat.#{$w}#{$ms} { + + -gtk-icon-source: -gtk-scaled(url("assets/#{$a}#{$ma}.png"), url("assets/#{$a}#{$ma}-unchecked@2.png")); + icon-shadow: none; + &:hover { + -gtk-icon-source: -gtk-scaled(url("assets/selected-#{$a}#{$ma}.png"), url("assets/selected-#{$a}#{$ma}@2.png")); + } + &:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/#{$a}#{$ma}-insensitive.png"), url("assets/#{$a}#{$ma}-insensitive@2.png")); + } + &:backdrop { + -gtk-icon-source: -gtk-scaled(url("assets/#{$a}#{$ma}-backdrop.png"), url("assets/#{$a}#{$ma}-backdrop@2.png")); + } + &:backdrop:insensitive { + -gtk-icon-source: -gtk-scaled(url("assets/#{$a}#{$ma}-backdrop-insensitive.png"), url("assets/#{$a}#{$ma}-backdrop-insensitive@2.png")); + } + } + } +} + +//treeview and list-rows +.view.check, .view.radio, +.list-row .check, list-row .radio { + icon-shadow: none; + &:selected, &:hover { icon-shadow: none; } +} + +//selection-mode +@each $s,$as in ('','-unchecked'), + (':hover', '-unchecked-hover'), + (':active', '-unchecked-active'), + (':backdrop', '-unchecked-backdrop'), + (':checked', '-checked'), + (':checked:hover', '-checked-hover'), + (':checked:active', '-checked-active'), + (':backdrop:checked', '-checked-backdrop') { + .view.content-view.check#{$s} { + icon-shadow: none; + -gtk-icon-source: -gtk-scaled(url("assets/checkbox-selectionmode#{$as}.png"), + url("assets/checkbox-selectionmode#{$as}@2.png")); + background-color: transparent; + } +} + +GtkCheckButton.text-button, GtkRadioButton.text-button { + // this is for a nice focus on check and radios text + padding: 1px 2px 4px; + outline-offset: 0; + &:insensitive, + &:insensitive:active, + &:insensitive:inconsistent { + color: insensitive(b_color(text)); + &:backdrop { color: backdrop(insensitive(b_color(text))); } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_color_chooser.scss b/Breeze-gtk/src/gtk3/widgets/_color_chooser.scss new file mode 100644 index 0000000..1951403 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_color_chooser.scss @@ -0,0 +1,96 @@ +/***************** + * Color Chooser * + *****************/ + +GtkColorSwatch { +// take care of colorswatches on selected elements + :selected & { + box-shadow: none; + &.overlay, &.overlay:hover { + border-color: s_color(text); + } + } + + &:selected { box-shadow: none; } + + &.top, + &.bottom, + &.left, &:first-child:not(.overlay):not(.top), + &.right, &:last-child:not(.overlay):not(.bottom), + &:only-child:not(.overlay), + &.top > .overlay, + &.bottom > .overlay, + &:first-child:not(.top) > .overlay, + &:last-child:not(.bottom) > .overlay, + &:only-child > .overlay { border-radius: $r; } + + // hover effect + &:hover, + &:hover:selected { + background-image: linear-gradient(135deg, transparentize(white, 0.3), + transparentize(white, 1) 50%); + box-shadow: inset 0 1px transparentize(white, 0.6); + &.color-dark { // swatches with colors with luminosity lower than 50% get the color-dark class + background-image: linear-gradient(135deg, transparentize(white, 0.5), + transparentize(white, 1) 50%); + } + } + &:backdrop, + &:backdrop:selected + &.color-dark:backdrop, + &.color-dark:backdrop:selected { + background-image: none; + box-shadow: none; + } + + // no hover effect for the colorswatch in the color editor + GtkColorEditor & { + border-radius: $r; // same radius as the entry + &:hover { + background-image: none; + box-shadow: none; + } + &:backdrop { box-shadow: none; } + } + + // indicator and keynav outline colors + &.color-dark { + color: white; + outline-color: transparentize(black, 0.7); + &:backdrop { color: transparentize(white, 0.7); } + } + &.color-light { + color: black; + outline-color: transparentize(white, 0.5); + &:backdrop { color: transparentize(black, 0.7); } + } + + // border color + &.overlay, + &.overlay:selected { + border: 1px solid $border_color; + &:hover { border-color: b_color(hover); } + } + + // make the add color button looks like, well, a button + &#add-color-button { + border-style: solid; // the borders are drawn by the overlay for standard colorswatches to have them semi + border-width: 1px; // translucent on the colored background, here it's not necessary so they need to be set + @include button(normal); + &:hover { @include button(hover); } + &:backdrop { @include button(backdrop); } + .overlay { @include button(undecorated); } // reset the overlay to not cover the button style underneat + } +} + +GtkColorButton.button { + padding: 5px; // Uniform padding on the GtkColorButton + + GtkColorSwatch:first-child:last-child { // :first-child:last-child for a specificity bump, it gets overridden by the + // colorpicker style, otherwise + border-radius: 0; + box-shadow: none; + &:insensitive, + &:backdrop { box-shadow: none; } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_dialogs.scss b/Breeze-gtk/src/gtk3/widgets/_dialogs.scss new file mode 100644 index 0000000..3a8f590 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_dialogs.scss @@ -0,0 +1,34 @@ +/*********** + * Dialogs * + ***********/ + +// .message-dialog .dialog-action-area .button { +// //padding: 8px; +// } + +.message-dialog { // Message Dialog styling + -GtkDialog-button-spacing: 8; + -GtkDialog-action-area-border: 8; + &.background { background-color: w_color(normal); } + &:backdrop { background-color: backdrop(w_color(normal))} + .titlebar { + box-shadow: none; + } +} + +GtkFileChooserDialog { + .search-bar { + background-color: w_color(normal); + border-color: w_color(normal); + box-shadow: none; + &:backdrop { + background-color: backdrop(w_color(normal)); + border-color: backdrop(w_color(normal)); + color: backdrop(w_color(text)); + } + } + .dialog-action-box { + border-top: 1px solid $border_color; + &:backdrop { border-top-color: backdrop($border_color); } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_entry.scss b/Breeze-gtk/src/gtk3/widgets/_entry.scss new file mode 100644 index 0000000..e4c7707 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_entry.scss @@ -0,0 +1,117 @@ +@mixin entry($t, $fc:v_color(active)) { +// +// Entries drawing function +// +// $t: entry type +// $fc: focus color +// $edge: set to none to not draw the bottom edge or specify a color to not +// use the default one +// +// possible $t values: +// normal, focus, insensitive, backdrop, backdrop-insensitive, osd, osd-focus, osd-backdrop; +// + @if $t==normal { + color: v_color(text); + border-color: $border_color; + background-color: v_color(normal); + box-shadow: none; + } + + @if $t==focus { + border-color: $fc; + } + + @if $t==insensitive { + color: insensitive(v_color(text)); + border-color: insensitive($border_color); + background-color: insensitive(v_color(normal)); + } + + @if $t==backdrop { + color: backdrop(v_color(text)); + border-color: backdrop($border_color); + background-color: backdrop(v_color(normal)); + } + + @if $t==backdrop-insensitive { + color: backdrop(insensitive(v_color(text))); + border-color: backdrop(insensitive($border_color)); + background-color: backdrop(insensitive(v_color(normal))); + } +} + +/**************** + * Text Entries * + ****************/ + +.entry { + border: 1px solid; + padding: 5px 8px 5px; + + &.image { // icons inside the entry + &.left { padding-left: 0; } + &.right { padding-right: 0; } + } + + border-radius: $r; + transition: all 200ms $ease-out-quad; + @include entry(normal); + + &.flat, &.flat:focus { + padding: 2px; + @include entry(normal); + border: none; + border-radius: 0; + } + + &:focus { @include entry(focus); } + &:insensitive { @include entry(insensitive); } + &:backdrop { @include entry(backdrop); } + &:backdrop:insensitive { @include entry(backdrop-insensitive); } + + &:selected, + &:selected:focus { + @extend %selected_items; + } + + &.progressbar { + margin: 1px; + border-radius: 0; + border-width: 0 0 2px; + border-color: s_color(normal); + border-style: solid; + background-image: none; + background-color: transparent; + box-shadow: none; + &:backdrop { + background-color: transparent; + border-color: backdrop(s_color(backdrop)); + } + } + + @each $e_type, $e_color in (error, $error_color), + (warning, $warning_color) { + &.#{$e_type} { + color: $e_color; + border-color: $e_color; + background-color: transparentize($e_color, 0.5); + &:focus { + @include entry(focus, $e_color); + background-color: transparentize($e_color, 0.5); + } + &:selected, &:selected:focus { background-color: $e_color; } + &:backdrop { + color: backdrop($e_color); + border-color: backdrop($e_color); + background-color: backdrop(transparentize($e_color, 0.5)); + } + } + } + + &.image { // entry icons colors + color: mix(w_color(text),v_color(text), 80%); + &:hover { color: b_color(hover); } + &:active { color: b_color(active); } + &:backdrop { color: backdrop(mix(w_color(text), v_color(text), 80%)); } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_headerbar.scss b/Breeze-gtk/src/gtk3/widgets/_headerbar.scss new file mode 100644 index 0000000..5e22a72 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_headerbar.scss @@ -0,0 +1,156 @@ +/*************** + * Header bars * + ***************/ + +.titlebar, +.header-bar { + transition: none; + padding: 4px 6px; + border-width: 0px 0px 1px 0px; + border-radius: 3px 3px 0px 0px; + border-style: solid; + border-color: s_color(normal); + color: t_color(text); + background-color: t_color(background); + &:backdrop { + border-color: transparent; + background-color: t_color(backdrop-background); + color: t_color(backdrop-text); + box-shadow: none; + } +.path-bar .button { + color: t_color(text); + } +.button { + transition: none; + @include button(undecorated, $tc: t_color(text)); + + &.flat { + @include button(undecorated,$tc: t_color(text)); + } + &:hover { + @include button(hover, $tc: t_color(text)); + &:backdrop { border-color: t_color(backdrop-background); } + } + &:active, &:checked { + @include button(active); + &:hover { + @include button(active-hover); + } + &:backdrop { + background-image: none; + background-color: t_color(backdrop-background); + border-color: t_color(backdrop-background); + color: t_color(backdrop-text); + } + } + + &.suggested-action { + @extend %suggested-action; + } + + &:backdrop { + background-color: t_color(backdrop-background); + color: t_color(backdrop-text); + } + + &.flat:backdrop, &.flat:backdrop:insensitive, &:insensitive:backdrop { + background-image: none; + background-color: t_color(backdrop-background); + color: t_color(backdrop-text); + border-color: transparent; + } + &.flat:insensitive { + @extend %undecorated_button;; + color: insensitive(t_color(text)); + } + &:insensitive { + background-color: t_color(background); + color: insensitive(t_color(text)); + &:active, &:checked { + @include button(insensitive-active); + } + } +} + + .title { + font-weight: normal; + padding: 0px 12px; + } + + .subtitle { + font-size: smaller; + padding: 0 12px; + @extend .dim-label; + } + + .header-bar-separator, + & > GtkBox > .separator.vertical { + -GtkWidget-wide-separators: true; + -GtkWidget-separator-width: 1px; + border-width: 0px; + background-color: t_color(background); + border-color: t_color(background); + &:backdrop { + background-color: t_color(backdrop-background); + border-color: t_color(backdrop-background); + } + } + + &.selection-mode { + + @extend .info; + + &.suggested-action { + @extend %suggested-action; + } + + .subtitle:link { @extend *:link:selected; } + + .selection-menu { + padding-left: 10px; + padding-right: 10px; + + GtkArrow { -GtkArrow-arrow-scaling: 1; } + + .arrow { + -gtk-icon-source: -gtk-icontheme('arrow-down'); + icon-shadow: none; + } + } + } + + .tiled &, .maximized & { + border-radius: 0; // squared corners when the window is max'd or tiled + } + + &.default-decoration { + padding: 4px; + .button { padding: 5px; } + } +} + +%suggested-action { + background-image: none; + background-color: b_color(active); + &:hover { + background-color: b_color(hover); + color: b_color(text) + } + &:insensitive { + background-color: transparent; + background-image: none; + color: insensitive(t_color(text)); + &:active, &:checked { + @include button(insensitive-active); + } + } + &:backdrop { + background-color: t_color(backdrop-background); + border-color: transparent; + color: t_color(backdrop-text); + &:insensitive { + color: insensitive(t_color(backdrop-text)); + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_infobar.scss b/Breeze-gtk/src/gtk3/widgets/_infobar.scss new file mode 100644 index 0000000..95feb05 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_infobar.scss @@ -0,0 +1,63 @@ +/************** + * GtkInfoBar * + **************/ +GtkInfoBar { + border-style: none; + border-bottom: 1px solid $border_color; + &:backdrop {border-bottom: 1px solid backdrop($border_color);} +} + +.info, +.question, +.warning, +.error { + background-color: w_color(normal); + color: $warning_color; + text-shadow: none; + &:backdrop { + background-color: backdrop(w_color(normal)); + color: backdrop($warning_color); + } + .button { + box-shadow: none; + background-image:none; + background-color: transparentize($warning_color, 0.5); + border-color: transparentize($warning_color, 0.5); + color: b_color(text); + &:hover { + background-color: transparentize($warning_color, 0.75); + border-color: $warning_color; + } + &:active, &:checked { + background-image: button_gradient($warning_color); + color: w_color(normal); + border-color: $warning_color; + } + &:insensitive { + background-color: insensitive(transparentize($warning_color, 0.5)); + border-color: insensitive(transparentize($warning_color, 0.5)); + color: insensitive(b_color(text)); + } + &:backdrop { + background-color: backdrop(transparentize($warning_color, 0.5)); + border-color: backdrop(transparentize($warning_color, 0.5)); + color: backdrop(b_color(text)); + &:active, &:checked { + background-image: button_gradient(backdrop($warning_color)); + color: backdrop(w_color(normal)); + border-color: backdrop($warning_color); + } + &:insensitive { + background-color: backdrop(insensitive(transparentize($warning_color, 0.5))); + border-color: backdrop(insensitive(transparentize($warning_color, 0.5))); + color: backdrop(insensitive(b_color(text))); + } + &:insensitive:active, + &:insensitive:checked { + background-image: button_gradient(backdrop(insensitive($warning_color))); + color: backdrop(insensitive(w_color(normal))); + border-color: backdrop(insensitive($warning_color)); + } + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_link.scss b/Breeze-gtk/src/gtk3/widgets/_link.scss new file mode 100644 index 0000000..da3a894 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_link.scss @@ -0,0 +1,40 @@ +/********* + * Links * + *********/ + +*:link { + color: $link_color; + &:visited { + color: $link_visited_color; + *:selected & { color: mix(s_color(text), s_color(normal), 60%); } + } + &:hover { + color: lighten($link_color,10%); + *:selected & { color: mix(s_color(text), s_color(normal), 90%); } + } + &:active { + color: $link_color; + *:selected & { color: mix(s_color(text), s_color(normal), 80%); } + } + &:backdrop, &:backdrop:hover, &:backdrop:hover:selected { + color: backdrop(s_color(backdrop)); + } + &:selected, *:selected & { + color: mix(s_color(text), s_color(normal), 80%); + } +} + +.button:link, .button:visited { + @extend %undecorated_button; + @extend *:link; + text-shadow: none; + &:hover, &:active, &:checked { + @extend %undecorated_button; + text-shadow: none; + } + &:backdrop { + @extend %undecorated_button; //This shouldn't be needed but avoids + //a weird transition which for some reason + //makes borders blink on hover + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_lists.scss b/Breeze-gtk/src/gtk3/widgets/_lists.scss new file mode 100644 index 0000000..bdd9cca --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_lists.scss @@ -0,0 +1,104 @@ +/********* + * Lists * + *********/ + +.list, .list-row { + background-color: w_color(normal); + color: w_color(text); + border-width: 0px; + &:backdrop { + background-color: backdrop(w_color(normal)); + color: backdrop(w_color(text)); + } +} + +.list-row, +.grid-child { + padding: 0px 2px; + border-style: solid; + border-width: 0px; + border-color: w_color(normal); +} + +.list-row.button, +.list-row.button:backdrop, +.list-row.button:backdrop:active, +.list-row.button:backdrop:checked, +.list-row.button:backdrop:insensitive, +.list-row.button:backdrop:insensitive:active, +.list-row.button:backdrop:insensitive:checked, +.list-row.button:insensitive:active, +.list-row.button:insensitive:checked { + // reset button inherited stuff + @extend %undecorated_button; + background-color: transparentize(v_color(normal),1); // for the transition + border-style: none; // I need no borders here + border-radius: 0; // and no rounded corners + box-shadow: none; // and no box-shadow + +} + +.list-row.button { + background-color: w_color(normal); + &:hover { + background-color: transparentize(b_color(hover), 0.75); + } + &:active { + background-color: s_color(normal); + box-shadow: none; + } + &:selected { + &:active { box-shadow: none; } + background-color: s_color(normal); + &:hover { + @include button(active-hover); + } + &:backdrop { + background-color: backdrop(s_color(backdrop)); + } + } + &:backdrop { background-color: backdrop(w_color(normal));} +} + +.list-row:selected { + @extend %selected_items; + .button { + @include button(normal); + &.flat { + @include button(undecorated); + } + &:hover { + @include button(hover); + } + &:active, &:checked { + @include button(active); + } + &:backdrop, &.flat:backdrop { + @include button(backdrop); + &:active, &:checked { + @include button(backdrop-active); + } + &:insensitive { + @include button(backdrop-insensitive); + &:active, &:checked { + @include button(backdrop-insensitive-active); + } + } + } + &.flat:backdrop { + background-color: backdrop(w_color(normal)); + color: backdrop(w_color(text)); + border-color: transparent; + } + &:insensitive { + @include button(insensitive); + &:active, &:checked { @include button(insensitive-active); } + } + } +} + +// transition +.list-row, list-row.button { + transition: all 300ms $ease-out-quad; + &:hover { transition: none; } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_menus.scss b/Breeze-gtk/src/gtk3/widgets/_menus.scss new file mode 100644 index 0000000..3344382 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_menus.scss @@ -0,0 +1,162 @@ +/********* + * Menus * + *********/ + /* menu buttons */ + .menuitem.button.flat { + @extend %undecorated_button; + color: w_color(text); + &:hover { background-color: b_color(hover); } + &:selected { + background-color: b_color(active); + color: b_color(active-text) + } + &:backdrop, &:backdrop:hover { + @extend %undecorated_button; + color: backdrop(w_color(text)); + } + } + +.menubar { + -GtkWidget-window-dragging: true; + padding: 0px; + box-shadow: none; + background-color: w_color(normal); + &:backdrop { + background-color: backdrop(w_color(normal)); + } + & > .menuitem { + padding: 6px 8px; + border: 1px solid w_color(normal); + &:hover { //Seems like it :hover even with keyboard focus + background-color: b_color(active); + color: b_color(active-text); + } + &:insensitive { + color: insensitive(w_color(text)); + box-shadow: none; + &:backdrop { + background-color: backdrop(w_color(normal)); + color: backdrop(insensitive(w_color(text))); + } + } + &:backdrop { + background-color: backdrop(w_color(normal)); + border-color: backdrop(w_color(normal)); + color: backdrop(w_color(text)); + } + } +} + +.menu { + padding: 0px; + background-color: $menu_color; + border: 1px solid $border_color; // adds borders in a non composited env + border-radius: $r; + .csd & { border: 1px solid $border_color; } // axes borders in a composited env + .separator {color: $border_color;} + .menuitem { + text-shadow: none; + padding: 8px 4px; + &:hover { + color: b_color(active-text); + background-color: b_color(active); + background-clip: padding-box; + border: 2px solid transparent; + } + &:insensitive { + color: insensitive(w_color(text)); + &:backdrop { color: backdrop(insensitive(w_color(text))); } + } + &:backdrop, &:backdrop:hover { + color: backdrop(w_color(text)); + background-color: backdrop(w_color(normal)); + } + //submenu indicators + &.arrow { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic');} + &.arrow:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl'); } + } +} + +.menuitem .accelerator { color: gtkalpha(currentColor,0.5); } +/*************** + * Popovers * + ***************/ + +.popover { + margin: 10px; + padding: 0px; + border: 1px solid $border_color; + border-radius: 3px; + background-color: $menu_color; + + box-shadow: 0 2px 3px transparentize(black, 0.2); + + &:backdrop { + box-shadow: none; + } + + > .list, + > .view, + > .toolbar, + &.osd > .toolbar { + border-style: none; + background-color: transparent; + } + .button.flat { + border-radius: 0px; + color: w_color(text); + .label { padding: 4px 0px; } + &:hover, + &:checked:hover { + background-image: none; + background-color: b_color(active); + color: b_color(active-text); + transition: none; + } + + &:backdrop { + background-color: transparent; + color: backdrop(w_color(text)); + } + } + + &.osd { @extend %osd; } + +} + +//touch selection handlebars for the Popover.osd above +.entry.cursor-handle, +.cursor-handle { + background-color: transparent; + background-image: none; + box-shadow: none; + border-style: none; + &.top { -gtk-icon-source: -gtk-icontheme('selection-start-symbolic'); } + &.bottom { -gtk-icon-source: -gtk-icontheme('selection-end-symbolic'); } +} + +.scale-popup .button, +.scale-popup .button.flat { // +/- buttons on GtkVolumeButton popup + @extend %undecorated_button; + background-color: transparent; + padding: 5px; + color: w_color(text); + &:hover { + @extend %undecorated_button; + color: b_color(hover); + } + &:active { + color: b_color(active); + } + &:insensitive { + color: insensitive(w_color(text)); + } + &:backdrop { + color: backdrop(w_color(text)); + &:insensitive { + color: backdrop(insensitive(w_color(text))); + } + } +} + +GtkVolumeButton.button { padding: 5px; } diff --git a/Breeze-gtk/src/gtk3/widgets/_misc.scss b/Breeze-gtk/src/gtk3/widgets/_misc.scss new file mode 100644 index 0000000..9108393 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_misc.scss @@ -0,0 +1,110 @@ +/******** + * Misc * + ********/ + +/********** +* Frames * +**********/ +.frame { + border: 1px solid $border_color; + &.flat { border-style: none; } + padding: 0; + &.action-bar { + padding: 6px; + border-width: 1px 0 0; + &:backdrop {border-color: backdrop($border_color);} + } + &:backdrop {border-color: backdrop($border_color);} +} + +GtkScrolledWindow { + GtkViewport.frame { // avoid double borders when viewport inside + // scrolled window + border-style: none; + } +} + +//vbox and hbox separators +.separator { + // always disable separators + //-GtkWidget-wide-separators: true; + color: transparent; +&.vertical { + color: $border_color; + &:backdrop { color: backdrop($border_color); } + } + // Font and File button separators + GtkFileChooserButton &.vertical, + GtkFontButton &.vertical { + // always disable separators + -GtkWidget-wide-separators: true; + } +} + +/************* +* Expanders * +*************/ + +.expander { + -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); + &:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl'); } + &:hover { color: lighten(w_color(text),30%); } //only lightens the arrow + &:checked { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); } +} + +/********* +* Paned * +*********/ + +GtkPaned { // this is for the standard paned separator + + -GtkPaned-handle-size: 1; // sets separator width + + -gtk-icon-source: none; // removes handle decoration + margin: 0 8px 8px 0; // drag area of the separator, not a real margin + &:dir(rtl) { + margin-right: 0; + margin-left: 8px; + } + .pane-separator { + background-color: $border_color; + &:backdrop { + background-color: backdrop($border_color); + } + } +} + +GtkPaned.wide { // this is for the paned with wide separator + -GtkPaned-handle-size: 5; // wider separator here + margin: 0; // no need of the invisible drag area so, reset margin + .pane-separator { + background-color: transparent; + border-style: none; + // border-color: $borders_color; + // border-width: 1px; + } + &.vertical .pane-separator { border-style: none;} + .pane-separator:backdrop { border-color: transparent; } +} + +/********************* +* Spinner Animation * +*********************/ + +@keyframes spin { + to { -gtk-icon-transform: rotate(1turn); } +} + +.spinner { + background-image: none; + background-color: blue; + opacity: 0; // non spinning spinner makes no sense + -gtk-icon-source: -gtk-icontheme('process-working-symbolic'); + &:active { + opacity: 1; + animation: spin 1s linear infinite; + &:insensitive { + opacity: 0.5; + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_notebook.scss b/Breeze-gtk/src/gtk3/widgets/_notebook.scss new file mode 100644 index 0000000..62d4a52 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_notebook.scss @@ -0,0 +1,190 @@ +/***************** + * Notebooks and * + * Tabs * + *****************/ + +.notebook { + // Through me you go to the grief wracked city; + // Through me you go to everlasting pain; + // Through me you go a pass among lost souls. + // ... + // Abandon all hope — Ye Who Enter Here + + -GtkNotebook-initial-gap: 0; + -GtkNotebook-arrow-spacing: 5; + -GtkNotebook-tab-curvature: 0; + -GtkNotebook-tab-overlap: 1; + -GtkNotebook-has-tab-gap: false; + -GtkWidget-focus-padding: 0; + -GtkWidget-focus-line-width: 0; + transition: all 200ms $ease-out-quad; + background-color: $menu_color; + &:backdrop {background-color: backdrop($menu_color)} + + &.frame { + border: 1px solid $border_color; + // FIXME doesn't work + &.top { border-top-width: 0; } + &.bottom { border-bottom-width: 0; } + &.right { border-right-width: 0; } + &.left { border-left-width: 0; } + &:backdrop { border-color: backdrop($border_color); } + } + &.header { + background-color: w_color(normal); + padding-top: 4px; + + //this is the shading of the header behind the tabs + &.frame { + border-style: none; + } + &.top { + box-shadow: inset 0 -1px $border_color; // border + &:backdrop { box-shadow: inset 0 -1px backdrop($border_color); } + } + &.bottom { + box-shadow: inset 0 1px $border_color; + &:backdrop { box-shadow: inset 0 1px backdrop($border_color); } + } + &.right { + box-shadow: inset 1px 0 $border_color; + &:backdrop { box-shadow: inset 1px 0 backdrop($border_color); } + } + &.left { + box-shadow: inset -1px 0 $border_color; + &:backdrop { box-shadow: inset -1px 0 backdrop($border_color); } + } + &:backdrop { + background-color: backdrop(w_color(normal)); + } + } + + tab { + border: 1px solid transparentize(w_color(text), 0.8); + background-color: transparentize(w_color(text), 0.8); + background-clip: padding-box; + &:backdrop {background-color: backdrop(transparentize(w_color(text), 0.8));} + //FIXME: we get double border in some cases, not considering the broken + //notebook content frame... + padding: 8px; + &.reorderable-page { + background-color: w_color(normal); + &.top, &.bottom { + padding-left: 12px; // for a nicer close button + padding-right: 6px; // placement + padding-bottom: 8px; + } + } + + @each $_tab, $_border, $_radius in (top,bottom,3px 3px 0px 0px), + (bottom,top,0px 0px 3px 3px), + (left,right, 3px 0px 0px 3px), + (right,left, 0px 3px 3px 0px) { + &.#{$_tab} { + border-radius: #{$_radius}; + border-#{$_border}-color: transparent; + &:active, &.active-page { + border-color: $border_color; + border-#{$_border}-color: $menu_color; + background-color: $menu_color; + &:backdrop { + border-color: backdrop($border_color); + border-#{$_border}-color: backdrop($menu_color); + background-color: backdrop($menu_color); + } + } + } + } + + //here's the interesting stuff + &:hover, &.prelight-page { + background-color: transparentize(s_color(normal), 0.8); + border-color: transparentize(s_color(normal), 0.8); + } + + @each $_tab, $_border, $_shadow1 in (top, right, -3px 0px 0px 0px), + (bottom, right, -3px 0px 0px 0px), + (left, bottom, 0px -3px 0px 0px), + (right, bottom, 0px -3px 0px 0px) { + &.reorderable-page.#{$_tab} { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: w_color(normal); + background-clip: padding-box; + border-#{$_border}-width: 1px; + border-#{$_border}-color: $border_color; + box-shadow: inset #{$_shadow1} w_color(normal); + &:hover, &.prelight-page { + box-shadow: inset 0px -3px 0px 0px transparentize(s_color(normal),0.8), inset $_shadow1 w_color(normal); + } + &:active, &.active-page { + box-shadow: inset 0px -3px 0px 0px s_color(normal), inset $_shadow1 w_color(normal); + &:backdrop { + background-color: backdrop(w_color(normal)); + border-color: transparent; + border-#{$_border}-color: backdrop($border_color); + box-shadow:none; + } + } + &:backdrop { + background-color: backdrop(w_color(normal)); + border-#{$_border}-color: backdrop($border_color); + box-shadow:none; + } + } + } + .label { //tab text + padding: 0 2px; // needed for a nicer focus ring + color: w_color(text); + &:backdrop { color: backdrop(w_color(text)); } + } + .button { //tab close button + padding: 0px; + border: 1px solid transparent; + border-radius: 50%; + background-image: none; + background-color: $border_color; + box-shadow: none; + icon-shadow: none; + transition: none; + color: w_color(normal); + &:hover { + background-color: $error_color; + border-color: transparent; + background-image: none; + box-shadow: none; + } + &:active { + color: w_color(normal); + border-color: transparent; + background-image: none; + box-shadow: none; + } + &:backdrop { + color: backdrop(w_color(normal)); + background-color: backdrop($border_color); + } + & > GtkImage { + padding: 0px; + } + } + .button .active-page, .button.active-page { //not working + background-color: $error_color; + } + } + &.arrow { + color: w_color(text); + &:hover { color: b_color(hover); } + &:active { color: b_color(active); } + &:insensitive { + color: insensitive(w_color(text)); + } + &:backdrop { + color: backdrop(w_color(text)); + &:insensitive { + color: backdrop(insensitive(w_color(text))); + } + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_overshoot.scss b/Breeze-gtk/src/gtk3/widgets/_overshoot.scss new file mode 100644 index 0000000..dbefd93 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_overshoot.scss @@ -0,0 +1,109 @@ +@mixin overshoot($p, $t:normal, $c:w_color(text)) { +// +// overshoot +// +// $p: position +// $t: type +// $c: base color +// +// possible $p values: +// top, bottom, right, left +// +// possible $t values: +// normal, backdrop +// + + $_small_gradient_length: 5%; + $_big_gradient_length: 100%; + + $_position: center top; + $_small_gradient_size: 100% $_small_gradient_length; + $_big_gradient_size: 100% $_big_gradient_length; + + @if $p==bottom { + $_position: center bottom; + $_linear_gradient_direction: to top; + } + + @else if $p==right { + $_position: right center; + $_small_gradient_size: $_small_gradient_length 100%; + $_big_gradient_size: $_big_gradient_length 100%; + } + + @else if $p==left { + $_position: left center; + $_small_gradient_size: $_small_gradient_length 100%; + $_big_gradient_size: $_big_gradient_length 100%; + } + + $_small_gradient_color: $c; + $_big_gradient_color: $c; + + @if $c==w_color(text) { + $_small_gradient_color: darken($border_color, 10%); + $_big_gradient_color: w_color(text); + + @if $t==backdrop { $_small_gradient_color: backdrop($border_color); } + } + + $_small_gradient: -gtk-gradient(radial, + $_position, 0, + $_position, 0.5, + to($_small_gradient_color), + to(transparentize($_small_gradient_color, 1))); + + $_big_gradient: -gtk-gradient(radial, + $_position, 0, + $_position, 0.6, + from(transparentize($_big_gradient_color, 0.93)), + to(transparentize($_big_gradient_color, 1))); + + @if $t==normal { + background-image: $_small_gradient, $_big_gradient; + background-size: $_small_gradient_size, $_big_gradient_size; + } + + @else if $t==backdrop { + background-image: $_small_gradient; + background-size: $_small_gradient_size; + } + + background-repeat: no-repeat; + background-position: $_position; + + background-color: transparent; // reset some properties to be sure to not inherit them somehow + border: none; // + box-shadow: none; // +} + +/* Decouple the font of context menus from their entry/textview */ +.touch-selection, +.context-menu { + font: initial; +} + +.monospace { + font: Monospace; +} + +// This is used by GtkScrolledWindow, when content is touch-dragged past boundaries. +// This draws a box on top of the content, the size changes programmatically. +.overshoot { + &.top { + @include overshoot(top); + &:backdrop { @include overshoot(top, backdrop); } + } + &.bottom { + @include overshoot(bottom); + &:backdrop { @include overshoot(bottom, backdrop); } + } + &.left { + @include overshoot(left); + &:backdrop { @include overshoot(left, backdrop); } + } + &.right { + @include overshoot(right); + &:backdrop { @include overshoot(right, backdrop); } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_pathbar.scss b/Breeze-gtk/src/gtk3/widgets/_pathbar.scss new file mode 100644 index 0000000..6a9a613 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_pathbar.scss @@ -0,0 +1,25 @@ +/************ + * Pathbars * + ************/ + +.path-bar .button { + @include button(undecorated); + padding: 4px 8px; + color: w_color(text); + &:hover {border-color: b_color(hover); } + &:active, &:checked { + background-color: $border_color; + } + &:first-child { padding-left: 8px; } + &:last-child { padding-right: 8px; } + &:only-child { + padding-left: 12px; + padding-right: 12px; + } + + // the following is for spacing the icon and the label inside the home button + .label:last-child { padding-left: 2px; } + .label:first-child { padding-right: 2px; } + .label:only-child { padding-right: 0; padding-left: 0; } + GtkImage { padding-top: 1px; } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_progressbar.scss b/Breeze-gtk/src/gtk3/widgets/_progressbar.scss new file mode 100644 index 0000000..5f1ce8d --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_progressbar.scss @@ -0,0 +1,142 @@ +/***************** + * Progress bars * + *****************/ + +GtkProgressBar { + padding: 0; + font-size: smaller; + color: transparentize(b_color(text),0.7); + box-shadow: none; // here ot it gets + &:backdrop { color: backdrop(transparentize(b_color(text),0.7))} // clipped + + &.osd { + -GtkProgressBar-xspacing: 0; + -GtkProgressBar-yspacing: 0; + -GtkProgressBar-min-horizontal-bar-height: 3; + } + &.trough { // background + border: 1px solid transparent; + border-radius: $r; + background-color: transparentize(b_color(text),0.7); + &.osd { + border: 1px solid transparent; + border-radius: $r; + background-color: transparentize(b_color(text),0.7); + &:backdrop { + background-color: backdrop(transparentize(b_color(text),0.7)); + } + } + &:backdrop { + background-color: backdrop(transparentize(b_color(text),0.7)); + } + } +} + +// moving bit +.progressbar { + background-color: s_color(normal); + border: 1px solid s_color(normal); + border-radius: 0px; + box-shadow: none; //needed for clipping + &.left { + border-top-left-radius: $r; + border-bottom-left-radius: $r; + } + &.right { + border-top-right-radius: $r; + border-bottom-right-radius: $r; + } + &.left.right { + box-shadow: none; + } + &.vertical { + + &.bottom { + border-bottom-left-radius: $r; + border-bottom-right-radius: $r; + box-shadow: none; + } + &.top { + border-top-left-radius: $r; + border-top-right-radius: $r; + } + } + + &.osd { + background-image: none; + background-color: s_color(normal); + border: 1px solid s_color(normal); + border-radius: $r; + &:backdrop { + background-color: backdrop(s_color(backdrop)); + border-color: backdrop(s_color(backdrop)); + } + } + &:backdrop { + background-color: backdrop(s_color(backdrop)); + border-color: backdrop(s_color(backdrop)); + } +} + +/************* + * Level Bar * + *************/ + +.level-bar.vertical { + -GtkLevelBar-min-block-width: 6; + -GtkLevelBar-min-block-height: 34; +} + +.level-bar { + box-shadow: none; // needs to be set here to avoid clipping + -GtkLevelBar-min-block-width: 34; + -GtkLevelBar-min-block-height: 6; + &.vertical { + -GtkLevelBar-min-block-width: 6; + -GtkLevelBar-min-block-height: 34; + } + &.trough { + border: 1px solid transparent; + padding: 3px; + border-radius: $r; + background-color: transparent;; + } + &.fill-block { + // FIXME: it would be nice to set make fill blocks bigger, but we'd need + // :nth-child working on discrete indicators + border: 1px solid s_color(normal); + background-color: s_color(normal); + box-shadow: none; + border-radius: $r; + + &.indicator-discrete { + &.horizontal { margin: 0 1px; } + &.vertical { margin: 1px 0; } + } + &.level-high { + border-color: $success_color; + background-color: $success_color; + &:backdrop { + background-color: backdrop($success_color); + border-color: backdrop($success_color); + } + } + &.level-low { + border-color: $warning_color; + background-color: $warning_color; + &:backdrop { + background-color: backdrop($warning_color); + border-color: backdrop($warning_color); + }; + } + &.empty-fill-block { + background-color: transparentize(b_color(text),0.7); + border-color: transparent; + box-shadow: none; + } + &:backdrop { + border-color: backdrop(s_color(backdrop)); + background-color: backdrop(s_color(backdrop)); + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_scale.scss b/Breeze-gtk/src/gtk3/widgets/_scale.scss new file mode 100644 index 0000000..f006a79 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_scale.scss @@ -0,0 +1,87 @@ +/************ + * GtkScale * + ************/ +.scale, +.scale.scale-has-marks-above.scale-has-marks-below, +.scale.vertical.scale-has-marks-above.scale-has-marks-below { + -GtkScale-slider-length: 18; + -GtkRange-slider-width: 18; + -GtkRange-trough-border: 2; + + &.fine-tune { + &.trough { + margin: 8px; + border-radius: $r; + } + } + + &.slider { + background-color: b_color(normal); + border: 1px solid $border_color; + border-radius: 50%; + box-shadow: none; + &:hover { + border-style: solid; + border-width: 2px; + border-color: b_color(hover); + border-radius: 50%; // needed for double marks scales + &:backdrop { + background-color: backdrop(b_color(normal)); + border-color: backdrop(b_color(hover)); + } + } + &:insensitive { + border-style: solid; // needed for double marks scales or they'll get + border-radius: 50%; // overridden + background-color: insensitive(b_color(normal)); + border-color: insensitive($border_color); + &:backdrop { + background-color: backdrop(insensitive(b_color(normal))); + border-color: backdrop(insensitive($border_color)); + } + } + &:active { + border: 2px solid b_color(active); + &:backdrop { + background-color: backdrop(b_color(normal)); + border-color: backdrop(b_color(active)); + } + } + &:backdrop { + background-color: backdrop(b_color(normal)); + border-color: backdrop($border_color); + } + } + &.trough { + margin: 9px; + border: 1px solid transparentize(b_color(text),0.7); + border-radius: $r; + background-color: transparentize(b_color(text),0.7); + box-shadow: none; + &.highlight { + background-color: s_color(normal); + border-color: s_color(normal); + &.vertical { + background-color: s_color(normal); + border-color: s_color(normal); + } + &:backdrop { + background-color: backdrop(s_color(backdrop)); + border-color: backdrop(s_color(backdrop)); + } + } + &:insensitive, &.vertical:insensitive { + border-color: insensitive(transparentize(b_color(text),0.7)); + background-color: insensitive(transparentize(b_color(text),0.7)); + box-shadow: none; + &:backdrop { + background-color: backdrop(insensitive(transparentize(b_color(text),0.7))); + border-color: backdrop(insensitive(transparentize(b_color(text),0.7))); + } + } + &:backdrop { + background-color: backdrop(transparentize(b_color(text),0.7)); + border-color: backdrop(transparentize(b_color(text),0.7)); + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_scrollbar.scss b/Breeze-gtk/src/gtk3/widgets/_scrollbar.scss new file mode 100644 index 0000000..905b6c7 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_scrollbar.scss @@ -0,0 +1,125 @@ +@mixin _border($name, $width: 1px 1px 2px 1px, $image-width: 2 2 3 2 / 2px 2px 3px 2px) { + border-image: -gtk-scaled(url("assets/#{$name}.png"),url("assets/#{$name}@2.png")) $image-width stretch; + border-width: $width; + border-style: solid; + border-color: transparent; +} + +$scrollbar_color: transparentize(v_color(text),0.5); +$trough_color: transparentize(w_color(text),0.7); + +/************** + * Scrollbars * + **************/ + +.scrollbar { + -GtkRange-trough-border: 0; + -GtkScrollbar-has-backward-stepper: true; + -GtkScrollbar-has-forward-stepper: true; + -GtkRange-slider-width: 20; + -GtkScrollbar-min-slider-length: 64; + -GtkRange-stepper-spacing: 0; + -GtkRange-trough-under-steppers: 1; + + .button { + @extend %undecorated_button; + color: b_color(text); + &:hover { + @extend %undecorated_button; + color: b_color(hover); + } + &:insensitive { color: insensitive(b_color(text)); } + &:backdrop { + @extend %undecorated_button; + color: backdrop(b_color(text)); + &:insensitive {color: backdrop(insensitive(b_color(text)));} + @extend %undecorated_button; + } + } + + // Overlay Scrollbars + &.dragging, // if this isn't set, the scrollbars don't update their size correctly + &.hovering { opacity: 0.9910; } // probably a gtk bug + &.overlay-indicator:not(.dragging):not(.hovering) { opacity: 0.999; } // + + + &.overlay-indicator:not(.dragging):not(.hovering) { + -GtkRange-slider-width: 8px; + -GtkScrollbar-has-backward-stepper: false; + -GtkScrollbar-has-forward-stepper: false; + + .slider { + margin: 2px; + border: 2px solid transparent; + border-radius: 2px; + background-color: $scrollbar_color; + &:backdrop { background-color: backdrop($scrollbar_color); } + } + + .trough { + border: none; + background: none; + } + } + // Firefox in Fedora 22 won't take any margins, so images must be used + // + // // Normal Scrollbars / Overlay Scrollbars on Mouseover + // &.trough { + // margin: 5px; + // border: 5px solid transparent; + // border-radius: 5px; + // background-color: $trough_color; + // &:backdrop { background-color: backdrop($trough_color); } + // } + // &.slider { + // margin: 5px; + // border: 5px solid transparent; + // border-radius: 5px; + // background-color: $scrollbar_color; + // &:hover { background-color: border(hover); } + // &:active { background-color: border(active);} + // &:insensitive { background-color: insensitive($scrollbar_color); } + // &:backdrop { background-color: backdrop($trough_color); } + // &:backdrop:insensitive { background-color: backdrop(insensitive($scrollbar_color)); } + // } + // } + // + // + &.trough { + @include _border(scrollbar-trough-vertical, $width: 23px 10px 23px 10px, $image-width: 23 10 23 10 / 23px 10px 23px 10px); + &.horizontal { @include _border(scrollbar-trough-horizontal, $width: 10px 23px 10px 23px, $image-width: 10 23 10 23 / 10px 23px 10px 23px); } + &:backdrop { + @include _border(scrollbar-trough-vertical-backdrop, $width: 23px 10px 23px 10px, $image-width: 23 10 23 10 / 23px 10px 23px 10px); + &.horizontal { @include _border(scrollbar-trough-horizontal-backdrop, $width: 10px 23px 10px 23px, $image-width: 10 23 10 23 / 10px 23px 10px 23px); } + } + } + &.slider { + @include _border(scrollbar-slider-vertical, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); + &.horizontal { @include _border(scrollbar-slider-horizontal, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); } + + &:hover { + @include _border(scrollbar-slider-vertical-hover, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); + &.horizontal { @include _border(scrollbar-slider-horizontal-hover, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); } + } + &:active { + @include _border(scrollbar-slider-vertical-active, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); + &.horizontal { @include _border(scrollbar-slider-horizontal-active, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); } + } + &:insensitive { + @include _border(scrollbar-slider-vertical-insensitive, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); + &.horizontal { @include _border(scrollbar-slider-horizontal-insensitive, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); } + } + &:backdrop { + @include _border(scrollbar-slider-vertical-backdrop, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); + &.horizontal { @include _border(scrollbar-slider-horizontal-backdrop, $width: 10px 10px 10px 10px, $image-width: 10 10 10 10 / 10px 10px 10px 10px); } + } + } +} + + +.scrollbars-junction, +.scrollbars-junction.frame { // the small square between two scrollbars + border-color: transparent; + background-color: transparent; + border-image: none; +} diff --git a/Breeze-gtk/src/gtk3/widgets/_sidebar.scss b/Breeze-gtk/src/gtk3/widgets/_sidebar.scss new file mode 100644 index 0000000..4f9aad6 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_sidebar.scss @@ -0,0 +1,51 @@ +/*********** + * Sidebar * + ***********/ + +.sidebar, +.sidebar .view { + border: none; + background-color: w_color(normal); + &:selected { + @extend %selected_items; + } + &:backdrop { background-color: backdrop(w_color(normal))} +} + +// Places sidebar is a special case, since the view here have to look like chrome not content, so we override text color +GtkPlacesSidebar.sidebar .view { +// color: w_color(text); +// background-color: transparent; + &:insensitive { color: insensitive(w_color(text)); } + &:backdrop { + color: backdrop(w_color(text)); + &:insensitive { color: backdrop(insensitive(w_color(text))); } + } + &:selected { @extend %selected_items; } + .separator, + .separator:backdrop { @extend .separator; } + .image { // icons color + color: w_color(text); + &:selected { + color: s_color(text); + &:backdrop { color: backdrop(w_color(text)); } + } + &:insensitive { color: insensitive(w_color(text)); } + &:backdrop { + color: backdrop(w_color(text)); + &:insensitive { color: backdrop(insensitive(w_color(text))); } + } + } +} + +.sidebar-item { + padding: 10px 4px; + > .label { + padding-left: 6px; + padding-right: 6px; + } + &.needs-attention > .label { + @extend %needs_attention; + background-size: 6px 6px, 0 0; + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_spinbutton.scss b/Breeze-gtk/src/gtk3/widgets/_spinbutton.scss new file mode 100644 index 0000000..883f13e --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_spinbutton.scss @@ -0,0 +1,124 @@ +/***************** + * GtkSpinButton * + *****************/ + +.spinbutton { + .button { + @extend %spinbutton; + } + .osd & { + .button { + @extend %spinbutton; + &:last-child { border-radius: 0 3px 3px 0; } + &:dir(rtl):first-child { border-radius: 3px 0 0 3px; } + } + } + &.vertical, &.vertical:dir(rtl) { //FIXME: try using linking templates for vertically linked stuff + .button { + padding-top: 5px; // Same vertical padding as image-buttons + padding-bottom: 5px; // + &:first-child { + @extend %top_button; + @include button(normal); + &:active { + @extend %top_button; + @include button(active); + } + &:hover { + @extend %top_button; + @include button(hover); + } + &:insensitive { + @extend %top_button; + @include button(insensitive); + } + &:backdrop { + @extend %top_button; + @include button(backdrop); + } + } + &:last-child { + @extend %bottom_button; + @include button(normal); + &:active { + @extend %bottom_button; + @include button(active); + } + &:hover { + @extend %bottom_button; + @include button(hover); + } + &:insensitive { + @extend %bottom_button; + @include button(insensitive); + } + &:backdrop { + @extend %bottom_button; + @include button(backdrop); + } + } + &:backdrop:insensitive { + @include button(backdrop-insensitive); + } + } + &.entry { + // we should remove the bottom edge hilight here, but seems + // like buttons are on top of it so it doesn't show up + border-radius: 0px; + padding-left: 0px; + padding-right: 0px; + } + } + GtkTreeView & { + &.entry, &.entry:focus { + padding: 1px; + border-width: 1px 0; + border-color: v_color(active); + border-radius: 0; + box-shadow: none; + + } + } +} + +%spinbutton { + background-image: none; + background-color: transparent; + border-style: none none none solid; + border-color: transparentize($border_color, 0.7); + color: b_color(text); + border-radius: 0; + box-shadow: none; + &:dir(rtl) { border-style: none solid none none; } + &:hover { + color: b_color(hover); + } + &:insensitive { + color: insensitive(b_color(text)); + border-color: insensitive(transparentize($border_color, 0.7)); + } + &:active { + color: b_color(active); + } + &:backdrop { + color: backdrop(b_color(text)); + border-color: backdrop(transparentize($border_color, 0.7)); + background-color: transparent; + } + &:backdrop:insensitive { + background-image: none; + color: backdrop(insensitive(b_color(text))); + border-style: none none none solid; // It is needed or it gets overridden + border-color: backdrop(insensitive(transparentize($border_color, 0.7))); + &:dir(rtl) { border-style: none solid none none; } + } +} + +%top_button { + border-radius: 3px 3px 0 0; + border-style: solid solid none solid; +} +%bottom_button { + border-radius: 0 0 3px 3px; + border-style: none solid solid solid; +} diff --git a/Breeze-gtk/src/gtk3/widgets/_switch.scss b/Breeze-gtk/src/gtk3/widgets/_switch.scss new file mode 100644 index 0000000..8e30719 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_switch.scss @@ -0,0 +1,84 @@ +/********** + * Switch * + **********/ + +GtkSwitch { + -GtkSwitch-slider-width: 30px; + font-weight: bold; + font-size: smaller; + outline-offset: 0px; + box-shadow: none; // needs to be set here + // otherwise it gets + // clipped + &.trough { + // similar to the .scale + border: 1px solid $border_color; + border-radius: $r; + color: $border_color; + background-image: none; + background-color: transparent; + text-shadow: none; + &:active { + color: b_color(active); + border-color: b_color(active); + box-shadow: none; + text-shadow: none; + &:hover { border-color: b_color(hover)} + } + &:hover { + border-color: b_color(hover); + } + &:insensitive { + color: insensitive($border_color); + border-color: insensitive($border_color); + background-image: none; + box-shadow: none; + text-shadow: none; + } + &:backdrop { + color: backdrop($border_color); + border-color: backdrop($border_color); + &:insensitive { + color: backdrop(insensitive($border_color)); + border-color: backdrop(insensitive($border_color)); + } + } + + } + + &.slider { + padding: 3px; + border: 3px solid; + border-radius: $r - 1px; + border-color:transparentize(white,1); + box-shadow: none; + background-color: $border_color; + &:hover { + box-shadow: none; + } + &:active { + background-color: b_color(active); + &:hover { background-color: b_color(hover)} + } + &:insensitive { background-color: insensitive($border_color); } + &:backdrop { + background-color: backdrop($border_color); + &:insensitive { + background-color: backdrop(insensitive($border_color)); + } + } + } + .header-bar & { + &.trough { + &:backdrop { + border-color: t_color(backdrop-text); + color: t_color(backdrop-text); + } + } + &.slider { + &:backdrop { + background-color: t_color(backdrop-text); + } + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_toolbar.scss b/Breeze-gtk/src/gtk3/widgets/_toolbar.scss new file mode 100644 index 0000000..8e501d4 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_toolbar.scss @@ -0,0 +1,46 @@ +/************ + * Toolbars * + ************/ +.toolbar, +.primary-toolbar { + -GtkWidget-window-dragging: true; + padding: 4px; + background-color: w_color(normal); + &:backdrop { + background-color: backdrop(w_color(normal)); + box-shadow: none; + } + .osd &, &.osd { + padding: 13px; + border: none; + border-radius: $r; + background-color: w_color(normal); + &:backdrop { + border-color: backdrop($border_color); + background-color: backdrop(w_color(normal)); + box-shadow: none; + } + } +} + +//searchbar, location-bar & inline-toolbar +.inline-toolbar { + @extend .toolbar; + @extend %inset-bar; + border-width: 0px 0px 1px 0px; + padding: 3px; + border-radius: 0; +} +.search-bar, .location-bar { + @extend .toolbar; + @extend %inset-bar; + border-width: 0px 0px 1px 0px; + padding: 3px; +} + +%inset-bar { + border-style: solid; + border-color: $border_color; + text-shadow: none; + background-color: w_color(normal); +} diff --git a/Breeze-gtk/src/gtk3/widgets/_tooltips.scss b/Breeze-gtk/src/gtk3/widgets/_tooltips.scss new file mode 100644 index 0000000..1404bee --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_tooltips.scss @@ -0,0 +1,28 @@ +/************ + * Tooltips * + ************/ + +.tooltip { + &.background { + // background-color needs to be set this way otherwise it gets drawn twice + // see https://bugzilla.gnome.org/show_bug.cgi?id=736155 for details. + background-color: tooltip(background); + background-clip: padding-box; + } + + color: tooltip(text); + padding: 4px; /* not working */ + border-radius: 5px; + box-shadow: none; // otherwise it gets inherited by windowframe.csd + text-shadow: none; + // FIXME: we need a border or tooltips vanish on black background. + &.window-frame.csd { + background-color: transparent; + } +} + +.tooltip * { //Yeah this is ugly + padding: 4px; + background-color: transparent; + color: inherit; // just to be sure +} diff --git a/Breeze-gtk/src/gtk3/widgets/_treeview.scss b/Breeze-gtk/src/gtk3/widgets/_treeview.scss new file mode 100644 index 0000000..9898ee2 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_treeview.scss @@ -0,0 +1,136 @@ + + +/************** + * Tree Views * + **************/ +GtkTreeView.view { + -GtkTreeView-grid-line-width: 0; + -GtkTreeView-grid-line-pattern: ''; + -GtkTreeView-tree-line-width: 1; + -GtkTreeView-tree-line-pattern: ''; + -GtkTreeView-expander-size: 16; + + border-left-color: $border_color; // this is actually the tree lines color, + border-top-color: transparent; // while this is the grid lines color, better then nothing + + &:selected { border-radius: 0; } // rest border radius in lists + + &:selected { + background-color: s_color(normal); + border-left-color: s_color(text); + border-top-color: s_color(text); // doesn't work unfortunatelly + } + &:backdrop:selected { + background-color: backdrop(s_color(backdrop)); + border-left-color: backdrop(s_color(text)); + border-top-color: backdrop(s_color(text)); + } + + &:insensitive { + color: insensitive($border_color); + &:selected { + color: insensitive(s_color(text)); + &:backdrop { color: backdrop(insensitive(s_color(text))); } + } + &:backdrop { color: backdrop(insensitive($border_color)); } + } + &.seperator { + color: $border_color; + } + &.separator:backdrop { + color: backdrop($border_color); + } + + &:backdrop { + border-left-color: backdrop($border_color); + } + + &.dnd { + border-style: solid none; + border-width: 1px; + border-color: b_color(hover); + } + + &.expander { + -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); + color: v_color(text); + &:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl');} + &:hover { color: b_color(hover); } + &:selected { color: s_color(text); } + &:checked { + -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); + &:selected { color: s_color(text); } + &:backdrop { color: backdrop(v_color(normal)); } + } + &:backdrop { color: backdrop(v_color(normal)); } + } +} + +column-header { + .button { + @extend %column_header_button; + color: b_color(text); + background-color: b_color(normal); + text-shadow: none; + box-shadow: none; + &:hover { + @extend %column_header_button; + color: b_color(text); + background-color: transparentize(b_color(hover), 0.5); + box-shadow: none; + transition: none; //I shouldn't need this + } + &:active { + @extend %column_header_button; + color: b_color(text); + background-color: transparentize(b_color(hover), 0.5); + transition: none; //I shouldn't need this + } + &.dnd { + @extend column-header.button.dnd; + } + } + &:last-child .button, + &:last-child .button:backdrop, // set :backdrop too or the border will be visibile there + &:last-child.button, + &:last-child.button:backdrop { //treeview-like derived widgets in Banshee and Evolution + border-right-style: none; + } +} + +column-header.button.dnd { // for treeview-like derive widgets + transition: none; + color: s_color(normal); + box-shadow: none; + &:active { @extend column-header.button.dnd; } + &:selected { @extend column-header.button.dnd; } + &:hover { @extend column-header.button.dnd; } +} + +%column_header_button { + padding: 6px; + border-style: none solid solid none; + border-radius: 0; + background-image: none; + border-color: $border_color; + text-shadow: none; + &:insensitive { + border-color: insensitive($border_color); + color: insensitive(b_color(text)); + background-color: insensitive(b_color(normal)); + background-image: none; + } + &:backdrop { + border-color: backdrop($border_color); + border-style: none solid solid none; + color: backdrop(b_color(text)); + background-image: none; + background-color: backdrop(b_color(normal)); + &:insensitive { + border-color: backdrop(insensitive($border_color)); + background-image: none; + background-color: backdrop(insensitive(b_color(normal))); + color: backdrop(insensitive(b_color(text))); + } + } +} diff --git a/Breeze-gtk/src/gtk3/widgets/_window_decorations.scss b/Breeze-gtk/src/gtk3/widgets/_window_decorations.scss new file mode 100644 index 0000000..e24f9f5 --- /dev/null +++ b/Breeze-gtk/src/gtk3/widgets/_window_decorations.scss @@ -0,0 +1,174 @@ +/********************** + * Window Decorations * + *********************/ + +.window-frame { + + border: 1px solid transparent; + border-radius: $r; + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); + + // FIXME rationalize window-frame shadows + + /* this is used for the resize cursor area */ + margin: 10px; + + &:backdrop { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); + } + &.tiled { + border-radius: 0; + } + &.popup { + border-radius: $r; + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1) + } + // server-side decorations as used by mutter + &.ssd { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.1); + } + &.csd { + border-radius: $r; + &.popup { + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1) + } + &.tooltip { + box-shadow: none; + } + &.message-dialog { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5) + } + } + &.solid-csd { + border-radius: $r; + margin: 4px; + background-color: w_color(normal); + border: solid 1px $border_color; + box-shadow: none; + } +} + +// Window Close button +.header-bar .button.titlebutton, +.titlebar .button.titlebutton { + @extend %undecorated_button; + padding: 0px; + &:hover, + &:active, + &:checked, + &:backdrop, + &:active:hover { @extend %undecorated_button; transition: none;} + + &.close { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url('assets/titlebutton-close.png'),url('assets/titlebutton-close@2.png')); + } + &.close:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-close-hover.png'),url('assets/titlebutton-close-hover@2.png')); + } + &.close:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-close-active.png'),url('assets/titlebutton-close-active@2.png')); + } + &.close:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-close-backdrop.png'),url('assets/titlebutton-close-backdrop@2.png')); + } + + &.maximize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url('assets/titlebutton-maximize.png'),url('assets/titlebutton-maximize@2.png')); + } + &.maximize:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-hover.png'),url('assets/titlebutton-maximize-hover@2.png')); + } + &.maximize:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-active.png'),url('assets/titlebutton-maximize-active@2.png')); + } + &.maximize:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-backdrop.png'),url('assets/titlebutton-maximize-backdrop@2.png')); + } + + &.minimize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url('assets/titlebutton-minimize.png'),url('assets/titlebutton-minimize@2.png')); + } + &.minimize:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-minimize-hover.png'),url('assets/titlebutton-minimize-hover@2.png')); + } + &.minimize:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-minimize-active.png'),url('assets/titlebutton-minimize-active@2.png')); + } + &.minimize:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-minimize-backdrop.png'),url('assets/titlebutton-minimize-backdrop@2.png')); + } +} + +.header-bar, +.titlebar { + .maximized & { + .button.titlebutton { + &.maximize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-maximized.png'),url('assets/titlebutton-maximize-maximized@2.png')); + } + &.maximize:hover { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-maximized-hover.png'),url('assets/titlebutton-maximize-maximized-hover@2.png')); + } + &.maximize:active { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-maximized-active.png'),url('assets/titlebutton-maximize-maximized-active@2.png')); + } + &.maximize:backdrop { + border-color: transparent; + background-color: transparent; + background-image: -gtk-scaled(url('assets/titlebutton-maximize-maximized-backdrop.png'),url('assets/titlebutton-maximize-maximized-backdrop@2.png')); + } + } + } +} + +.header-bar.selection-mode .button.titlebutton, +.titlebar.selection-mode .button.titlebutton { + text-shadow: none; + &:backdrop { icon-shadow: none; } +} diff --git a/Breeze-gtk/src/render_theme.py b/Breeze-gtk/src/render_theme.py new file mode 100644 index 0000000..0d4e73c --- /dev/null +++ b/Breeze-gtk/src/render_theme.py @@ -0,0 +1,282 @@ +from assets import assets +import colorFunctions as cF +import sys + +if len(sys.argv) == 2: + Filename = sys.argv[1] +else: + Filename = 'Breeze.colors' +#------------------------------------------------------------------------------- +# color schemes +#------------------------------------------------------------------------------- +gtk3_file = 'src/gtk3/_global.scss' +gtk3 = open(gtk3_file, 'w').close() +Colors = cF.readColors(Filename,gtk3_file) +ColorEffects = cF.readColorEffects(Filename,gtk3_file) + +border_color = cF.mixColor(Colors['Window_BackgroundNormal'],Colors['Window_ForegroundNormal'], 0.75) +check_border = cF.mixColor(Colors['Window_BackgroundNormal'], Colors['Window_ForegroundNormal'], 0.5) +insensitive_check_border = cF.mixColor(Colors['Window_BackgroundNormal'], Colors['Window_ForegroundNormal'], 0.5) +entry_border = cF.mixColor(Colors['Window_BackgroundNormal'],Colors['Window_ForegroundNormal'],0.7) +menu_color = cF.mixColor(Colors['View_BackgroundNormal'],Colors['Window_BackgroundNormal'], 0.7) + +# insensitive +def Insensitive(color): + global ColorEffects + + color = cF.intensityEffect(color, int(ColorEffects['Disabled_IntensityEffect']), float(ColorEffects['Disabled_IntensityAmount'])) + color = cF.colorEffect(color,ColorEffects['Disabled_Color'],int(ColorEffects['Disabled_ColorEffect']),float(ColorEffects['Disabled_ColorAmount'])) + return color + +def InsensitiveAlpha(color): + global Colors + global ColorEffects + + return cF.contrastEffect(Colors['Window_BackgroundNormal'],Colors['Window_ForegroundNormal'],color,int(ColorEffects['Disabled_ContrastEffect']),float(ColorEffects['Disabled_ContrastAmount'])) + +# backdrop +def bd(color): + global ColorEffects + + if ColorEffects['Inactive_Enable'] == 'true': + color = cF.intensityEffect(color, int(ColorEffects['Inactive_IntensityEffect']), float(ColorEffects['Inactive_IntensityAmount'])) + color = cF.colorEffect(color,ColorEffects['Inactive_Color'],int(ColorEffects['Inactive_ColorEffect']),float(ColorEffects['Inactive_ColorAmount'])) + return color + +def bdAlpha(color): + global Colors + global ColorEffects + + if ColorEffects['Inactive_Enable'] == 'true': + return cF.contrastEffect(Colors['Window_BackgroundNormal'],Colors['Window_ForegroundNormal'],color,int(ColorEffects['Inactive_ContrastEffect']),float(ColorEffects['Inactive_ContrastAmount'])) + else: + return 1 + +def bdInsensitive(color): + return bd(Insensitive(color)) + +def bdInsensitiveAlpha(color): + return max(0,bdAlpha(color) + InsensitiveAlpha(color) - 2) + +gtk2 = open('src/gtk2/gtkrc', 'w') +gtk2.write( +'# Theme: Breeze-gtk\n' +'# Description: Breeze theme for GTK+2.0\n' +'\n' +'gtk-color-scheme = "text_color:' + Colors['View_ForegroundNormal'] + '"\n' +'gtk-color-scheme = "base_color:'+ Colors['View_BackgroundNormal'] + '"\n' +'gtk-color-scheme = "insensitive_base_color:'+ Insensitive(Colors['View_BackgroundNormal']) + '"\n' +'gtk-color-scheme = "fg_color:'+ Colors['Window_ForegroundNormal'] + '"\n' +'gtk-color-scheme = "bg_color:' + Colors['Window_BackgroundNormal'] + '"\n' +'gtk-color-scheme = "selected_fg_color:' + Colors['Selection_ForegroundNormal'] + '"\n' +'gtk-color-scheme = "selected_bg_color:' + Colors['Selection_BackgroundNormal'] + '"\n' +'gtk-color-scheme = "button_fg_color:' + Colors['Button_ForegroundNormal'] + '"\n' +'gtk-color-scheme = "tooltip_fg_color:' + Colors['Tooltip_ForegroundNormal'] + '"\n' +'gtk-color-scheme = "tooltip_bg_color:' + Colors['Tooltip_BackgroundNormal'] + '"\n' +'gtk-color-scheme = "insensitive_fg_color:' + cF.mixColor(Insensitive(Colors['Window_ForegroundNormal']),Colors['Window_BackgroundNormal'],InsensitiveAlpha(Colors['Window_ForegroundNormal'])) + '"\n' +'gtk-color-scheme = "insensitive_text_color:' + cF.mixColor(Insensitive(Colors['View_ForegroundNormal']),Colors['View_BackgroundNormal'],InsensitiveAlpha(Colors['View_ForegroundNormal'])) + '"\n' +'gtk-color-scheme = "button_insensitive_fg_color:' + cF.mixColor(Insensitive(Colors['Button_ForegroundNormal']),Colors['Button_BackgroundNormal'],InsensitiveAlpha(Colors['Button_ForegroundNormal'])) + '"\n' +'gtk-color-scheme = "border_color:' + border_color + '"\n' +'\n' +'include "widgets/default"\n' +'include "widgets/buttons"\n' +'include "widgets/menu"\n' +'include "widgets/entry"\n' +'include "widgets/notebook"\n' +'include "widgets/range"\n' +'include "widgets/scrollbar"\n' +'include "widgets/toolbar"\n' +'include "widgets/progressbar"\n' +'include "widgets/misc"\n' +'include "widgets/styles"\n' +) +gtk2.close() + +#------------------------------------------------------------------------------- +# draw assets +#------------------------------------------------------------------------------- + +# arrows +for i,j,k in zip(\ + [Colors['Button_ForegroundNormal'],Colors['Button_ForegroundNormal'],Colors['Button_ForegroundNormal'],Insensitive(Colors['Button_ForegroundNormal'])],\ + ['','-hover','-active','-insensitive'],\ + [1,1,1,InsensitiveAlpha(Colors['Button_ForegroundNormal'])]): + for l in ['-up','-right','-down','-left']: + assets('arrow', color=i, state=j, alpha=k, suffix=l, w=12, h=12) + assets('arrow-small', color=i, state=j, alpha=k, suffix=l, w=8, h=8) + +assets('menu-arrow', color=Colors['Window_ForegroundNormal'], w=12, h=12) +assets('menu-arrow', color=Colors['Selection_ForegroundNormal'], w=12, h=12, prefix='selected-') +assets('menu-arrow', color=Insensitive(Colors['Window_ForegroundNormal']),w=12, h=12, state='-insensitive', alpha=InsensitiveAlpha(Colors['Window_ForegroundNormal'])) + +# buttons +for i,j,k,l in zip(\ + [Colors['Button_BackgroundNormal'],Colors['Button_BackgroundNormal'],Colors['Button_DecorationHover'],Insensitive(Colors['Button_BackgroundNormal'])],\ + [border_color,Colors['Button_DecorationHover'],'none',Insensitive(border_color)],\ + ['','-hover','-active','-insensitive'],\ + [1,1,1,InsensitiveAlpha(border_color)]): + assets('button', color=i, color2=j, state=k, alpha=l) + +# spinbutton +for i,j,k,l in zip(\ + [Colors['View_BackgroundNormal'], Insensitive(Colors['View_BackgroundNormal'])],\ + [entry_border,Insensitive(entry_border)],\ + ['','-insensitive'],\ + [1,InsensitiveAlpha(entry_border)]): + for m in ['-up','-down']: + assets('spinbutton', color=i, color2=j, state=k, alpha=l, suffix=m) + +# toolbutton +for i,j,k in zip(\ + ['none',Colors['Window_BackgroundNormal'],Colors['Button_DecorationHover'],border_color],\ + ['none',Colors['Button_DecorationHover'],'none','none'],\ + ['','-hover','-active', '-toggled']): + assets('toolbutton', color=i, color2=j, state=k) + +# checkbox +for i,j in zip(\ + [check_border, Colors['Button_DecorationFocus']],\ + ['-unchecked', '-checked']): + assets('checkbox',suffix=j,color=i) + assets('radio',suffix=j,color=i) + + +for i,j,k in zip(\ + ['-hover','-active','-selected','-insensitive'],\ + [Colors['Button_DecorationHover'], Colors['Button_DecorationFocus'], Colors['Selection_ForegroundNormal'], insensitive_check_border],\ + [1,1,1,InsensitiveAlpha(insensitive_check_border)]): + for l in ['-unchecked', '-checked']: + assets('checkbox',suffix=l,state=i,color=j,alpha=k) + assets('radio',suffix=l,state=i,color=j,alpha=k) + +# entry +for i,j,k,l in zip(\ + [Colors['View_BackgroundNormal'],Colors['View_BackgroundNormal'],Insensitive(Colors['View_BackgroundNormal'])], + [entry_border, Colors['View_DecorationFocus'], Insensitive(entry_border)],\ + ['','-active','-insensitive'],\ + [1,1,InsensitiveAlpha(entry_border)]): + assets('entry', color=Colors['Window_BackgroundNormal'], color2=j, color3=i, state=k, alpha=l) + +# notebook +for i,j,k,l in zip(\ + [Colors['Window_ForegroundNormal'],menu_color],\ + ['none', border_color],\ + ['-inactive','-active'],\ + [0.2,1]): + for m in ['-top','-right','-bottom','-left']: + assets('tab', color=i, color2=j, state=k, alpha=l, suffix=m) + +assets('notebook-gap', color=menu_color, w=4, h=2, suffix='-horizontal') +assets('notebook-gap', color=menu_color, w=2, h=4, suffix='-vertical') +assets('notebook',color=menu_color,color2=border_color) + +# progressbar +assets('progressbar',color=cF.mixColor(Colors['Button_ForegroundNormal'],Colors['Window_BackgroundNormal'],0.3),w=10,h=10,suffix='-trough') +assets('progressbar',color=Colors['Selection_BackgroundNormal'],w=10,h=10,suffix='-bar') + +# Gtk-Scale +for i,j,k in zip(\ + [Colors['Button_BackgroundNormal'],Colors['Button_BackgroundNormal'],cF.mixColor(Insensitive(Colors['Button_BackgroundNormal']),Colors['Window_BackgroundNormal'],InsensitiveAlpha(Colors['Button_BackgroundNormal']))], \ + [border_color,Colors['Button_DecorationHover'],Insensitive(border_color)],\ + ['','-active','-insensitive']):\ + assets('scale-slider',color=i, color2=j, state=k) + +for i in ['-horizontal', '-vertical']: + assets('scale-trough', color=entry_border, suffix=i) + +# scrollbar +for i,j,k in zip(\ + [Colors['View_ForegroundNormal'],Colors['Button_DecorationHover'],Colors['Button_DecorationFocus'],Insensitive(Colors['View_ForegroundNormal'])],\ + ['','-hover','-active','-insensitive'],\ + [0.5,1,1,max(0,0.5 - 1 + InsensitiveAlpha(Colors['View_ForegroundNormal']))]): + for l,m,n in zip(['-horizontal','-vertical'],[30,10],[10,30]): + assets('scrollbar-slider', color=i, state=j, w=m, h=n,alpha=k, suffix=l) + +for i,j,k in zip(['-horizontal', '-vertical'],[56,20],[20,56]): + assets('scrollbar-trough', color=Colors['Window_ForegroundNormal'], w=j, h=k, alpha=0.3, suffix=i) + +# expanders +assets('plus', color=Colors['View_ForegroundNormal'], w=12, h=12) +assets('minus', color=Colors['View_ForegroundNormal'], w=12, h=12) + +# handles +assets('handle', color=Colors['Window_BackgroundNormal'], w=20, h=2, suffix='-h') +assets('handle', color=Colors['Window_BackgroundNormal'], w=2, h=20, suffix='-v') + +# lines +assets('line', color=border_color, w=8, h=2, suffix='-h') +assets('line', color=border_color, w=2, h=8, suffix='-v') +assets('line', color=border_color, w=8, h=1, prefix='menu-') + +# others +assets('null') +assets('menubar-button', color=Colors['Selection_BackgroundNormal']) +assets('tree-header', color=Colors['Button_BackgroundNormal'], color2=border_color) +assets('frame', color=menu_color, color2=border_color, prefix='menu-') +assets('frame', color=Colors['Window_BackgroundNormal'], color2=border_color) +assets('frame-gap',color=border_color, w=2, h=1, suffix='-start') +assets('frame-gap',color=border_color, w=2, h=1, suffix='-end') +assets('toolbar-background', color=Colors['Window_BackgroundNormal']) + +#------------------------------------------------------------------------------- +# draw gtk3 assets +#------------------------------------------------------------------------------- + +# check and radio +for i,j,k in zip(\ + [check_border, Colors['Button_DecorationFocus'], Colors['Button_DecorationFocus'],bd(check_border), bd(Colors['Button_DecorationFocus']), bd(Colors['Button_DecorationFocus'])],\ + ['-unchecked', '-checked', '-mixed','-unchecked-backdrop', '-checked-backdrop', '-mixed-backdrop'],\ + [1,1,1,bdAlpha(check_border), bdAlpha(Colors['Button_DecorationFocus']), bdAlpha(border_color)]): + assets('checkbox',suffix=j, color=i, alpha=k, gtk_version='gtk3') + assets('radio',suffix=j, color=i, alpha=k, gtk_version='gtk3') + +for i,j,k in zip(\ + ['-hover','-active','-insensitive','-backdrop','-backdrop-insensitive'],\ + [Colors['Button_DecorationHover'], Colors['Button_DecorationFocus'], insensitive_check_border,bd(check_border),bd(insensitive_check_border)],\ + [1,1,InsensitiveAlpha(insensitive_check_border),bdAlpha(check_border),bdInsensitiveAlpha(insensitive_check_border)]): + for l in ['-unchecked', '-checked', '-mixed']: + assets('checkbox',suffix=l,state=i,color=j,alpha=k, gtk_version='gtk3') + assets('radio',suffix=l,state=i,color=j,alpha=k, gtk_version='gtk3') + +for i in ['-unchecked', '-checked', '-mixed']: + assets('checkbox',suffix=i,prefix='selected-',color=Colors['Selection_ForegroundNormal'], gtk_version='gtk3') + assets('radio',suffix=i,prefix='selected-',color=Colors['Selection_ForegroundNormal'], gtk_version='gtk3') + +for i,j in zip(\ + [check_border, Colors['Button_DecorationFocus']],\ + ['-unchecked', '-checked']): + assets('checkbox-selectionmode', color2=Colors['Window_BackgroundNormal'], color=i, w=40,h=40, suffix=j, gtk_version='gtk3') + +for i,j,k in zip(\ + [Colors['Button_DecorationHover'], Colors['Button_DecorationFocus'],bd(check_border)],\ + ['-hover','-active','-backdrop'],\ + [1,1,bdAlpha(check_border)]): + for l in ['-unchecked','-checked']: + assets('checkbox-selectionmode', color2=Colors['Window_BackgroundNormal'], color=i, w=40,h=40, state=j, alpha=k, suffix=l, gtk_version='gtk3') + +# titlebuttons +for i,j,k in zip(\ + ['','-hover','-active','-backdrop'],\ + [Colors['WM_activeForeground'],cF.closeHover(Colors['View_ForegroundNegative']),Colors['View_ForegroundNegative'],Colors['WM_inactiveForeground']],\ + [Colors['WM_activeBackground'],Colors['WM_activeBackground'],Colors['WM_activeBackground'],Colors['WM_inactiveBackground']]): + assets('titlebutton', color=j, color2=k, state=i, w=18, h=18, suffix='-close', gtk_version='gtk3') + +for i,j,k in zip(\ + ['','-hover','-active','-backdrop'],\ + [Colors['WM_activeBackground'],Colors['WM_activeForeground'],cF.mixColor(Colors['WM_activeBackground'],Colors['WM_activeForeground'], 0.3),Colors['WM_inactiveBackground']],\ + [Colors['WM_activeForeground'],Colors['WM_activeBackground'],Colors['WM_activeBackground'],Colors['WM_inactiveForeground']]): + assets('titlebutton', color=j, color2=k, state=i, w=18, h=18, suffix='-minimize', gtk_version='gtk3') + assets('titlebutton', color=j, color2=k, state=i, w=18, h=18, suffix='-maximize', gtk_version='gtk3') + assets('titlebutton', color=j, color2=k, state=i, w=18, h=18, suffix='-maximize-maximized', gtk_version='gtk3') + +# scrollbar +for i,j,k in zip(\ + [Colors['View_ForegroundNormal'],Colors['Button_DecorationHover'],Colors['Button_DecorationFocus'],Insensitive(Colors['View_ForegroundNormal']),bd(Colors['View_ForegroundNormal']),bd(Insensitive(Colors['View_ForegroundNormal']))],\ + ['','-hover','-active','-insensitive','-backdrop','-backdrop-insensitive'],\ + [0.5,1,1,max(0,0.5 - 1 + InsensitiveAlpha(Colors['View_ForegroundNormal'])),max(0,0.5 - 1 + bdAlpha(Colors['View_ForegroundNormal'])),max(0,0.5 - 1 + bdInsensitiveAlpha(Colors['View_ForegroundNormal']))]): + for l,m,n in zip(['-horizontal','-vertical'],[28,20],[20,28]): + assets('scrollbar-slider', color=i, w=m, h=n, state=j, alpha=k, suffix=l, gtk_version='gtk3') + +for i,j,k in zip(['-horizontal', '-vertical'],[56,20],[20,56]): + assets('scrollbar-trough', color=Colors['Window_ForegroundNormal'], w=j, h=k, alpha=0.3, suffix=i, gtk_version='gtk3') + assets('scrollbar-trough', state='-backdrop', color=bd(Colors['Window_ForegroundNormal']), w=j, h=k, alpha=max(0,0.3 - 1 + bdAlpha(Colors['Window_ForegroundNormal'])), suffix=i, gtk_version='gtk3')