diff --git a/src/_colors.scss b/src/_colors.scss --- a/src/_colors.scss +++ b/src/_colors.scss @@ -9,82 +9,210 @@ // warning, it's innocuous and can be defeated by using "" + $var /* widget text/foreground color */ -@define-color theme_fg_color #{"" + w_color(text)}; +@define-color theme_fg_color #{"" + internal_w_color(text)}; // KCM'd /* text color for entries, views and content in general */ -@define-color theme_text_color #{"" +v_color(text)}; +@define-color theme_text_color #{"" + internal_v_color(text)}; // KCM'd /* widget base background color */ -@define-color theme_bg_color #{"" +w_color(normal)}; +@define-color theme_bg_color #{"" + internal_w_color(normal)}; // KCM'd /* text widgets and the like base background color */ -@define-color theme_base_color #{"" +v_color(normal)}; +@define-color theme_base_color #{"" + internal_v_color(normal)}; // KCM'd + +/* +view hover decoration color*/ +@define-color theme_view_hover_decoration_color #{"" + internal_v_color(hover)}; // KCM'd + +/* +background color of hovering selected widgets*/ +@define-color theme_hovering_selected_bg_color #{"" + internal_s_color(hover)}; // KCM'd /* base background color of selections */ -@define-color theme_selected_bg_color #{"" +s_color(normal)}; +@define-color theme_selected_bg_color #{"" + internal_s_color(normal)}; // KCM'd /* text/foreground color of selections */ -@define-color theme_selected_fg_color #{"" +s_color(text)}; +@define-color theme_selected_fg_color #{"" + internal_s_color(text)}; // KCM'd + +/* +decoration color of views */ +@define-color theme_view_active_decoration_color #{"" + internal_v_color(active)}; // KCM'd + +/* +base background color of insensitive selections */ +@define-color insensitive_selected_bg_color #{"" + internal_insensitive(internal_s_color(normal))}; /* base background color of insensitive widgets */ -@define-color insensitive_bg_color #{"" +insensitive(w_color(normal))}; +@define-color insensitive_bg_color #{"" + internal_insensitive(internal_w_color(normal))}; /* text foreground color of insensitive widgets */ -@define-color insensitive_fg_color #{"" +insensitive(w_color(text))}; +@define-color insensitive_fg_color #{"" + internal_insensitive(internal_w_color(text))}; /* insensitive text widgets and the like base background color */ -@define-color insensitive_base_color #{"" +insensitive(v_color(text))}; +@define-color insensitive_base_color #{"" + internal_insensitive(internal_v_color(text))}; + +/* +insensitive text widgets and the like base foreground color */ +@define-color insensitive_base_fg_color #{"" + internal_insensitive(internal_v_color(normal))}; + +/* +insensitive selected text widgets and the like base background color */ +@define-color insensitive_selected_fg_color #{"" + internal_insensitive(internal_s_color(text))}; /* widget text/foreground color on backdrop windows */ -@define-color theme_unfocused_fg_color #{"" +backdrop(w_color(text))}; +@define-color theme_unfocused_fg_color #{"" + internal_backdrop(internal_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))}; +@define-color theme_unfocused_text_color #{"" + internal_backdrop(internal_v_color(text))}; /* widget base background color on backdrop windows */ -@define-color theme_unfocused_bg_color #{"" +backdrop(w_color(normal))}; +@define-color theme_unfocused_bg_color #{"" + internal_backdrop(internal_w_color(normal))}; /* text widgets and the like base background color on backdrop windows */ -@define-color theme_unfocused_base_color #{"" +backdrop(v_color(normal))}; +@define-color theme_unfocused_base_color #{"" + internal_backdrop(internal_v_color(normal))}; + +/* +base background color of selections on backdrop windows, alt */ +@define-color theme_unfocused_selected_bg_color_alt #{"" + internal_backdrop(internal_s_color(normal))}; /* base background color of selections on backdrop windows */ -@define-color theme_unfocused_selected_bg_color #{"" +backdrop(s_color(backdrop))}; +@define-color theme_unfocused_selected_bg_color #{"" + internal_backdrop(internal_s_color(backdrop))}; /* text/foreground color of selections on backdrop windows */ -@define-color theme_unfocused_selected_fg_color #{"" + backdrop(s_color(text))}; +@define-color theme_unfocused_selected_fg_color #{"" + internal_backdrop(internal_s_color(text))}; + +/* +base background color of insensitive selections on backdrop windows */ +@define-color insensitive_unfocused_selected_bg_color #{"" + internal_backdrop(internal_insensitive(internal_s_color(normal)))}; + +/* +text foreground color of insensitive widgets on backdrop windows*/ +@define-color insensitive_unfocused_fg_color #{"" + internal_backdrop(internal_insensitive(internal_w_color(text)))}; + +/* +backdground color of insensitive widgets on backdrop windows*/ +@define-color insensitive_unfocused_bg_color #{"" + internal_backdrop(internal_insensitive(internal_w_color(normal)))}; + +/* +text foreground color of insensitive selected widgets on backdrop windows*/ +@define-color insensitive_unfocused_selected_fg_color #{"" + internal_backdrop(internal_insensitive(internal_s_color(text)))}; + +/* +view text foreground color of insensitive widgets on backdrop windows */ +@define-color theme_unfocused_view_text_color #{"" + internal_backdrop(internal_insensitive(internal_v_color(text)))}; + +/* +insensitive view background color on backdrop windows */ +@define-color theme_unfocused_view_bg_color #{"" + internal_backdrop(internal_insensitive(internal_v_color(normal)))}; /* widgets main borders color */ @define-color borders #{"" +$border_color}; /* widgets main borders color on backdrop windows */ -@define-color unfocused_borders #{"" +backdrop($border_color)}; +@define-color unfocused_borders #{"" + internal_backdrop($border_color)}; /* widgets main borders color insensitive */ -@define-color insensitive_borders #{"" +insensitive($border_color)}; +@define-color insensitive_borders #{"" + internal_insensitive($border_color)}; + +/* +widgets main borders color insensitive backdrop */ +@define-color unfocused_insensitive_borders #{"" + internal_backdrop(internal_insensitive($border_color))}; + +/* +* +* Button Colors +* +*/ +@define-color theme_button_background_normal #{"" + internal_b_color(normal)}; +@define-color theme_button_decoration_hover #{"" + internal_b_color(hover)}; +@define-color theme_button_decoration_focus #{"" + internal_b_color(active)}; +@define-color theme_button_foreground_normal #{"" + internal_b_color(text)}; +@define-color theme_button_foreground_active #{"" + internal_b_color(active-text)}; + +@define-color theme_button_background_insensitive #{"" + internal_insensitive(internal_b_color(normal))}; +@define-color theme_button_decoration_hover_insensitive #{"" + internal_insensitive(internal_b_color(hover))}; +@define-color theme_button_decoration_focus_insensitive #{"" + internal_insensitive(internal_b_color(active))}; +@define-color theme_button_foreground_insensitive #{"" + internal_insensitive(internal_b_color(text))}; +@define-color theme_button_foreground_active_insensitive #{"" + internal_insensitive(internal_b_color(active-text))}; + +@define-color theme_button_background_backdrop #{"" + internal_backdrop(internal_b_color(normal))}; +@define-color theme_button_decoration_hover_backdrop #{"" + internal_backdrop(internal_b_color(hover))}; +@define-color theme_button_decoration_focus_backdrop #{"" + internal_backdrop(internal_b_color(active))}; +@define-color theme_button_foreground_backdrop #{"" + internal_backdrop(internal_b_color(text))}; +@define-color theme_button_foreground_active_backdrop #{"" + internal_backdrop(internal_b_color(active-text))}; + +@define-color theme_button_background_backdrop_insensitive #{"" + internal_insensitive(internal_backdrop(internal_b_color(normal)))}; +@define-color theme_button_decoration_hover_backdrop_insensitive #{"" + internal_insensitive(internal_backdrop(internal_b_color(hover)))}; +@define-color theme_button_decoration_focus_backdrop_insensitive #{"" + internal_insensitive(internal_backdrop(internal_b_color(active)))}; +@define-color theme_button_foreground_backdrop_insensitive #{"" + internal_insensitive(internal_backdrop(internal_b_color(text)))}; +@define-color theme_button_foreground_active_backdrop_insensitive #{"" + internal_insensitive(internal_backdrop(internal_b_color(active-text)))}; + /* 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 warning_color #{"" + $warning_color}; +@define-color error_color #{"" + $error_color}; +@define-color success_color #{"" + $success_color}; + +@define-color warning_color_backdrop #{"" + internal_backdrop($warning_color)}; +@define-color error_color_backdrop #{"" + internal_backdrop($error_color)}; +@define-color success_color_backdrop #{"" + internal_backdrop($success_color)}; + +@define-color warning_color_insensitive #{"" + internal_insensitive($warning_color)}; +@define-color error_color_insensitive #{"" + internal_insensitive($error_color)}; +@define-color success_color_insensitive #{"" + internal_insensitive($success_color)}; + +@define-color warning_color_insensitive_backdrop #{"" + internal_insensitive(internal_backdrop($warning_color))}; +@define-color error_color_insensitive_backdrop #{"" + internal_insensitive(internal_backdrop($error_color))}; +@define-color success_color_insensitive_backdrop #{"" + internal_insensitive(internal_backdrop($success_color))}; + +@define-color link_color #{"" + $link_color}; +@define-color link_visited_color #{"" + $link_visited_color}; + +/* +* +* Titlebar Colors +* +*/ +@define-color theme_titlebar_background #{"" + internal_t_color(background)}; +@define-color theme_titlebar_foreground #{"" + internal_t_color(text)}; +@define-color theme_titlebar_background_light #{"" + internal_t_color(background-light)}; +@define-color theme_titlebar_foreground_backdrop #{"" + internal_t_color(backdrop-text)}; +@define-color theme_titlebar_background_backdrop #{"" + internal_t_color(backdrop-background)}; + +@define-color theme_titlebar_foreground_insensitive #{"" + internal_insensitive(internal_t_color(text))}; + +@define-color theme_titlebar_foreground_insensitive_backdrop #{"" + internal_insensitive(internal_t_color(backdrop-text))}; + +/* +* Tooltips +*/ +@define-color tooltip_text #{"" + internal_tooltip(text)}; +@define-color tooltip_background #{"" + internal_tooltip(background)}; +@define-color tooltip_border #{"" + internal_tooltip(border)}; + +/* +* Misc +*/ +@define-color print_paper_backdrop #{"" internal_backdrop(white)}; -//@define-color destructive_color #{$destructive_color} +//@!define-color destructive_color #{$destructive_color} //WM @@ -95,23 +223,23 @@ // /* // 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_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_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_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); +// @!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)}; +@define-color content_view_bg #{"" + internal_v_color(normal)}; diff --git a/src/_functions.scss b/src/_functions.scss --- a/src/_functions.scss +++ b/src/_functions.scss @@ -1,12 +1,33 @@ @charset "UTF-8"; +// GTK functions + +// escape string entirely +@function gtk ($str) { + @return unquote($str); +} + +// alpha function +@function gtkalpha($c,$a) { + @return unquote("alpha(#{$c},#{$a})"); +} + +// shade function +@function gtkshade($c, $a) { + @return unquote("shade(#{$c},#{$a})"); +} + +// mix function +@function gtkmix($c1, $c2, $m) { + @return unquote("mix(#{$c1},#{$c2},#{$m})"); +} + // // Theme color functions // - // Button Color -@function b_color($c: normal) { +@function internal_b_color($c: normal) { @if $c == normal { @return $ButtonBackgroundNormal; } @@ -25,7 +46,7 @@ } // Selection Color -@function s_color($c: normal) { +@function internal_s_color($c: normal) { @if $c == normal { @return $SelectionBackgroundNormal; } @@ -41,7 +62,7 @@ } // View Color -@function v_color($c: normal) { +@function internal_v_color($c: normal) { @if $c == normal { @return $ViewBackgroundNormal; } @@ -57,7 +78,7 @@ } // Window Color -@function w_color($c: normal) { +@function internal_w_color($c: normal) { @if $c == normal { @return $WindowBackgroundNormal; } @@ -67,7 +88,7 @@ } // Titlebar color -@function t_color($c: text) { +@function internal_t_color($c: text) { @if $c == text { @return $WMactiveForeground; } @@ -85,7 +106,7 @@ } } -@function tooltip($c: text) { +@function internal_tooltip($c: text) { @if $c == text { @return $TooltipForegroundNormal; } @@ -97,7 +118,7 @@ } } -@function button_gradient($c, $state: normal) { +@function internal_button_gradient($c, $state: normal) { @if $state == normal { @return linear-gradient(to bottom, change-color($c, $lightness: min(lightness($c)*1.01,100%)), change-color($c, $lightness:min(lightness($c)/1.03,100%))); } @@ -107,17 +128,23 @@ } $border_color: mix($WindowBackgroundNormal,$WindowForegroundNormal, 75%); -$menu_color: w_color(normal); +$menu_color: internal_w_color(normal); $link_color: $ViewForegroundLink; $link_visited_color: $ViewForegroundVisited; $warning_color: $ViewForegroundNeutral; $error_color: $ViewForegroundNegative; $success_color: $ViewForegroundPositive; $destructive_color: $error_color; -$trough_color: mix(w_color(normal),w_color(text),70%); -$scrollbar_color: mix($trough_color,v_color(text),50%); +$trough_color: gtkmix(gtk("@theme_bg_color"),gtk("@theme_fg_color"),0.7); +$trough_color_backdrop: gtkmix(gtk("@theme_unfocused_bg_color"),gtk("@theme_unfocused_fg_color"),0.7); +$trough_color_insensitive: gtkmix(gtk("@insensitive_bg_color"),gtk("@insensitive_fg_color"),0.7); +$trough_color_backdrop_insensitive: gtkmix(gtk("@insensitive_unfocused_bg_color"),gtk("@insensitive_unfocused_fg_color"),0.7); + +$scrollbar_color: gtkmix($trough_color,gtk("@theme_text_color"),0.5); +$scrollbar_color_backdrop: gtkmix($trough_color_backdrop,gtk("@theme_unfocused_text_color"),0.5); + // // Color effects // @@ -155,57 +182,57 @@ $r: 3px; // standard radius -@function insensitive($c) { - @return Color(Intensity(Contrast($c, Disabled), Disabled), Disabled); +@function internal_insensitive($c) { + @return internal_Color(internal_Intensity(internal_Contrast($c, Disabled), Disabled), Disabled); } -@function backdrop($c) { +@function internal_backdrop($c) { @if $InactiveEnable == true { - @return Color(Intensity(Contrast($c, Inactive), Inactive), Inactive); + @return internal_Color(internal_Intensity(internal_Contrast($c, Inactive), Inactive), Inactive); } @else { @return $c; } } -@function Contrast($c, $state) { +@function internal_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))) { + @if lightness(internal_w_color()) > lightness(internal_w_color(text)) { + @if lightness($c) < lightness(internal_w_color()) or ($c == internal_t_color(text) and lightness(internal_t_color(background)) <= lightness(internal_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))) { + @if lightness(internal_w_color()) <= lightness(internal_w_color(text)) { + @if lightness($c) > lightness(internal_w_color()) or ($c == internal_t_color(text) and lightness(internal_t_color(background)) > lightness(internal_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))) { + @if lightness(internal_w_color()) > lightness(internal_w_color(text)) { // don't know what a reasonable lightness treshhold is for Contrast + @if lightness($c) < lightness(internal_w_color()) or ($c == internal_t_color(text) and lightness(internal_t_color(background)) <= lightness(internal_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))){ + @if lightness(internal_w_color()) <= lightness(internal_w_color(text)) { + @if lightness($c) > lightness(internal_w_color()) or ($c == internal_t_color(text) and lightness(internal_t_color(background)) > lightness(internal_t_color(text))){ @return transparentize($c, map-get($ContrastAmount, $state)); } @else { @return $c; } } } } -@function Color($c, $state) { +@function internal_Color($c, $state) { @if map-get($ColorEffect, $state) ==0 { @return $c; @@ -225,7 +252,7 @@ } } -@function Intensity($c, $state) { +@function internal_Intensity($c, $state) { @if map-get($IntensityEffect, $state) == 0 { @return $c; @@ -253,7 +280,7 @@ } } -@function alpha2solid($c,$background) { +@function internal_alpha2solid($c,$background) { $amount:alpha($c); $c:rgb(red($c),green($c),blue($c)); @return mix($c,$background,$amount); diff --git a/src/build_theme.sh b/src/build_theme.sh --- a/src/build_theme.sh +++ b/src/build_theme.sh @@ -107,4 +107,4 @@ fi fi -render_theme "${COLOR_SCHEME}" "${THEME_NAME}" "${INSTALL_TARGET}" "${COLOR_SCHEME_ROOT}/Breeze.colors" +render_theme "${COLOR_SCHEME}" "${THEME_NAME}" "${INSTALL_TARGET}" "${COLOR_SCHEME_ROOT}/Breeze.colors" \ No newline at end of file diff --git a/src/gtk-dark-3.0.css b/src/gtk-dark-3.0.css --- a/src/gtk-dark-3.0.css +++ b/src/gtk-dark-3.0.css @@ -1 +1 @@ -@import url("../../Breeze-Dark/gtk-3.20/gtk.css"); +@import url("../../Breeze-Dark/gtk-3.0/gtk.css"); \ No newline at end of file diff --git a/src/gtk3/gtk.scss b/src/gtk3/gtk.scss --- a/src/gtk3/gtk.scss +++ b/src/gtk3/gtk.scss @@ -1,5 +1,7 @@ @charset "UTF-8"; +$new-highlight: false; + @import 'global'; @import '../functions'; @import '../colors'; diff --git a/src/gtk3/widgets/_app_notifications.scss b/src/gtk3/widgets/_app_notifications.scss --- a/src/gtk3/widgets/_app_notifications.scss +++ b/src/gtk3/widgets/_app_notifications.scss @@ -19,11 +19,11 @@ text-shadow: none; &:hover { @extend %undecorated_button; - color: b_color(hover); + color: gtk("@theme_button_decoration_hover"); } &:active { @extend %undecorated_button; - color: b_color(active); + color: gtk("@theme_button_decoration_focus"); } &:backdrop, &:disabled, diff --git a/src/gtk3/widgets/_base.scss b/src/gtk3/widgets/_base.scss --- a/src/gtk3/widgets/_base.scss +++ b/src/gtk3/widgets/_base.scss @@ -1,15 +1,11 @@ @charset "UTF-8"; -@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; + -GtkTextView-error-underline-color: gtk("@error_color"); // 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 @@ -40,14 +36,14 @@ ***************/ .background { - color: w_color(text); - background-color: w_color(normal); + color: gtk("@theme_fg_color"); + background-color: gtk("@theme_bg_color"); &:backdrop { text-shadow: none; -gtk-icon-shadow: none; - color: backdrop(w_color(text)); - background-color: backdrop(w_color(normal)); + color: gtk("@theme_unfocused_fg_color"); + background-color: gtk("@theme_unfocused_bg_color"); } } @@ -63,38 +59,38 @@ } .gtkstyle-fallback { - background-color: w_color(normal); - color: w_color(text); + background-color: gtk("@theme_bg_color"); + color: gtk("@theme_fg_color"); &:hover { - background-color: lighten(w_color(normal), 10%); - color: w_color(text); + background-color: gtkshade("@theme_bg_color", 1.1); + color: gtk("@theme_fg_color"); } &:active { - background-color: darken(w_color(normal), 10%); - color: w_color(text); + background-color: gtkshade("@theme_bg_color", 0.9); + color: gtk("@theme_fg_color"); } &:disabled { - background-color: insensitive(w_color(normal)); - color: insensitive(w_color(text)); + background-color: gtk("@insensitive_fg_color"); + color: gtk("@insensitive_fg_color"); } &:selected { - background-color: s_color(normal); - color: s_color(text); + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_selected_fg_color"); } } %view, .view { - color: v_color(text); - background-color: v_color(normal); + color: gtk("@theme_text_color"); + background-color: gtk("@theme_base_color"); &:backdrop { - color: backdrop(v_color(text)); - background-color: backdrop(v_color(normal)); + color: gtk("@theme_unfocused_text_color"); + background-color: gtk("@theme_unfocused_base_color"); } &:disabled { - color: insensitive(v_color(text)); + color: gtk("@insensitive_base_fg_color"); } &:selected { @@ -115,11 +111,13 @@ } textview border { - background-color: v_color(normal); - background-image: image($border_color); // HACK: the border node just draws background so, + background-color: gtk("@theme_base_color"); + background-image: image(gtk("@borders")); // HACK: the border node just draws background so, background-repeat: no-repeat; // using a background-image to draw the border - &:backdrop { background-color: backdrop(v_color(normal)); } + &:backdrop { + background-color: gtk("@theme_unfocused_base_color"); + } &.bottom { background-size: 100% 1px; @@ -144,11 +142,11 @@ .rubberband, rubberband { - border: 1px solid s_color(normal); - background-color: transparentize(s_color(normal),0.8); + border: 1px solid gtk("@theme_selected_bg_color"); + background-color: gtkalpha("@theme_selected_bg_color", 0.8); &:backdrop { - border-color: backdrop(s_color(normal)); - background-color: backdrop(transparentize(s_color(normal),0.8)); + border-color: gtk("@theme_unfocused_selected_bg_color"); + background-color: gtkalpha("@theme_unfocused_selected_bg_color", 0.8); } } @@ -169,23 +167,27 @@ label { &.separator { - color: w_color(text); + color: gtk("@theme_fg_color"); @extend .dim-label; - &:backdrop { color: backdrop(w_color(text)); } + &:backdrop { + color: gtk("@theme_unfocused_fg_color"); + } } selection { - background-color: s_color(normal); - color: s_color(text) + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_selected_fg_color"); } &:disabled { - color: insensitive(w_color(text)); + color: gtk("@insensitive_fg_color"); selection { @extend %selected_items:disabled; } - &:backdrop { color: backdrop(insensitive(w_color(text))); } + &:backdrop { + color: gtk("@insensitive_unfocused_fg_color") + } } &:backdrop { - color:backdrop(w_color(text)); + color: gtk("@theme_unfocused_text_color"); selction {@extend %selected_items:backdrop;} } @@ -198,65 +200,69 @@ assistant { .sidebar { - background-color: v_color(text); - border-top: 1px solid $border_color; + background-color: gtk("@theme_text_color"); + border-top: 1px solid gtk("@borders"); &:backdrop { - background-color: backdrop(v_color(text)); - border-color: backdrop($border_color); + background-color: gtk("@theme_unfocused_text_color"); + border-color: gtk("@unfocused_borders"); } } &.csd .sidebar { border-top-style: none; } .sidebar label { padding: 6px 12px; } .sidebar label.highlight { - background-color: mix(v_color(normal), v_color(text), 80%); + background-color: gtkmix("@theme_base_color", "@theme_text_color", 0.8); } } %osd, .osd { - color: w_color(text); - border: 1px solid $border_color; - background-color: transparentize(w_color(normal),0.2); + color: gtk("@theme_fg_color"); + border: 1px solid gtk("@borders"); + background-color: gtkalpha("@theme_bg_color",0.8); background-clip: padding-box; box-shadow: none; text-shadow: none; -gtk-icon-shadow: none; &:backdrop { - color: backdrop(w_color(text)); - background-color: backdrop(transparentize(w_color(normal),0.2)); + color: gtk("@theme_unfocused_text_color"); + background-color: gtkalpha("@theme_unfocused_bg_color", 0.8); -gtk-icon-shadow: none; } } %selected_items { - background-color: s_color(normal); - color: s_color(text); + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_selected_fg_color"); &:hover { - background-color: s_color(hover); - color: w_color(text); + background-color: gtk("@theme_hovering_selected_bg_color"); + color: gtk("@theme_fg_color"); } &:backdrop { - background-color: backdrop(s_color(backdrop)); - color: backdrop(v_color(normal)); + background-color: gtk("@theme_unfocused_selected_bg_color"); + color: gtk("@theme_unfocused_base_color"); } } %selected_items { - background-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); border-radius: 0px; @at-root %nobg_selected_items, & { - color: s_color(text); + color: gtk("@theme_selected_fg_color"); - &:disabled { color: insensitive(s_color(text)); } + &:disabled { + color: gtk("@insensitive_selected_fg_color"); + } &:backdrop { - color: backdrop(s_color(text)); + color: gtk("@theme_unfocused_selected_fg_color"); - &:disabled { color: backdrop(insensitive(s_color(text))); } + &:disabled { + color: gtk("@insensitive_unfocused_selected_fg_color"); + } } } } 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 @@ -3,7 +3,8 @@ // buttons -@mixin button($t, $c:b_color(normal), $tc:b_color(text)) { +@mixin button($t) { +// $c:gtk("@theme_button_background_normal"), $tc:gtk("@theme_button_foreground_normal") // // Button drawing function // @@ -27,110 +28,105 @@ text-shadow: none; -gtk-icon-shadow: none; - color: $tc; - border-color: if($c!=b_color(normal), $c, $border_color); - background-image: button_gradient($c, normal); + color: gtk("@theme_button_foreground_normal"); + border-color: gtk("@borders"); + background-color: gtk("@theme_button_background_normal"); } @else if $t==hover { // // hovered button // - color: $tc; - border-color: if($c!=b_color(normal), $c, b_color(hover)); + color: gtk("@theme_button_foreground_normal"); + border-color: gtk("@theme_button_decoration_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)); + color: gtk("@theme_button_foreground_active"); + border-color: gtk("@theme_button_decoration_focus"); + background-color: gtk("@theme_button_decoration_focus"); } @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)); + color: gtk("@theme_button_foreground_normal"); + border-color: gtk("@theme_button_decoration_hover"); + background-color: gtk("@theme_button_decoration_hover"); } @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)); + color: gtk("@theme_button_foreground_insensitive"); + border-color: gtk("@insensitive_borders"); + background-color: gtk("@theme_button_background_insensitive"); + > .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)); + color: gtk("@theme_button_foreground_active_insensitive"); + border-color: gtk("@theme_button_decoration_focus_insensitive"); + background-color: gtk("@theme_button_decoration_focus_insensitive"); > .label { color: inherit; } } @else if $t==backdrop { // // backdrop button // - color: backdrop($tc); - border-color: backdrop($border_color); - background-image: button_gradient(backdrop($c), normal); + color: gtk("@theme_button_foreground_backdrop"); + border-color: gtk("@unfocused_borders"); + background-color: gtk("@theme_button_background_backdrop"); } @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)); + color: gtk("@theme_button_foreground_active_backdrop"); + border-color: gtk("@theme_button_decoration_focus_backdrop"); + background-color: gtk("@theme_button_decoration_focus_backdrop"); } @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))); + color: gtk("@theme_button_foreground_backdrop_insensitive"); + border-color: gtk("@unfocused_insensitive_borders"); + background-color: gtk("@theme_button_background_backdrop_insensitive"); > .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)); + color: gtk("@theme_button_foreground_active_backdrop_insensitive"); + border-color: gtk("@theme_button_decoration_focus_backdrop_insensitive"); + background-color: gtk("@theme_button_decoration_focus_backdrop_insensitive"); > .label { color: inherit; } } @else if $t==undecorated { // // reset // - border-color: transparentize(white,1); //FIXME needed? + border-color: transparent; background-color: transparent; background-image: none; box-shadow:none; - color: $tc; + color: gtk("@theme_button_foreground_normal"); text-shadow: none; -gtk-icon-shadow: none; @@ -142,7 +138,7 @@ ***********/ // stuff for .needs-attention -$_dot_color: b_color(active); +$_dot_color: gtk("@theme_button_decoration_focus"); @keyframes needs_attention { from { background-image: -gtk-gradient(radial, @@ -155,7 +151,7 @@ background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, - to(s_color(normal)), + to(gtk("@theme_selected_bg_color")), to(transparent)); } } @@ -182,7 +178,7 @@ transition-duration: 500ms; &:active { transition: $_button_transition; } } - &:checked { background-color: $border_color;} + &:checked { background-color: gtk("@borders");} } &:hover { @include button(hover); @@ -211,15 +207,15 @@ &.flat:backdrop { -gtk-icon-effect: none; @include button(undecorated); - color: backdrop(b_color(text)); + color: gtk("@theme_button_foreground_backdrop"); } &.flat:disabled { @include button(undecorated); - color: insensitive(b_color(text)); + color: gtk("@theme_button_foreground_insensitive"); } &.flat:backdrop:disabled { @include button(undecorated); - color: backdrop(insensitive(b_color(text))); + color: gtk("@theme_button_foreground_backdrop_insensitive"); } &:disabled { @include button(insensitive); @@ -273,49 +269,69 @@ @at-root %button_selected, & { row:selected & { - border-color: s_color(normal); + border-color: gtk("@theme_selected_bg_color"); &.flat:not(:active):not(:checked):not(:hover):not(disabled) { - color: s_color(text); + color: gtk("@theme_selected_fg_color"); border-color: transparent; - &:backdrop { color: backdrop(s_color(text)); } + &:backdrop { + color: gtk("@theme_unfocused_selected_fg_color"); + } } } } // Suggested and Destructive Action buttons - @each $b_type, $button_color in (suggested-action, b_color(active)), - (destructive-action, $error_color) { + @each $b_type, $button_color in (suggested-action, gtk("@theme_button_decoration_focus")), + (destructive-action, gtk("@error_color")) { &.#{$b_type}, &.#{$b_type}.osd & { - @include button(normal, $button_color, b_color(active-text)); + @include button(normal); + background-color: $button_color; + color: gtk("@theme_button_foreground_active"); &.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); } + &:hover { + @include button(hover); + color: white; //! FIXME - No hardcoded colors. + background-color: $button_color; + } + &:active, &:checked { + @include button(active); + background-color: $button_color; + color: white; + } &:backdrop, &.flat:backdrop { - @include button(backdrop, $button_color, white); + @include button(backdrop); + background-color: $button_color; + color: white; &:active, &:checked { - @include button(backdrop-active, $button_color, white); + @include button(backdrop-active); + background-color: $button_color; + color: white; } &:disabled { @include button(backdrop-insensitive); &:active, &:checked { - @include button(backdrop-insensitive-active, $button_color, white); + @include button(backdrop-insensitive-active); + background-color: $button_color; + color: white; } } } &.flat:backdrop, &.flat:disabled, &.flat:backdrop:disabled { @include button(undecorated); - color: transparentize($button_color, 0.2); + color: gtkalpha($button_color, 0.8); } &:disabled { @include button(insensitive); &:active, &:checked { - @include button(insensitive-active, $button_color, white); + @include button(insensitive-active); + background-color: $button_color; + color: white; } } } @@ -422,7 +438,7 @@ %needs_attention { animation: needs_attention 150ms ease-in; - $_dot_shadow: b_color(text); + $_dot_shadow: gtk("@theme_button_foreground_normal"); $_dot_shadow_r: 0.5; background-image: -gtk-gradient(radial, center center, 0, diff --git a/src/gtk3/widgets/_calendar.scss b/src/gtk3/widgets/_calendar.scss --- a/src/gtk3/widgets/_calendar.scss +++ b/src/gtk3/widgets/_calendar.scss @@ -4,63 +4,63 @@ * Calendar * ***********/ calendar { - color: v_color(text); - border: 1px solid $border_color; - background-color: v_color(normal); + color: gtk("@theme_text_color"); + border: 1px solid gtk("@borders"); + background-color: gtk("@theme_base_color"); &:selected { - background-color: $border_color; + background-color: gtk("@borders"); } &:disabled { - color: insensitive(v_color(text)); + color: gtk("@insensitive_base_fg_color"); } &.header { - border: 1px solid $border_color; + border: 1px solid gtk("@borders"); border-radius: 0; - color: v_color(text); + color: gtk("@theme_text_color"); &:backdrop { - color: backdrop(v_color(text)); - border-color: backdrop($border_color); + color: gtk("@theme_unfocused_text_color"); + border-color: gtk("@unfocused_borders"); } &:disabled { - color: insensitive(v_color(text)); + color: gtk("@insensitive_base_fg_color"); } } &.button { @extend %undecorated_button; - color: b_color(text); + color: gtk("@theme_button_foreground_normal"); &:hover { @extend %undecorated_button; - color: b_color(hover); + color: gtk("@theme_button_decoration_hover"); } &:active { @extend %undecorated_button; - color: b_color(active); + color: gtk("@theme_button_decoration_focus"); } &:backdrop { @extend %undecorated_button; - color: backdrop(b_color(text)); + color: gtk("@theme_button_foreground_backdrop"); } } &:indeterminate, &.highlight { - color: transparentize(v_color(text),0.5); + color: gtkalpha(gtk("@theme_text_color"),0.5); } &:indeterminate:backdrop, &.highlight:backdrop { - color: backdrop(transparentize(v_color(text),0.5)); + color:gtkalpha(gtk("@theme_unfocused_text_color"),0.5); } &:backdrop { - color: backdrop(v_color(text)); - border-color: backdrop($border_color); - background-color: backdrop(v_color(normal)); + color: gtk("@theme_unfocused_text_color"); + border-color: gtk("@unfocused_borders"); + background-color: gtk("@theme_unfocused_base_color"); } } diff --git a/src/gtk3/widgets/_color_chooser.scss b/src/gtk3/widgets/_color_chooser.scss --- a/src/gtk3/widgets/_color_chooser.scss +++ b/src/gtk3/widgets/_color_chooser.scss @@ -9,7 +9,7 @@ :selected & { box-shadow: none; &.overlay, &.overlay:hover { - border-color: s_color(text); + border-color: gtk("@theme_selected_fg_color"); } } @@ -70,8 +70,10 @@ // border color overlay, overlay:selected { - border: 1px solid $border_color; - &:hover { border-color: b_color(hover); } + border: 1px solid gtk("@borders"); + &:hover { + border-color: gtk("@theme_button_decoration_hover"); + } } // make the add color button looks like, well, a button diff --git a/src/gtk3/widgets/_dialogs.scss b/src/gtk3/widgets/_dialogs.scss --- a/src/gtk3/widgets/_dialogs.scss +++ b/src/gtk3/widgets/_dialogs.scss @@ -10,12 +10,16 @@ messagedialog { // Message Dialog styling - &.background { background-color: w_color(normal); } - &:backdrop { background-color: backdrop(w_color(normal))} + &.background { + background-color: gtk("@theme_bg_color"); + } + &:backdrop { + background-color: gtk("@theme_unfocused_bg_color"); + } .titlebar { min-height: 32px; background-color: transparent; - background-image: linear-gradient(to bottom,change-color(t_color(background),$lightness: min(lightness(t_color(background))*1.2,100%)),t_color(background)); + background-image: linear-gradient(to bottom, gtkshade("@theme_titlebar_background", 1.2117647),gtk("@theme_titlebar_background")); box-shadow: none; } .dialog-action-area { @@ -26,21 +30,21 @@ filechooser { .search-bar { - background-color: w_color(normal); - border-color: w_color(normal); + background-color: gtk("@theme_bg_color"); + border-color: gtk("@theme_bg_color"); box-shadow: none; &:backdrop { - background-color: backdrop(w_color(normal)); - border-color: backdrop(w_color(normal)); - color: backdrop(w_color(text)); + background-color: gtk("@theme_unfocused_bg_color"); + border-color: gtk("@theme_unfocused_bg_color"); + color: gtk("@theme_unfocused_text_color"); } } .dialog-action-box { - border-top: 1px solid $border_color; - &:backdrop { border-top-color: backdrop($border_color); } + border-top: 1px solid gtk("@borders"); + &:backdrop { border-top-color: gtk("@unfocused_borders"); } } #pathbarbox { - background-color: w_color(normal); - border-bottom: 1px solid $border_color; + background-color: gtk("@theme_bg_color"); + border-bottom: 1px solid gtk("@borders"); } } diff --git a/src/gtk3/widgets/_entry.scss b/src/gtk3/widgets/_entry.scss --- a/src/gtk3/widgets/_entry.scss +++ b/src/gtk3/widgets/_entry.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; -@mixin entry($t, $fc:v_color(active)) { +@mixin entry($t, $fc:gtk("@theme_view_active_decoration_color")) { // // Entries drawing function // @@ -13,32 +13,32 @@ // 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); + color: gtk("@theme_text_color"); + border-color: gtk("@borders"); + background-color: gtk("@theme_base_color"); 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)); + color: gtk("@insensitive_base_fg_color"); + border-color: gtk("@insensitive_borders"); + background-color: gtk("@insensitive_base_color"); } @if $t==backdrop { - color: backdrop(v_color(text)); - border-color: backdrop($border_color); - background-color: backdrop(v_color(normal)); + color: gtk("@theme_unfocused_text_color"); + border-color: gtk("@unfocused_borders"); + background-color: gtk("@theme_unfocused_base_color"); } @if $t==backdrop-insensitive { - color: backdrop(insensitive(v_color(text))); - border-color: backdrop(insensitive($border_color)); - background-color: backdrop(insensitive(v_color(normal))); + color: gtk("@theme_unfocused_view_text_color"); + border-color: gtk("@unfocused_insensitive_borders"); + background-color: gtk("@theme_unfocused_view_bg_color"); } } @@ -82,30 +82,36 @@ selection { &:focus, & { @extend %selected_items; }} - @each $e_type, $e_color in (error, $error_color), - (warning, $warning_color) { + @each $e_type, $e_color in (error, gtk("@error_color")), + (warning, gtk("@warning_color")) { &.#{$e_type} { color: $e_color; border-color: $e_color; - background-color: transparentize($e_color, 0.5); + background-color: gtkalpha($e_color, 0.5); &:focus { @include entry(focus, $e_color); - background-color: transparentize($e_color, 0.5); + background-color: gtkalpha($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)); + @if $e_color == gtk("@error_color") { + color: gtk("@error_color_backdrop"); + border-color: gtk("@error_color_backdrop"); + background-color: gtkalpha("@error_color_backdrop", 0.5); + } @else if $e_color == gtk("@warning_color") { + color: gtk("@warning_color_backdrop"); + border-color: gtk("@warning_color_backdrop"); + background-color: gtkalpha("@warning_color_backdrop", 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%)); } + color: gtkmix(gtk("@theme_fg_color"),gtk("@theme_text_color"), 0.8); + &:hover { color: gtk("@theme_button_decoration_hover"); } + &:active { color: gtk("@theme_button_decoration_focus"); } + &:backdrop { color: gtkmix(gtk("@theme_unfocused_fg_color"), gtk("@theme_unfocused_fg_color"), 0.8); } } // FIXME // &:drop(active) { @@ -120,28 +126,28 @@ margin: 1px; border-radius: 0; border-width: 0 0 2px; - border-color: s_color(normal); + border-color: gtk("@theme_selected_bg_color"); border-style: solid; background-image: none; background-color: transparent; box-shadow: none; &:backdrop { background-color: transparent; - border-color: backdrop(s_color(backdrop)); + border-color: gtk("@theme_unfocused_selected_bg_color"); } } } treeview acceleditor > label { - background-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); } treeview entry { &.flat, & { border-radius: 0; background-image: none; - background-color: v_color(normal); + background-color: gtk("@theme_base_color"); - &:focus { border-color: v_color(active); } + &:focus { border-color: gtk("@theme_view_active_decoration_color"); } } } 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 @@ -11,47 +11,52 @@ border-width: 0px 0px 1px 0px; border-radius: 3px 3px 0px 0px; border-style: solid; - border-color: $border_color; - color: t_color(text); + border-color: gtk("@borders"); + color: gtk("@theme_titlebar_foreground"); background-image: none; - background-color: t_color(background); + background-color: gtk("@theme_titlebar_background"); &:backdrop { border-color: transparent; background-image: none; - background-color: t_color(backdrop-background); - color: t_color(backdrop-text); + background-color: gtk("@theme_titlebar_background_backdrop"); + color: gtk("@theme_titlebar_foreground_backdrop"); box-shadow: none; } label { font-weight: normal; - &:backdrop { color: t_color(backdrop-text); } + &:backdrop { color: gtk("@theme_titlebar_foreground_backdrop"); } } .path-bar button { - color: t_color(text); + color: gtk("@theme_titlebar_foreground"); font-weight: normal; - &:backdrop { color: t_color(backdrop-text)} + &:backdrop { + color: gtk("@theme_titlebar_foreground_backdrop"); + } } button { transition: none; - @include button(undecorated, $tc: t_color(text)); + @include button(undecorated); + color: gtk("@theme_titlebar_foreground"); &.flat { - @include button(undecorated,$tc: t_color(text)); + @include button(undecorated); + color: gtk("@theme_titlebar_foreground"); } &:hover { - @include button(hover, $tc: t_color(text)); - &:backdrop { border-color: t_color(backdrop-background); } + @include button(hover); + color: gtk("@theme_titlebar_foreground"); + &:backdrop { border-color: gtk("@theme_titlebar_background_backdrop"); } } &: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); + background-color: gtk("@theme_titlebar_background_backdrop"); + border-color: gtk("@theme_titlebar_background_backdrop"); + color: gtk("@theme_titlebar_foreground_backdrop"); } } @@ -62,25 +67,25 @@ &:backdrop { border-color: transparent; background-image: none; - background-color: t_color(backdrop-background); - color: t_color(backdrop-text); + background-color: gtk("@theme_titlebar_background_backdrop"); + color: gtk("@theme_titlebar_foreground_backdrop"); } &.flat:backdrop, &.flat:backdrop:disabled, &:disabled:backdrop { background-image: none; - background-color: t_color(backdrop-background); - color: t_color(backdrop-text); + background-color: gtk("@theme_titlebar_background_backdrop"); + color: gtk("@theme_titlebar_foreground_backdrop"); border-color: transparent; } &.flat:disabled { @extend %undecorated_button;; - color: insensitive(t_color(text)); + color: gtk("@theme_titlebar_foreground_insensitive"); } &:disabled { background-color: transparent; background-image: none; border-color: transparent; - color: insensitive(t_color(text)); + color: gtk("@theme_titlebar_foreground_insensitive"); &:active, &:checked { @include button(insensitive-active); } @@ -90,14 +95,18 @@ .title { font-weight: normal; padding: 0px 12px; - &:backdrop { color: t_color(backdrop-text)} + &:backdrop { + color: gtk("@theme_titlebar_foreground_backdrop"); + } } .subtitle { font-size: smaller; padding: 0 12px; @extend .dim-label; - &:backdrop { color: t_color(backdrop-text)} + &:backdrop { + color: gtk("@theme_titlebar_foreground_backdrop"); + } } separator { @@ -147,25 +156,25 @@ %suggested-action { background-image: none; - background-color: b_color(active); + background-color: gtk("@theme_button_decoration_focus"); &:hover { - background-color: b_color(hover); - color: b_color(text) + background-color: gtk("@theme_button_decoration_hover"); + color: gtk("@theme_button_foreground_normal"); } &:disabled { background-color: transparent; background-image: none; - color: insensitive(t_color(text)); + color: gtk("@theme_titlebar_foreground_insensitive"); &:active, &:checked { @include button(insensitive-active); } } &:backdrop { - background-color: t_color(backdrop-background); + background-color: gtk("@theme_titlebar_background_backdrop"); border-color: transparent; - color: t_color(backdrop-text); + color: gtk("@theme_titlebar_foreground_backdrop"); &:disabled { - color: insensitive(t_color(backdrop-text)); + color: gtk("@theme_titlebar_foreground_insensitive_backdrop"); } } } diff --git a/src/gtk3/widgets/_infobar.scss b/src/gtk3/widgets/_infobar.scss --- a/src/gtk3/widgets/_infobar.scss +++ b/src/gtk3/widgets/_infobar.scss @@ -5,63 +5,65 @@ **************/ infobar { border-style: none; - border-bottom: 1px solid $border_color; - background-color: w_color(normal); + border-bottom: 1px solid gtk("@borders"); + background-color: gtk("@theme_bg_color"); background-image: none; - &:backdrop {border-bottom: 1px solid backdrop($border_color);} + &:backdrop { + border-bottom: 1px solid gtk("@unfocused_borders"); + } } .info, .question, .warning, .error { - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); background-image: none; - color: $warning_color; + color: gtk("@warning_color"); text-shadow: none; &:backdrop { - background-color: backdrop(w_color(normal)); - color: backdrop($warning_color); + background-color: gtk("@theme_unfocused_bg_color"); + color: gtk("@warning_color_backdrop"); } 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); + background-color: gtkalpha("@warning_color", 0.5); + border-color: gtkalpha("@warning_color", 0.5); + color: gtk("@theme_button_foreground_normal"); &:hover { - background-color: transparentize($warning_color, 0.75); - border-color: $warning_color; + background-color: gtkalpha("@warning_color", 0.25); + border-color: gtk("@warning_color"); } &:active, &:checked { - background-image: button_gradient($warning_color); - color: w_color(normal); - border-color: $warning_color; + background-color: gtk("@warning_color"); + color: gtk("@theme_bg_color"); + border-color: gtk("@warning_color"); } &:disabled { - background-color: insensitive(transparentize($warning_color, 0.5)); - border-color: insensitive(transparentize($warning_color, 0.5)); - color: insensitive(b_color(text)); + background-color: gtkalpha("@warning_color_insensitive", 0.5); + border-color: gtkalpha("@warning_color_insensitive", 0.5); + color: gtk("@theme_button_foreground_insensitive"); } &:backdrop { - background-color: backdrop(transparentize($warning_color, 0.5)); - border-color: backdrop(transparentize($warning_color, 0.5)); - color: backdrop(b_color(text)); + background-color: gtkalpha("@warning_color_backdrop", 0.5); + border-color: gtkalpha("@warning_color_backdrop", 0.5); + color: gtk("@theme_button_foreground_backdrop"); &:active, &:checked { - background-image: button_gradient(backdrop($warning_color)); - color: backdrop(w_color(normal)); - border-color: backdrop($warning_color); + background-color: gtk("@warning_color_backdrop"); + color: gtk("@theme_unfocused_bg_color"); + border-color: gtk("@warning_color_backdrop"); } &:disabled { - background-color: backdrop(insensitive(transparentize($warning_color, 0.5))); - border-color: backdrop(insensitive(transparentize($warning_color, 0.5))); - color: backdrop(insensitive(b_color(text))); + background-color: gtkalpha("@warning_color_insensitive_backdrop", 0.5); + border-color: gtkalpha("@warning_color_insensitive_backdrop", 0.5); + color: gtk("@theme_button_foreground_backdrop_insensitive"); } &:disabled:active, &:disabled:checked { - background-image: button_gradient(backdrop(insensitive($warning_color))); - color: backdrop(insensitive(w_color(normal))); - border-color: backdrop(insensitive($warning_color)); + background-color: gtk("@warning_color_insensitive_backdrop"); + color: gtk("@insensitive_unfocused_bg_color"); + border-color: gtk("@warning_color_insensitive_backdrop"); } } } diff --git a/src/gtk3/widgets/_link.scss b/src/gtk3/widgets/_link.scss --- a/src/gtk3/widgets/_link.scss +++ b/src/gtk3/widgets/_link.scss @@ -5,25 +5,31 @@ *********/ %link, *:link { - color: $link_color; + color: gtk("@link_color"); &:visited { - color: $link_visited_color; - *:selected & { color: mix(s_color(text), s_color(normal), 60%); } + color: gtk("@link_visited_color"); + *:selected & { + color: gtkmix(gtk("@theme_selected_fg_color"), gtk("@theme_selected_bg_color"), 0.6); + } } &:hover { - color: lighten($link_color,10%); - *:selected & { color: mix(s_color(text), s_color(normal), 90%); } + color: gtkshade("@link_color", 1.1); + *:selected & { + color: gtkmix(gtk("@theme_selected_fg_color"), gtk("@theme_selected_bg_color"), 0.9); + } } &:active { - color: $link_color; - *:selected & { color: mix(s_color(text), s_color(normal), 80%); } + color: gtk("@link_color"); + *:selected & { + color: gtkmix(gtk("@theme_selected_fg_color"), gtk("@theme_selected_bg_color"), 0.8); + } } &:backdrop, &:backdrop:hover, &:backdrop:hover:selected { - color: backdrop(s_color(backdrop)); + color: gtk("@theme_unfocused_selected_bg_color"); } @at-root %link_selected, &:selected, *:selected & { - color: mix(s_color(text), s_color(normal), 80%); + color: gtkmix("@theme_selected_fg_color", "@theme_selected_bg_color", 0.8); } } diff --git a/src/gtk3/widgets/_lists.scss b/src/gtk3/widgets/_lists.scss --- a/src/gtk3/widgets/_lists.scss +++ b/src/gtk3/widgets/_lists.scss @@ -4,13 +4,25 @@ * Lists * *********/ +@mixin list-item-highlight { + @if $new-highlight { + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_button_foreground_active"); + border-top: 1px solid gtk("@theme_button_decoration_focus"); + border-bottom: 1px solid gtk("@theme_button_decoration_focus"); + border-radius: 0px; + } @else { + background-color: gtk("@theme_selected_bg_color"); + } +} + list { - background-color: w_color(normal); - color: w_color(text); + background-color: gtk("@theme_bg_color"); + color: gtk("@theme_fg_color"); border-width: 0px; &:backdrop { - background-color: backdrop(w_color(normal)); - color: backdrop(w_color(text)); + background-color: gtk("@theme_unfocused_bg_color"); + color: gtk("@theme_unfocused_fg_color"); } row { padding: 2px; } } @@ -21,30 +33,37 @@ &:hover { transition: none; } &.activatable { + @if $new-highlight { + border: 1px solid transparent; + } + &.has-open-popup, // this is for indicathing which row generated a popover see https://bugzilla.gnome.org/show_bug.cgi?id=754411 - &:hover { background-color: transparentize(s_color(normal), 0.5); } + &:hover { + @include list-item-highlight(); + } &:active { box-shadow: none; - background-color: s_color(normal); + @include list-item-highlight(); } &:selected { &:active { box-shadow: none; - background-color: s_color(normal); + @include list-item-highlight(); } &.has-open-popup, &:hover { - color: w_color(text); - background-color: s_color(hover); + @include list-item-highlight(); } - &:backdrop { background-color: backdrop(s_color(normal)); } + &:backdrop { + background-color: gtk("@theme_unfocused_selected_bg_color_alt"); + } } } &:selected { @extend %selected_items; } -} +} \ No newline at end of file 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 @@ -1,80 +1,114 @@ @charset "UTF-8"; +@mixin item-highlight { + @if $new-highlight { + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_button_foreground_active"); + border: 1px solid gtk("@theme_button_decoration_focus"); + } @else { + background-color: gtk("@theme_button_decoration_focus"); + color: gtk("@theme_button_foreground_active") + } + border-radius: 3px; +} + /********* * Menus * *********/ - menubar, .menubar { -GtkWidget-window-dragging: true; padding: 0px; box-shadow: none; border-style: none; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); + &:backdrop { - background-color: backdrop(w_color(normal)); + background-color: gtk("@theme_unfocused_bg_color"); } - > menuitem { + + >menuitem { min-height: 16px; padding: 4px 6px; - &:hover { //Seems like it :hover even with keyboard focus - background-color: b_color(active); - color: b_color(active-text); + border-bottom: 3px solid transparent; + + &:hover { + //Seems like it :hover even with keyboard focus + background-color: gtkalpha(gtk("@theme_button_decoration_focus"), 0.3); + color: gtk("@theme_button_foreground_active"); + border-bottom: 3px solid gtk("@theme_button_decoration_focus"); } + &:disabled { - color: insensitive(w_color(text)); + color: gtk("@insensitive_fg_color"); box-shadow: none; + &:backdrop { - background-color: backdrop(w_color(normal)); - color: backdrop(insensitive(w_color(text))); + background-color: gtk("@theme_unfocused_bg_color"); + color: gtk("@insensitive_unfocused_fg_color"); } } + &:backdrop { - background-color: backdrop(w_color(normal)); - color: backdrop(w_color(text)); + background-color: gtk("@theme_unfocused_bg_color"); + color: gtk("@theme_unfocused_fg_color"); } } } menu, .menu { padding: 0px; - background-color: $menu_color; + background-color: gtk("@theme_bg_color"); border: 0px solid transparent; // FIXME workaround for libreoffice gtk3, should be a border //border: 1px solid $border_color; // adds borders in a non composited env - box-shadow: inset 0px 0px 0px 1px $border_color; + box-shadow: inset 0px 0px 0px 1px gtk("@borders"); border-radius: $r; + .csd & { //background-color: transparent; border: 0px solid; border-radius: $r; //box-shadow: 0px 0px 0px 1px $border_color, 2px 2px 2px 1px rgba(0, 0, 0, 0.1); - } // axes borders in a composited env + } + + // axes borders in a composited env separator { - color: $border_color; - margin-top: 3px; - margin-bottom: 3px; + color: gtk("@borders"); } + menuitem { - text-shadow: none; + text-shadow: none; min-height: 16px; min-width: 40px; padding: 4px 4px; + + @if $new-highlight{ + border: 1px solid transparent; + margin: 4px; + } + &:hover { - color: b_color(active-text); - background-color: b_color(active); + @include item-highlight(); } + &:disabled { - color: insensitive(w_color(text)); - &:backdrop { color: backdrop(insensitive(w_color(text))); } + color: gtk("@insensitive_fg_color"); + + &:backdrop { + color: gtk("@insensitive_unfocused_fg_color"); + } } - &:backdrop, &:backdrop:hover { - color: backdrop(w_color(text)); - background-color: backdrop(w_color(normal)); + + &:backdrop, + &:backdrop:hover { + color: gtk("@theme_unfocused_fg_color"); + background-color: gtk("@theme_unfocused_bg_color"); } + // submenu indicators arrow { min-height: 16px; @@ -86,13 +120,14 @@ } &:dir(rtl) { - -gtk-icon-source:-gtk-icontheme('pan-start-symbolic'); + -gtk-icon-source: -gtk-icontheme('pan-start-symbolic'); margin-right: 10px; } } } + // overflow arrows - > arrow { + >arrow { @include button(undecorated); min-height: 16px; diff --git a/src/gtk3/widgets/_misc.scss b/src/gtk3/widgets/_misc.scss --- a/src/gtk3/widgets/_misc.scss +++ b/src/gtk3/widgets/_misc.scss @@ -9,15 +9,15 @@ *****************/ printdialog { paper { - color: w_color(text); - border: 1px solid $border_color; + color: gtk("@theme_fg_color"); + border: 1px solid gtk("@borders"); background: white; padding: 0; &:backdrop { - color: backdrop(w_color(text)); - border-color: backdrop($border_color); - background: backdrop(white); + color: gtk("@theme_unfocused_fg_color"); + border-color: gtk("@unfocused_borders"); + background: gtk("@print_paper_backdrop"); } } @@ -33,18 +33,18 @@ margin: 0; padding: 0; border-radius: 0; - border: 1px solid $border_color; + border: 1px solid gtk("@borders"); &.flat { border-style: none; } - &:backdrop { border-color: backdrop($border_color); } + &:backdrop { border-color: gtk("@unfocused_borders"); } } actionbar > revealer > box { padding: 6px; - border-top: 1px solid $border_color; + border-top: 1px solid gtk("@borders"); - &:backdrop { border-color: backdrop($border_color); } + &:backdrop { border-color: gtk("@unfocused_borders"); } } scrolledwindow { @@ -61,7 +61,7 @@ //vbox and hbox separators separator { - background: $border_color; + background: gtk("@borders"); min-width: 1px; min-height: 1px; } @@ -76,7 +76,7 @@ min-height: 16px; -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); &:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-start-symbolic');} - &:hover { color: lighten(w_color(text),30%); } //only lightens the arrow + &:hover { color: gtkshade(gtk("@theme_fg_color"),1.3); } //only lightens the arrow &:checked { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); } } } @@ -93,24 +93,24 @@ border-style: none; // just to be sure background-color: transparent; // workaround, using background istead of a border since the border will get rendered twice (?) - background-image: image($border_color); + background-image: image(gtk("@borders")); background-size: 1px 1px; //&:selected { background-image: image($selected_bg_color); } // FIXME is this needed? - &:backdrop { background-image: image(backdrop($border_color)); } + &:backdrop { background-image: image(gtk("@unfocused_borders")); } &.wide { min-width: 5px; min-height: 5px; - background-color: w_color(normal); - background-image: image($border_color), image($border_color); + background-color: gtk("@theme_bg_color"); + background-image: image(gtk("@borders")), image(gtk("@borders")); background-size: 1px 1px, 1px 1px; &:backdrop { - background-color: backdrop(w_color(normal)); - background-image: image(backdrop($border_color)), - image(backdrop($border_color)); + background-color: gtk("@theme_unfocused_bg_color"); + background-image: image(gtk("@unfocused_borders")), + image(gtk("@unfocused_borders")); } } } diff --git a/src/gtk3/widgets/_notebook.scss b/src/gtk3/widgets/_notebook.scss --- a/src/gtk3/widgets/_notebook.scss +++ b/src/gtk3/widgets/_notebook.scss @@ -11,33 +11,33 @@ &.frame { border: none; padding: 0px; - box-shadow: inset 0px 0px 0px 1px $border_color; + box-shadow: inset 0px 0px 0px 1px gtk("@borders"); } > header { padding: 0px; border: none; - background-color: w_color(normal); - //box-shadow: inset 0 -1px $border_color; + background-color: gtk("@theme_bg_color"); + //box-shadow: inset 0 -1px gtk("@borders"); &.top { - box-shadow: inset 0 -1px $border_color; // border - &:backdrop { box-shadow: inset 0 -1px backdrop($border_color); } + box-shadow: inset 0 -1px gtk("@borders"); // border + &:backdrop { box-shadow: inset 0 -1px gtk("@unfocused_borders"); } } &.bottom { - box-shadow: inset 0 1px $border_color; - &:backdrop { box-shadow: inset 0 1px backdrop($border_color); } + box-shadow: inset 0 1px gtk("@borders"); + &:backdrop { box-shadow: inset 0 1px gtk("@unfocused_borders"); } } &.right { - box-shadow: inset 1px 0 $border_color; - &:backdrop { box-shadow: inset 1px 0 backdrop($border_color); } + box-shadow: inset 1px 0 gtk("@borders"); + &:backdrop { box-shadow: inset 1px 0 gtk("@unfocused_borders"); } } &.left { - box-shadow: inset -1px 0 $border_color; - &:backdrop { box-shadow: inset -1px 0 backdrop($border_color); } + box-shadow: inset -1px 0 gtk("@borders"); + &:backdrop { box-shadow: inset -1px 0 gtk("@unfocused_borders"); } } &:backdrop { - background-color: backdrop(w_color(normal)); + background-color: gtk("@theme_unfocused_bg_color"); } tabs { @@ -53,22 +53,22 @@ > tabs { > tab { padding: 4px 6px; - border: 1px solid transparentize(w_color(text), 0.8); - background-color: transparentize(w_color(text), 0.8); + border: 1px solid gtkalpha("@theme_fg_color", 0.2); + background-color: gtkalpha("@theme_fg_color", 0.2); border-radius: #{$_radius}; border-#{$_border}-color: transparent; &:hover, &.prelight-page { - background-color: transparentize(s_color(normal), 0.8); - border-color: transparentize(s_color(normal), 0.8); + background-color: gtkalpha("@theme_selected_bg_color", 0.2); + border-color: gtkalpha("@theme_selected_bg_color", 0.2); } &:checked { - border-color: $border_color; - border-#{$_border}-color: $menu_color; - background-color: $menu_color; + border-color: gtk("@borders"); + border-#{$_border}-color: gtk("@theme_bg_color"); + background-color: gtk("@theme_bg_color"); &:backdrop { - border-color: backdrop($border_color); - border-#{$_border}-color: backdrop($menu_color); - background-color: backdrop($menu_color); + border-color: gtk("@unfocused_borders"); + border-#{$_border}-color: gtk("@theme_unfocused_bg_color"); + background-color: gtk("@theme_unfocused_bg_color"); } } } @@ -87,26 +87,26 @@ border-width: 3px; border-style: solid; border-color: transparent; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); background-clip: padding-box; border-#{$_border}-width: 1px; - border-#{$_border}-color: $border_color; - box-shadow: inset #{$_shadow1} w_color(normal); + border-#{$_border}-color: gtk("@borders"); + box-shadow: inset #{$_shadow1} gtk("@theme_bg_color"); &:hover, &.prelight-page { - box-shadow: inset 0px -3px 0px 0px transparentize(s_color(normal),0.8), inset $_shadow1 w_color(normal); + box-shadow: inset 0px -3px 0px 0px gtkalpha("@theme_selected_bg_color",0.2), inset $_shadow1 gtk("@theme_bg_color"); } &:checked { - box-shadow: inset 0px -3px 0px 0px s_color(normal), inset $_shadow1 w_color(normal); + box-shadow: inset 0px -3px 0px 0px gtk("@theme_selected_bg_color"), inset $_shadow1 gtk("@theme_bg_color"); &:backdrop { - background-color: backdrop(w_color(normal)); + background-color: gtk("@theme_unfocused_bg_color"); border-color: transparent; - border-#{$_border}-color: backdrop($border_color); + border-#{$_border}-color: gtk("@unfocused_borders"); box-shadow:none; } } &:backdrop { - background-color: backdrop(w_color(normal)); - border-#{$_border}-color: backdrop($border_color); + background-color: gtk("@theme_unfocused_bg_color"); + border-#{$_border}-color: gtk("@unfocused_borders"); box-shadow:none; } } @@ -193,26 +193,26 @@ min-height: 12px; border: 0px solid; border-radius: 50%; - color: w_color(normal); - background-color: $border_color; + color: gtk("@theme_bg_color"); + background-color: gtk("@borders"); background-image: none; &:hover { background-color: $error_color; } &:active { background-color: $error_color;} &:backdrop { - background-color: backdrop($border_color); - color: backdrop(w_color(normal)); + background-color: gtk("@unfocused_borders"); + color: gtk("@theme_unfocused_bg_color"); } } } > stack:not(:only-child) { // the :not(:only-child) is for "hidden" notebooks background-color: transparent; border-style: solid; - border-color: $border_color; + border-color: gtk("@borders"); border-width: 0px; } } diff --git a/src/gtk3/widgets/_overshoot.scss b/src/gtk3/widgets/_overshoot.scss --- a/src/gtk3/widgets/_overshoot.scss +++ b/src/gtk3/widgets/_overshoot.scss @@ -1,6 +1,6 @@ @charset "UTF-8"; -@mixin overshoot($p, $t:normal, $c:w_color(text)) { +@mixin overshoot($p, $t:normal, $c:gtk("@theme_fg_color")) { // // overshoot // @@ -42,24 +42,24 @@ $_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 $c==gtk("@theme_fg_color") { + $_small_gradient_color: gtkshade("@borders", 0.9); + $_big_gradient_color: gtk("@theme_fg_color"); - @if $t==backdrop { $_small_gradient_color: backdrop($border_color); } + @if $t==backdrop { $_small_gradient_color: gtk("@unfocused_borders"); } } $_small_gradient: -gtk-gradient(radial, $_position, 0, $_position, 0.5, to($_small_gradient_color), - to(transparentize($_small_gradient_color, 1))); + to(gtkalpha($_small_gradient_color, 0))); $_big_gradient: -gtk-gradient(radial, $_position, 0, $_position, 0.6, - from(transparentize($_big_gradient_color, 0.93)), - to(transparentize($_big_gradient_color, 1))); + from(gtkalpha($_big_gradient_color, 0.07)), + to(gtkalpha($_big_gradient_color, 0))); @if $t==normal { background-image: $_small_gradient, $_big_gradient; diff --git a/src/gtk3/widgets/_pathbar.scss b/src/gtk3/widgets/_pathbar.scss --- a/src/gtk3/widgets/_pathbar.scss +++ b/src/gtk3/widgets/_pathbar.scss @@ -4,17 +4,17 @@ * Pathbars * ************/ .path-bar { - background-color: w_color(normal); - border-bottom: 1px solid $border_color; + background-color: gtk("@theme_bg_color"); + border-bottom: 1px solid gtk("@borders"); } .path-bar button { @include button(undecorated); padding: 4px 8px; - color: w_color(text); - &:hover {border-color: b_color(hover); } + color: gtk("@theme_fg_color"); + &:hover {border-color: gtk("@theme_button_decoration_hover"); } &:active, &:checked { - background-color: $border_color; + background-color: gtk("@borders"); font-weight: normal; } &.text-button, &.image-button, & { diff --git a/src/gtk3/widgets/_progressbar.scss b/src/gtk3/widgets/_progressbar.scss --- a/src/gtk3/widgets/_progressbar.scss +++ b/src/gtk3/widgets/_progressbar.scss @@ -17,24 +17,26 @@ // FIXME: insensitive state missing and some other state should be set probably font-size: smaller; - color: transparentize(b_color(text), 0.7); + color: gtkalpha(gtk("@theme_button_foreground_normal"), 0.3); trough { border: 0px solid transparent; border-radius: $r; - background-color: transparentize(b_color(text),0.7); + background-color: gtkalpha(gtk("@theme_button_foreground_normal"),0.3); } - &:backdrop trough { background-color: backdrop(transparentize(b_color(text),0.7)); } // looks like states are not passed to the trough component here + &:backdrop trough { background-color: gtkalpha("@theme_button_foreground_backdrop",0.3); } // looks like states are not passed to the trough component here progress { - background-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); border: 0px solid transparent; border-radius: 3px; box-shadow: none; //needed for clipping } - &:backdrop progress { background-color: backdrop(s_color(normal)); } // states not passed here as well + &:backdrop progress { + background-color: gtk("@theme_unfocused_selected_bg_color_alt"); + } // states not passed here as well &.osd { // progressbar.osd used for epiphany page loading progress background-color: transparent; @@ -45,20 +47,20 @@ &.progressbar { border: 0px solid transparent; border-radius: $r; - background-color: s_color(normal); - color: s_color(text); + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_selected_fg_color"); background-image: none; &:selected { &:focus, & { - background-color: transparentize(s_color(text),0.75); + background-color: gtkalpha(gtk("@theme_selected_bg_color"),0.25); } } } &.trough { background-color: $trough_color; &:selected { &:focus, & { - background-color: transparentize(s_color(text),0.7); + background-color: gtkalpha("@theme_selected_fg_color",0.3); } } } @@ -92,50 +94,52 @@ &.vertical.discrete block { margin: 1px 0; } block:not(.empty) { - border: 1px solid s_color(normal); - background-color: s_color(normal); + border: 1px solid gtk("@theme_selected_bg_color"); + background-color: gtk("@theme_selected_bg_color"); box-shadow: none; border-radius: 1px; &:backdrop { - border-color: backdrop(s_color(normal)); - background-color: backdrop(s_color(normal)); + border-color: gtk("@theme_unfocused_selected_bg_color_alt"); + background-color: gtk("@theme_unfocused_selected_bg_color_alt"); } } block { &.low { - border-color: $warning_color; - background-color: $warning_color; + border-color: gtk("@warning_color"); + background-color: gtk("@warning_color"); &:backdrop { - background-color: backdrop($warning_color); - border-color: backdrop($warning_color); + background-color: gtk("@warning_color_backdrop"); + border-color: gtk("@warning_color_backdrop"); } } &.high { - border-color: $success_color; - background-color: $success_color; + border-color: gtk("@success_color"); + background-color: gtk("@success_color"); &:backdrop { - background-color: backdrop($success_color); - border-color: backdrop($success_color); + background-color: gtk("@success_color_backdrop"); + border-color: gtk("@success_color_backdrop"); } } &.full { - border-color: $success_color; - background-color: $success_color; - &:backdrop { - background-color: backdrop($success_color); - border-color: backdrop($success_color); - } + border-color: gtk("@success_color"); + background-color: gtk("@success_color"); + &:backdrop { + background-color: gtk("@success_color_backdrop"); + border-color: gtk("@success_color_backdrop"); + } } &.empty { - background-color: transparentize(b_color(text),0.7); + background-color: gtkalpha(gtk("@theme_button_foreground_normal"),0.3); border-color: transparent; box-shadow: none; - &:backdrop { background-color: backdrop(transparentize(b_color(text),0.7)); } + &:backdrop { + background-color: gtkalpha("@theme_button_foreground_insensitive",0.3); + } } } } diff --git a/src/gtk3/widgets/_scale.scss b/src/gtk3/widgets/_scale.scss --- a/src/gtk3/widgets/_scale.scss +++ b/src/gtk3/widgets/_scale.scss @@ -15,41 +15,42 @@ slider { min-width: 18px; min-height: 18px; - background-color: b_color(normal); - border: 1px solid $border_color; + background-color: gtk("@theme_button_background_normal"); + border: 1px solid gtk("@borders"); border-radius: 50%; box-shadow: none; margin: -9px; &:hover { border-style: solid; border-width: 2px; - border-color: b_color(hover); + border-color: gtk("@theme_button_decoration_hover"); border-radius: 50%; // needed for double marks scales &:backdrop { - background-color: backdrop(b_color(normal)); - border-color: backdrop(b_color(hover)); + background-color: gtk("@theme_button_background_backdrop"); + border-color: gtk("@theme_button_decoration_hover_insensitive"); } } &:disabled { border-style: solid; // needed for double marks scales or they'll get border-radius: 50%; // overridden - background-color: alpha2solid(insensitive(b_color(normal)),w_color(normal)); - border-color: insensitive($border_color); + background-color: gtkalpha("@theme_button_background_insensitive", 100.0); + opacity: 1.0; + border-color: gtk("@insensitive_borders"); &:backdrop { - background-color: alpha2solid(backdrop(insensitive(b_color(normal))),w_color(normal)); - border-color: backdrop(insensitive($border_color)); + background-color: gtkalpha("@theme_button_background_backdrop_insensitive", 100.0); + border-color: gtk("@unfocused_insensitive_borders"); } } &:active { - border: 2px solid b_color(active); + border: 2px solid gtk("@theme_button_decoration_focus"); &:backdrop { - background-color: backdrop(b_color(normal)); - border-color: backdrop(b_color(active)); + background-color: gtk("@theme_button_background_normal"); + border-color: gtk("@theme_button_decoration_focus_backdrop"); } } &:backdrop { - background-color: backdrop(b_color(normal)); - border-color: backdrop($border_color); + background-color: gtk("@theme_button_background_backdrop"); + border-color: gtk("@unfocused_borders"); } } trough { @@ -62,33 +63,37 @@ box-shadow: none; &:disabled, &.vertical:disabled { - border-color: insensitive($trough_color); - background-color: insensitive($trough_color); + border-color: $trough_color_insensitive; + background-color: $trough_color_insensitive; box-shadow: none; &:backdrop { - background-color: backdrop(insensitive($trough_color)); - border-color: backdrop(insensitive($trough_color)); + background-color: $trough_color_backdrop_insensitive; + border-color: $trough_color_backdrop_insensitive; } } &:backdrop { - background-color: backdrop($trough_color); - border-color: backdrop($trough_color); + background-color: $trough_color_backdrop; + border-color: $trough_color_backdrop; } } highlight { border: 0px solid; border-radius: 3px; - background-color: s_color(normal); - border-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); + border-color: gtk("@theme_selected_bg_color"); &.vertical { - background-color: s_color(normal); - border-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); + border-color: gtk("@theme_selected_bg_color"); + } + &:disabled { + background-color: gtk("@insensitive_selected_bg_color"); } - &:disabled { background-color: insensitive(s_color(normal));} &:backdrop { - background-color: backdrop(s_color(backdrop)); - border-color: backdrop(s_color(backdrop)); - &:disabled {background-color: backdrop(insensitive(s_color(normal)));} + background-color: gtk("@theme_unfocused_selected_bg_color"); + border-color: gtk("@theme_unfocused_selected_bg_color"); + &:disabled { + background-color: gtk("@insensitive_unfocused_selected_bg_color"); + } } } } 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 @@ -9,9 +9,9 @@ -GtkScrollbar-has-backward-stepper: false; -GtkScrollbar-has-forward-stepper: false; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); border-width: 0px 0px; - border-color: w_color(normal); + border-color: gtk("@theme_bg_color"); margin: 5px; button { @@ -28,26 +28,28 @@ &:hover { border: none; background-image: none; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); color: transparent; } &:active, &:active:hover { border: none; background-image: none; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); color: transparent; } &:disabled { border: none; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); background-image: none; color: transparent; } &:backdrop { @extend %undecorated_button; - color: backdrop(b_color(text)); - &:disabled {color: backdrop(insensitive(b_color(text)));} + color: gtk("@theme_button_foreground_backdrop"); + &:disabled { + color: gtk("@theme_button_foreground_backdrop_insensitive"); + } @extend %undecorated_button; } } @@ -80,12 +82,12 @@ &:hover { trough { - background-color: backdrop($trough_color); + background-color: $trough_color_backdrop; min-width: 6px; } slider { min-width: 6px; - background-color: b_color(hover); + background-color: gtk("@theme_button_decoration_hover"); } } @@ -100,12 +102,12 @@ &.horizontal:hover { &.horizontal trough { - background-color: backdrop($trough_color); + background-color: $trough_color_backdrop; min-height: 6px; } &.horizontal slider { min-height: 6px; - background-color: b_color(hover); + background-color: gtk("@theme_button_decoration_hover"); } } @@ -116,13 +118,13 @@ min-height: 30px; border-radius: 8px; background-clip: padding-box; - background-color: transparentize($scrollbar_color, 0.2); + background-color: gtkalpha($scrollbar_color_backdrop, 0.2); &:backdrop { - background-color: backdrop($scrollbar_color); + background-color: $scrollbar_color_backdrop; } &:hover { min-width: 6px; - background-color: b_color(hover); + background-color: gtk("@theme_button_decoration_hover"); } } @@ -132,13 +134,13 @@ min-height: 3px; border-radius: 8px; background-clip: padding-box; - background-color: transparentize($scrollbar_color, 0.2); + background-color: gtkalpha($scrollbar_color_backdrop, 0.2); &:backdrop { - background-color: backdrop($scrollbar_color); + background-color: $scrollbar_color_backdrop; } &:hover { min-height: 6px; - background-color: b_color(hover); + background-color: gtk("@theme_button_decoration_hover"); } diff --git a/src/gtk3/widgets/_sidebar.scss b/src/gtk3/widgets/_sidebar.scss --- a/src/gtk3/widgets/_sidebar.scss +++ b/src/gtk3/widgets/_sidebar.scss @@ -4,13 +4,103 @@ * Sidebar * ***********/ +@mixin selected-item-highlight { + @if $new-highlight { + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_button_foreground_active"); + border-right: 3px solid gtk("@theme_button_decoration_focus"); + border-top: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0px; + } +} +@mixin selected-item-highlight-rtl { + @if $new-highlight { + background-color: gtk("@theme_selected_bg_color"); + color: gtk("@theme_button_foreground_active"); + border-left: 3px solid gtk("@theme_button_decoration_focus"); + border-top: 0; + border-bottom: 0; + border-right: 0; + border-radius: 0px; + } +} + .sidebar { border: none; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); &:selected { @extend %selected_items; } - &:backdrop { background-color: backdrop(w_color(normal))} + &:backdrop { + background-color: gtk("@theme_unfocused_bg_color"); + } + row { + transition: all 150ms $ease-out-quad; + + &:hover { transition: none; } + + &.activatable { + border: 0; + &:dir(ltr) { + border-right: 3px solid transparent; + } + &:dir(rtl) { + border-left: 3px solid transparent; + } + + &.has-open-popup, // this is for indicathing which row generated a popover see https://bugzilla.gnome.org/show_bug.cgi?id=754411 + + &:hover:dir(ltr) { + @include selected-item-highlight(); + } + &:hover:dir(rtl) { + @include selected-item-highlight-rtl(); + } + + &:active:dir(ltr) { + @include selected-item-highlight(); + } + &:active:dir(rtl) { + @include selected-item-highlight-rtl(); + } + + &:selected { + &:dir(ltr) { + @include selected-item-highlight(); + } + &:dir(rtl) { + @include selected-item-highlight-rtl(); + } + + &:active { + &:dir(ltr) { + @include selected-item-highlight(); + } + &:dir(rtl) { + @include selected-item-highlight-rtl(); + } + } + + &.has-open-popup, + &:hover { + &:dir(ltr) { + @include selected-item-highlight(); + } + &:dir(rtl) { + @include selected-item-highlight-rtl(); + } + } + + &:backdrop { + background-color: gtk("@theme_unfocused_selected_bg_color_alt"); + } + } + } + + &:selected { @extend %selected_items; } + } } // Places sidebar is a special case, since the view here have to look like chrome not content, so we override text color @@ -26,16 +116,24 @@ // will make the animation of the new bookmark row jump > revealer { padding: 0 14px; } - &:selected { color: s_color(text); } + &:selected { + color: gtk("@theme_selected_fg_color"); + } - &:disabled { color: insensitive(w_color(text)); } + &:disabled { + color: gtk("@insensitive_fg_color"); + } &:backdrop { - color: backdrop(w_color(text)); + color: gtk("@theme_unfocused_fg_color"); - &:selected { color: backdrop(s_color(normal)); } + &:selected { + color: gtk("@theme_unfocused_selected_bg_color_alt"); + } - &:disabled { color: backdrop(insensitive(w_color(text))); } + &:disabled { + color: gtk("@insensitive_unfocused_fg_color"); + } } image.sidebar-icon { @@ -72,7 +170,9 @@ background-clip: content-box; } - &.sidebar-new-bookmark-row { color: s_color(normal); } + &.sidebar-new-bookmark-row { + color: gtk("@theme_selected_bg_color"); + } // &:drop(active):not(:disabled) { // color: $drop_target_color; diff --git a/src/gtk3/widgets/_spinbutton.scss b/src/gtk3/widgets/_spinbutton.scss --- a/src/gtk3/widgets/_spinbutton.scss +++ b/src/gtk3/widgets/_spinbutton.scss @@ -30,32 +30,32 @@ margin: 0; padding-bottom: 0; padding-top: 0; - color: v_color(text); + color: gtk("@theme_text_color"); background-image: none; background-color: transparent; border-style: none; box-shadow: none; &:hover { - color: v_color(hover); + color: gtk("@theme_view_hover_decoration_color"); } &:disabled { - color: insensitive(v_color(text)); + color: gtk("@insensitive_base_fg_color"); } &:active { - color: v_color(active); + color: gtk("@theme_view_active_decoration_color"); box-shadow: none; } &:backdrop { - color: backdrop(v_color(text)); + color: gtk("@theme_unfocused_text_color"); background-color: transparent; } &:backdrop:disabled { - color: backdrop(insensitive(v_color(text))); + color: gtk("@theme_unfocused_view_text_color"); background-color: transparent; border-style: none; // It is needed or it gets overridden } @@ -74,9 +74,9 @@ // FIXME: this should not be set at all, but otherwise it gets the wrong // color - &:disabled { color: insensitive(v_color(text)); } + &:disabled { color: gtk("@insensitive_base_fg_color"); } - &:backdrop:disabled { color: backdrop(insensitive(v_color(text))); } + &:backdrop:disabled { color: gtk("@theme_unfocused_view_text_color"); } &:drop(active) { border-color: transparent; @@ -88,18 +88,18 @@ min-height: 26px; min-width: 26px; border-style: none solid none solid; - border-color: $border_color; + border-color: gtk("@borders"); padding: 0; border-radius: 0; &:disabled { - color: insensitive(v_color(text)); - background-color: insensitive(v_color(normal)); - border-color: insensitive($border_color); + color: gtk("@insensitive_base_fg_color"); + background-color: gtk("@insensitive_base_color"); + border-color: gtk("@insensitive_borders"); } &:backdrop:disabled { - color: backdrop(insensitive(v_color(text))); - background-color: backdrop(insensitive(v_color(normal))); - border-color: backdrop(insensitive($border_color)); + color: gtk("@theme_unfocused_view_text_color"); + background-color: gtk("@theme_unfocused_view_bg_color"); + border-color: gtk("@unfocused_insensitive_borders"); } } @@ -109,20 +109,20 @@ padding: 0; box-shadow: none; background-image: none; - background-color: v_color(normal); - color: v_color(text); - border-color: $border_color; - &:hover { color: v_color(hover);} - &:active { color: v_color(active);} + background-color: gtk("@theme_base_color"); + color: gtk("@theme_base_fg_color"); + border-color: gtk("@borders"); + &:hover { color: gtk("@theme_view_hover_decoration_color");} + &:active { color: gtk("@theme_view_active_decoration_color");} &:disabled { - color: insensitive(v_color(text)); - background-color: insensitive(v_color(normal)); - border-color: insensitive($border_color); + color: gtk("@insensitive_base_fg_color"); + background-color: gtk("@insensitive_base_color"); + border-color: gtk("@insensitive_borders"); } &:backdrop:disabled { - color: backdrop(insensitive(v_color(text))); - background-color: backdrop(insensitive(v_color(normal))); - border-color: backdrop(insensitive($border_color)); + color: gtk("@theme_unfocused_view_text_color"); + background-color: gtk("@theme_unfocused_view_bg_color"); + border-color: gtk("@unfocused_insensitive_borders"); } &.up { diff --git a/src/gtk3/widgets/_switch.scss b/src/gtk3/widgets/_switch.scss --- a/src/gtk3/widgets/_switch.scss +++ b/src/gtk3/widgets/_switch.scss @@ -13,42 +13,42 @@ border: 0px solid; border-radius: 12px; color: transparent; - background-color: transparentize(b_color(text),0.7); + background-color: gtkalpha("@theme_button_foreground_normal",0.3); text-shadow: none; &:checked { - background-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); } &:backdrop { - background-color: backdrop(transparentize(b_color(text),0.7)); + background-color: gtkalpha("@theme_button_foreground_backdrop", 0.3); text-shadow: none; &:checked { - background-color: backdrop(s_color(normal)); + background-color: gtk("@theme_unfocused_selected_bg_color_alt"); } } slider { min-width: 22px; min-height: 22px; border: 1px solid; border-radius: 11px; - background-color: w_color(normal); - border-color: $border_color; + background-color: gtk("@theme_bg_color"); + border-color: gtk("@borders"); } - &:hover slider { border-color: b_color(hover); } + &:hover slider { border-color: gtk("@theme_button_decoration_hover"); } &:disabled slider { - background-color:insensitive(w_color(normal)); + background-color: gtk("@insensitive_bg_color"); } &:backdrop { slider { - background-color: backdrop(w_color(normal)); + background-color: gtk("@theme_unfocused_bg_color"); } - &:disabled slider { background-color: backdrop(insensitive(w_color(normal))); } + &:disabled slider { background-color: gtk("@insensitive_unfocused_bg_color"); } } } diff --git a/src/gtk3/widgets/_toolbar.scss b/src/gtk3/widgets/_toolbar.scss --- a/src/gtk3/widgets/_toolbar.scss +++ b/src/gtk3/widgets/_toolbar.scss @@ -6,13 +6,13 @@ %toolbar { -GtkWidget-window-dragging: true; padding: 4px; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); } toolbar { @extend %toolbar; padding: 4px 3px 3px 4px; &:backdrop { - background-color: backdrop(w_color(normal)); + background-color: gtk("@theme_unfocused_bg_color"); box-shadow: none; } button { @@ -35,10 +35,10 @@ padding: 13px; border: none; border-radius: $r; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); &:backdrop { - border-color: backdrop($border_color); - background-color: backdrop(w_color(normal)); + border-color: gtk("@unfocused_borders"); + background-color: gtk("@theme_unfocused_bg_color"); box-shadow: none; } &.left, @@ -66,7 +66,7 @@ %inset-bar { border-style: solid; - border-color: $border_color; + border-color: gtk("@borders"); text-shadow: none; - background-color: w_color(normal); + background-color: gtk("@theme_bg_color"); } diff --git a/src/gtk3/widgets/_tooltips.scss b/src/gtk3/widgets/_tooltips.scss --- a/src/gtk3/widgets/_tooltips.scss +++ b/src/gtk3/widgets/_tooltips.scss @@ -8,16 +8,16 @@ &.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-color: gtk("@tooltip_background"); background-clip: padding-box; } - color: tooltip(text); + color: gtk("@tooltip_text"); padding: 4px; /* not working */ border-radius: $r; box-shadow: none; // otherwise it gets inherited by windowframe.csd text-shadow: none; - border: 1px solid tooltip(border); + border: 1px solid gtk("@tooltip_border"); &.window-frame.csd { background-color: transparent; box-shadow: none; @@ -28,5 +28,5 @@ tooltip * { //Yeah this is ugly padding: 0px; background-color: transparent; - color: tooltip(text); // just to be sure + color: gtk("@tooltip_text"); // just to be sure } diff --git a/src/gtk3/widgets/_treeview.scss b/src/gtk3/widgets/_treeview.scss --- a/src/gtk3/widgets/_treeview.scss +++ b/src/gtk3/widgets/_treeview.scss @@ -1,6 +1,34 @@ @charset "UTF-8"; +@mixin item-highlight-middle { + @if $new-highlight { + background-color: gtkalpha(gtk("@theme_button_decoration_focus"), 0.3); + color: gtk("@theme_button_foreground_active"); + border: 1px solid gtk("@theme_button_decoration_focus"); + border-left: 0; + border-right: 0; + border-radius: 0px; + } @else { + background-color: gtk("@theme_selected_bg_color"); + border-left-color: gtk("@theme_selected_fg_color"); + border-top-color: gtk("@theme_selected_fg_color"); + } +} +@mixin item-highlight-middle-backdrop { + @if $new-highlight { + background-color: gtkalpha(gtk("@theme_button_decoration_focus_backdrop"), 0.3); + color: gtk("@theme_button_foreground_active_backdrop"); + border: 1px solid gtk("@theme_button_decoration_focus_backdrop"); + border-left: 0; + border-right: 0; + border-radius: 0px; + } @else { + background-color: gtk("@theme_unfocused_selected_bg_color"); + border-left-color: gtk("@theme_unfocused_selected_fg_color"); + border-top-color: gtk("@theme_unfocused_selected_fg_color"); + } +} /************** * Tree Views * @@ -12,84 +40,85 @@ -GtkTreeView-tree-line-pattern: ''; -GtkTreeView-expander-size: 16; - border-left-color: $border_color; // this is actually the tree lines color, + border-left-color: gtk("@borders"); // this is actually the tree lines color, border-top-color: transparent; // while this is the grid lines color, better then nothing rubberband { @extend rubberband; } // to avoid borders being overridden by the previously set props &:selected { border-radius: 0; } // rest border radius in lists + &:hover { + @include item-highlight-middle(); + } + &:selected { - background-color: s_color(normal); - border-left-color: s_color(text); - border-top-color: s_color(text); // doesn't work unfortunatelly + @include item-highlight-middle(); } + &:backdrop:selected { - background-color: backdrop(s_color(backdrop)); - border-left-color: backdrop(s_color(text)); - border-top-color: backdrop(s_color(text)); + @include item-highlight-middle-backdrop(); } &:disabled { - color: insensitive($border_color); + color: gtk("@insensitive_borders"); &:selected { - color: insensitive(s_color(text)); - &:backdrop { color: backdrop(insensitive(s_color(text))); } + color: gtk("@insensitive_selected_fg_color"); + &:backdrop { color: gtk("@insensitive_unfocused_selected_fg_color"); } } - &:backdrop { color: backdrop(insensitive($border_color)); } + &:backdrop { color: gtk("@unfocused_insensitive_borders"); } } &.separator { min-height: 2px; - color: $border_color; + color: gtk("@borders"); } &.separator:backdrop { - color: backdrop($border_color); + color: gtk("@unfocused_borders"); } &:backdrop { - border-left-color: backdrop($border_color); + border-left-color: gtk("@unfocused_borders"); } &:drop(active) { border-style: solid none; border-width: 1px; - border-color: b_color(hover); + border-color: gtk("@theme_button_decoration_hover"); } &.expander { // GtkTreeView uses the larger of the expander’s min-width and min-height min-width: 16px; min-height: 16px; -gtk-icon-source: -gtk-icontheme('pan-end-symbolic'); - color: v_color(text); + color: gtk("@theme_base_fg_color"); &:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-start-symbolic'); }; - &:hover { color: b_color(hover); } - &:selected { color: s_color(text); } + &:hover { color: gtk("@theme_button_decoration_hover"); } + &:selected { color: gtk("@theme_selected_fg_color"); } &:checked { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); - &:selected { color: s_color(text); } - &:backdrop { color: backdrop(v_color(normal)); } + &:selected { color: gtk("@theme_selected_fg_color"); } + &:backdrop { color: gtk("@theme_unfocused_base_color"); } } - &:backdrop { color: backdrop(v_color(normal)); } + &:backdrop { color: gtk("@theme_unfocused_base_color"); } } header { button { @extend %column_header_button; - color: b_color(text); - background-color: b_color(normal); + color: gtk("@theme_button_foreground_normal"); + background-color: gtk("@theme_button_background_normal"); text-shadow: none; box-shadow: none; &:hover { @extend %column_header_button; - color: b_color(text); - background-color: transparentize(b_color(hover), 0.5); + color: gtk("@theme_button_foreground_normal"); + background-color: gtkalpha("@theme_button_decoration_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); + color: gtk("@theme_button_foreground_normal"); + background-color: gtkalpha("@theme_button_decoration_hover", 0.5); transition: none; //I shouldn't need this } } @@ -99,9 +128,9 @@ header.button.dnd { // for treeview-like derive widgets &:active, &:selected, &:hover, & { padding: 0 6px; - color: s_color(text); + color: gtk("@theme_selected_fg_color"); background-image: none; - background-color: s_color(normal); + background-color: gtk("@theme_selected_bg_color"); border-style: none; border-radius: 0; box-shadow: none; @@ -116,25 +145,25 @@ border-style: none solid solid none; border-radius: 0; background-image: none; - border-color: $border_color; + border-color: gtk("@borders"); text-shadow: none; &:disabled { - border-color: insensitive($border_color); - color: insensitive(b_color(text)); - background-color: insensitive(b_color(normal)); + border-color: gtk("@insensitive_borders"); + color: gtk("@theme_button_foreground_insensitive"); + background-color: gtk("@theme_button_background_insensitive"); background-image: none; } &:backdrop { - border-color: backdrop($border_color); + border-color: gtk("@unfocused_borders"); border-style: none solid solid none; - color: backdrop(b_color(text)); + color: gtk("@theme_button_foreground_backdrop"); background-image: none; - background-color: backdrop(b_color(normal)); + background-color: gtk("@theme_button_background_backdrop"); &:disabled { - border-color: backdrop(insensitive($border_color)); + border-color: gtk("@unfocused_insensitive_borders"); background-image: none; - background-color: backdrop(insensitive(b_color(normal))); - color: backdrop(insensitive(b_color(text))); + background-color: gtk("@theme_button_background_backdrop_insensitive"); + color: gtk("@theme_button_foreground_backdrop_insensitive"); } } } 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 @@ -44,7 +44,7 @@ margin: 0; padding: 1px; border: none; - background-color: t_color(background-light); + background-color: gtk("@theme_titlebar_background_light"); box-shadow: none; } }