[gnome-shell/wip/snwh/sass-cleanup: 438/475] theme: break up the css into a modular format



commit c98435aa92a0a8205756ae9bddc6183baa9cc6b0
Author: Sam Hewitt <sam snwh org>
Date:   Sun Sep 8 12:24:55 2019 -0400

    theme: break up the css into a modular format

 .gitignore                                         |    4 +-
 data/theme/gnome-shell-sass/_colors.scss           |   24 +-
 data/theme/gnome-shell-sass/_common.scss           | 2396 ++------------------
 data/theme/gnome-shell-sass/_drawing.scss          |  250 +-
 data/theme/gnome-shell-sass/widgets/_app-grid.scss |   54 +
 .../theme/gnome-shell-sass/widgets/_app-icons.scss |  118 +
 .../gnome-shell-sass/widgets/_app-switcher.scss    |   58 +
 data/theme/gnome-shell-sass/widgets/_buttons.scss  |    5 +
 data/theme/gnome-shell-sass/widgets/_calendar.scss |  184 ++
 .../theme/gnome-shell-sass/widgets/_check-box.scss |   14 +
 .../gnome-shell-sass/widgets/_corner-ripple.scss   |   20 +
 data/theme/gnome-shell-sass/widgets/_dash.scss     |   44 +
 data/theme/gnome-shell-sass/widgets/_dialogs.scss  |  398 ++++
 data/theme/gnome-shell-sass/widgets/_entries.scss  |   20 +
 data/theme/gnome-shell-sass/widgets/_hotplug.scss  |   46 +
 .../gnome-shell-sass/widgets/_ibus-popup.scss      |   32 +
 data/theme/gnome-shell-sass/widgets/_keyboard.scss |  100 +
 .../gnome-shell-sass/widgets/_login-dialog.scss    |  153 ++
 .../gnome-shell-sass/widgets/_looking-glass.scss   |   97 +
 .../gnome-shell-sass/widgets/_message-list.scss    |   89 +
 .../gnome-shell-sass/widgets/_message-tray.scss    |   89 +
 data/theme/gnome-shell-sass/widgets/_misc.scss     |   38 +
 data/theme/gnome-shell-sass/widgets/_osd.scss      |   38 +
 data/theme/gnome-shell-sass/widgets/_overview.scss |   86 +
 data/theme/gnome-shell-sass/widgets/_panel.scss    |   88 +
 data/theme/gnome-shell-sass/widgets/_popovers.scss |  131 ++
 .../gnome-shell-sass/widgets/_screen-shield.scss   |   84 +
 .../gnome-shell-sass/widgets/_scrollbars.scss      |   29 +
 .../gnome-shell-sass/widgets/_search-results.scss  |   71 +
 data/theme/gnome-shell-sass/widgets/_slider.scss   |   20 +
 data/theme/gnome-shell-sass/widgets/_switches.scss |   14 +
 .../gnome-shell-sass/widgets/_tiled-previews.scss  |   19 +
 .../widgets/_workspace-switcher.scss               |   53 +
 33 files changed, 2533 insertions(+), 2333 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 9a23ea6b7b..c3d1f2ba6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,8 @@ data/org.gnome.shell.gschema.xml
 data/org.gnome.shell.gschema.valid
 data/org.gnome.Shell.PortalHelper.desktop
 data/org.gnome.Shell.PortalHelper.service
+data/theme/*.css
+data/theme/*.css.map
 data/theme/.sass-cache
 docs/reference/*/*.args
 docs/reference/*/*.bak
@@ -28,7 +30,7 @@ docs/reference/*/*.interfaces
 docs/reference/*/*.prerequisites
 docs/reference/*/*.sgml
 docs/reference/*/*.signals
-docs/reference/*/*.stamp
+docs/reference/*/*.stampl/merge_requests
 docs/reference/*/*.txt
 docs/reference/*/*.types
 docs/reference/*/html/
diff --git a/data/theme/gnome-shell-sass/_colors.scss b/data/theme/gnome-shell-sass/_colors.scss
index d14a440afe..57d130c0c4 100644
--- a/data/theme/gnome-shell-sass/_colors.scss
+++ b/data/theme/gnome-shell-sass/_colors.scss
@@ -1,16 +1,15 @@
 // When color definition differs for dark and light variant,
 // it gets @if ed depending on $variant
 
-
-$base_color: if($variant == 'light', #ffffff, lighten(desaturate(#241f31, 20%), 2%));
+$base_color: if($variant == 'light', #fff, lighten(desaturate(#241f31, 20%), 2%));
 $bg_color: if($variant == 'light', #f6f5f4, darken(desaturate(#3d3846, 100%), 4%));
 $fg_color: if($variant == 'light', #2e3436, #eeeeec);
 
-$selected_fg_color: #ffffff;
+$selected_fg_color: #fff;
 $selected_bg_color: if($variant == 'light', #3584e4, darken(#3584e4, 10%));
 $selected_borders_color: if($variant== 'light', darken($selected_bg_color, 15%), darken($selected_bg_color, 
30%));
-$borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 10%));
-$borders_edge: if($variant == 'light', transparentize(white, 0.2), transparentize($fg_color, 0.93));
+$borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 8%));
+$borders_edge: if($variant == 'light', rgba(255,255,255,0.2), transparentize($fg_color, 0.93));
 $link_color: if($variant == 'light', darken($selected_bg_color, 10%), lighten($selected_bg_color, 20%));
 $link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), lighten($selected_bg_color, 
10%));
 $top_hilight: $borders_edge;
@@ -20,16 +19,15 @@ $error_color: #ff8080;
 $success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%));
 $destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%));
 
