diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,11 +21,20 @@ gen_targets(Breeze) gen_targets(Breeze-Dark) +gen_targets(Breeze-Light) list(APPEND Breeze_TARGETS "${PROJECT_BINARY_DIR}/Breeze/gtk-3.0/gtk-dark.css" ) +add_custom_command( + OUTPUT ${Breeze-Light_TARGETS} + DEPENDS ${SOURCES} + COMMAND ./build_theme.sh -c BreezeLight -t "${PROJECT_BINARY_DIR}/Breeze-Light" -r "${BREEZE_COLOR_INSTALL_ROOT}" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src" +) +add_custom_target(Breeze-Light ALL DEPENDS ${Breeze-Light_TARGETS}) + add_custom_command( OUTPUT ${Breeze-Dark_TARGETS} DEPENDS ${SOURCES} @@ -45,3 +54,4 @@ install(DIRECTORY "${PROJECT_BINARY_DIR}/Breeze" DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/themes/") install(DIRECTORY "${PROJECT_BINARY_DIR}/Breeze-Dark" DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/themes/") +install(DIRECTORY "${PROJECT_BINARY_DIR}/Breeze-Light" DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/themes/") diff --git a/src/gtk3/widgets/_button.scss b/src/gtk3/widgets/_button.scss --- a/src/gtk3/widgets/_button.scss +++ b/src/gtk3/widgets/_button.scss @@ -89,6 +89,15 @@ background-color: gtk("@theme_button_background_backdrop"); } + @else if $t==backdrop-hover { + // + // backdrop hover button + // + color: gtk("@theme_button_foreground_backdrop"); + border-color: gtk("@theme_button_decoration_hover"); + background-color: gtk("@theme_button_background_backdrop"); + } + @else if $t==backdrop-active { // // backdrop pushed button @@ -194,6 +203,9 @@ &:backdrop { @include button(backdrop); -gtk-icon-effect: none; + &:hover { + @include button(backdrop-hover); + } &:active, &:checked, &:focus { @include button(backdrop-active); } diff --git a/src/gtk3/widgets/_headerbar.scss b/src/gtk3/widgets/_headerbar.scss --- a/src/gtk3/widgets/_headerbar.scss +++ b/src/gtk3/widgets/_headerbar.scss @@ -45,7 +45,9 @@ &:hover { @include button(hover); color: gtk("@theme_titlebar_foreground"); - &:backdrop { border-color: gtk("@theme_titlebar_background_backdrop"); } + &:backdrop { + @include button(backdrop-hover); + } } &:active, &:checked { @include button(active); @@ -57,6 +59,9 @@ background-color: gtk("@theme_titlebar_background_backdrop"); border-color: gtk("@theme_titlebar_background_backdrop"); color: gtk("@theme_titlebar_foreground_backdrop"); + &:hover { + @include button(backdrop-hover); + } } } diff --git a/src/gtk3/widgets/_menus.scss b/src/gtk3/widgets/_menus.scss --- a/src/gtk3/widgets/_menus.scss +++ b/src/gtk3/widgets/_menus.scss @@ -5,11 +5,11 @@ background-color: gtk("@theme_selected_bg_color"); color: gtk("@theme_button_foreground_active"); border: 1px solid gtk("@theme_button_decoration_focus"); + border-radius: 3px; } @else { background-color: gtk("@theme_button_decoration_focus"); color: gtk("@theme_button_foreground_active") } - border-radius: 3px; } /********* @@ -205,14 +205,27 @@ @extend %undecorated_button; color: gtk("@theme_unfocused_fg_color"); } - check:hover {-gtk-icon-source: -gtk-scaled(url("../assets/check-unchecked.png"), url("../assets/check-unchecked@2.png"));} - radio:hover {-gtk-icon-source: -gtk-scaled(url("../assets/radio-unchecked.png"), url("../assets/radio-unchecked@2.png"));} - - check:checked:hover {-gtk-icon-source: -gtk-scaled(url("../assets/check-checked-active.png"), url("../assets/check-checked-active@2.png"));} - radio:checked:hover {-gtk-icon-source: -gtk-scaled(url("../assets/radio-checked-active.png"), url("../assets/radio-checked-active@2.png"));} - - check:indeterminate:hover {-gtk-icon-source: -gtk-scaled(url("../assets/check-mixed.png"), url("../assets/check-mixed@2.png"));} - radio:indeterminate:hover {-gtk-icon-source: -gtk-scaled(url("../assets/radio-mixed.png"), url("../assets/radio-mixed@2.png"));} + check, radio { + -gtk-icon-palette: error gtk("@theme_button_decoration_focus"), success gtk("@borders"), warning gtk("@theme_button_background_normal"); + -gtk-icon-shadow: 1px 1px rgba(35,38,41,0.2); + + &:hover { + -gtk-icon-palette: error gtk("@theme_button_decoration_focus"), success gtk("@theme_button_decoration_focus"), warning gtk("@theme_button_background_normal"); + } + &:disabled { + -gtk-icon-palette: error gtk("@theme_button_decoration_focus_insensitive"), success gtk("@insensitive_borders"), warning gtk("@theme_button_background_insensitive"); + } + } + @each $type in ('check', 'radio') { + #{$type} { + -gtk-icon-source: -gtk-recolor(url("../assets/breeze-#{$type}-unchecked-symbolic.svg")); + @each $state in ('checked', 'indeterminate') { + &:#{$state} { + -gtk-icon-source: -gtk-recolor(url("../assets/breeze-#{$type}-#{$state}-symbolic.svg")); + } + } + } + } // FIXME: remove the following when the checks/radios rewrite lands check:last-child, diff --git a/src/gtk3/widgets/_scrollbar.scss b/src/gtk3/widgets/_scrollbar.scss --- a/src/gtk3/widgets/_scrollbar.scss +++ b/src/gtk3/widgets/_scrollbar.scss @@ -118,9 +118,9 @@ min-height: 30px; border-radius: 8px; background-clip: padding-box; - background-color: gtkalpha($scrollbar_color_backdrop, 0.2); + background-color: $scrollbar_color_backdrop; &:backdrop { - background-color: $scrollbar_color_backdrop; + background-color: gtkalpha($scrollbar_color_backdrop, 0.2); } &:hover { min-width: 6px; diff --git a/src/gtk3/widgets/_window_decorations.scss b/src/gtk3/widgets/_window_decorations.scss --- a/src/gtk3/widgets/_window_decorations.scss +++ b/src/gtk3/widgets/_window_decorations.scss @@ -42,10 +42,13 @@ .solid-csd & { border-radius: 0; margin: 0; - padding: 1px; - border: none; + padding: 0px; + border: 5px solid gtk("@theme_titlebar_background"); background-color: gtk("@theme_titlebar_background_light"); box-shadow: none; + headerbar.titlebar { + border-radius: 0px; + } } }