[gtk/wip/jimmac/menu-styling-adjustments] Adwaita: menu item styling for all



commit aaa4fca16276bfa6945b173165b5a1fb23d34ac0
Author: Jakub Steiner <jimmac gmail com>
Date:   Thu Apr 30 12:10:42 2020 +0200

    Adwaita: menu item styling for all
    
    - sync menus, context menus, popovers and popover menus to use
      the same styling
    - special case menubar menus to not have rounded corners
    
    See https://gitlab.gnome.org/GNOME/gtk/-/issues/2675

 gtk/theme/Adwaita/_colors.scss         |  5 ++---
 gtk/theme/Adwaita/_common.scss         | 35 +++++++++++++++++++++++-----------
 gtk/theme/HighContrast/_colors-hc.scss |  2 ++
 3 files changed, 28 insertions(+), 14 deletions(-)
---
diff --git a/gtk/theme/Adwaita/_colors.scss b/gtk/theme/Adwaita/_colors.scss
index a3f4c69a2c..4daab70d98 100644
--- a/gtk/theme/Adwaita/_colors.scss
+++ b/gtk/theme/Adwaita/_colors.scss
@@ -18,9 +18,8 @@ $link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), li
 $top_hilight: $borders_edge;
 $dark_fill: mix($borders_color, $bg_color, 50%);
 $headerbar_color: if($variant == 'light', lighten($bg_color, 5%), darken($bg_color, 3%));
-$menu_color: if($variant == 'light', $base_color, mix($bg_color, $base_color, 20%));
-$popover_bg_color: $bg_color;
-$popover_hover_color: lighten($bg_color, 5%);
+$menu_color: $base_color;
+$menu_selected_color: $bg_color;
 
 $scrollbar_bg_color: if($variant == 'light', mix($bg_color, $fg_color, 80%), mix($base_color, $bg_color, 
50%));
 $scrollbar_slider_color: mix($fg_color, $bg_color, 60%);
diff --git a/gtk/theme/Adwaita/_common.scss b/gtk/theme/Adwaita/_common.scss
index cbbaad7936..63ae47b377 100644
--- a/gtk/theme/Adwaita/_common.scss
+++ b/gtk/theme/Adwaita/_common.scss
@@ -880,7 +880,7 @@ modelbutton.flat {
 
   @extend %undecorated_button;
 
-  &:hover { background-color: $popover_hover_color; }
+  &:hover { background-color: $menu_selected_color; }
 
   &:disabled {
     color: $insensitive_fg_color;
@@ -898,6 +898,7 @@ modelbutton.flat arrow {
   background: none;
   min-width: 16px;
   min-height: 16px;
+  opacity: 0.3; //dim icon
 
   &:hover { background: none; }
 
@@ -1828,7 +1829,7 @@ popover.background {
   > contents {
     $_popover_border: if($variant=='light', transparentize(black, 0.77), transparentize($borders_color, 
0.1));
 
-    background-color: $popover_bg_color;
+    background-color: $menu_color;
     background-clip: padding-box;
     border: 1px solid $_popover_border;
     box-shadow: 0 1px 2px transparentize(black, 0.7);
@@ -4304,7 +4305,7 @@ emoji-completion-row:hover {
 
 emoji-completion-row emoji:focus,
 emoji-completion-row emoji:hover {
-  background-color: $popover_hover_color;
+  background-color: $menu_selected_color;
 }
 
 popover.entry-completion > contents {
@@ -4334,6 +4335,13 @@ menubar {
   }
   // remove padding and rounding from menubar submenu decoration
   .csd.popup decoration { border-radius:0; }
+  // only bottom part rounded for menubar menus
+  & > item popover.menu.background > contents {
+    margin-top: -1px; //nudge it into the menubar
+    border-top-left-radius: 0;
+    border-top-right-radius: 0;
+    padding: 0 0 $button_radius 0;
+  }
 }
 
 $_menu-padding: 12px;
@@ -4354,7 +4362,7 @@ popover.menu {
       outline: none;
       transition: none;
 
-      &:selected { @extend %selected_items; }
+      &:selected { background: image($menu_selected_color); }
     }
   }
 
@@ -4392,16 +4400,13 @@ popover.menu {
   radio {
     @include check('menu', 'transparent', $text_color);
 
-    &:hover, &:active {
-      @include check('menu-active', 'transparent', $selected_fg_color);
-    }
+    &:hover { @include check('menu-active', 'transparent', $text_color); }
+    &:active { @include check('menu-active', 'transparent', $text_color); }
   }
 
   //only menu radios have a border
   radio { border-color: $borders_color;
-    &:active, &:hover {
-       border-color: transparentize($selected_fg_color,0.5);
-    }
+    &:active { border-color: transparentize($borders_color,0.5); }
   }
 
   arrow.left,
@@ -4424,7 +4429,15 @@ popover.menu {
     padding: 0 $_menu-padding;
     border-radius: 0;
 
-    &:selected { @extend %selected_items; }
+    &:selected {
+      color: $text-color;
+      background-color: $menu_selected_color;
+    }
+    &:selected:active {
+      //@extend %selected_items;
+      //color: $selected_fg_color;
+      background-color: darken($bg_color,14%); // matching buttons
+    }
   }
 
   label.title {
diff --git a/gtk/theme/HighContrast/_colors-hc.scss b/gtk/theme/HighContrast/_colors-hc.scss
index d9dfc278cd..3533b6e90b 100644
--- a/gtk/theme/HighContrast/_colors-hc.scss
+++ b/gtk/theme/HighContrast/_colors-hc.scss
@@ -9,6 +9,8 @@ $selected_bg_color: darken($selected_bg_color,10%);
 $selected_borders_color: darken($selected_borders_color, 10%);
 $borders_color: if($variant == 'light', darken($borders_color, 30%), lighten($borders_color, 30%));
 $alt_borders_color: if($variant == 'light', darken($alt_borders_color, 33%), lighten($alt_borders_color, 
28%));
+$menu_color: $base_color;
+$menu_selected_color: darken($bg_color,10%);
 
 //insensitive state derived colors
 $insensitive_fg_color: mix($fg_color, $bg_color, 50%);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]