-$osd_fg_color: #eeeeec;
-$osd_text_color: white;
-$osd_bg_color: transparentize(darken(desaturate(#3d3846, 100%), 12%),0.04);
+$osd_fg_color: $fg_color;
+$osd_text_color: if($variant == 'light', #000, #fff);
+$osd_bg_color: if($variant == 'light', rgba(255,255,255,0.9), transparentize(darken(desaturate(#3d3846, 
100%), 12%),0.04));
 $osd_insensitive_bg_color: transparentize(mix($osd_fg_color, opacify($osd_bg_color, 1), 10%), 0.5);
 $osd_insensitive_fg_color: mix($osd_fg_color, opacify($osd_bg_color, 1), 50%);
-$osd_borders_color: transparentize(black, 0.3);
-$osd_outer_borders_color: transparentize(white, 0.84);
+$osd_borders_color: if($variant == 'light', rgba(255,255,255,0.1), rgba(0,0,0,0.3));
+$osd_outer_borders_color: if($variant == 'light', rgba(0,0,0,0.1), lighten($osd_bg_color, 7%));
 
-$tooltip_borders_color: $osd_outer_borders_color;
-$shadow_color: transparentize(black, 0.9);
+$shadow_color: if($variant == 'light', rgba(0,0,0,0.1), rgba(0,0,0,0.2));
 
 //insensitive state derived colors
 $insensitive_fg_color: mix($fg_color, $bg_color, 50%);
@@ -42,4 +40,4 @@ $backdrop_bg_color: $bg_color;
 $backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 80%);
 $backdrop_insensitive_color: if($variant =='light', darken($backdrop_bg_color,15%), 
lighten($backdrop_bg_color,15%));
 $backdrop_borders_color: mix($borders_color, $bg_color, 90%);
-$backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%);
+$backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%);
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
index d4148306f9..0f4c2175db 100644
--- a/data/theme/gnome-shell-sass/_common.scss
+++ b/data/theme/gnome-shell-sass/_common.scss
@@ -23,2209 +23,219 @@ $cakeisalie: "This stylesheet is generated, DO NOT EDIT";
  * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-/* GLOBALS */
+/* Global Values */
 
+// padding, margin and spacing
+$base_padding: 6px;
+$base_margin: 4px;
+$base_spacing: 6px;
 
-$modal_radius: 9px;
-$button_radius: 5px;
-$panel-corner-radius: $button_radius + 1;
+// border radii
+$base_border_radius: 5px;
 
-$_trough_color: transparentize($fg_color, 0.9);
-$_bubble_borders_color: lighten($borders_color, if($variant=='light', 0%, 5%));
-$_hover_bg_color: lighten($bg_color,if($variant=='light', 5%, 3%));
-$_active_bg_color: if($variant == 'light', darken($bg_color, 14%), darken($bg_color, 9%));
+$modal_radius:$base_border_radius * 2;
 
-$font-size: 11;
+// non-standard colors
+$bubble_borders_color: lighten($borders_color, if($variant=='light', 0%, 5%));
+// $bubble_borders_color: if($variant == 'light', rgba(255,255,255,0.1), rgba(0,0,0,0.3));
 
-stage {
-  @include fontsize($font-size);
-  color: $fg_color;
-}
-
-/* WIDGETS */
-
-/* Buttons */
-.button, %button {
-  border-radius: $button_radius;
-  border-width: 1px;
-  min-height: 22px;
-  padding: 4px 32px;
-  @include button(normal);
-  &:focus { @include button(focus, $c:$_hover_bg_color, $tc:$fg_color); }
-  &:hover { @include button(hover, $c:$_hover_bg_color, $tc:$fg_color); }
-  &:insensitive { @include button(insensitive); }
-  &:active { @include button(active, $c:$_active_bg_color, $tc:$fg_color); }
-}
-
-.modal-dialog-linked-button, %bubble_button {
-  border-right-width: 1px;
-  @include button(normal, $c:$bg_color, $tc:$fg_color);
-  &:insensitive { @include button(insensitive, $c:$bg_color, $tc:$fg_color); }
-  &:hover { @include button(hover, $c:$_hover_bg_color, $tc:$fg_color); }
-  &:focus { @include button(focus, $c:$_hover_bg_color, $tc:$fg_color); }
-  &:active { @include button(active, $c:$_active_bg_color, $tc:$fg_color); }
-  padding: 12px;
-  border-top: 1px solid $_bubble_borders_color;
-
-  &:first-child {
-    border-radius: 0px 0px 0px $modal_radius;
-  }
-  &:last-child {
-    border-right-width: 0px;
-    border-radius: 0px 0px $modal_radius 0px;
-  }
-  &:first-child:last-child {
-    border-right-width: 0px;
-    border-radius: 0px 0px $modal_radius $modal_radius;
-  }
-}
-
-/* Entries */
-StEntry {
-  border-radius: $button_radius;
-  padding: 4px;
-  border-width: 1px;
-  color: $fg_color;
-  @include entry(normal);
-  //&:hover { @include entry(hover);}
-  &:focus { @include entry(focus,$fc:transparentize($fg_color,0.5));}
-  &:insensitive { @include entry(insensitive);}
-  selection-background-color: $selected_bg_color;
-  selected-color: $selected_fg_color;
-  StIcon.capslock-warning {
-    icon-size: 16px;
-    warning-color: $warning_color;
-    padding: 0 4px;
-  }
-
-  StIcon.peek-password {
-    icon-size: 1.09em;
-    padding: 0 4px;
-  }
-}
-
-
-/* Scrollbars */
-
-StScrollView {
-  &.vfade { -st-vfade-offset: 68px; }
-  &.hfade { -st-hfade-offset: 68px; }
-}
-
-StScrollBar {
-  padding: 0;
-
-  StScrollView & {
-    min-width: 14px;
-    min-height: 14px;
-  }
-
-  StBin#trough {
-    border-radius: 0;
-    background-color: transparent;
-  }
-
-  StButton#vhandle, StButton#hhandle {
-    border-radius: 8px;
-    background-color: mix($fg_color, $bg_color, 60%);
-    //border: 3px solid transparent; //would be nice to margin or at least to transparent
-    margin: 3px;
-    &:hover { background-color: mix($fg_color, $bg_color, 80%); }
-    &:active { background-color: $selected_bg_color; }
-  }
-}
-
-/* Slider */
-
-.slider {
-  height: 1em;
-  -barlevel-height: 0.3em;
-  -barlevel-background-color: transparentize($fg_color, 0.9); //background of the trough
-  -barlevel-border-color: $borders_color; //trough border color
-  -barlevel-active-background-color: $selected_bg_color; //active trough fill
-  -barlevel-active-border-color: $selected_borders_color; //active trough border
-  -barlevel-overdrive-color: $destructive_color;
-  -barlevel-overdrive-border-color: darken($destructive_color,10%);
-  -barlevel-overdrive-separator-width: 0.2em;
-  -barlevel-border-width: 1px;
-  -slider-handle-radius: 8px;
-  -slider-handle-border-width: 1px;
-  -slider-handle-border-color: $borders_color;
-  color: if($variant == 'light', lighten($bg_color, 10%), darken($bg_color,4%));
-  &:hover { color: $_hover_bg_color; }
-  &:active { color: $_active_bg_color; }
-}
-
-/* Check Boxes */
-
-.check-box {
-  StBoxLayout { spacing: .8em; }
-  StBin {
-    width: 24px;
-    height: 22px;
-    background-image: url("resource:///org/gnome/shell/theme/checkbox-off.svg");
-  }
-  &:focus StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-off-focused.svg"); }
-  &:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox.svg"); }
-  &:focus:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-focused.svg"); }
-}
-
-/* Switches */
-.toggle-switch {
-  color: $fg_color;
-  width: 46px;
-  height: 22px;
-  background-size: contain;
-  background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-off.svg"),
-                                           url("resource:///org/gnome/shell/theme/toggle-off-dark.svg"));
-  &:checked { 
-    background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-on.svg"),
-                                           url("resource:///org/gnome/shell/theme/toggle-on-dark.svg"));
-  }
-}
-
-/* links */
-.shell-link {
-  color: $link_color;
-  &:hover { color: lighten($link_color,10%); }
-}
-
-/* Modal Dialogs */
-
-.headline { font-size: 110%; }
-.lightbox { background-color: black; }
-.flashspot { background-color: white; }
-
-.modal-dialog {
-  border-radius: $modal_radius;
-  @extend %bubble-panel;
-  .modal-dialog-content-box {
-    padding: 24px;
-  }
-  .run-dialog-entry { width: 20em; margin-bottom: 6px; }
-  .run-dialog-error-box {
-    padding-top: 16px;
-    spacing: 6px;
-  }
-  .run-dialog-button-box { padding-top: 1em; }
-  .run-dialog-label {
-    @include fontsize($font-size + 1.1);
-    font-weight: normal;
-    color: $fg_color;
-    padding-bottom: .4em;
-  }
-
-}
-
-  .mount-dialog-subject,
-  .end-session-dialog-subject { //this should be a generic header class
-    @include fontsize($font-size * 1.3);
-  }
-
-/* Message Dialog */
-  .message-dialog-main-layout {
-    padding: 12px 20px 0;
-    spacing: 12px;
-  }
-
-  .message-dialog-content {
-    max-width: 28em;
-    spacing: 20px;
-  }
-
-  .message-dialog-icon {
-    min-width: 48px;
-    icon-size: 48px;
-  }
-
-  .message-dialog-title {
-    font-weight: bold;
-  }
-
-  .message-dialog-subtitle {
-    color: $fg_color;
-    font-weight: bold;
-  }
-
-/* End Session Dialog */
-.end-session-dialog {
-  spacing: 42px;
-  border: 1px solid $_bubble_borders_color;
-}
-
-  .end-session-dialog-list {
-      padding-top: 20px;
-  }
-
-  .end-session-dialog-layout {
-    padding-left: 17px;
-    &:rtl { padding-right: 17px; }
-  }
-
-  .end-session-dialog-description {
-    width: 28em;
-    padding-bottom: 10px;
-    &:rtl {
-      text-align: right;
-    }
-  }
-
-  .end-session-dialog-warning {
-    width: 28em;
-    color: $warning_color;
-    padding-top: 6px;
-    &:rtl {
-      text-align: right;
-    }
-  }
-
-  .end-session-dialog-logout-icon {
-    border-radius: 99px;
-    width: 48px;
-    height: 48px;
-    background-size: contain;
-  }
-
-  .end-session-dialog-shutdown-icon {
-    color: $fg_color;
-    width: 48px;
-    height: 48px;
-  }
-
-  .end-session-dialog-inhibitor-layout {
-    spacing: 16px;
-    max-height: 200px;
-    padding-right: 65px;
-    padding-left: 65px;
-  }
-
-  .end-session-dialog-session-list,
-  .end-session-dialog-app-list {
-    spacing: 1em;
-  }
-
-  .end-session-dialog-list-header {
-    font-weight: bold;
-    &:rtl { text-align: right; }
-  }
-
-  .end-session-dialog-app-list-item,
-  .end-session-dialog-session-list-item {
-    spacing: 1em;
-  }
-
-  .end-session-dialog-app-list-item-name,
-  .end-session-dialog-session-list-item-name {
-    font-weight: bold;
-  }
-
-  .end-session-dialog-app-list-item-description {
-    color: darken($fg_color,5%);
-    font-size: 10pt;
-  }
-
-/* ShellMountOperation Dialogs */
-.shell-mount-operation-icon { icon-size: 48px; }
-
-  .mount-dialog {
-    spacing: 24px;
-
-    .message-dialog-title {
-      padding-top: 10px;
-      padding-left: 17px;
-      padding-bottom: 6px;
-      max-width: 34em;
-    }
-
-    .message-dialog-title:rtl {
-      padding-left: 0px;
-      padding-right: 17px;
-    }
-
-    .message-dialog-body {
-      padding-left: 17px;
-      width: 28em;
-    }
-
-    .message-dialog-body:rtl {
-      padding-left: 0px;
-      padding-right: 17px;
-    }
-  }
-
-  .mount-dialog-app-list {
-    max-height: 200px;
-    padding-top: 24px;
-    padding-left: 49px;
-    padding-right: 32px;
-  }
-
-  .mount-dialog-app-list:rtl {
-    padding-right: 49px;
-    padding-left: 32px;
-  }
-
-  .mount-dialog-app-list-item {
-    color: lighten($fg_color,10%);
-    &:hover { color: $fg_color; }
-    &:ltr { padding-right: 1em; }
-    &:rtl { padding-left: 1em; }
-  }
-
-  .mount-dialog-app-list-item-icon {
-    &:ltr { padding-right: 17px; }
-    &:rtl { padding-left: 17px; }
-  }
-
-  .mount-dialog-app-list-item-name {
-    font-size: 10pt;
-  }
-
-
-/* Password or Authentication Dialog */
-
-.prompt-dialog {
-  @extend %bubble-panel;
-  //this is the width of the entire modal popup
-  width: 34em;
-
-  .message-dialog-main-layout { spacing: 24px; padding: 10px; }
-  .message-dialog-content { spacing: 16px; }
-  .message-dialog-title { color: lighten($fg_color,15%); }
-}
-
-  .prompt-dialog-description:rtl {
-    text-align: right;
-  }
-
-  .prompt-dialog-password-box {
-    spacing: 1em;
-    padding-bottom: 1em;
-  }
-
-  .prompt-dialog-error-label {
-    font-size: 10pt;
-    color: $warning_color;
-    padding-bottom: 8px;
-  }
-
-  .prompt-dialog-caps-lock-warning {
-    @extend .prompt-dialog-error-label;
-    padding-left: 6.2em;
-  }
-
-  .prompt-dialog-info-label {
-    font-size: 10pt;
-    padding-bottom: 8px;
-  }
-
-  .hidden {
-    color: rgba(0,0,0,0);
-  }
-
-  .prompt-dialog-null-label {
-    font-size: 10pt;
-    padding-bottom: 8px;
-  }
-
-  .prompt-dialog-pim-box {
-    spacing: 1em;
-  }
-
-  .prompt-dialog-grid {
-    spacing-rows: 15px;
-    spacing-columns: 1em;
-  }
-
-  .prompt-dialog-keyfiles-box {
-    spacing: 1em;
-  }
-
-  .prompt-dialog-button.button {
-    padding: 8px;
-  }
-
-
-/* Polkit Dialog */
-
-.polkit-dialog-user-layout {
-  padding-left: 10px;
-  spacing: 10px;
-  &:rtl {
-    padding-left: 0px;
-    padding-right: 10px;
-  }
-}
-
-  .polkit-dialog-user-root-label {
-    color: $warning_color;
-  }
-
-  .polkit-dialog-user-icon {
-    border-radius: 99px;
-    background-size: contain;
-    width: 48px;
-    height: 48px;
-  }
-
-/* Audio selection dialog */
-.audio-device-selection-dialog {
-  @extend %bubble-panel;
-  spacing: 30px;
-}
-
-  .audio-selection-content {
-    spacing: 20px;
-    padding: 24px;
-  }
-
-  .audio-selection-title {
-    font-weight: bold;
-    text-align: center;
-  }
-
-  .audio-selection-box {
-    spacing: 20px;
-  }
-
-  .audio-selection-device {
-    border: 1px solid $_bubble_borders_color;
-    border-radius: 12px;
-    &:hover,&:focus { background-color: $_hover_bg_color; }
-    &:active { 
-      background-color: $selected_bg_color;
-      color: $selected_fg_color;
-    }
-  }
-
-  .audio-selection-device-box {
-    padding: 20px;
-    spacing: 20px;
-  }
-
-  .audio-selection-device-icon {
-    icon-size: 64px;
-  }
-
-/* Access Dialog */
-.access-dialog {
-  @extend %bubble-panel;
-  spacing: 30px;
-}
-
-/* Geolocation Dialog */
-.geolocation-dialog {
-  @extend %bubble-panel;
-  spacing: 30px;
-}
-
-/* Extension Dialog */
-.extension-dialog {
-  @extend %bubble-panel;
-  .message-dialog-main-layout { spacing: 24px; padding: 10px; }
-  .message-dialog-title { font-weight: normal; color: $fg_color; }
-}
-
-/* Inhibit-Shortcuts Dialog */
-.inhibit-shortcuts-dialog {
-  @extend %bubble-panel;
-  spacing: 30px;
-}
-
-/* Network Agent Dialog */
-
-.network-dialog-secret-table {
-  spacing-rows: 15px;
-  spacing-columns: 1em;
-}
-
-.keyring-dialog-control-table {
-  spacing-rows: 15px;
-  spacing-columns: 1em;
-}
-
-/* Popovers/Menus */
-
-.popup-menu {
-  min-width: 15em;
-  color: $fg_color;
-  border-color: $_bubble_borders_color;
-
-  .popup-menu-arrow { } //defined globally in the TOP BAR
-  .popup-sub-menu {
-    background-color: darken($bg_color,5%);
-    box-shadow: inset 0 -1px 0px $_bubble_borders_color;
-  }
-
-  .popup-menu-content { padding: 1em 0em; }
-  .popup-menu-item {
-    spacing: 12px;
-
-    &:ltr { padding: .4em 1.75em .4em 0em; }
-    &:rtl { padding: .4em 0em .4em 1.75em; }
-    &:checked {
-      background-color: $bg_color;
-      box-shadow: inset 0 -1px 0px $_bubble_borders_color;
-      font-weight: bold;
-    }
-    &.selected {
-      background-color: transparentize(white, if($variant=='light', 0.2, 0.9));
-      color: $fg_color;
-    }
-    &:active { 
-      background-color: $selected_bg_color;
-      color: $selected_fg_color;
-     }
-    &:insensitive { color: transparentize($fg_color,.5); }
-  }
-
-  .popup-inactive-menu-item { //all icons and other graphical elements
-    color: $fg_color;
-
-    &:insensitive { color: transparentize($fg_color,0.5); }
-  }
-  //.popup-status-menu-item { font-weight: normal;  color: pink; } //dunno what that is
-  &.panel-menu {
-    -boxpointer-gap: 4px;
-    margin-bottom: 1.75em;
-  }
-}
-
-
-
-  .popup-menu-ornament {
-    text-align: right;
-    width: 1.2em;
-  }
-  .popup-menu-boxpointer,
-  .candidate-popup-boxpointer {
-    -arrow-border-radius: $button_radius+4;
-    -arrow-background-color: $bg_color;
-    -arrow-border-width: 1px;
-    -arrow-border-color: if($variant=='light', transparentize(black, 0.6), $borders_color);
-    -arrow-base: 24px;
-    -arrow-rise: 11px;
-    -arrow-box-shadow: 0 1px 3px black; //dreaming. bug #689995
-  }
-
-  .popup-separator-menu-item {
-    //-margin-horizontal: 24px;
-    height: 1px; //not really the whole box
-    margin: 6px 64px;
-    background-color: transparent;
-    border-color: $_bubble_borders_color;
-    border-bottom-width: 1px;
-    border-bottom-style: solid;
-  }
-
-// Rename popup
-.rename-folder-popup {
-  .rename-folder-popup-item {
-    spacing: 6px;
-    &:ltr, &:rtl { padding: 0, 12px; }
-  }
-}
-
-// Background menu
-.background-menu { -boxpointer-gap: 4px; -arrow-rise: 0px; }
-
-/* fallback menu
-- odd thing for styling App menu when apparently not running under shell. Light Adwaita styled
-  app menu inside the main app window itself rather than the top bar
-*/
-
-/*************
- * App Icons *
- *************/
-/* Outline for low res icons */
-.lowres-icon {
-    icon-shadow: 0 1px 2px rgba(0,0,0,0.3);
-}
-
-/* Drapshadow for large icons */
-.icon-dropshadow {
-  icon-shadow: 0 1px 2px rgba(0,0,0,0.4);
-}
-
-/* OSD */
-.osd-window {
-  text-align: center;
-  font-weight: bold;
-  spacing: 1em;
-  margin: 32px;
-  min-width: 64px;
-  min-height: 64px;
-
-  .osd-monitor-label { font-size: 3em; }
-  .level {
-    height: 0.6em;
-    -barlevel-height: 0.6em;
-    -barlevel-background-color: transparentize($fg_color, if($variant=='light', 0.2, 0.9));
-    -barlevel-active-background-color: $osd_fg_color;
-    -barlevel-overdrive-color: $destructive_color;
-    -barlevel-overdrive-separator-width: 0.2em;
-  }
-}
-
-/* Pad OSD */
-.pad-osd-window {
-    padding: 32px;
-    background-color: transparentize(black, 0.2);
-
-  .pad-osd-title-box { spacing: 12px; }
-  .pad-osd-title-menu-box { spacing: 6px; }
-}
-
-.combo-box-label {
-    width: 15em;
-}
-
-/* App Switcher */
-.switcher-popup {
-  padding: 8px;
-  spacing: 16px;
-}
-
-.osd-window,
-.resize-popup,
-.switcher-list {
-  @extend %osd-panel;
-}
-
-  .switcher-list-item-container { spacing: 8px;  }
-
-  .switcher-list .item-box {
-    padding: 8px;
-    border-radius: 4px;
-  }
-
-  .switcher-list .item-box:outlined {
-    padding: 6px;
-    border: 2px solid darken($borders_color,10%);
-  }
-
-  .switcher-list .item-box:selected {
-    background-color: transparentize($osd_fg_color, 0.7);
-    color: $selected_fg_color;
-  }
-
-  .switcher-list .thumbnail-box {
-    padding: 2px;
-    spacing: 4px;
-  }
-
-  .switcher-list .thumbnail {
-    width:  256px;
-  }
-
-  .switcher-list .separator {
-    width: 1px;
-    background: $borders_color;
-  }
-
-  .switcher-arrow {
-    border-color: rgba(0,0,0,0);
-    color: transparentize($fg_color,0.2);
-    &:highlighted {
-      color: $fg_color;
-    }
-  }
-
-  .input-source-switcher-symbol {
-    font-size: 34pt;
-    width: 96px;
-    height: 96px;
-  }
-
-/* Window Cycler */
-.cycler-highlight { border: 5px solid $selected_bg_color; }
-
-/* Workspace Switcher */
-.workspace-switcher-group { padding: 12px; }
-
-  .workspace-switcher-container {
-    @extend %osd-panel;
-  }
-
-  .workspace-switcher {
-    background: transparent;
-    border: 0px;
-    border-radius: 0px;
-    padding: 0px;
-    spacing: 8px;
-  }
-
-  .ws-switcher-active-up, .ws-switcher-active-down,
-  .ws-switcher-active-left, .ws-switcher-active-right {
-    height: 52px;
-    background-color: $selected_bg_color;
-    color: $selected_fg_color;
-    background-size: 32px;
-    border-radius: 8px;
-  }
-
-  .ws-switcher-box {
-    height: 50px;
-    border: 1px solid transparentize($osd_fg_color,0.9);
-    background: transparent;
-    border-radius: 8px;
-  }
-
-%osd-panel {
-  color: $osd_fg_color;
-  background-color: $osd_bg_color;
-  border: 1px solid $osd_outer_borders_color;
-  border-radius: 12px;
-  padding: 12px;
-}
-
-%bubble-entry {
-  color: $fg_color;
-  background-color: darken($bg_color, 2%);
-  border-color: $_bubble_borders_color;
-  box-shadow: none;
-  &:focus { border: 2px solid $selected_bg_color; }
-}
-
-%bubble-panel {
-  color: $fg_color;
-  background-color: $bg_color;
-  border: 1px solid if($variant=='light', transparentize(black, 0.6), $borders_color);
-
-  StEntry { @extend %bubble-entry; }
-  .button {
-    &, &:hover, &:focus, &:active, &:disabled { 
-      box-shadow: none;
-      border-color: $_bubble_borders_color;
-    }
-    background-color: $bg_color;
-    color: $fg_color;
-    &:hover { background-color: $_hover_bg_color; }
-    &:active { 
-      background-color: $selected_bg_color;
-      color: $selected_fg_color;
-    }
-    &:disabled { color: $insensitive_fg_color; }
-  }
-}
-
-/* Tiled window previews */
-.tile-preview {
-  background-color: transparentize($selected_bg_color,0.5);
-  border: 1px solid $selected_bg_color;
-}
-
-  .tile-preview-left.on-primary {
-    border-radius: $panel-corner-radius 0 0 0;
-  }
-
-  .tile-preview-right.on-primary {
-    border-radius: 0 $panel-corner-radius 0 0;
-  }
-
-  .tile-preview-left.tile-preview-right.on-primary {
-    border-radius: $panel-corner-radius $panel-corner-radius 0 0;
-  }
-
-/* TOP BAR */
-
-#panel {
-  background-color: black;
-  font-weight: bold;
-  height: 1.86em;
-  font-feature-settings: "tnum";
-
-  &.unlock-screen,
-  &.login-screen,
-  &.lock-screen {
-    background-color: transparent;
-  }
-
-  #panelLeft, #panelCenter { // spacing between activities<>app menu and such
-    spacing: 4px;
-  }
-
-  .panel-corner {
-    -panel-corner-radius: $panel-corner-radius;
-    -panel-corner-background-color: black;
-    -panel-corner-border-width: 2px;
-    -panel-corner-border-color: transparent;
-
-    &:active, &:overview, &:focus {
-      -panel-corner-border-color: lighten($selected_bg_color,5%);
-    }
-
-    &.lock-screen, &.login-screen, &.unlock-screen {
-      -panel-corner-radius: 0;
-      -panel-corner-background-color: transparent;
-      -panel-corner-border-color: transparent;
-    }
-  }
-
-  .panel-button {
-    -natural-hpadding: 12px;
-    -minimum-hpadding: 6px;
-    font-weight: bold;
-    color: #ccc;
-
-    .app-menu-icon {
-      -st-icon-style: symbolic;
-      margin-left: 4px;
-      margin-right: 4px;
-      //dimensions of the icon are hardcoded
-    }
-
-    &:hover {
-      color: $selected_fg_color;
-    }
-
-    &:active, &:overview, &:focus, &:checked {
-      // Trick due to St limitations. It needs a background to draw
-      // a box-shadow
-      background-color: rgba(0, 0, 0, 0.01);
-      box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
-      color: $selected_fg_color;
-    }
-
-    .system-status-icon { icon-size: 1.09em; padding: 0 5px; }
-    .unlock-screen &,
-    .login-screen &,
-    .lock-screen & {
-      color: lighten($fg_color, 10%);
-      &:focus, &:hover, &:active { color: lighten($fg_color, 10%); }
-    }
-  }
-
-  .panel-status-indicators-box,
-  .panel-status-menu-box {
-    spacing: 2px;
-  }
-
-  // spacing between power icon and (optional) percentage label
-  .power-status.panel-status-indicators-box {
-    spacing: 0;
-  }
-
-  .screencast-indicator { color: $warning_color; }
-
-  .remote-access-indicator { color: $warning_color; }
-}
-
-  // calendar popover
-  #calendarArea {
-    padding: 0.75em 1.0em;
-  }
-
-  .calendar {
-    margin-bottom: 1em;
-  }
-
-    .calendar,
-    .datemenu-today-button,
-    .datemenu-displays-box,
-    .message-list-sections {
-      margin: 0 1.5em;
-    }
-
-    .datemenu-calendar-column { spacing: 0.5em; }
-    .datemenu-displays-section { padding-bottom: 3em; }
-    .datemenu-displays-box { spacing: 1em; }
-
-    .datemenu-calendar-column {
-      border: 0 solid $_bubble_borders_color;
-      &:ltr { border-left-width: 1px; }
-      &:rtl { border-right-width: 1px; }
-    }
-
-    .datemenu-today-button,
-    .world-clocks-button,
-    .weather-button,
-    .events-section-title {
-      border-radius: 4px;
-      padding: .4em;
-    }
-
-    .message-list-section-list:ltr {
-      padding-left: .4em;
-    }
-
-    .message-list-section-list:rtl {
-      padding-right: .4em;
-    }
-
-    .datemenu-today-button,
-    .world-clocks-button,
-    .weather-button,
-    .events-section-title {
-      &:hover, &:focus { background-color: $_hover_bg_color }
-      &:active { background-color: $_active_bg_color }
-    }
-
-    .datemenu-today-button .day-label {
-    }
-
-    .datemenu-today-button .date-label {
-      font-size: 1.5em;
-      font-weight: 300;
-    }
-
-    .world-clocks-header,
-    .weather-header,
-    .events-section-title {
-      color: darken($fg_color,40%);
-      font-weight: bold;
-    }
-
-    .weather-header.location {
-      font-weight: normal;
-      font-size: 0.9em;
-    }
-
-    .world-clocks-grid,
-    .weather-grid {
-      spacing-rows: 0.4em;
-      spacing-columns: 0.8em;
-    }
-
-    .weather-header-box,
-    .weather-box {
-      spacing: 0.4em;
-    }
-
-    .world-clocks-city {
-      font-weight: bold;
-      font-size: 0.9em;
-    }
-
-    .world-clocks-time {
-      color: darken($fg_color,20%);
-      font-feature-settings: "tnum";
-      font-size: 1.2em;
-    }
-
-    .world-clocks-timezone {
-      color: $fg_color;
-      font-feature-settings: "tnum";
-      font-size: 0.9em;
-    }
 
-    .weather-forecast-icon {
-      icon-size: 2.18em;
-    }
+// hover
+$hover_bg_color: if($variant=='light', darken($bg_color, 3%), lighten($bg_color, 5%));
+$hover_fg_color: if($variant=='light', darken($fg_color, 5%), lighten($fg_color, 5%));
+$hover_borders_color: lighten($borders_color,if($variant=='light', 5%, 3%));
 
-    .weather-forecast-time {
-      color: darken($fg_color,40%);
-      font-size: 0.8em;
-    }
+// active
+$active_bg_color: if($variant == 'light', darken($bg_color, 7%), darken($bg_color, 9%));
+$active_fg_color: darken($fg_color,if($variant=='light', 5%, 3%));
+$active_borders_color: darken($borders_color,if($variant=='light', 5%, 3%));
 
-    .calendar-month-label {
-      color: lighten($fg_color,5%);
-      font-weight: bold;
-      padding: 8px 0;
-      &:focus {}
-    }
+// fonts
+$base_font_size: 11pt;
+$text_shadow_color: if($variant == 'light', rgba(255,255,255,0.3), rgba(0,0,0,0.2));
 
-    .pager-button {
-      background-color: transparent;
-      width: 32px;
-      border-radius: 4px;
-      &:hover, &:focus { background-color: $_hover_bg_color; }
-      &:active { background-color: transparentize($fg_color, 0.84); }
-    }
+// icons
+// $base_icon_size: 1.09em;
+$base_icon_size: 16px;
 
