diff --git a/gtk-3.20/scss/apps/_nemo.scss b/gtk-3.20/scss/apps/_nemo.scss
index 701521e..d291be3 100644
--- a/gtk-3.20/scss/apps/_nemo.scss
+++ b/gtk-3.20/scss/apps/_nemo.scss
@@ -47,7 +47,8 @@
             }
 
             &.primary-toolbar button {
-                padding: 5px 6px;
+                min-width: 28px;
+                padding: 3px;
             }
             
             /* Path Bar */
@@ -66,8 +67,9 @@
         grid {
             > widget:last-child {
                 button {
-                    min-height: 15px;
-                    min-width: 20px;
+                    min-height: 16px;
+                    min-width: 16px;
+                    padding: ($spacing - 1px);
                 }
 
                 button:first-child {
diff --git a/gtk-3.20/scss/widgets/_button.scss b/gtk-3.20/scss/widgets/_button.scss
index 97834ca..0e65e54 100644
--- a/gtk-3.20/scss/widgets/_button.scss
+++ b/gtk-3.20/scss/widgets/_button.scss
@@ -43,7 +43,9 @@
     }
 
     %button {
-        padding: $spacing ($spacing + 2px);
+        min-height: 16px;
+        min-width: 16px;
+        padding: ($spacing + 1px) $spacing;
         border-width: 1px;
         border-style: solid;
         border-radius: $roundness;
@@ -341,6 +343,27 @@
         }
     }
 
+    &.image-button {
+        min-width: 16px;
+        padding-left: $spacing;
+        padding-right: $spacing;
+    }
+
+    &.text-button {
+        padding-left: $spacing * 2;
+        padding-right: $spacing * 2;
+    }
+
+    &.text-button.image-button {
+        padding-left: $spacing;
+        padding-right: $spacing;
+
+        label {
+            padding-left: $spacing;
+            padding-right: $spacing;
+        }
+    }
+
     &.separator, .separator {
         border: 1px solid currentColor;
         color: shade($bg, ($contrast + .1));
@@ -351,6 +374,8 @@
 
 @include exports("button") {
     %close_button {
+        min-height: 16px;
+        min-width: 16px;
         border: 1px solid transparent;
         background-color: transparent;
         background-image: none;
@@ -372,8 +397,6 @@
     }
 
     button {
-        min-height: 22px;
-        min-width: 24px;
         @include button(shade($bg_color, 1.2), $fg_color);
 
         .inline-toolbar &,
@@ -381,7 +404,21 @@
 
         .linked.vertical > & { @include linked_vertical_button(shade($bg_color, 1.2)); }
 
-        &.circular { // FIXME: aggregate to buttons
+        &.osd {
+            @include button($osd_bg, $osd_fg);
+
+            &.image-button {
+                padding: 0;
+                min-height: 36px;
+                min-width: 36px;
+            }
+        }
+
+        &.circular,
+        &.circular-button { // FIXME: aggregate to buttons
+            padding: 0;
+            min-width: 28px;
+            min-height: 28px;
             border-radius: 9999px; // Fixed: https://github.com/GNOME/gtk/commit/a6409458f0d50d673a4dc370b9251993b7835b6b
             -gtk-outline-radius: 9999px;
 
@@ -389,6 +426,33 @@
         }
     }
 
+    .path-bar button {
+        &.text-button, &.image-button, & {
+            padding-left: $spacing;
+            padding-right: $spacing;
+        }
+
+        &.text-button.image-button label {
+            padding-left: 0;
+            padding-right: 0;
+        }
+
+        &.text-button.image-button, & {
+            label:last-child { padding-right: $spacing * 2; }
+            label:first-child { padding-left: $spacing * 2; }
+        }
+
+        image {
+            padding-left: $spacing;
+            padding-right: $spacing;
+        }
+
+        &.slider-button {
+            padding-left: 0;
+            padding-right: 0;
+        }
+    }
+
     spinbutton {
         button {
             color: mix($text_color, $base_color, .4);
@@ -453,6 +517,12 @@
         }
 
         &.vertical {
+            button, entry {
+                min-width: 0;
+                padding-left: $spacing - 1px;
+                padding-right: $spacing - 1px;
+            }
+
             entry {
                 // reset all the other props since the spinbutton node is styled here
                 border-radius: 0;
@@ -494,7 +564,7 @@
 
         box button, box entry {
             @extend %linked_button;
-            padding: ($spacing - 2px) ($spacing + 1px);
+            padding: ($spacing + 1px) $spacing;
         }
 
         .linked:not(.vertical) > & > box > button.combo {
diff --git a/gtk-3.20/scss/widgets/_choosers.scss b/gtk-3.20/scss/widgets/_choosers.scss
index 803329b..25465bb 100644
--- a/gtk-3.20/scss/widgets/_choosers.scss
+++ b/gtk-3.20/scss/widgets/_choosers.scss
@@ -140,7 +140,14 @@
     }
 
     button.color {
-        padding: $spacing;
+        padding: $spacing - 3px;
+
+        colorswatch:first-child:last-child {
+            &, overlay {
+                margin: $spacing - 1px;
+                border-radius: 0;
+            }
+        }
 
         colorswatch:only-child {
             &, overlay { border-radius: 0; }
diff --git a/gtk-3.20/scss/widgets/_entry.scss b/gtk-3.20/scss/widgets/_entry.scss
index cd96ad1..532e0c4 100644
--- a/gtk-3.20/scss/widgets/_entry.scss
+++ b/gtk-3.20/scss/widgets/_entry.scss
@@ -87,6 +87,7 @@
 }
 
 %entry {
+    min-height: 16px;
     border-width: 1px;
     border-style: solid;
     border-radius: $roundness;
@@ -123,7 +124,7 @@
     @include linear-gradient($bg, to top);
     @include border($bg);
 
-    padding: $spacing;
+    padding: ($spacing + 1px) ($spacing + 3px);
 
     color: $fg;
     caret-color: $fg;
diff --git a/gtk-3.20/scss/widgets/_misc.scss b/gtk-3.20/scss/widgets/_misc.scss
index 3b62709..ddc2712 100644
--- a/gtk-3.20/scss/widgets/_misc.scss
+++ b/gtk-3.20/scss/widgets/_misc.scss
@@ -249,7 +249,7 @@
     // shortcut window keys
     .keycap {
         min-width: 20px;
-        min-height: 25px;
+        min-height: 24px;
         margin-top: 2px;
         padding-bottom: $spacing / 2;
         padding-left: $spacing;
@@ -278,11 +278,11 @@
 
 @include exports("stackswitcher") {
     stackswitcher button {
-        &.text-button { min-width: 90px; } // FIXME aggregate with buttons
+        &.text-button { min-width: 80px; } // FIXME aggregate with buttons
 
         &.circular {  // FIXME aggregate with buttons
-            min-width: 32px;
-            min-height: 32px;
+            min-width: 28px;
+            min-height: 28px;
             padding: 0;
         }
     }
diff --git a/gtk-3.20/scss/widgets/_notebook.scss b/gtk-3.20/scss/widgets/_notebook.scss
index dbd16a7..c2f1038 100644
--- a/gtk-3.20/scss/widgets/_notebook.scss
+++ b/gtk-3.20/scss/widgets/_notebook.scss
@@ -153,10 +153,7 @@
                 outline: none;
 
                 button, button:hover {
-                    padding: $spacing - 4;
                     margin-left: 15px;
-                    min-height: 18px;
-                    min-width: 18px;
                     opacity: 0;
                     transition: opacity .3s ease-in;
                 }
@@ -198,8 +195,12 @@
                 }
 
                 /* close button styling */
-                button {
+                button.flat {
                     @extend %close_button;
+
+                    min-height: 16px;
+                    min-width: 16px;
+                    padding: 0;
                 }
             }
 
diff --git a/gtk-3.20/scss/widgets/_osd.scss b/gtk-3.20/scss/widgets/_osd.scss
index e6365f8..687e782 100644
--- a/gtk-3.20/scss/widgets/_osd.scss
+++ b/gtk-3.20/scss/widgets/_osd.scss
@@ -19,9 +19,6 @@
             background-origin: border-box;
         }
 
-        button { @include button($osd_bg, $osd_fg); }
-
-
         toolbar {
             -GtkToolbar-button-relief: normal;