-      .calendar-change-month-back StIcon, .calendar-change-month-forward StIcon { // arrows
-        icon-size: 1.09em;
-      }
-
-    .calendar-day-base {
-      font-size: 80%;
-      text-align: center;
-      width: 2.4em; height: 2.4em;
-      padding: 0.1em;
-      margin: 2px;
-      border-radius: 1.4em;
-      font-feature-settings: "tnum";
-      &:hover, &:focus { background-color: $_hover_bg_color; }
-      &:active,&:selected {
-        color: lighten($selected_fg_color,5%);
-        background-color: $selected_bg_color;
-        border-color: transparent; //avoid jumparound due to today
-      }
-      &.calendar-day-heading {  //day of week heading
-        color: lighten($fg_color,5%);
-        margin-top: 1em;
-        font-size: 70%;
-      }
-    }
-      .calendar-day { //border collapse hack - see calendar.js
-        border-width: 0;
-      }
-      .calendar-day-top { border-top-width: 1px; }
-      .calendar-day-left { border-left-width: 1px; }
-      .calendar-work-day {
-
-      }
-      .calendar-nonwork-day {
-        color: $insensitive_fg_color;
-      }
-      .calendar-today {
-        font-weight: bold;
-        color: lighten($fg_color,5%);
-        background-color: darken($bg_color,5%);
-        // border: 1px solid lighten($_bubble_borders_color,20%);
-      }
-      .calendar-day-with-events {
-        color: lighten($fg_color,10%);
-        font-weight: bold;
-        background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg");
-      }
-      .calendar-other-month-day {
-        color: transparentize($fg_color ,0.5);
-        opacity: 0.5;
-      }
-      .calendar-week-number {
-        font-size: 70%;
-        font-weight: bold;
-        width: 2.3em; height: 1.8em;
-        border-radius: 2px;
-        padding: 0.5em 0 0;
-        margin: 6px;
-        background-color: $_bubble_borders_color;
-        color: $fg_color;
-      }
-
-      /* Message list */
-      .message-list {
-        width: 31.5em;
-      }
-
-        .message-list-clear-button.button {
-         @extend %button;
-          margin: 1.5em 1.5em 0;
-        }
-
-        .message-list-sections {
-          spacing: 1em;
-        }
-
-        .message-list-section,
-        .message-list-section-list {
-          spacing: 0.4em;
-        }
-
-        .message {
-          border: 1px solid $_bubble_borders_color;
-          background-color: lighten($bg_color, 2%);
-          &:hover,&:focus { background-color: $_hover_bg_color; }
-          &:active { background-color: transparentize($fg_color, 0.84) }
-          border-radius: 5px;
-        }
-
-          .message-icon-bin {
-            padding: 0.68em 0.2em 0.68em 0.68em;
-            &:rtl { padding: 0.68em 0.68em 0.68em 0.2em; }
-          }
-
-          .message-icon-bin > StIcon {
-            color: $fg_color;
-            icon-size: 1.09em;
-            -st-icon-style: symbolic;
-          }
-
-          .message-icon-bin > .fallback-window-icon {
-            width: 1.09em;
-            height: 1.09em;
-          }
-
-          .message-secondary-bin {
-            padding: 0 0.82em;;
-          }
-
-          .message-secondary-bin > .event-time {
-            color: $fg_color;
-            font-size: 0.7em;
-            /* HACK: the label should be baseline-aligned with a 1em label,
-                     fake this with some bottom padding */
-            padding-bottom: 0.13em;
-          }
-
-          .message-secondary-bin > StIcon {
-            icon-size: 1.09em;
-          }
-
-          .message-title {
-            color: $fg_color;            
-          }
-
-          .message-content {
-            color: darken($fg_color, 10%);
-            padding: 10px;
-          }
-
-          .message-close-button {
-            color: lighten($fg_color, 15%);
-            &:hover { color: if($variant=='light', lighten($fg_color, 30%), darken($fg_color, 10%)); }
-            &:active { color: if($variant=='light', lighten($fg_color, 40%), darken($fg_color, 20%)); }
-          }
-
-          .message-media-control {
-            padding: 12px;
-            color: lighten($fg_color, 15%);
-
-            &:last-child:ltr { padding-right: 18px; }
-            &:last-child:rtl { padding-left: 18px; }
-            &:hover { color: if($variant=='light', lighten($fg_color, 30%), darken($fg_color, 10%)); }
-            &:active { color: if($variant=='light', lighten($fg_color, 40%), darken($fg_color, 20%)); }
-            &:insensitive { color: if($variant=='light', lighten($fg_color, 50%), darken($fg_color, 40%)); }
-          }
-
-          .media-message-cover-icon {
-            icon-size: 48px !important;
-            &.fallback {
-              color: lighten($fg_color,10%);
-              background-color: $bg_color;
-              border: 1px solid $bg_color;
-              border-radius: 2px;
-              icon-size: 32px !important;
-              padding: 6px; }
-          }
-
-
-  // a little unstructured mess:
-
-  #appMenu {
-    spacing: 4px;
-
-    .label-shadow { color: transparent; }
-  }
-
-  .app-menu,
-  .app-well-menu {
-    max-width: 27.25em;
-  }
-
-  .aggregate-menu {
-    min-width: 21em;
-    .popup-menu-icon { padding: 0 4px;
-                       -st-icon-style: symbolic; }
-    .popup-sub-menu .popup-menu-item > :first-child {
-      &:ltr { /* 12px spacing + 2*4px padding */
-              padding-left: 20px; margin-left: 1.09em; }
-      &:rtl { /* 12px spacing + 2*4px padding */
-              padding-right: 20px; margin-right: 1.09em; }
-    }
-  }
-
-// Activities Ripples
-.ripple-box {
-  width: 52px;
-  height: 52px;
-  border-radius: 0 0 52px 0; // radius the size of the box give us the curve
-  background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
-  box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
-}
-
-.ripple-box:rtl { border-radius: 0 0 0 52px; } // just a simple change to the border radius position
-
-// Rubberband for select-area screenshots
-.select-area-rubberband {
-  background-color: transparentize($selected_bg_color,0.7);
-  border: 1px solid $selected_bg_color;
-}
-
-// Pointer location
-.ripple-pointer-location {
-  width: 50px;
-  height: 50px;
-  border-radius: 25px 25px 25px 25px; // radius the size of the box give us the curve
-  background-color: lighten(transparentize($selected_bg_color, 0.7), 30%);
-  box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
-}
-
-// not really top bar only
-.popup-menu-arrow { icon-size: 1.09em; }
-.popup-menu-icon { icon-size: 1.09em; }
-
-//close buttons
-
-.window-close {
-  background-color: $selected_bg_color;
-  color: white;
-  border-radius: 24px;
-  border: 2px solid $selected_bg_color;
-  height: 24px;
-  width: 24px;
-  -shell-close-overlap: 11px;
-  box-shadow: -1px 1px 5px 0px transparentize(black, 0.5);
-
-  &:hover {
-    background-color: lighten($selected_bg_color, 5%);
-    border-color: lighten($selected_bg_color, 5%);
-  }
-
-  &:active {
-    background-color: darken($selected_bg_color, 5%);
-    border-color: darken($selected_bg_color, 5%);
-  }
-}
-
-// Pointer accessibility notifications
-.pie-timer {
-  width: 60px;
-  height: 60px;
-  -pie-border-width: 3px;
-  -pie-border-color: $selected_bg_color;
-  -pie-background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
-}
-
-/* NETWORK DIALOGS */
-
-.nm-dialog {
-  @extend %bubble-panel;
-  max-height: 34em;
-  min-height: 31em;
-  min-width: 32em;
-}
-
-  .nm-dialog-content {
-    spacing: 20px;
-    padding: 24px;
-  }
-  .nm-dialog-header-hbox { spacing: 10px; }
-  .nm-dialog-airplane-box { spacing: 12px; }
-
-  .nm-dialog-airplane-headline {
-    font-weight: bold;
-    text-align: center;
-  }
-
-  .nm-dialog-airplane-text { color: $fg_color; }
-  .nm-dialog-header-icon { icon-size: 32px; }
-  .nm-dialog-scroll-view { border: 2px solid $borders_color; }
-  .nm-dialog-header { font-weight: bold; }
-
-  .nm-dialog-item {
-    font-size: 110%;
-    border-bottom: 1px solid $borders_color;
-    padding: 12px;
-    spacing: 20px;
-  }
-
-  .nm-dialog-item:selected {
-    background-color: $selected_bg_color;
-    color: $selected_fg_color;
-  }
-
-  .nm-dialog-icons { spacing: .5em; }
-  .nm-dialog-icon { icon-size: 16px; }
-  .no-networks-label { color: #999999; }
-  .no-networks-box { spacing: 12px; }
-
-/* OVERVIEW */
-
-#overview {
-  spacing: 24px; //
-}
-
-.overview-controls {
-  padding-bottom: 32px;
-}
-
-  .window-picker { //container around window thumbnails
-    -horizontal-spacing: 16px;
-    -vertical-spacing: 16px;
-    padding: 0 16px 16px;
-
-    &.external-monitor { padding: 16px; }
-  }
-
-  .window-clone-border {
-    $_bg: transparentize(white, 0.65);
-    border: 7px solid $_bg;
-    border-radius: $modal_radius;
-    // For window decorations with round corners we can't match
-    // the exact shape when the window is scaled. So apply a shadow
-    // to fix that case
-    box-shadow: inset 0 0 0 1px $_bg;
-}
-  .window-caption {
-    spacing: 25px;
-    color: $selected_fg_color;
-    background-color: $selected_bg_color;
-    border-radius: 8px;
-    padding: 4px 12px;
-  }
-
-  //search entry
-  .search-entry, %search_entry {
-    width: 320px;
-    padding: 7px 9px;
-    border-radius: 18px;
-    color: $fg_color;
-    background-color: $base_color;
-    border-color: $borders_color;
-    &:focus {
-      padding: 6px 8px;
-      border-width: 2px;
-      border-color: $selected_bg_color;
-    }
-
-    .search-entry-icon { icon-size: 1em; padding: 0 4px; color: $fg_color; }
-
-    &:hover, &:focus {
-      .search-entry-icon { color: transparentize($fg_color,.3); }
-    }
-  }
-
-  //search results
-
-  #searchResultsContent {
-    max-width: 1000px;
-    padding-left: 20px;
-    padding-right: 20px;
-    spacing: 16px;
-  }
-
-  .search-section { spacing: 16px; } // This should be equal to #searchResultsContent spacing
-  .search-section-content { spacing: 32px; } // This is the space between the provider icon and the results 
container
-  .search-statustext { // "no results"
-    @extend %status_text;
-  }
-  .list-search-results { spacing: 3px; }
-
-  .search-section-separator { height: 2px; background-color: rgba(255, 255, 255, 0.2); }
-
-  .search-section:last-child .search-section-separator { background-color: transparent; }
-
-  .list-search-result-content { spacing: 30px; }
-  .list-search-result-title { color: darken($osd_fg_color,5%); spacing: 12px; }
-  .list-search-result-description { color: darken($osd_fg_color, 30%); }
-  .list-search-provider-details { width: 150px; color: darken($osd_fg_color,5%); margin-top: 0.24em; }
-  .list-search-provider-content { spacing: 20px; }
-  .search-provider-icon { padding: 15px; }
-
-
-  /* DASHBOARD */
-
-  #dash {
-    @extend %overview-panel;
-    font-size: 9pt;
-    padding: 4px 0;
-    border-radius: 0px 9px 9px 0px;
-
-    &:rtl {
-      border-radius: 9px 0 0 9px;
-    }
-
-    .placeholder {
-      background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
-      background-size: contain;
-      height: 24px;
-    }
-
-    .empty-dash-drop-target {
-      width: 24px;
-      height: 24px;
-    }
-
-  }
-
-  .dash-item-container > StWidget {
-    padding: 4px 8px;
-  }
-
-  .dash-label { //osd tooltip
-    border-radius: 7px;
-    padding: 4px 12px;
-    color: $osd_fg_color;
-    background-color: transparentize($osd_bg_color,0.05);
-    border: 1px solid $osd_outer_borders_color;
-    text-align: center;
-    -x-offset: 8px;
-  }
-
-  /* App Vault/Grid */
-  .icon-grid {
-    spacing: 30px;
-    -shell-grid-horizontal-item-size: 136px;
-    -shell-grid-vertical-item-size: 136px;
-
-    .overview-icon { icon-size: 96px; }
-  }
-  //.app-display { spacing: 20px; }
-
-  .system-action-icon {
-    background-color: black;
-    color: white;
-    border-radius: 99px;
-    icon-size: 48px;
-  }
-
-  .app-view-controls { //favorties | all toggle container
-    padding-bottom: 32px;
-  }
-  .app-view-control { //favorties | all toggle button
-    padding: 4px 32px;
-    margin: 0 4px;
-    &, &:hover, &:checked { @include button(undecorated); }
-
-    &, &:hover { color: darken($osd_fg_color, 25%); }
-
-    &:hover { box-shadow: inset 0 -2px darken($osd_fg_color, 25%); }
-
-    &:active {
-      box-shadow: inset 0 -2px $osd_fg_color;
-    }
-
-    &:checked {
-      color: $osd_fg_color;
-      box-shadow: inset 0 -2px $selected_bg_color;
-    }
-
-    &:first-child {
-      border-right-width: 0;
-      border-radius: 0;
-    }
-
-    &:last-child {
-     border-radius: 0;
-    }
-  }
-
-  //Icon tile
-  .search-provider-icon,
-  .list-search-result {
-    @extend %icon_tile;
-    &:focus, &:selected, &:hover {
-      background-color: transparentize($osd_fg_color,.9);
-      transition-duration: 200ms;
-    }
-    &:active, &:checked { background-color: transparentize(darken($osd_bg_color,10%),.1); }
-  }
-  .app-well-app,
-  .app-well-app.app-folder,
-  .show-apps,
-  .grid-search-result {
-    & .overview-icon {
-      @extend %icon_tile;
-    }
-    &:hover .overview-icon,
-    &:focus .overview-icon,
-    &:selected .overview-icon {
-      background-color: transparentize($osd_fg_color,.9);
-      transition-duration: 0ms;
-      border-image: none;
-      background-image: none;
-    }
-    &:drop .overview-icon {
-      background-color: transparentize($selected_bg_color,.15);
-    }
-    &:active .overview-icon,
-    &:checked .overview-icon {
-      background-color: transparentize(darken($osd_bg_color,10%), 0.5);
-    }
-  }
-
-  .app-well-app-running-dot { //running apps indicator
-    width: 10px; height: 3px;
-    background-color: $selected_bg_color;
-    margin-bottom: 2px;
-  }
-
-  %icon_tile {
-    color: $osd_fg_color;
-    border-radius: $button_radius+4;
-    padding: 6px;
-    border: 1px solid transparent;
-    transition-duration: 100ms;
-    text-align: center;
-  }
-
-  .app-well-app.app-folder > .overview-icon {
-    background-color: transparentize($osd_bg_color,.6);
-  }
-
-  .show-apps:checked .show-apps-icon,
-  .show-apps:focus .show-apps-icon {
-    color: white;
-    transition-duration: 100ms;
-  }
-
-
-  // Collections
-  .app-folder-popup { //expanded collection
-    -arrow-border-radius: 8px;
-    -arrow-background-color: transparentize(darken($osd_bg_color,10%), 0.5);
-    -arrow-base: 24px;
-    -arrow-rise: 11px;
-  }
-  .app-folder-popup-bin { padding: 5px; }
-  .app-folder-icon {
-    padding: 5px;
-    spacing-rows: 5px;
-    spacing-columns: 5px;
-  }
-
-  .page-indicator {
-    padding: 7px 16px;
-
-    .page-indicator-icon {
-      width: 12px;
-      height: 12px;
-      background-color: white;
-      border-radius: 6px;
-    }
-  }
-
-  .no-frequent-applications-label { @extend %status_text; }
-
-  .app-well-app > .overview-icon.overview-icon-with-label,
-  .grid-search-result .overview-icon.overview-icon-with-label {
-    padding: 10px 8px 5px 8px;
-    spacing: 4px;
-  }
-
-  // Workspace pager
-  .workspace-thumbnails { //container ala dash
-    @extend %overview-panel;
-    visible-width: 32px; //amount visible before hover
-    spacing: 11px;
-    padding: 8px;
-    border-radius: 9px 0 0 9px;
-    //border-width: 1px 0 1px 1px; //fixme: can't have non unoform borders :(
-    &:rtl { border-radius: 0 9px 9px 0;}
-
-    .placeholder {
-      background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
-      background-size: contain;
-      height: 24px;
-    }
-  }
-  .workspace-thumbnail-indicator {
-    border: 2px solid $selected_bg_color;
-    padding: 1px;
-  }
-
-  //Some hacks I don't even
-  .all-apps,
-  .frequent-apps > StBoxLayout {
-    // horizontal padding to make sure scrollbars or dash don't overlap content
-    padding: 0px 88px 10px 88px;
-  }
-
-%overview-panel {
-  color: $osd_fg_color;
-  background-color: transparentize($osd_bg_color, 0.1);
-  border: none;
+// Stage
+stage {
+       @include fontsize($base_font_size);
+       color: $fg_color;
 }
 
+/* WIDGETS */
+@import 'widgets/app-grid';
+@import 'widgets/app-switcher';
+@import 'widgets/buttons';
+@import 'widgets/calendar';
+@import 'widgets/check-box';
+@import 'widgets/corner-ripple';
+@import 'widgets/dash';
+@import 'widgets/dialogs';
+@import 'widgets/end-session-dialog';
+@import 'widgets/entries';
+@import 'widgets/hotplug';
+@import 'widgets/ibus-popup';
+@import 'widgets/keyboard';
+@import 'widgets/login-dialog';
+@import 'widgets/looking-glass';
+@import 'widgets/message-list';
+@import 'widgets/notifications';
+@import 'widgets/misc';
+@import 'widgets/network-dialog';
+@import 'widgets/osd';
+@import 'widgets/overview';
+@import 'widgets/panel';
+@import 'widgets/popovers';
+@import 'widgets/screen-shield';
+@import 'widgets/scrollbars';
+@import 'widgets/search-entry';
+@import 'widgets/search-results';
+@import 'widgets/search-results';
+@import 'widgets/slider';
+@import 'widgets/switches';
+@import 'widgets/tiled-previews';
+@import 'widgets/window-picker';
+@import 'widgets/workspace-switcher';
+
+/* Common Stylings */
+
+// Text
 %status_text {
-  font-size: 2em;
-  font-weight: bold;
-  color: $osd_fg_color;
-}
-
-/* NOTIFICATIONS & MESSAGE TRAY */
-
-  .url-highlighter { link-color: lighten($selected_bg_color,10%); }
-
-  // Banners
-  .notification-banner {
-    font-size: 11pt;
-    width: 34em;
-    margin: 5px;
-    border-radius: $modal_radius;
-    border: if($variant == 'light', none, $_bubble_borders_color);
-    min-height: 64px;
-    box-shadow: 0 1px 2px transparentize(black, 0.7);
-    &:hover { background: $bg_color; }
-    &, &:focus, &:active {
-      background-color: $bg_color;
-      .message-title { color: $fg_color }
-      .message-content { color: $fg_color; }
-    }
-
-    .message-icon-bin > StIcon {
-      color: $fg_color;
-    }
-
-    StEntry { @extend %bubble-entry; }
-
-    .notification-icon { padding: 5px; }  
-    .notification-content { padding: 5px; spacing: 5px; }
-    .secondary-icon { icon-size: 1.09em; }
-    .notification-actions {
-      padding-top: 0;
-      color: $fg_color;
-      border-top: 1px solid $_bubble_borders_color;
-      spacing: 0px;
-    }
-    .notification-button {
-      @extend %bubble_button;
-      &:focus { box-shadow: none; }
-      padding: 0 16px;
-      min-height: 35px;
-      border: none;
-    }
-  }
-  .summary-source-counter {
-    font-size: 10pt;
-    font-weight: bold;
-    height: 1.6em; width: 1.6em;
-    -shell-counter-overlap-x: 3px;
-    -shell-counter-overlap-y: 3px;
-    background-color: $selected_bg_color;
-    color: $selected_fg_color;
-    border: 2px solid $fg_color;
-    box-shadow: 0 2px 2px rgba(0,0,0,0.5);
-    border-radius: 0.9em; // should be 0.8 but whatever; wish I could do 50%;
-  }
-
-  .secondary-icon { icon-size: 1.09em; }
-
-  //chat bubbles
-  .chat-body { spacing: 5px; }
-  .chat-response { margin: 5px; }
-  .chat-log-message { color: darken($fg_color,10%); }
-  .chat-new-group { padding-top: 1em; }
-  .chat-received {
-    padding-left: 4px;
-    &:rtl { padding-left: 0px; padding-right: 4px; }
-  }
-  .chat-sent {
-    padding-left: 18pt;
-    color: lighten($fg_color, 15%);
-    &:rtl { padding-left: 0; padding-right: 18pt; }
-  }
-  .chat-meta-message {
-    padding-left: 4px;
-    font-size: 9pt;
-    font-weight: bold;
-    color: lighten($fg_color,18%);
-    &:rtl { padding-left: 0; padding-right: 4px; }
-  }
-
-  //hotplug
-  .hotplug-transient-box {
-    spacing: 6px;
-    padding: 2px 72px 2px 12px;
-  }
-    .hotplug-notification-item {
-      @extend %bubble_button;
-      border: none; box-shadow: none;
-      padding: 2px 10px;
-      &:focus { padding: 1px 71px 1px 11px; }
-    }
-
-    .hotplug-notification-item-icon {
-      icon-size: 24px;
-      padding: 2px 5px;
-    }
-
-    .hotplug-resident-box { spacing: 8px; }
-
-    .hotplug-resident-mount {
-      spacing: 8px;
-      border-radius: 4px;
-      &:hover { background-color: $_hover_bg_color; }
-    }
-
-    .hotplug-resident-mount-label {
-      color: inherit;
-      padding-left: 6px;
-    }
-
-    .hotplug-resident-mount-icon {
-      icon-size: 24px;
-      padding-left: 6px;
-    }
-
-    .hotplug-resident-eject-icon {
-      icon-size: 16px;
-    }
-
-    .hotplug-resident-eject-button {
-      padding: 7px;
-      border-radius: 5px;
-      color: pink;
-    }
-
-/* Eeeky things */
-
-//magnifier
-
-.magnifier-zoom-region {
-  border: 2px solid $selected_bg_color;
-  &.full-screen { border-width: 0; }
-}
-
-//Keyboard
-/* On-screen Keyboard */
-.word-suggestions {
-    font-size: 14pt;
-    spacing: 12px;
-    min-height: 20pt;
-}
-
-#keyboard {
-    background-color: transparentize($osd_bg_color, 0.3);
-
-    .page-indicator {
-        padding: 4px 4px;
-
-        .page-indicator-icon {
-            width: 8px;
-            height: 8px;
-        }
-    }
-}
-
-  .key-container {
-    padding: 4px;
-    spacing: 4px;
-  }
-
-  .keyboard-key {
-    $_key_bg: opacify(lighten($osd_bg_color, 9%), 1);
-    background-color: $_key_bg;
-    min-height: 1.2em;
-    min-width: 1.2em;
-    font-size: 16pt;
-    border-radius: $button_radius;
-    border: 1px solid $osd_outer_borders_color;
-    color: $osd_fg_color;
-    &:focus { @include button(focus); }
-    &:hover, &:checked { background-color: lighten($_key_bg, 3%); }
-    &:active { background-color: darken($_key_bg, 2%); }
-    &:grayed { //FIXME
-      background-color: $osd_bg_color;
-      color: $osd_fg_color;
-      border-color: $osd_borders_color;
-    }
-    &.default-key {
-      $_default_key_bg: opacify($osd_bg_color, 1);
-      border-color: $osd_outer_borders_color;
-      background-color: $_default_key_bg;
-      background-size: 20px;
-      &:hover, &:checked { background-color: lighten($_default_key_bg, 3%); }
-      &:active { background-color: darken($_default_key_bg, 2%); }
-    }
-    &.enter-key {
-      border-color: lighten($selected_bg_color, 5%);
-      background-color: $selected_bg_color;
-      background-image: url("resource:///org/gnome/shell/theme/key-enter.svg");
-      &:hover, &:checked { background-color: lighten($selected_bg_color, 3%); }
-      &:active { background-color: darken($selected_bg_color, 2%); }
-    }
-    &.shift-key-lowercase {
-      background-image: url("resource:///org/gnome/shell/theme/key-shift.svg");
-    }
-    &.shift-key-uppercase {
-      background-image: url("resource:///org/gnome/shell/theme/key-shift-uppercase.svg");
-    }
-    &.shift-key-uppercase:latched {
-      background-image: url("resource:///org/gnome/shell/theme/key-shift-latched-uppercase.svg");
-    }
-    &.hide-key {
-      background-image: url("resource:///org/gnome/shell/theme/key-hide.svg");
-    }
-    &.layout-key {
-      background-image: url("resource:///org/gnome/shell/theme/key-layout.svg");
-    }
-  }
-
-  .keyboard-subkeys { //long press on a key popup
-    color: white;
-    -arrow-border-radius: 10px;
-    -arrow-background-color: transparentize($osd_bg_color, 0.3);
-    -arrow-border-width: 2px;
-    -arrow-border-color: $osd_outer_borders_color;
-    -arrow-base: 20px;
-    -arrow-rise: 10px;
-    -boxpointer-gap: 5px;
-  }
-
-.emoji-page {
-  .keyboard-key {
-    background-color: transparent;
-    border: none;
-  }
-}
-
-.emoji-panel {
-  .keyboard-key:latched {
-    border-color: lighten($selected_bg_color, 5%);
-    background-color: $selected_bg_color;
-  }
-}
-
-// IBus Candidate Popup
-
-.candidate-popup-content {
-  padding: 0.5em;
-  spacing: 0.3em;
-}
-
-  .candidate-index {
-    padding: 0 0.5em 0 0;
-    color: darken($fg_color,10%);
-  }
-
-  .candidate-box {
-    padding: 0.3em 0.5em 0.3em 0.5em;
-    border-radius: 4px;
-    &:selected,&:hover { background-color: $selected_bg_color; color: $selected_fg_color; }
-  }
-
-  .candidate-page-button-box {
-    height: 2em;
-    .vertical & { padding-top: 0.5em; }
-    .horizontal & { padding-left: 0.5em; }
-  }
-
-  .candidate-page-button {
-    padding: 4px;
-  }
-
-  .candidate-page-button-previous { border-radius: 4px 0px 0px 4px; border-right-width: 0; }
-  .candidate-page-button-next { border-radius: 0px 4px 4px 0px;  }
-  .candidate-page-button-icon { icon-size: 1em; }
-
-/* Auth Dialogs & Screen Shield */
-
-.user-icon {
-  background-size: contain;
-  color: $osd_fg_color;
-  border-radius: 99px;
-  &:hover {
-    color: lighten($osd_fg_color,30%);
-  }
-}
-
-// LOGIN DIALOG
-
-.login-dialog-banner-view {
-  padding-top: 24px;
-  max-width: 23em;
-}
-
-.login-dialog {
-  //reset
-  border: none;
-  background-color: transparent;
-
-  $_gdm_fg: #f6f5f4;
-  $_gdm_bg: lighten(#2e3436, 19%);
-
-  StEntry {
-    @extend %search_entry;
-    border-radius: $button_radius;
-    @if $variant=='dark' {
-      $_gdm_entry_bg: transparentize(lighten(desaturate(#241f31, 20%), 2%), 0.5);
-      background-color: $_gdm_entry_bg;
-      border-color: $_gdm_entry_bg;    
-      color: $osd_fg_color;
-    }
-  }
-
-  .modal-dialog-button-box { spacing: 3px; }
-  .modal-dialog-button {
-    padding: 4px 18px;
-    box-shadow: 0 1px 3px transparentize($shadow_color, 0.02);
-    background-color: $_gdm_bg;
-    border-color: $_gdm_bg;
-    color: $_gdm_fg;
-
-    $_hover_c: lighten($_gdm_bg, 5%);
-    &:hover, &:focus {
-      background-color: $_hover_c;
-      border-color: $_hover_c;
-    }
-    &:active {
-      $_active_c: darken($_gdm_bg, 5%);
-      box-shadow: none;
-      background-color: $_active_c;
-      border-color: $_active_c;
-    }
-    &:insensitive {
-      @include button(insensitive);
-      border-color: darken($_gdm_bg, 5%);
-      background-color: darken($_gdm_bg, 5%);
-      color: transparentize($_gdm_fg, 0.3);
-    }
-    &:default {
-      @include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
-      border-color: $selected_bg_color;
-      &:hover, &:focus { 
-        @include button(hover,$c:$selected_bg_color, $tc:$selected_fg_color);
-        $_def_hover_c: lighten($selected_bg_color, 5%);
-        background-color: $_def_hover_c;
-        border-color: $_def_hover_c;
-      }
-      &:active {
-        @include button(active,$c:$selected_bg_color, $tc:$selected_fg_color);
-        $_def_active_c: darken($selected_bg_color, 5%);
-        background-color: $_def_active_c;
-        border-color: $_def_active_c;
-      }
-      &:insensitive {
-        @include button(insensitive);
-        border-color: darken($selected_bg_color, 10%);
-        background-color: darken($selected_bg_color, 10%);
-        color: transparentize($selected_fg_color, 0.3);
-      }
-    }
-  }
-}
-
-  .login-dialog-logo-bin { padding: 24px 0px; }
-  .login-dialog-banner { color: darken($osd_fg_color,10%); }
-  .login-dialog-button-box { spacing: 5px; }
-  .login-dialog-message-warning { color: $warning_color; }
-  .login-dialog-message-hint { padding-top: 0; padding-bottom: 20px; }
-  .login-dialog-user-selection-box { padding: 100px 0px; }
-  .login-dialog-not-listed-label {
-    padding-left: 2px;
-    .login-dialog-not-listed-button:focus &,
-    .login-dialog-not-listed-button:hover & {
-      color: $osd_fg_color;
-    }
-  }
-  .login-dialog-not-listed-label {
-    font-size: 90%;
-    font-weight: bold;
-    color: darken($osd_fg_color,30%);
-    padding-top: 1em;
-  }
-
-  .login-dialog-user-list-view { -st-vfade-offset: 1em; }
-  .login-dialog-user-list {
-    spacing: 12px;
-    width: 23em;
-    &:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; color: 
$selected_fg_color; }
-    &:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid $selected_bg_color; }
-  }
-  .login-dialog-user-list-item {
-    border-radius: 5px;
-    padding: 6px;
-    color: darken($osd_fg_color,30%);
-    &:ltr .user-widget { padding-right: 1em; }
-    &:rtl .user-widget { padding-left: 1em; }
-    .login-dialog-timed-login-indicator {
-      height: 2px;
-      margin-top: 6px;
-      background-color: $osd_fg_color;
-    }
-    &:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; }
-  }
-
-  .login-dialog-username,
-  .user-widget-label {
-    color: $osd_fg_color;
-    font-size: 120%;
-    font-weight: bold;
-    text-align: left;
-    padding-left: 15px;
-  }
-    .user-widget-label {
-      &:ltr { padding-left: 14px; }
-      &:rtl { padding-right: 14px; }
-    }
-
-  .login-dialog-prompt-layout {
-      padding-top: 24px;
-      padding-bottom: 12px;
-      spacing: 8px;
-      width: 23em;
-  }
-
-  .login-dialog-prompt-label {
-      color: darken($osd_fg_color, 20%);
-      font-size: 110%;
-      padding-top: 1em;
-  }
-
-  .login-dialog-session-list-button StIcon {
-      icon-size: 1.25em;
-  }
-
-  .login-dialog-session-list-button {
-      color: darken($osd_fg_color,30%);
-      &:hover,&:focus { color: $osd_fg_color; }
-      &:active { color: darken($osd_fg_color, 50%); }
-  }
-
-//SCREEN SHIELD
-
-$_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726);
-
-.screen-shield-arrows {
-    padding-bottom: 3em;
-}
-
-.screen-shield-arrows Gjs_Arrow {
-    color: white;
-    width: 80px;
-    height: 48px;
-    -arrow-thickness: 12px;
-    -arrow-shadow: $_screenshield_shadow;
-}
-
-.screen-shield-clock {
-  color: white;
-  text-shadow: $_screenshield_shadow;
-  font-weight: bold;
-  text-align: center;
-  padding-bottom: 1.5em;
-}
-
-.screen-shield-clock-time {
-  font-size: 72pt;
-  text-shadow: $_screenshield_shadow;
-  font-feature-settings: "tnum";
-}
-
-.screen-shield-clock-date { 
-  font-size: 28pt;
-  font-weight: normal;
-}
-
-.screen-shield-notifications-container {
-  spacing: 6px;
-  width: 30em;
-  background-color: transparent;
-  max-height: 500px;
-  .summary-notification-stack-scrollview {
-    padding-top: 0;
-    padding-bottom: 0;
-  }
-
-  .notification,
-  .screen-shield-notification-source {
-    padding: 12px 6px;
-    border: 1px solid $osd_outer_borders_color;
-    background-color: transparentize($osd_bg_color,0.5);
-    color: $osd_fg_color;
-    border-radius: 4px;
-  }
-  .notification { margin-right: 15px; } //compensate for space allocated to the scrollbar
-}
-
-
-.screen-shield-notification-label {
-  font-weight: bold;
-  padding: 0px 0px 0px 12px;
-}
-
-.screen-shield-notification-count-text { padding: 0px 0px 0px 12px; }
-
-#panel.lock-screen { background-color: transparentize($osd_bg_color, 0.5); }
-
-.screen-shield-background { //just the shadow, really
-  background: black;
-  box-shadow: 0px 2px 4px transparentize(black,0.6);
-}
-
-#lockDialogGroup {
-  background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
-  background-repeat: repeat;
-}
-
-#screenShieldNotifications {
-  StButton#vhandle, StButton#hhandle {
-    background-color: transparentize($bg_color,0.7);
-    &:hover, &:focus { background-color: transparentize($bg_color,0.5); }
-    &:active { background-color: transparentize($selected_bg_color,0.5); }
-  }
-}
-
-
-// Looking Glass
-#LookingGlassDialog {
-  background-color: rgba(0,0,0,0.80);
-  spacing: 4px;
-  padding: 4px;
-  border: 2px solid grey;
-  border-radius: 4px;
-  & > #Toolbar {
-    border: 1px solid grey;
-    border-radius: 4px;
-  }
-  .labels { spacing: 4px; }
-  .notebook-tab {
-    -natural-hpadding: 12px;
-    -minimum-hpadding: 6px;
-    font-weight: bold;
-    color: #ccc;
-    transition-duration: 100ms;
-    padding-left: .3em;
-    padding-right: .3em;
-    &:hover {
-      color: white;
-      text-shadow: black 0px 2px 2px;
-    }
-    &:selected {
-      border-bottom-width: 2px;
-      border-color: lighten($selected_bg_color,5%);
-      color: white;
-      text-shadow: black 0px 2px 2px;
-    }
-  }
-  StBoxLayout#EvalBox { padding: 4px; spacing: 4px; }
-  StBoxLayout#ResultsArea { spacing: 4px; }
-}
-
-  .lg-dialog {
-    StEntry {
-      selection-background-color: #bbbbbb;
-      selected-color: #333333;
-    }
-    .shell-link {
-      color: #999999;
-      &:hover { color: #dddddd; }
-     }
-  }
-
-  .lg-completions-text {
-      font-size: .9em;
-      font-style: italic;
-  }
-
-  .lg-obj-inspector-title {
-      spacing: 4px;
-  }
-
-  .lg-obj-inspector-button {
-      border: 1px solid gray;
-      padding: 4px;
-      border-radius: 4px;
-      &:hover { border: 1px solid #ffffff; }
-  }
-
-  #lookingGlassExtensions { padding: 4px; }
-
-  .lg-extensions-list {
-      padding: 4px;
-      spacing: 6px;
-  }
-
-  .lg-extension {
-      border: 1px solid #6f6f6f;
-      border-radius: 4px;
-      padding: 4px;
-  }
-
-  .lg-extension-name {
-      font-weight: bold;
-  }
-
-  .lg-extension-meta {
-      spacing: 6px;
-  }
-
-  #LookingGlassPropertyInspector {
-    background: rgba(0, 0, 0, 0.8);
-    border: 2px solid grey;
-    border-radius: 4px;
-    padding: 6px;
-  }
+       font-size: 2em;
+       font-weight: bold;
+       color: $osd_fg_color;
+}
+
+
+// osd panels
+%osd_panel {
+       color: $osd_fg_color;
+       background-color: $osd_bg_color;
+       border: 1px solid $osd_outer_borders_color;
+       border-radius: $base_border_radius * 2 + 4px;
+       padding: $base_padding * 2;
+}
+
+// Overview panels 
+// for the dash and workspace switcher
+%overview_panel {
+       color: $osd_fg_color;
+       background-color: transparentize($osd_bg_color, 0.2);
+       border: 1px solid $osd_outer_borders_color;
+}
+
+// icon tiles
+%icon_tile {
+       background-color: transparent; // no background
+       color: $osd_fg_color;
+       border-radius: $base_border_radius + 4px;
+       padding: $base_padding;
+       border: 2px solid transparent;
+       transition-duration: 100ms;
+       text-align: center;
+}
+
+// dialogs
+%bubble_panel {
+       color: $fg_color;
+       background-color: $bg_color;
+       border: 1px solid if($variant=='light', rgba(0,0,0, 0.6), $borders_color);
+
+       // entry
+       StEntry { @extend %bubble_entry;}
+
+       // button
+       .button {
+               background-color: $bg_color;
+               color: $fg_color;
+               box-shadow: none;
+
+               &, &:hover, &:focus, &:active, &:disabled { 
+                       border-color: $bubble_borders_color;
+               }
+
+               &:hover { background-color: $hover_bg_color;}
+               &:active { 
+                       background-color: $selected_bg_color;
+                       color: $selected_fg_color;
+               }
+               &:disabled { color: $insensitive_fg_color;}
+       }
+}
+
+// entries in dialogs
+%bubble_entry {
+       color: $fg_color;
+       background-color: darken($bg_color, 2%);
+       border-color: $bubble_borders_color;
+       box-shadow: none;
+       &:focus { border: 2px solid $selected_bg_color;}
+}
+
+// buttons in dialogs
+%bubble_button {
+       @include button(normal);
+       padding: $base_padding * 2;
+       border-color: $bubble_borders_color;
+       border-style: solid;
+       border-width: 0 !important;
+       border-top-width: 1px !important;
+       box-shadow:none !important;
+
+       &:insensitive { @include button(insensitive);}
+       &:hover { @include button(hover);}
+       &:focus { @include button(focus);}
+       &:active { @include button(active);}
+
+       // radius is 2 pixel less to fit in bubble
+       &:first-child {
+               border-right-width: 1px !important;
+               border-radius: 0px 0px 0px $modal_radius - 2px;
+       }
+       &:last-child {
+               border-right-width: 0 !important;
+               border-radius: 0px 0px $modal_radius - 2px 0px;
+       }
+       
+       &:first-child:last-child {
+               border-radius: 0px 0px $modal_radius - 2px $modal_radius - 2px;
+       }
+}
+
+// button styling
+%button {
+       border-radius: $base_border_radius;
+       border-width: 1px;
+       min-height: 22px;
+       padding: calc($base_padding * 0.25) calc($base_padding * 2);
+
+       @include button(normal);
+       &:focus { @include button(focus);}
+       &:hover { @include button(hover);}
+       &:insensitive { @include button(insensitive);}
+       &:active { @include button(active);}
+}
+
+
+// notification styling
+%notification_bubble {
+       border-radius:$base_border_radius + 2px;
+       padding: 0;
+       margin: $base_margin;
+
+       @include button(normal);
+
+       &:focus,
+       &:hover {
+               // margin-top: $base_margin - 1px;
+               // margin-bottom: $base_margin + 1px;
+               @include button(hover);
+       }
+
+       &:active {
+               @include button(active);
+               // margin: $base_margin;
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/_drawing.scss b/data/theme/gnome-shell-sass/_drawing.scss
index 8f4611c34a..6dd42479e4 100644
--- a/data/theme/gnome-shell-sass/_drawing.scss
+++ b/data/theme/gnome-shell-sass/_drawing.scss
@@ -2,25 +2,25 @@
 
 // generic drawing of more complex things
 
-@function _widget_edge($c:$borders_edge) {
+@function draw_widget_edge($c:$borders_edge) {
 // outer highlight "used" on most widgets
-  @return 0 1px $c;
+       @return 0 1px $c;
 }
 
 // provide font size in rem, with px fallback
 @mixin fontsize($size: 24, $base: 16) {
-  font-size: round($size) + pt;
-  //font-size: ($size / $base) * 1rem;
+       font-size: round($size) + pt;
+       //font-size: ($size / $base) * 1rem;
 }
 
-@mixin _shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
+@mixin draw_shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
 //
 // Helper function to stack up to 4 box-shadows;
 //
-  @if $shadow4!=none { box-shadow: $shadow1, $shadow2, $shadow3, $shadow4; }
-  @else if $shadow3!=none { box-shadow: $shadow1, $shadow2, $shadow3; }
-  @else if $shadow2!=none { box-shadow: $shadow1, $shadow2; }
-  @else { box-shadow: $shadow1; }
+       @if $shadow4!=none { box-shadow: $shadow1, $shadow2, $shadow3, $shadow4; }
+       @else if $shadow3!=none { box-shadow: $shadow1, $shadow2, $shadow3; }
+       @else if $shadow2!=none { box-shadow: $shadow1, $shadow2; }
+       @else { box-shadow: $shadow1; }
 }
 
 // entries
@@ -31,63 +31,65 @@
 //
 // $t: entry type
 // $fc: focus color
-// $edge: set to none to not draw the bottom edge or specify a color to not
-//        use the default one
+// $edge: set to none to not draw the bottom edge or specify a color to not use the default one
 //
 // possible $t values:
 // normal, focus, insensitive
 //
 
-  @if $t==normal {
-    background-color: $base_color;
-    border-color: $borders_color;
-
-  }
-  @if $t==focus {
-    border-color: if($fc==$selected_bg_color,
-                     $selected_borders_color,
-                     darken($fc,35%));
-  }
-  @if $t==hover { }
-  @if $t==insensitive {
-    color: $insensitive_fg_color;
-    border-color: $insensitive_bg_color;
-    box-shadow: none;
-  }
+       @if $t==normal {
+               background-color: $base_color;
+               border-color: $borders_color;
+
+       }
+       @if $t==focus {
+               border-color: if($fc==$selected_bg_color,
+                                                       $selected_borders_color,
+                                                       darken($fc,35%));
+       }
+       @if $t==hover { }
+       @if $t==insensitive {
+               color: $insensitive_fg_color;
+               border-color: $insensitive_bg_color;
+               box-shadow: none;
+       }
 }
 
 // buttons
 
-@function _border_color ($c) { @return darken($c,25%); } // colored buttons want
-                                                         // the border form the
-                                                         // base color
+@function draw_border_color ($c) {
+       //
+       // colored buttons want the border form the base color
+       //
+       @return if($variant == 'light', darken($c, 18%), darken($c, 4%));
+}
 
-@function _text_shadow_color ($tc:$fg_color, $bg:$bg_color) {
+@function draw_text_shadow_color ($tc:$fg_color, $bg:$bg_color) {
 //
 // calculate the color of text shadows
 //
 // $tc is the text color
 // $bg is the background color
 //
-  $_lbg: lightness($bg)/100%;
-  @if lightness($tc)<50% { @return transparentize(white,1-$_lbg/($_lbg*1.3)); }
-  @else { @return transparentize(black,$_lbg*0.8); }
+       $lbg: lightness($bg)/100%;
+       @if lightness($tc)<50% { @return rgba(255,255,255,1-$lbg/($lbg*1.3)); }
+       @else { @return rgba(0,0,0,$lbg*0.8); }
 }
 
-@function _button_hilight_color($c) {
+@function draw_button_hilight_color($c) {
 //
 // calculate the right top hilight color for buttons
 //
 // $c: base color;
 //
-  @if lightness($c)>90% { @return white; }
-  @else if lightness($c)>80% { @return transparentize(white, 0.3); }
-  @else if lightness($c)>50% { @return transparentize(white, 0.5); }
-  @else if lightness($c)>40% { @return transparentize(white, 0.7); }
-  @else { @return transparentize(white, 0.9); }
+       @if lightness($c)>90% { @return white; }
+       @else if lightness($c)>80% { @return rgba(255,255,255, 0.3); }
+       @else if lightness($c)>50% { @return rgba(255,255,255, 0.5); }
+       @else if lightness($c)>40% { @return rgba(255,255,255, 0.7); }
+       @else { @return rgba(255,255,255, 0.9); }
 }
 
-@mixin _button_text_shadow ($tc:$fg_color, $bg:$bg_color) {
+@mixin draw_button_text_shadow ($tc:$fg_color, $bg:$bg_color) {
 //
 // helper function for the text emboss effect
 //
@@ -96,16 +98,16 @@
 // TODO: this functions needs a way to deal with special cases
 //
 
-  $_shadow: _text_shadow_color($tc, $bg);
+       $shadow: draw_text_shadow_color($tc, $bg);
 
-  @if lightness($tc)<50% {
-    text-shadow: 0 1px $_shadow;
-    icon-shadow: 0 1px $_shadow;
-  }
-  @else {
-    text-shadow: 0 -1px $_shadow;
-    icon-shadow: 0 -1px $_shadow;
-  }
+       @if lightness($tc)<50% {
+               text-shadow: 0 1px $shadow;
+               icon-shadow: 0 1px $shadow;
+       }
+       @else {
+               text-shadow: 0 -1px $shadow;
+               icon-shadow: 0 -1px $shadow;
+       }
 }
 
 @mixin button($t, $c:$bg_color, $tc:$fg_color, $edge: $borders_edge) {
@@ -124,79 +126,75 @@
 // osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated
 //
 
-  $_hilight_color: _button_hilight_color($c);
-  $_button_edge: if($edge == none, none, _widget_edge($edge));
-  $_blank_edge: if($edge == none, none, _widget_edge(transparentize($edge,1)));
-  $_button_shadow: 0 1px 2px transparentize($shadow_color, 0.03);
-
-  @if $t==normal {
-  //
-  // normal button
-  //
-
-    color: $tc;
-    background-color: $c;
-    border-color: $borders_color;
-    box-shadow: $_button_shadow;
-    text-shadow: 0 1px black;
-    icon-shadow: 0 1px black;
-  }
-  @if $t==focus {
-  //
-  // focused button
-  //  
-    color: $tc;
-    text-shadow: 0 1px black;
-    icon-shadow: 0 1px black;
-    box-shadow: inset 0px 0px 0px 2px $selected_bg_color;
-    //border-color: $selected_bg_color;
-  }
-
-  @else if $t==hover {
-  //
-  // active osd button
-  //
-    color: $tc;
-    border-color: $borders_color;
-    background-color: $c;
-    box-shadow: $_button_shadow;
-    text-shadow: 0 1px black;
-    icon-shadow: 0 1px black;
-
-  }
-  @else if $t==active {
-  //
-  // active osd button
-  //
-    color: $tc;
-    border-color: $borders_color;
-    background-color: $c;
-    text-shadow: none;
-    icon-shadow: none;
-    box-shadow: none;
-  }
-  @else if $t==insensitive {
-
-    color: $insensitive_fg_color;
-    border-color: $insensitive_borders_color;
-    background-color: $insensitive_bg_color;
-    box-shadow: none;
-    text-shadow: none;
-    icon-shadow: none;
-  }
-  @else if $t==undecorated {
-  //
-  // reset
-  //
-    border-color: transparent;
-    background-color: transparent;
-    background-image: none;
-
-    @include _shadows(inset 0 1px transparentize(white,1),
-                      $_blank_edge);
-
-    text-shadow: none;
-    icon-shadow: none;
-  }
-}
-
+       $hilight_color: draw_button_hilight_color($c);
+       $button_edge: if($edge == none, none, draw_widget_edge($edge));
+       $blank_edge: if($edge == none, none, draw_widget_edge(transparentize($edge,1)));
+
+       // normal button
+       @if $t==normal {
+               color: $tc;
+               background-color: lighten($c, 3%) !important;
+               border-width: 1px;
+               border-style: solid;
+               border-color: draw_border_color($c);
+               @include draw_shadows(0 1px 1px 0 $shadow_color);
+               // box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
+               text-shadow: 0 1px $text_shadow_color;
+               icon-shadow: 0 1px $text_shadow_color;
+       }
+
+       // focused button
+       @if $t==focus {
+               color: $tc;
+               text-shadow: 0 1px $text_shadow_color;
+               icon-shadow: 0 1px $text_shadow_color;
+               box-shadow: inset 0 0 0 2px transparentize($selected_bg_color, 0.7);
+               //border-color: $selected_bg_color;
+       }
+
+       // hover osd button
+       @else if $t==hover {
+               color: $tc;
+               background-color: lighten($c, if($variant == 'light', 8%, 5%)) !important;
+               border-width: 1px;
+               border-style: solid;
+               border-color: if($variant == 'light', draw_border_color(lighten($c, 7%)), 
draw_border_color($c));
+               @include draw_shadows(0 1px 1px 0 $shadow_color);
+               text-shadow: 0 1px $text_shadow_color;
+               icon-shadow: 0 1px $text_shadow_color;
+       }
+
+       // active osd button
+       @else if $t==active {
+               color: $tc;
+               background-color: darken($c,3%) !important;
+               border-width: 1px;
+               border-style: solid;
+               border-color: draw_border_color(if($variant == 'light', $c, darken($c,7%)));
+               text-shadow: none;
+               icon-shadow: none;
+               box-shadow: none;
+       }
+
+       // insensitive button
+       @else if $t==insensitive {
+               color: $insensitive_fg_color;
+               border-width: 1px;
+               border-style: solid;
+               border-color: $insensitive_borders_color;
+               background-color: $insensitive_bg_color !important;
+               box-shadow: none;
+               text-shadow: none;
+               icon-shadow: none;
+       }
+
+       // reset
+       @else if $t==undecorated {
+               border-color: transparent;
+               background-color: transparent;
+               background-image: none;
+               @include draw_shadows(inset 0 1px rgba(255,255,255,1),$blank_edge);
+               text-shadow: none;
+               icon-shadow: none;
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_app-grid.scss 
b/data/theme/gnome-shell-sass/widgets/_app-grid.scss
new file mode 100644
index 0000000000..928281eefd
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_app-grid.scss
@@ -0,0 +1,54 @@
+/* App Vault/Grid */
+
+$app_icon_size: 96px;
+$app_icon_padding: 20px;
+
+
+// app icons
+.icon-grid {
+       spacing: 30px;
+       -shell-grid-horizontal-item-size: calc($app_icon_size + ($app_icon_padding * 2));
+       -shell-grid-vertical-item-size: calc($app_icon_size + ($app_icon_padding * 2));
+
+       .overview-icon { icon-size: $app_icon_size; }
+}
+//.app-display { spacing: 20px; }
+
+.system-action-icon {
+       background-color: rgba(0,0,0,0.8);
+       color: white;
+       border-radius: 50%;
+       icon-size: calc($app_icon_size * 0.5);
+}
+
+.app-view-controls { //favorties | all toggle container
+       padding-bottom: 32px;
+}
+
+.app-view-control { //favorties | all toggle button
+       padding: 4px 32px;
+       margin: 0 4px;
+       &, &:hover, &:checked { @include button(undecorated); }
+
+       &, &:hover { color: darken($osd_fg_color, 25%); }
+
+       &:hover { box-shadow: inset 0 -2px darken($osd_fg_color, 25%); }
+
+       &:active {
+               box-shadow: inset 0 -2px $osd_fg_color;
+       }
+
+       &:checked {
+               color: $osd_fg_color;
+               box-shadow: inset 0 -2px $selected_bg_color;
+       }
+
+       &:first-child {
+               border-right-width: 0;
+               border-radius: 0;
+       }
+
+       &:last-child {
+        border-radius: 0;
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_app-icons.scss 
b/data/theme/gnome-shell-sass/widgets/_app-icons.scss
new file mode 100644
index 0000000000..072993298c
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_app-icons.scss
@@ -0,0 +1,118 @@
+
+/*************
+ * App Icons *
+ *************/
+/* Outline for low res icons */
+.lowres-icon {
+       icon-shadow: 0 1px 2px rgba(0,0,0,0.3);
+}
+
+/* Dropshadow for large icons */
+.icon-dropshadow {
+       icon-shadow: 0 1px 2px rgba(0,0,0,0.4);
+}
+
+
+
+// Icon tile
+.search-provider-icon,
+.list-search-result {
+       @extend %icon_tile;
+       &:focus, &:selected, &:hover {
+               background-color: transparentize($osd_fg_color,.9);
+               transition-duration: 200ms;
+       }
+       &:active, &:checked { background-color: transparentize(darken($osd_bg_color,10%),.1); }
+}
+.app-well-app,
+.app-well-app.app-folder,
+.show-apps,
+.grid-search-result {
+       & .overview-icon {
+               @extend %icon_tile;
+       }
+       &:hover .overview-icon,
+       &:focus .overview-icon,
+       &:selected .overview-icon {
+               background-color: transparentize($osd_fg_color,.9);
+               transition-duration: 0ms;
+               border-image: none;
+               background-image: none;
+       }
+       &:drop .overview-icon {
+               background-color: transparentize($selected_bg_color,.15);
+       }
+       &:active .overview-icon,
+       &:checked .overview-icon {
+               background-color: transparentize(darken($osd_bg_color,10%), 0.5);
+       }
+}
+
+.app-well-app-running-dot { //running apps indicator
+       width: 10px; height: 3px;
+       background-color: $selected_bg_color;
+       margin-bottom: 2px;
+}
+
+
+.app-well-app.app-folder > .overview-icon {
+       background-color: transparentize($osd_bg_color,.6);
+}
+
+.show-apps:checked .show-apps-icon,
+.show-apps:focus .show-apps-icon {
+       color: white;
+       transition-duration: 100ms;
+}
+
+
+// Collections
+.app-folder-popup { //expanded collection
+       -arrow-border-radius: 8px;
+       -arrow-background-color: transparentize(darken($osd_bg_color,10%), 0.5);
+       -arrow-base: 24px;
+       -arrow-rise: 11px;
+}
+.app-folder-popup-bin { padding: 5px; }
+.app-folder-icon {
+       padding: 5px;
+       spacing-rows: 5px;
+       spacing-columns: 5px;
+}
+
+.page-indicator {
+       padding: 15px 20px;
+
+       .page-indicator-icon {
+               width: 12px;
+               height: 12px;
+               background-color: transparent;
+               border: 2px solid rgba(255, 255, 255, 0.4);
+               border-radius: 12px;
+       }
+
+       &:hover .page-indicator-icon { border-color: white; }
+       &:active .page-indicator-icon { border: none; margin: 2px; background-color: white; }
+       &:checked .page-indicator-icon,
+       &:checked:active .page-indicator-icon { background-color: white;}
+}
+
+.no-frequent-applications-label { 
+       font-size: 2em;
+       font-weight: bold;
+       color: $osd_fg_color;
+}
+
+.app-well-app > .overview-icon.overview-icon-with-label,
+.grid-search-result .overview-icon.overview-icon-with-label {
+       padding: 10px 8px 5px 8px;
+       spacing: $base_spacing;
+}
+
+
+//Some hacks I don't even
+.all-apps,
+.frequent-apps > StBoxLayout {
+       // horizontal padding to make sure scrollbars or dash don't overlap content
+       padding: 0px 88px 10px 88px;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_app-switcher.scss 
b/data/theme/gnome-shell-sass/widgets/_app-switcher.scss
new file mode 100644
index 0000000000..4a5db140af
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_app-switcher.scss
@@ -0,0 +1,58 @@
+/* App Switcher */
+
+.switcher-popup {
+       padding: 8px;
+       spacing: $base_spacing * 4;
+}
+
+.switcher-list {
+       @extend %osd_panel;
+}
+
+.switcher-list-item-container { spacing: $base_spacing * 2;  }
+
+.switcher-list .item-box {
+       padding: 8px;
+       border-radius: 4px;
+}
+
+.switcher-list .item-box:outlined {
+       padding: 6px;
+       border: 2px solid darken($borders_color,10%);
+}
+
+.switcher-list .item-box:selected {
+       background-color: transparentize($osd_fg_color, 0.7);
+       color: $selected_fg_color;
+}
+
+.switcher-list .thumbnail-box {
+       padding: 2px;
+       spacing: $base_spacing;
+}
+
+.switcher-list .thumbnail {
+       width:  256px;
+}
+
+.switcher-list .separator {
+       width: 1px;
+       background: $borders_color;
+}
+
+.switcher-arrow {
+       border-color: rgba(0,0,0,0);
+       color: transparentize($fg_color,0.2);
+       &:highlighted {
+               color: $fg_color;
+       }
+}
+
+.input-source-switcher-symbol {
+       font-size: 34pt;
+       width: 96px;
+       height: 96px;
+}
+
+/* Window Cycler */
+.cycler-highlight { border: 5px solid $selected_bg_color; }
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_buttons.scss 
b/data/theme/gnome-shell-sass/widgets/_buttons.scss
new file mode 100644
index 0000000000..6bbfd2474b
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_buttons.scss
@@ -0,0 +1,5 @@
+/* Buttons */
+
+.button {
+       @extend %button;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_calendar.scss 
b/data/theme/gnome-shell-sass/widgets/_calendar.scss
new file mode 100644
index 0000000000..8f07a21b37
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_calendar.scss
@@ -0,0 +1,184 @@
+/* Calendar */
+
+// calendar popover
+#calendarArea {
+       padding: 0.75em 1.0em;
+}
+
+.calendar {
+       margin-bottom: 1em;
+}
+
+.calendar,
+.datemenu-today-button,
+.datemenu-displays-box,
+.message-list-sections {
+       margin: 0 1.5em;
+}
+
+.datemenu-calendar-column { spacing: 0.5em; }
+.datemenu-displays-section { padding-bottom: 3em; }
+.datemenu-displays-box { spacing: 1em; }
+
+.datemenu-calendar-column {
+       border: 0 solid $_bubble_borders_color;
+       &:ltr { border-left-width: 1px; }
+       &:rtl { border-right-width: 1px; }
+}
+
+.datemenu-today-button,
+.world-clocks-button,
+.weather-button,
+.events-section-title {
+       border-radius: 4px;
+       padding: .4em;
+}
+
+.message-list-section-list:ltr {
+       padding-left: .4em;
+}
+
+.message-list-section-list:rtl {
+       padding-right: .4em;
+}
+
+.datemenu-today-button,
+.world-clocks-button,
+.weather-button,
+.events-section-title {
+       &:hover, &:focus { background-color: $_hover_bg_color }
+       &:active { background-color: $_active_bg_color }
+}
+
+.datemenu-today-button .day-label {
+}
+
+.datemenu-today-button .date-label {
+       font-size: 1.5em;
+       font-weight: 300;
+}
+
+// world clocks
+.world-clocks-header,
+.weather-header,
+.events-section-title {
+       color: darken($fg_color,40%);
+       font-weight: bold;
+}
+
+.weather-header.location {
+       font-weight: normal;
+       font-size: 0.9em;
+}
+
+.world-clocks-grid,
+.weather-grid {
+       spacing-rows: 0.4em;
+       spacing-columns: 0.8em;
+}
+
+.weather-box {
+       spacing: 0.4em;
+}
+
+.world-clocks-city {
+       font-weight: bold;
+       font-size: 0.9em;
+}
+
+.world-clocks-time {
+       color: darken($fg_color,20%);
+       font-feature-settings: "tnum";
+       font-size: 1.2em;
+}
+
+.world-clocks-timezone {
+       color: $fg_color;
+       font-feature-settings: "tnum";
+       font-size: 0.9em;
+}
+
+.weather-forecast-icon {
+       icon-size: 2.18em;
+}
+
+.weather-forecast-time {
+       color: darken($fg_color,40%);
+       font-size: 0.8em;
+}
+
+.calendar-month-label {
+       color: lighten($fg_color,5%);
+       font-weight: bold;
+       padding: 8px 0;
+       &:focus {}
+}
+
+.pager-button {
+       background-color: transparent;
+       width: 32px;
+       border-radius: 4px;
+       &:hover, &:focus { background-color: $_hover_bg_color; }
+       &:active { background-color: transparentize($fg_color, 0.84); }
+}
+
+.calendar-change-month-back StIcon, .calendar-change-month-forward StIcon { // arrows
+       icon-size: $base_icon_size;
+}
+
+.calendar-day-base {
+       font-size: 80%;
+       text-align: center;
+       width: 2.4em; height: 2.4em;
+       padding: 0.1em;
+       margin: 2px;
+       border-radius: 1.4em;
+       font-feature-settings: "tnum";
+       &:hover, &:focus { background-color: $_hover_bg_color; }
+       &:active,&:selected {
+               color: lighten($selected_fg_color,5%);
+               background-color: $selected_bg_color;
+               border-color: transparent; //avoid jumparound due to today
+       }
+       &.calendar-day-heading {  //day of week heading
+               color: lighten($fg_color,5%);
+               margin-top: 1em;
+               font-size: 70%;
+       }
+}
+.calendar-day { //border collapse hack - see calendar.js
+       border-width: 0;
+}
+.calendar-day-top { border-top-width: 1px; }
+.calendar-day-left { border-left-width: 1px; }
+.calendar-work-day {
+
+}
+.calendar-nonwork-day {
+       color: $insensitive_fg_color;
+}
+.calendar-today {
+       font-weight: bold;
+       //color: lighten($fg_color,10%);
+       //background-color: darken($bg_color,5%);
+       border: 1px solid $_bubble_borders_color;
+}
+.calendar-day-with-events {
+       color: lighten($fg_color,10%);
+       font-weight: bold;
+       background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg");
+}
+.calendar-other-month-day {
+       color: transparentize($fg_color ,0.5);
+       opacity: 0.5;
+}
+.calendar-week-number {
+       font-size: 70%;
+       font-weight: bold;
+       width: 2.3em; height: 1.8em;
+       border-radius: 2px;
+       padding: 0.5em 0 0;
+       margin: 6px;
+       background-color: $_bubble_borders_color;
+       color: $fg_color;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_check-box.scss 
b/data/theme/gnome-shell-sass/widgets/_check-box.scss
new file mode 100644
index 0000000000..118ed72f3c
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_check-box.scss
@@ -0,0 +1,14 @@
+
+/* Check Boxes */
+
+.check-box {
+       StBoxLayout { spacing: .8em; }
+       StBin {
+               width: 24px;
+               height: 22px;
+               background-image: url("resource:///org/gnome/shell/theme/checkbox-off.svg");
+       }
+       &:focus StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-off-focused.svg"); }
+       &:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox.svg"); }
+       &:focus:checked StBin { background-image: 
url("resource:///org/gnome/shell/theme/checkbox-focused.svg"); }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_corner-ripple.scss 
b/data/theme/gnome-shell-sass/widgets/_corner-ripple.scss
new file mode 100644
index 0000000000..5a28db3028
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_corner-ripple.scss
@@ -0,0 +1,20 @@
+
+// Activities Ripples
+.ripple-box {
+       width: 52px;
+       height: 52px;
+       border-radius: 0 0 52px 0; // radius the size of the box give us the curve
+       background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
+       box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
+}
+
+.ripple-box:rtl { border-radius: 0 0 0 52px; } // just a simple change to the border radius position
+
+// Pointer location
+.ripple-pointer-location {
+       width: 50px;
+       height: 50px;
+       border-radius: 25px 25px 25px 25px; // radius the size of the box give us the curve
+       background-color: lighten(transparentize($selected_bg_color, 0.7), 30%);
+       box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_dash.scss b/data/theme/gnome-shell-sass/widgets/_dash.scss
new file mode 100644
index 0000000000..12914a5d8d
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_dash.scss
@@ -0,0 +1,44 @@
+
+
+
+/* DASHBOARD */
+
+#dash {
+
+       color: $osd_fg_color;
+       background-color: transparentize($osd_bg_color, 0.1);
+       border: none;
+       font-size: 9pt;
+       padding: 4px 0;
+       border-radius: 0px 9px 9px 0px;
+
+       &:rtl {
+               border-radius: 9px 0 0 9px;
+       }
+
+       .placeholder {
+               background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
+               background-size: contain;
+               height: 24px;
+       }
+
+       .empty-dash-drop-target {
+               width: 24px;
+               height: 24px;
+       }
+
+}
+
+.dash-item-container > StWidget {
+       padding: 4px 8px;
+}
+
+.dash-label { //osd tooltip
+       border-radius: 7px;
+       padding: 4px 12px;
+       color: $osd_fg_color;
+       background-color: transparentize($osd_bg_color,0.05);
+       border: 1px solid $osd_outer_borders_color;
+       text-align: center;
+       -x-offset: 8px;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_dialogs.scss 
b/data/theme/gnome-shell-sass/widgets/_dialogs.scss
new file mode 100644
index 0000000000..74e1116372
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_dialogs.scss
@@ -0,0 +1,398 @@
+/* Modal Dialogs */
+
+
+.headline { font-size: 110%; }
+.lightbox { background-color: black; }
+.flashspot { background-color: white; }
+
+.modal-dialog {
+       border-radius: $base_radius + 4px;;
+       @extend %bubble_panel;
+
+       .modal-dialog-content-box {
+               padding: 24px;
+       }
+
+       .run-dialog-entry { width: 20em; margin-bottom: 6px; }
+       .run-dialog-error-box {
+               padding-top: 16px;
+               spacing: 6px;
+       }
+
+       .run-dialog-button-box { padding-top: 1em; }
+       .run-dialog-label {
+               @include fontsize($font_size + 1.1);
+               font-weight: normal;
+               color: $fg_color;
+               padding-bottom: .4em;
+       }
+}
+
+.mount-dialog-subject,
+.end-session-dialog-subject { //this should be a generic header class
+       @include fontsize($font_size * 1.3);
+}
+
+.modal-dialog-linked-button {
+       @extend %bubble_button;
+}
+
+/* Message Dialog */
+.message-dialog-main-layout {
+       padding: 12px 20px 0;
+       spacing: 12px;
+}
+
+.message-dialog-content {
+       max-width: 28em;
+       spacing: 20px;
+}
+
+.message-dialog-icon {
+       min-width: 48px;
+       icon-size: 48px;
+}
+
+.message-dialog-title {
+       font-weight: bold;
+}
+
+.message-dialog-subtitle {
+       color: $fg_color;
+       font-weight: bold;
+}
+
+/* End Session Dialog */
+.end-session-dialog {
+       spacing: 42px;
+       border: 1px solid $_bubble_borders_color;
+}
+
+.end-session-dialog-list {
+               padding-top: 20px;
+}
+
+.end-session-dialog-layout {
+       padding-left: 17px;
+       &:rtl { padding-right: 17px; }
+}
+
+.end-session-dialog-description {
+       width: 28em;
+       padding-bottom: 10px;
+       &:rtl {
+               text-align: right;
+       }
+}
+
+.end-session-dialog-warning {
+       width: 28em;
+       color: $warning_color;
+       padding-top: 6px;
+       &:rtl {
+               text-align: right;
+       }
+}
+
+.end-session-dialog-logout-icon {
+       border-radius: 99px;
+       width: 48px;
+       height: 48px;
+       background-size: contain;
+}
+
+.end-session-dialog-shutdown-icon {
+       color: $fg_color;
+       width: 48px;
+       height: 48px;
+}
+
+.end-session-dialog-inhibitor-layout {
+       spacing: $base_spacing * 4;
+       max-height: 200px;
+       padding-right: 65px;
+       padding-left: 65px;
+}
+
+.end-session-dialog-session-list,
+.end-session-dialog-app-list {
+       spacing: 1em;
+}
+
+.end-session-dialog-list-header {
+       font-weight: bold;
+       &:rtl { text-align: right; }
+}
+
+.end-session-dialog-app-list-item,
+.end-session-dialog-session-list-item {
+       spacing: 1em;
+}
+
+.end-session-dialog-app-list-item-name,
+.end-session-dialog-session-list-item-name {
+       font-weight: bold;
+}
+
+.end-session-dialog-app-list-item-description {
+       color: darken($fg_color,5%);
+       font-size: 10pt;
+}
+
+/* ShellMountOperation Dialogs */
+.shell-mount-operation-icon { icon-size: 48px; }
+
+.mount-dialog {
+       spacing: 24px;
+
+       .message-dialog-title {
+               padding-top: 10px;
+               padding-left: 17px;
+               padding-bottom: 6px;
+               max-width: 34em;
+       }
+
+       .message-dialog-title:rtl {
+               padding-left: 0px;
+               padding-right: 17px;
+       }
+
+       .message-dialog-body {
+               padding-left: 17px;
+               width: 28em;
+       }
+
+       .message-dialog-body:rtl {
+               padding-left: 0px;
+               padding-right: 17px;
+       }
+}
+
+.mount-dialog-app-list {
+       max-height: 200px;
+       padding-top: 24px;
+       padding-left: 49px;
+       padding-right: 32px;
+}
+
+.mount-dialog-app-list:rtl {
+       padding-right: 49px;
+       padding-left: 32px;
+}
+
+.mount-dialog-app-list-item {
+       color: lighten($fg_color,10%);
+       &:hover { color: $fg_color; }
+       &:ltr { padding-right: 1em; }
+       &:rtl { padding-left: 1em; }
+}
+
+.mount-dialog-app-list-item-icon {
+       &:ltr { padding-right: 17px; }
+       &:rtl { padding-left: 17px; }
+}
+
+.mount-dialog-app-list-item-name {
+       font-size: 10pt;
+}
+
+
+/* Password or Authentication Dialog */
+
+.prompt-dialog {
+       @extend %bubble_panel;
+       //this is the width of the entire modal popup
+       width: 34em;
+
+       .message-dialog-main-layout { spacing: 24px; padding: 10px; }
+       .message-dialog-content { spacing: $base_spacing * 4; }
+       .message-dialog-title { color: lighten($fg_color,15%); }
+}
+
+.prompt-dialog-description:rtl {
+       text-align: right;
+}
+
+.prompt-dialog-password-box {
+       spacing: 1em;
+       padding-bottom: 1em;
+}
+
+.prompt-dialog-error-label {
+       font-size: 10pt;
+       color: $warning_color;
+       padding-bottom: 8px;
+}
+
+.prompt-dialog-info-label {
+       font-size: 10pt;
+       padding-bottom: 8px;
+}
+
+.hidden {
+       color: rgba(0,0,0,0);
+}
+
+.prompt-dialog-null-label {
+       font-size: 10pt;
+       padding-bottom: 8px;
+}
+
+.prompt-dialog-pim-box {
+       spacing: 1em;
+}
+
+.prompt-dialog-grid {
+       spacing-rows: 15px;
+       spacing-columns: 1em;
+}
+
+.prompt-dialog-keyfiles-box {
+       spacing: 1em;
+}
+
+.prompt-dialog-button.button {
+       padding: 8px;
+}
+
+
+/* Polkit Dialog */
+
+.polkit-dialog-user-layout {
+       padding-left: 10px;
+       spacing: 10px;
+       &:rtl {
+               padding-left: 0px;
+               padding-right: 10px;
+       }
+}
+
+.polkit-dialog-user-root-label {
+       color: $warning_color;
+}
+
+.polkit-dialog-user-icon {
+       border-radius: 99px;
+       background-size: contain;
+       width: 48px;
+       height: 48px;
+}
+
+/* Audio selection dialog */
+.audio-device-selection-dialog {
+       @extend %bubble_panel;
+       spacing: 30px;
+}
+
+.audio-selection-content {
+       spacing: 20px;
+       padding: 24px;
+}
+
+.audio-selection-title {
+       font-weight: bold;
+       text-align: center;
+}
+
+.audio-selection-box {
+       spacing: 20px;
+}
+
+.audio-selection-device {
+       border: 1px solid $_bubble_borders_color;
+       border-radius: 12px;
+       &:hover,&:focus { background-color: $_hover_bg_color; }
+       &:active { 
+               background-color: $selected_bg_color;
+               color: $selected_fg_color;
+       }
+}
+
+.audio-selection-device-box {
+       padding: 20px;
+       spacing: 20px;
+}
+
+.audio-selection-device-icon {
+       icon-size: 64px;
+}
+
+/* Access Dialog */
+.access-dialog {
+       @extend %bubble_panel;
+       spacing: 30px;
+}
+
+/* Geolocation Dialog */
+.geolocation-dialog {
+       @extend %bubble_panel;
+       spacing: 30px;
+}
+
+/* Extension Dialog */
+.extension-dialog {
+       @extend %bubble_panel;
+       .message-dialog-main-layout { spacing: 24px; padding: 10px; }
+       .message-dialog-title { font-weight: normal; color: $fg_color; }
+}
+
+/* Inhibit-Shortcuts Dialog */
+.inhibit-shortcuts-dialog {
+       @extend %bubble_panel;
+       spacing: 30px;
+}
+
+/* Network Agent Dialog */
+
+.network-dialog-secret-table {
+       spacing-rows: 15px;
+       spacing-columns: 1em;
+}
+
+.keyring-dialog-control-table {
+       spacing-rows: 15px;
+       spacing-columns: 1em;
+}
+
+/* Network Dialogs */
+
+.nm-dialog {
+       @extend %bubble_panel;
+       max-height: 34em;
+       min-height: 31em;
+       min-width: 32em;
+}
+
+.nm-dialog-content {
+       spacing: 20px;
+       padding: 24px;
+}
+.nm-dialog-header-hbox { spacing: 10px; }
+.nm-dialog-airplane-box { spacing: 12px; }
+
+.nm-dialog-airplane-headline {
+       font-weight: bold;
+       text-align: center;
+}
+
+.nm-dialog-airplane-text { color: $fg_color; }
+.nm-dialog-header-icon { icon-size: 32px; }
+.nm-dialog-scroll-view { border: 2px solid $borders_color; }
+.nm-dialog-header { font-weight: bold; }
+
+.nm-dialog-item {
+       font-size: 110%;
+       border-bottom: 1px solid $borders_color;
+       padding: $base_padding;
+       spacing: 20px;
+}
+
+.nm-dialog-item:selected {
+       background-color: $selected_bg_color;
+       color: $selected_fg_color;
+}
+
+.nm-dialog-icons { spacing: .5em; }
+.nm-dialog-icon { icon-size: 16px; }
+.no-networks-label { color: #999999; }
+.no-networks-box { spacing: 12px; }
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_entries.scss 
b/data/theme/gnome-shell-sass/widgets/_entries.scss
new file mode 100644
index 0000000000..5240ddef0a
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_entries.scss
@@ -0,0 +1,20 @@
+/* Entries */
+$entry_radius: $base_radius;
+
+StEntry {
+       border-radius: $entry_radius;
+       padding: 4px;
+       border-width: 1px;
+       color: $fg_color;
+       @include entry(normal);
+       //&:hover { @include entry(hover);}
+       &:focus { @include entry(focus,$fc:transparentize($fg_color,0.5));}
+       &:insensitive { @include entry(insensitive);}
+       selection-background-color: $selected_bg_color;
+       selected-color: $selected_fg_color;
+       StIcon.capslock-warning {
+               icon-size: 16px;
+               warning-color: $warning_color;
+               padding: 0 4px;
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_hotplug.scss 
b/data/theme/gnome-shell-sass/widgets/_hotplug.scss
new file mode 100644
index 0000000000..4db1bf1b4f
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_hotplug.scss
@@ -0,0 +1,46 @@
+// hotplug
+
+.hotplug-transient-box {
+       spacing: 6px;
+       padding: 2px 72px 2px 12px;
+}
+
+.hotplug-notification-item {
+       @extend %bubble_button;
+       border: none; box-shadow: none;
+       padding: 2px 10px;
+       &:focus { padding: 1px 71px 1px 11px; }
+}
+
+.hotplug-notification-item-icon {
+       icon-size: 24px;
+       padding: 2px 5px;
+}
+
+.hotplug-resident-box { spacing: $base_spacing * 2; }
+
+.hotplug-resident-mount {
+       spacing: $base_spacing * 2;
+       border-radius: 4px;
+       &:hover { background-color: $_hover_bg_color; }
+}
+
+.hotplug-resident-mount-label {
+       color: inherit;
+       padding-left: 6px;
+}
+
+.hotplug-resident-mount-icon {
+       icon-size: 24px;
+       padding-left: 6px;
+}
+
+.hotplug-resident-eject-icon {
+       icon-size: 16px;
+}
+
+.hotplug-resident-eject-button {
+       padding: 7px;
+       border-radius: 5px;
+       color: pink;
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_ibus-popup.scss 
b/data/theme/gnome-shell-sass/widgets/_ibus-popup.scss
new file mode 100644
index 0000000000..a84e261029
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_ibus-popup.scss
@@ -0,0 +1,32 @@
+
+// IBus Candidate Popup
+
+.candidate-popup-content {
+       padding: 0.5em;
+       spacing: 0.3em;
+}
+
+.candidate-index {
+       padding: 0 0.5em 0 0;
+       color: darken($fg_color,10%);
+}
+
+.candidate-box {
+       padding: 0.3em 0.5em 0.3em 0.5em;
+       border-radius: $base_radius;
+       &:selected,&:hover { background-color: $selected_bg_color; color: $selected_fg_color; }
+}
+
+.candidate-page-button-box {
+       height: 2em;
+       .vertical & { padding-top: 0.5em; }
+       .horizontal & { padding-left: 0.5em; }
+}
+
+.candidate-page-button {
+       padding: 4px;
+}
+
+.candidate-page-button-previous { border-radius: $base_radius 0px 0px $base_radius; border-right-width: 0; }
+.candidate-page-button-next { border-radius: 0px $base_radius $base_radius 0px;  }
+.candidate-page-button-icon { icon-size: 1em; }
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_keyboard.scss 
b/data/theme/gnome-shell-sass/widgets/_keyboard.scss
new file mode 100644
index 0000000000..517b3e4c8a
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_keyboard.scss
@@ -0,0 +1,100 @@
+/* On-screen Keyboard */
+
+$_key_bg: opacify(lighten($osd_bg_color, 9%), 1);
+$_default_key_bg: opacify($osd_bg_color, 1);
+
+#keyboard {
+       background-color: transparentize($osd_bg_color, 0.3);
+
+       .page-indicator {
+                       padding: 4px;
+
+                       .page-indicator-icon {
+                                       width: 6px;
+                                       height: 6px
+                       }
+       }
+}
+
+.key-container {
+       padding: 4px;
+       spacing: 4px;
+}
+
+.keyboard-key {
+       background-color: $_key_bg;
+       border-radius: $base_radius;
+       border: 1px solid $osd_outer_borders_color;
+       color: $osd_fg_color;
+       font-size: $font_size + 5pt;
+       min-height: 1.2em;
+       min-width: 1.2em;
+
+       &:focus { @include button(focus); }
+       &:hover, &:checked { background-color: lighten($_key_bg, 3%); }
+       &:active { background-color: darken($_key_bg, 2%); }
+       &:grayed { //FIXME
+               background-color: $osd_bg_color;
+               color: $osd_fg_color;
+               border-color: $osd_borders_color;
+       }
+
+       &.default-key {
+               border-color: $osd_outer_borders_color;
+               background-color: $_default_key_bg;
+               background-size: 20px;
+               &:hover, &:checked { background-color: lighten($_default_key_bg, 3%); }
+               &:active { background-color: darken($_default_key_bg, 2%); }
+       }
+
+       // enter key is suggested-action
+       &.enter-key {
+               border-color: lighten($selected_bg_color, 5%);
+               background-color: $selected_bg_color;
+               color: $selected_fg_color;
+               background-image: url("resource:///org/gnome/shell/theme/key-enter.svg");
+               &:hover, &:checked { background-color: lighten($selected_bg_color, 3%); }
+               &:active { background-color: darken($selected_bg_color, 2%); }
+       }
+
+       // key assets
+       &.shift-key-lowercase {background-image: url("resource:///org/gnome/shell/theme/key-shift.svg");}
+       &.shift-key-uppercase {background-image: 
url("resource:///org/gnome/shell/theme/key-shift-uppercase.svg");}
+       &.shift-key-uppercase:latched {background-image: 
url("resource:///org/gnome/shell/theme/key-shift-latched-uppercase.svg");}
+       &.hide-key {background-image: url("resource:///org/gnome/shell/theme/key-hide.svg");}
+       &.layout-key {background-image: url("resource:///org/gnome/shell/theme/key-layout.svg");}
+}
+
+//long press on a key popup
+.keyboard-subkeys {
+       color: white;
+       -arrow-border-radius: 10px;
+       -arrow-background-color: transparentize($osd_bg_color, 0.3);
+       -arrow-border-width: 2px;
+       -arrow-border-color: $osd_outer_borders_color;
+       -arrow-base: 20px;
+       -arrow-rise: 10px;
+       -boxpointer-gap: 5px;
+}
+
+// emoji
+.emoji-page {
+       .keyboard-key {
+               background-color: transparent;
+               border: none;
+       }
+}
+
+.emoji-panel {
+       .keyboard-key:latched {
+               border-color: lighten($selected_bg_color, 5%);
+               background-color: $selected_bg_color;
+       }
+}
+
+// suggestions
+.word-suggestions {
+       font-size: $font_size + 3pt;
+       spacing: 12px;
+       min-height: 20pt;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_login-dialog.scss 
b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss
new file mode 100644
index 0000000000..54a4a7d3d1
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss
@@ -0,0 +1,153 @@
+Z
+// LOGIN DIALOG
+
+.login-dialog-banner-view {
+       padding-top: 24px;
+       max-width: 23em;
+}
+
+.login-dialog {
+       //reset
+       border: none;
+       background-color: transparent;
+
+       $_gdm_fg: #f6f5f4;
+       $_gdm_bg: lighten(#2e3436, 19%);
+
+       StEntry {
+               @extend %search_entry;
+               border-radius: $base_radius;
+               @if $variant=='dark' {
+                       $_gdm_entry_bg: transparentize(lighten(desaturate(#241f31, 20%), 2%), 0.5);
+                       background-color: $_gdm_entry_bg;
+                       border-color: $_gdm_entry_bg;    
+                       color: $osd_fg_color;
+               }
+       }
+
+       .modal-dialog-button-box { spacing: 3px; }
+       .modal-dialog-button {
+               padding: 4px 18px;
+               box-shadow: 0 1px 3px transparentize($shadow_color, 0.02);
+               background-color: $_gdm_bg;
+               border-color: $_gdm_bg;
+               color: $_gdm_fg;
+
+               $_hover_c: lighten($_gdm_bg, 5%);
+               &:hover, &:focus {
+                       background-color: $_hover_c;
+                       border-color: $_hover_c;
+               }
+               &:active {
+                       $_active_c: darken($_gdm_bg, 5%);
+                       box-shadow: none;
+                       background-color: $_active_c;
+                       border-color: $_active_c;
+               }
+               &:insensitive {
+                       @include button(insensitive);
+                       border-color: darken($_gdm_bg, 5%);
+                       background-color: darken($_gdm_bg, 5%);
+                       color: transparentize($_gdm_fg, 0.3);
+               }
+               &:default {
+                       @include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
+                       border-color: $selected_bg_color;
+                       &:hover, &:focus { 
+                               @include button(hover,$c:$selected_bg_color, $tc:$selected_fg_color);
+                               $_def_hover_c: lighten($selected_bg_color, 5%);
+                               background-color: $_def_hover_c;
+                               border-color: $_def_hover_c;
+                       }
+                       &:active {
+                               @include button(active,$c:$selected_bg_color, $tc:$selected_fg_color);
+                               $_def_active_c: darken($selected_bg_color, 5%);
+                               background-color: $_def_active_c;
+                               border-color: $_def_active_c;
+                       }
+                       &:insensitive {
+                               @include button(insensitive);
+                               border-color: darken($selected_bg_color, 10%);
+                               background-color: darken($selected_bg_color, 10%);
+                               color: transparentize($selected_fg_color, 0.3);
+                       }
+               }
+       }
+}
+
+       .login-dialog-logo-bin { padding: 24px 0px; }
+       .login-dialog-banner { color: darken($osd_fg_color,10%); }
+       .login-dialog-button-box { spacing: 5px; }
+       .login-dialog-message-warning { color: $warning_color; }
+       .login-dialog-message-hint { padding-top: 0; padding-bottom: 20px; }
+       .login-dialog-user-selection-box { padding: 100px 0px; }
+       .login-dialog-not-listed-label {
+               padding-left: 2px;
+               .login-dialog-not-listed-button:focus &,
+               .login-dialog-not-listed-button:hover & {
+                       color: $osd_fg_color;
+               }
+       }
+       .login-dialog-not-listed-label {
+               font-size: 90%;
+               font-weight: bold;
+               color: darken($osd_fg_color,30%);
+               padding-top: 1em;
+       }
+
+       .login-dialog-user-list-view { -st-vfade-offset: 1em; }
+       .login-dialog-user-list {
+               spacing: 12px;
+               width: 23em;
+               &:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; 
color: $selected_fg_color; }
+               &:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid 
$selected_bg_color; }
+       }
+       .login-dialog-user-list-item {
+               border-radius: 5px;
+               padding: 6px;
+               color: darken($osd_fg_color,30%);
+               &:ltr .user-widget { padding-right: 1em; }
+               &:rtl .user-widget { padding-left: 1em; }
+               .login-dialog-timed-login-indicator {
+                       height: 2px;
+                       margin-top: 6px;
+                       background-color: $osd_fg_color;
+               }
+               &:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; }
+       }
+
+       .login-dialog-username,
+       .user-widget-label {
+               color: $osd_fg_color;
+               font-size: 120%;
+               font-weight: bold;
+               text-align: left;
+               padding-left: 15px;
+       }
+               .user-widget-label {
+                       &:ltr { padding-left: 14px; }
+                       &:rtl { padding-right: 14px; }
+               }
+
+       .login-dialog-prompt-layout {
+                       padding-top: 24px;
+                       padding-bottom: 12px;
+                       spacing: $base_spacing * 2;
+                       width: 23em;
+       }
+
+       .login-dialog-prompt-label {
+                       color: darken($osd_fg_color, 20%);
+                       font-size: 110%;
+                       padding-top: 1em;
+       }
+
+       .login-dialog-session-list-button StIcon {
+                       icon-size: 1.25em;
+       }
+
+       .login-dialog-session-list-button {
+                       color: darken($osd_fg_color,30%);
+                       &:hover,&:focus { color: $osd_fg_color; }
+                       &:active { color: darken($osd_fg_color, 50%); }
+       }
diff --git a/data/theme/gnome-shell-sass/widgets/_looking-glass.scss 
b/data/theme/gnome-shell-sass/widgets/_looking-glass.scss
new file mode 100644
index 0000000000..6bdb46d68f
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_looking-glass.scss
@@ -0,0 +1,97 @@
+/* Looking Glass */
+
+// Dialog
+#LookingGlassDialog {
+       background-color: $osd_bg_color;
+       spacing: $base_spacing;
+       padding: 4px;
+       border: 2px solid transparentize($osd_fg_color, 0.8);
+       border-top-width:0;
+       border-radius: 0 0 $base_radius $base_radius;
+
+       & > #Toolbar {
+               border: none;
+               border-radius: $base_radius;
+               background-color: darken($osd_bg_color, 10%);
+       }
+
+       .labels { spacing: $base_spacing; }
+       .notebook-tab {
+               -natural-hpadding: $base_padding;
+               -minimum-hpadding: 6px;
+               font-weight: bold;
+               color: $fg_color;
+               transition-duration: 100ms;
+               padding-left: .3em;
+               padding-right: .3em;
+               &:hover {
+                       color: white;
+                       text-shadow: black 0px 2px 2px;
+               }
+               &:selected {
+                       border-bottom-width: 2px;
+                       border-color: lighten($selected_bg_color,5%);
+                       color: white;
+                       text-shadow: black 0px 2px 2px;
+               }
+       }
+       StBoxLayout#EvalBox { padding: 4px; spacing: $base_spacing; }
+       StBoxLayout#ResultsArea { spacing: $base_spacing; }
+}
+
+.lg-dialog {
+       StEntry {
+               selection-background-color: #bbbbbb;
+               selected-color: $osd_bg_color;
+       }
+       .shell-link {
+               color: #999999;
+               &:hover { color: #dddddd; }
+        }
+}
+
+.lg-completions-text {
+               font-size: .9em;
+               font-style: italic;
+}
+
+.lg-obj-inspector-title {
+               spacing: $base_spacing;
+}
+
+.lg-obj-inspector-button {
+               border: 1px solid gray;
+               padding: 4px;
+               border-radius: $base_radius;
+               &:hover { border: 1px solid #ffffff; }
+}
+
+// Extensions
+#lookingGlassExtensions { padding: 4px; }
+
+.lg-extensions-list {
+               padding: 4px;
+               spacing: 6px;
+}
+
+.lg-extension {
+               border: 1px solid $osd_borders_color;
+               border-radius: $base_radius;
+               padding: 4px;
+}
+
+.lg-extension-name {
+               font-weight: bold;
+}
+
+.lg-extension-meta {
+               spacing: 6px;
+}
+
+// Inspector
+#LookingGlassPropertyInspector {
+       background: $osd_bg_color;
+       border: 1px solid $osd_borders_color;
+       border-radius: $base_radius;
+       padding: 6px;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_message-list.scss 
b/data/theme/gnome-shell-sass/widgets/_message-list.scss
new file mode 100644
index 0000000000..0ad7ee9a9c
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_message-list.scss
@@ -0,0 +1,89 @@
+/* Message List */
+
+.message-list {
+       width: 31.5em;
+}
+
+.message-list-clear-button.button {
+       @extend %button;
+       margin: 1.5em 1.5em 0;
+}
+
+.message-list-sections {
+       spacing: 1em;
+}
+
+.message-list-section,
+.message-list-section-list {
+       spacing: 0.4em;
+}
+
+.message {
+       border: 1px solid $_bubble_borders_color;
+       background-color: lighten($bg_color, 2%);
+       &:hover,&:focus { background-color: $_hover_bg_color; }
+       &:active { background-color: transparentize($fg_color, 0.84) }
+       border-radius: 5px;
+}
+
+.message-icon-bin {
+       padding: 0.68em 0.2em 0.68em 0.68em;
+       &:rtl { padding: 0.68em 0.68em 0.68em 0.2em; }
+}
+
+.message-icon-bin > StIcon {
+       color: $fg_color;
+       icon-size: $base_icon_size;
+       -st-icon-style: symbolic;
+}
+
+.message-icon-bin > .fallback-window-icon {
+       width: $base_icon_size;
+       height: $base_icon_size;
+}
+
+.message-secondary-bin {
+       padding: 0 0.82em;;
+}
+
+.message-secondary-bin > .event-time {
+       color: $fg_color;
+       font-size: 0.7em;
+       /* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
+       padding-bottom: 0.13em;
+}
+
+.message-secondary-bin > StIcon {
+       icon-size: $base_icon_size;
+}
+
+.message-title {
+       color: $fg_color;
+}
+
+.message-content {
+       color: darken($fg_color, 10%);
+       padding: 10px;
+}
+
+.message-media-control {
+       padding: $base_padding;
+       color: lighten($fg_color, 15%);
+
+       &:last-child:ltr { padding-right: 18px; }
+       &:last-child:rtl { padding-left: 18px; }
+       &:hover { color: $fg_color; }
+       &:insensitive { color: darken($fg_color,40%); }
+}
+
+.media-message-cover-icon {
+       icon-size: 48px !important;
+       &.fallback {
+               color: lighten($fg_color,10%);
+               background-color: $bg_color;
+               border: 1px solid $bg_color;
+               border-radius: 2px;
+               icon-size: 32px !important;
+               padding: 6px;
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_message-tray.scss 
b/data/theme/gnome-shell-sass/widgets/_message-tray.scss
new file mode 100644
index 0000000000..3b854b1f56
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_message-tray.scss
@@ -0,0 +1,89 @@
+/* NOTIFICATIONS & MESSAGE TRAY */
+
+$notification_banner_height: 64px;
+$notification_banner_width: 34em;
+
+// Banner notifications
+.notification-banner {
+       font-size: $font_size;
+       width: $notification_banner_width;
+       margin: 5px;
+       border-radius: $modal_radius;
+       border: if($variant == 'light', none, $_bubble_borders_color);
+       min-height: $notification_banner_height;
+       box-shadow: 0 1px 2px transparentize(black, 0.7);
+
+       &:hover { background: $bg_color; }
+       &, &:focus, &:active {
+               background-color: $bg_color;
+               .message-title { color: $fg_color }
+               .message-content { color: $fg_color; }
+       }
+
+       // icon color
+       .message-icon-bin > StIcon {
+               color: $fg_color;
+       }
+
+       // entries
+       StEntry { @extend %bubble_entry; }
+
+       .notification-icon { padding: 5px; }
+       .notification-content { padding: 5px; spacing: 5px; }
+       .secondary-icon { icon-size: $base_icon_size; }
+       .notification-actions {
+               padding-top: 0;
+               color: $fg_color;
+               border-top: 1px solid $_bubble_borders_color;
+               spacing: 0px;
+       }
+
+       .notification-button {
+               @extend %bubble_button;
+               &:focus { box-shadow: none; }
+               padding: 0 16px;
+               min-height: 35px;
+               border: none;
+       }
+}
+
+// counter
+.summary-source-counter {
+       font-size: $font_size - 1pt;
+       font-weight: bold;
+       height: 1.6em;
+       width: 1.6em;
+       -shell-counter-overlap-x: 3px;
+       -shell-counter-overlap-y: 3px;
+       background-color: $selected_bg_color;
+       color: $selected_fg_color;
+       border: 2px solid $fg_color;
+       box-shadow: 0 2px 2px rgba(0,0,0,0.5);
+       border-radius: 0.9em; // should be 0.8 but whatever; wish I could do 50%;
+}
+
+.secondary-icon { icon-size: $base_icon_size; }
+
+// chat bubbles
+.chat-body { spacing: 5px; }
+.chat-response { margin: 5px; }
+.chat-log-message { color: darken($fg_color,10%); }
+.chat-new-group { padding-top: 1em; }
+.chat-received {
+       padding-left: 4px;
+       &:rtl { padding-left: 0px; padding-right: 4px; }
+}
+
+.chat-sent {
+       padding-left: 18pt;
+       color: lighten($fg_color, 15%);
+       &:rtl { padding-left: 0; padding-right: 18pt; }
+}
+
+.chat-meta-message {
+       padding-left: 4px;
+       font-size: 9pt;
+       font-weight: bold;
+       color: lighten($fg_color,18%);
+       &:rtl { padding-left: 0; padding-right: 4px; }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_misc.scss b/data/theme/gnome-shell-sass/widgets/_misc.scss
new file mode 100644
index 0000000000..22b63f4fa2
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_misc.scss
@@ -0,0 +1,38 @@
+// Links/URLs
+.shell-link {
+       color: $link_color;
+       &:hover { color: lighten($link_color,10%); }
+}
+
+.url-highlighter { link-color: $link_color; }
+
+// Rubberband for select-area screenshots
+.select-area-rubberband {
+       background-color: transparentize($selected_bg_color,0.7);
+       border: 1px solid $selected_bg_color;
+}
+
+// Pointer accessibility notifications
+.pie-timer {
+       width: 60px;
+       height: 60px;
+       -pie-border-width: 3px;
+       -pie-border-color: $selected_bg_color;
+       -pie-background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
+}
+
+// Screen zoom/Magnifier
+.magnifier-zoom-region {
+       border: 2px solid $selected_bg_color;
+       &.full-screen { border-width: 0; }
+}
+
+// User icon
+.user-icon {
+       background-size: contain;
+       color: $osd_fg_color;
+       border-radius: 99px;
+       &:hover {
+               color: lighten($osd_fg_color,30%);
+       }
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_osd.scss b/data/theme/gnome-shell-sass/widgets/_osd.scss
new file mode 100644
index 0000000000..5e3da7f43d
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_osd.scss
@@ -0,0 +1,38 @@
+
+/* OSD */
+.osd-window {
+       @extend %osd_panel;
+       text-align: center;
+       font-weight: bold;
+       spacing: 1em;
+       margin: 32px;
+       min-width: 64px;
+       min-height: 64px;
+
+       .osd-monitor-label { font-size: 3em; }
+       .level {
+               height: 0.6em;
+               -barlevel-height: 0.6em;
+               -barlevel-background-color: transparentize($fg_color, if($variant=='light', 0.2, 0.9));
+               -barlevel-active-background-color: $osd_fg_color;
+               -barlevel-overdrive-color: $destructive_color;
+               -barlevel-overdrive-separator-width: 0.2em;
+       }
+}
+
+/* Pad OSD */
+.pad-osd-window {
+       padding: 32px;
+       background-color: transparentize(black, 0.2);
+
+       .pad-osd-title-box { spacing: 12px; }
+       .pad-osd-title-menu-box { spacing: 6px; }
+}
+
+.combo-box-label {
+       width: 15em;
+}
+
+.resize-popup{
+       @extend %osd_panel;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_overview.scss 
b/data/theme/gnome-shell-sass/widgets/_overview.scss
new file mode 100644
index 0000000000..6d5b133327
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_overview.scss
@@ -0,0 +1,86 @@
+/* OVERVIEW */
+
+#overview {
+       spacing: 24px;
+}
+
+.overview-controls {
+       padding-bottom: 32px;
+}
+
+// Search entry
+.search-entry, %search_entry {
+       width: 320px;
+       padding: 7px 9px;
+       border-radius: 18px;
+       color: $fg_color;
+       background-color: $base_color;
+       border-color: $borders_color;
+       &:focus {
+               padding: 6px 8px;
+               border-width: 2px;
+               border-color: $selected_bg_color;
+       }
+
+       .search-entry-icon { 
+               icon-size: $base_icon_size;
+               padding: 0 4px;
+               color: $fg_color;
+       }
+
+       &:hover, &:focus {
+               .search-entry-icon { color: transparentize($fg_color,.3); }
+       }
+}
+
+// Windows
+
+.window-picker { //container around window thumbnails
+       -horizontal-spacing: $base_spacing * 4;
+       -vertical-spacing: $base_spacing * 4;
+       padding: 0 16px 16px;
+
+       &.external-monitor { padding: 16px; }
+}
+
+.window-clone-border {
+       $_bg: transparentize(white, 0.65);
+       border: 7px solid $_bg;
+       border-radius: $modal_radius;
+       // For window decorations with round corners we can't match
+       // the exact shape when the window is scaled. So apply a shadow
+       // to fix that case
+       box-shadow: inset 0 0 0 1px $_bg;
+}
+
+// titles
+.window-caption {
+       spacing: 25px;
+       color: $selected_fg_color;
+       background-color: $selected_bg_color;
+       border-radius: 8px;
+       padding: 4px 12px;
+}
+
+// close icon
+.window-close {
+       background-color: $selected_bg_color;
+       color: white;
+       border-radius: 24px;
+       border: 2px solid $selected_bg_color;
+       height: 24px;
+       width: 24px;
+       -shell-close-overlap: 11px;
+       box-shadow: -1px 1px 5px 0px transparentize(black, 0.5);
+
+       &:hover {
+               background-color: lighten($selected_bg_color, 5%);
+               border-color: lighten($selected_bg_color, 5%);
+       }
+
+       &:active {
+               background-color: darken($selected_bg_color, 5%);
+               border-color: darken($selected_bg_color, 5%);
+       }
+}
+
diff --git a/data/theme/gnome-shell-sass/widgets/_panel.scss b/data/theme/gnome-shell-sass/widgets/_panel.scss
new file mode 100644
index 0000000000..a752abea78
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_panel.scss
@@ -0,0 +1,88 @@
+/* Top Bar */
+// a.k.a. the panel
+
+$panel_corner_radius: $base_radius + 1px;
+$panel_bg_color: if($variant == 'light', #fff, #000);
+$panel_fg_color: if($variant == 'light', #2e3436, darken($fg_color, 10%));
+$panel_height: 1.86em;
+
+#panel {
+       background-color: $panel_bg_color;
+       font-weight: bold;
+       height: $panel_height;
+       font-feature-settings: "tnum";
+
+       &.unlock-screen,
+       &.login-screen,
+       &.lock-screen {
+               background-color: transparent;
+       }
+
+       #panelLeft, #panelCenter { // spacing between activities<>app menu and such
+               spacing: $base_spacing;
+       }
+
+       .panel-corner {
+               -panel_corner_radius: $panel_corner_radius;
+               -panel-corner-background-color: $panel_bg_color;
+               -panel-corner-border-width: 2px;
+               -panel-corner-border-color: transparent;
+
+               &:active, &:overview, &:focus {
+                       -panel-corner-border-color: lighten($selected_bg_color,5%);
+               }
+
+               &.lock-screen, &.login-screen, &.unlock-screen {
+                       -panel_corner_radius: 0;
+                       -panel-corner-background-color: transparent;
+                       -panel-corner-border-color: transparent;
+               }
+       }
+
+       .panel-button {
+               -natural-hpadding: $base_padding;
+               -minimum-hpadding: 6px;
+               font-weight: bold;
+               color: $panel_fg_color;
+
+               .app-menu-icon {
+                       -st-icon-style: symbolic;
+                       margin-left: 4px;
+                       margin-right: 4px;
+                       //dimensions of the icon are hardcoded
+               }
+
+               &:hover {
+                       color: lighten($panel_fg_color, 20%);
+               }
+
+               &:active, &:overview, &:focus, &:checked {
+                       // Trick due to St limitations. It needs a background to draw
+                       // a box-shadow
+                       background-color: rgba(0, 0, 0, 0.01);
+                       box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
+                       color: lighten($panel_fg_color, 20%);
+               }
+
+               .system-status-icon { icon-size: $base_icon_size; padding: 0 5px; }
+               .unlock-screen &,
+               .login-screen &,
+               .lock-screen & {
+                       color: lighten($fg_color, 10%);
+                       &:focus, &:hover, &:active { color: lighten($fg_color, 10%); }
+               }
+       }
+
+       .panel-status-indicators-box,
+       .panel-status-menu-box {
+               spacing: 2px;
+       }
+
+       // spacing between power icon and (optional) percentage label
+       .power-status.panel-status-indicators-box {
+               spacing: 0;
+       }
+
+       .screencast-indicator,
+       .remote-access-indicator { color: $warning_color; }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_popovers.scss 
b/data/theme/gnome-shell-sass/widgets/_popovers.scss
new file mode 100644
index 0000000000..fb45f68b2f
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_popovers.scss
@@ -0,0 +1,131 @@
+/* Popovers/Menus */
+
+.popup-menu {
+       min-width: 15em;
+       color: $fg_color;
+       border-color: $_bubble_borders_color;
+
+       .popup-menu-arrow { } //defined globally in the TOP BAR
+       .popup-sub-menu {
+               background-color: darken($bg_color,5%);
+               box-shadow: inset 0 -1px 0px $_bubble_borders_color;
+       }
+
+       .popup-menu-content { padding: 1em 0em; }
+       .popup-menu-item {
+               spacing: 12px;
+
+               &:ltr { padding: .4em 1.75em .4em 0em; }
+               &:rtl { padding: .4em 0em .4em 1.75em; }
+               &:checked {
+                       background-color: $bg_color;
+                       box-shadow: inset 0 -1px 0px $_bubble_borders_color;
+                       font-weight: bold;
+               }
+               &.selected {
+                       background-color: transparentize(white, if($variant=='light', 0.2, 0.9));
+                       color: $fg_color;
+               }
+               &:active { 
+                       background-color: $selected_bg_color;
+                       color: $selected_fg_color;
+                }
+               &:insensitive { color: transparentize($fg_color,.5); }
+       }
+
+       .popup-inactive-menu-item { //all icons and other graphical elements
+               color: $fg_color;
+
+               &:insensitive { color: transparentize($fg_color,0.5); }
+       }
+       //.popup-status-menu-item { font-weight: normal;  color: pink; } //dunno what that is
+       &.panel-menu {
+               -boxpointer-gap: 4px;
+               margin-bottom: 1.75em;
+       }
+}
+
+.popup-menu-ornament {
+       text-align: right;
+       width: 1.2em;
+}
+.popup-menu-boxpointer,
+.candidate-popup-boxpointer {
+       -arrow-border-radius: $base_radius+4;
+       -arrow-background-color: $bg_color;
+       -arrow-border-width: 1px;
+       -arrow-border-color: if($variant=='light', transparentize(black, 0.6), $borders_color);
+       -arrow-base: 24px;
+       -arrow-rise: 11px;
+       -arrow-box-shadow: 0 1px 3px black; //dreaming. bug #689995
+}
+
+.popup-separator-menu-item {
+       //-margin-horizontal: 24px;
+       height: 1px; //not really the whole box
+       margin: 6px 64px;
+       background-color: transparent;
+       border-color: $_bubble_borders_color;
+       border-bottom-width: 1px;
+       border-bottom-style: solid;
+}
+
+// not really top bar only
+.popup-menu-arrow { icon-size: $base_icon_size; }
+.popup-menu-icon { icon-size: $base_icon_size; }
+
+
+
+// Background menu
+.background-menu { -boxpointer-gap: 4px; -arrow-rise: 0px; }
+
+/* fallback menu
+- odd thing for styling App menu when apparently not running under shell. Light Adwaita styled
+       app menu inside the main app window itself rather than the top bar
+*/
+
+// a little unstructured mess:
+
+#appMenu {
+       spacing: $base_spacing;
+
+       .label-shadow { color: transparent; }
+}
+
+.app-menu,
+.app-well-menu {
+       max-width: 27.25em;
+}
+
+.aggregate-menu {
+       min-width: 21em;
+       .popup-menu-icon { padding: 0 4px; }
+       .popup-sub-menu .popup-menu-item > :first-child {
+               &:ltr { /* 12px spacing + 2*4px padding */
+                                               padding-left: 20px; margin-left: 1.09em; }
+               &:rtl { /* 12px spacing + 2*4px padding */
+                                               padding-right: 20px; margin-right: 1.09em; }
+       }
+}
+
+// lock screen, shutdown, etc. buttons
+.system-menu-action {
+       -st-icon-style: symbolic;
+       color: $fg_color;
+       border-radius: 32px; /* wish we could do 50% */
+       padding: 13px;
+       border: 1px solid $_bubble_borders_color;
+
+       &:hover, &:focus {
+               background-color: $_hover_bg_color;
+               color: $fg_color;
+               border: none;
+               padding: 14px;
+       }
+       &:active { 
+               background-color: $selected_bg_color;
+               color: $selected_fg_color;
+       }
+
+       & > StIcon { icon-size: 16px; }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_screen-shield.scss 
b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
new file mode 100644
index 0000000000..48bcd0c45c
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
@@ -0,0 +1,84 @@
+
+//SCREEN SHIELD
+
+$_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726);
+
+.screen-shield-arrows {
+               padding-bottom: 3em;
+}
+
+.screen-shield-arrows Gjs_Arrow {
+               color: white;
+               width: 80px;
+               height: 48px;
+               -arrow-thickness: 12px;
+               -arrow-shadow: $_screenshield_shadow;
+}
+
+.screen-shield-clock {
+       color: white;
+       text-shadow: $_screenshield_shadow;
+       font-weight: bold;
+       text-align: center;
+       padding-bottom: 1.5em;
+}
+
+.screen-shield-clock-time {
+       font-size: 72pt;
+       text-shadow: $_screenshield_shadow;
+       font-feature-settings: "tnum";
+}
+
+.screen-shield-clock-date { 
+       font-size: 28pt;
+       font-weight: normal;
+}
+
+.screen-shield-notifications-container {
+       spacing: 6px;
+       width: 30em;
+       background-color: transparent;
+       max-height: 500px;
+       .summary-notification-stack-scrollview {
+               padding-top: 0;
+               padding-bottom: 0;
+       }
+
+       .notification,
+       .screen-shield-notification-source {
+               padding: 12px 6px;
+               border: 1px solid $osd_outer_borders_color;
+               background-color: transparentize($osd_bg_color,0.5);
+               color: $osd_fg_color;
+               border-radius: 4px;
+       }
+       .notification { margin-right: 15px; } //compensate for space allocated to the scrollbar
+}
+
+
+.screen-shield-notification-label {
+       font-weight: bold;
+       padding: 0px 0px 0px 12px;
+}
+
+.screen-shield-notification-count-text { padding: 0px 0px 0px 12px; }
+
+#panel.lock-screen { background-color: transparentize($osd_bg_color, 0.5); }
+
+.screen-shield-background { //just the shadow, really
+       background: black;
+       box-shadow: 0px 2px 4px transparentize(black,0.6);
+}
+
+#lockDialogGroup {
+       background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
+       background-repeat: repeat;
+}
+
+#screenShieldNotifications {
+       StButton#vhandle, StButton#hhandle {
+               background-color: transparentize($bg_color,0.7);
+               &:hover, &:focus { background-color: transparentize($bg_color,0.5); }
+               &:active { background-color: transparentize($selected_bg_color,0.5); }
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_scrollbars.scss 
b/data/theme/gnome-shell-sass/widgets/_scrollbars.scss
new file mode 100644
index 0000000000..640c532ae8
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_scrollbars.scss
@@ -0,0 +1,29 @@
+/* Scrollbars */
+
+StScrollView {
+       &.vfade { -st-vfade-offset: 68px; }
+       &.hfade { -st-hfade-offset: 68px; }
+}
+
+StScrollBar {
+       padding: 0;
+
+       StScrollView & {
+               min-width: 14px;
+               min-height: 14px;
+       }
+
+       StBin#trough {
+               border-radius: 0;
+               background-color: transparent;
+       }
+
+       StButton#vhandle, StButton#hhandle {
+               border-radius: 8px;
+               background-color: mix($fg_color, $bg_color, 60%);
+               //border: 3px solid transparent; //would be nice to margin or at least to transparent
+               margin: 3px;
+               &:hover { background-color: mix($fg_color, $bg_color, 80%); }
+               &:active { background-color: $selected_bg_color; }
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_search-results.scss 
b/data/theme/gnome-shell-sass/widgets/_search-results.scss
new file mode 100644
index 0000000000..e69d974d63
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_search-results.scss
@@ -0,0 +1,71 @@
+//search results
+
+#searchResultsContent {
+       max-width: 1000px;
+       padding: $base_padding;
+       spacing: 0;
+}
+
+.search-section {
+       // background-color: red;
+       padding:$base_padding;
+       spacing: 0;  // This should be equal to #searchResultsContent spacing
+}
+
+.search-section-content {
+       background-color: lighten($osd_bg_color, 5%);
+       border-radius: $base_radius * 3;
+       border: 1px solid $osd_outer_borders_color;
+       box-shadow: 0 1px 4px 0 rgba(0,0,0,0.3);
+       color: $osd_fg_color;
+       text-shadow: 1px rgba(0,0,0,0.3);
+       padding: $base_padding;
+       spacing: 0; // This is the space between the provider icon and the results container
+}
+
+.search-statustext { // "no results"
+       font-size: 2em;
+       font-weight: bold;
+       color: $osd_fg_color;
+}
+
+.search-section-separator { 
+       // height: 2px; background-color: rgba(255, 255, 255, 0.2);
+       height: 0px; 
+       background-color: rgba(255, 255, 255, 0);
+}
+
+.search-section:last-child .search-section-separator { background-color: transparent; }
+
+// Search results
+.list-search-results {
+       spacing: $base_spacing;
+}
+
+.list-search-result-content {
+       spacing: 0;
+}
+
+.list-search-result-title {
+       color: darken($osd_fg_color,5%);
+       spacing: 12px;
+       padding-right: $base_padding;
+}
+
+.list-search-result-description {
+       color: darken($osd_fg_color, 30%);
+}
+
+.list-search-provider-details {
+       width: 150px;
+       color: darken($osd_fg_color,5%);
+       margin-top: $base_margin;
+}
+
+.list-search-provider-content {
+       spacing: 20px;
+}
+
+.search-provider-icon {
+       padding: $base_padding;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_slider.scss 
b/data/theme/gnome-shell-sass/widgets/_slider.scss
new file mode 100644
index 0000000000..8fc4dcbfd8
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_slider.scss
@@ -0,0 +1,20 @@
+/* Slider */
+
+.slider {
+       height: 1em;
+       -barlevel-height: 0.3em;
+       -barlevel-background-color: transparentize($fg_color, 0.9); //background of the trough
+       -barlevel-border-color: $borders_color; //trough border color
+       -barlevel-active-background-color: $selected_bg_color; //active trough fill
+       -barlevel-active-border-color: $selected_borders_color; //active trough border
+       -barlevel-overdrive-color: $destructive_color;
+       -barlevel-overdrive-border-color: darken($destructive_color,10%);
+       -barlevel-overdrive-separator-width: 0.2em;
+       -barlevel-border-width: 1px;
+       -slider-handle-radius: 8px;
+       -slider-handle-border-width: 1px;
+       -slider-handle-border-color: $borders_color;
+       color: if($variant == 'light', lighten($bg_color, 10%), darken($bg_color,4%));
+       &:hover { color: $_hover_bg_color; }
+       &:active { color: $_active_bg_color; }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_switches.scss 
b/data/theme/gnome-shell-sass/widgets/_switches.scss
new file mode 100644
index 0000000000..c88e67dab4
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_switches.scss
@@ -0,0 +1,14 @@
+
+/* Switches */
+.toggle-switch {
+       color: $fg_color;
+       width: 46px;
+       height: 22px;
+       background-size: contain;
+       background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-off.svg"),
+                                                       
url("resource:///org/gnome/shell/theme/toggle-off-dark.svg"));
+       &:checked { 
+               background-image: if($variant == 'light', 
url("resource:///org/gnome/shell/theme/toggle-on.svg"),
+                                                       
url("resource:///org/gnome/shell/theme/toggle-on-dark.svg"));
+       }
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_tiled-previews.scss 
b/data/theme/gnome-shell-sass/widgets/_tiled-previews.scss
new file mode 100644
index 0000000000..6f687319e9
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_tiled-previews.scss
@@ -0,0 +1,19 @@
+
+/* Tiled window previews */
+$tile_corner_radius: $base_radius + 1px;
+.tile-preview {
+       background-color: transparentize($selected_bg_color,0.5);
+       border: 1px solid $selected_bg_color;
+}
+
+.tile-preview-left.on-primary {
+       border-radius: $tile_corner_radius 0 0 0;
+}
+
+.tile-preview-right.on-primary {
+       border-radius: 0 $tile_corner_radius 0 0;
+}
+
+.tile-preview-left.tile-preview-right.on-primary {
+       border-radius: $tile_corner_radius $tile_corner_radius 0 0;
+}
\ No newline at end of file
diff --git a/data/theme/gnome-shell-sass/widgets/_workspace-switcher.scss 
b/data/theme/gnome-shell-sass/widgets/_workspace-switcher.scss
new file mode 100644
index 0000000000..b33eb1bafa
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_workspace-switcher.scss
@@ -0,0 +1,53 @@
+/* Workspace Switcher */
+.workspace-switcher-group { padding: $base_padding; }
+
+.workspace-switcher-container {
+       @extend %osd_panel;
+}
+
+.workspace-switcher {
+       background: transparent;
+       border: 0px;
+       border-radius: 0px;
+       padding: 0px;
+       spacing: $base_spacing * 2;
+}
+
+.ws-switcher-active-up, .ws-switcher-active-down,
+.ws-switcher-active-left, .ws-switcher-active-right {
+       height: 50px;
+       background-color: $selected_bg_color;
+       color: $selected_fg_color;
+       background-size: 32px;
+       border-radius: 8px;
+}
+
+.ws-switcher-box {
+       height: 50px;
+       border: 1px solid transparentize($osd_fg_color,0.9);
+       background: transparent;
+       border-radius: 8px;
+}
+
+// Workspace pager
+.workspace-thumbnails { //container ala dash
+       color: $osd_fg_color;
+       background-color: transparentize($osd_bg_color, 0.1);
+       border: none;
+       visible-width: 32px; //amount visible before hover
+       spacing: 11px;
+       padding: 8px;
+       border-radius: 9px 0 0 9px;
+       //border-width: 1px 0 1px 1px; //fixme: can't have non unoform borders :(
+       &:rtl { border-radius: 0 9px 9px 0;}
+
+       .placeholder {
+               background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
+               background-size: contain;
+               height: 24px;
+       }
+}
+.workspace-thumbnail-indicator {
+       border: 2px solid $selected_bg_color;
+       padding: 1px;
+}
\ No newline at end of file


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