summaryrefslogtreecommitdiffstats
path: root/data/theme/gnome-shell-sass/widgets
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:54:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:54:43 +0000
commite4283f6d48b98e764b988b43bbc86b9d52e6ec94 (patch)
treec8f7f7a6c2f5faa2942d27cefc6fd46cca492656 /data/theme/gnome-shell-sass/widgets
parentInitial commit. (diff)
downloadgnome-shell-upstream.tar.xz
gnome-shell-upstream.zip
Adding upstream version 43.9.upstream/43.9upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'data/theme/gnome-shell-sass/widgets')
-rw-r--r--data/theme/gnome-shell-sass/widgets/_a11y.scss24
-rw-r--r--data/theme/gnome-shell-sass/widgets/_app-grid.scss161
-rw-r--r--data/theme/gnome-shell-sass/widgets/_base.scss18
-rw-r--r--data/theme/gnome-shell-sass/widgets/_buttons.scss19
-rw-r--r--data/theme/gnome-shell-sass/widgets/_calendar.scss257
-rw-r--r--data/theme/gnome-shell-sass/widgets/_check-box.scss18
-rw-r--r--data/theme/gnome-shell-sass/widgets/_corner-ripple.scss15
-rw-r--r--data/theme/gnome-shell-sass/widgets/_dash.scss75
-rw-r--r--data/theme/gnome-shell-sass/widgets/_dialogs.scss172
-rw-r--r--data/theme/gnome-shell-sass/widgets/_entries.scss31
-rw-r--r--data/theme/gnome-shell-sass/widgets/_hotplug.scss10
-rw-r--r--data/theme/gnome-shell-sass/widgets/_ibus-popup.scss39
-rw-r--r--data/theme/gnome-shell-sass/widgets/_keyboard.scss159
-rw-r--r--data/theme/gnome-shell-sass/widgets/_login-dialog.scss201
-rw-r--r--data/theme/gnome-shell-sass/widgets/_looking-glass.scss144
-rw-r--r--data/theme/gnome-shell-sass/widgets/_message-list.scss180
-rw-r--r--data/theme/gnome-shell-sass/widgets/_misc.scss65
-rw-r--r--data/theme/gnome-shell-sass/widgets/_notifications.scss61
-rw-r--r--data/theme/gnome-shell-sass/widgets/_osd.scss64
-rw-r--r--data/theme/gnome-shell-sass/widgets/_overview.scss13
-rw-r--r--data/theme/gnome-shell-sass/widgets/_panel.scss233
-rw-r--r--data/theme/gnome-shell-sass/widgets/_popovers.scss182
-rw-r--r--data/theme/gnome-shell-sass/widgets/_quick-settings.scss118
-rw-r--r--data/theme/gnome-shell-sass/widgets/_screen-shield.scss78
-rw-r--r--data/theme/gnome-shell-sass/widgets/_screenshot.scss204
-rw-r--r--data/theme/gnome-shell-sass/widgets/_scrollbars.scss29
-rw-r--r--data/theme/gnome-shell-sass/widgets/_search-entry.scss26
-rw-r--r--data/theme/gnome-shell-sass/widgets/_search-results.scss96
-rw-r--r--data/theme/gnome-shell-sass/widgets/_slider.scss22
-rw-r--r--data/theme/gnome-shell-sass/widgets/_switcher-popup.scss72
-rw-r--r--data/theme/gnome-shell-sass/widgets/_switches.scss16
-rw-r--r--data/theme/gnome-shell-sass/widgets/_window-picker.scss53
-rw-r--r--data/theme/gnome-shell-sass/widgets/_workspace-switcher.scss25
-rw-r--r--data/theme/gnome-shell-sass/widgets/_workspace-thumbnails.scss28
34 files changed, 2908 insertions, 0 deletions
diff --git a/data/theme/gnome-shell-sass/widgets/_a11y.scss b/data/theme/gnome-shell-sass/widgets/_a11y.scss
new file mode 100644
index 0000000..31b5c4b
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_a11y.scss
@@ -0,0 +1,24 @@
+// Pointer location
+.ripple-pointer-location {
+ width: $ripple_size;
+ height: $ripple_size;
+ border-radius: $ripple_size * 0.5; // radius equals the size of the box to 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%);
+}
+
+// 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; }
+}
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 0000000..9da650c
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_app-grid.scss
@@ -0,0 +1,161 @@
+/* App Grid */
+
+$app_icon_size: 96px;
+
+// app icons
+.icon-grid {
+ row-spacing: $base_padding * 2;
+ column-spacing: $base_padding * 2;
+ max-row-spacing: $base_padding * 7;
+ max-column-spacing: $base_padding * 7;
+ page-padding-top: $base_padding * 4;
+ page-padding-bottom: $base_padding * 4;
+ page-padding-left: $base_padding * 3;
+ page-padding-right: $base_padding * 3;
+}
+
+/* App Icons */
+
+// Icon tiles in the app grid
+.app-well-app {
+ @include overview_icon($osd_fg_color);
+
+ .overview-icon { padding: $base_padding*2;}
+ .overview-icon.overview-icon-with-label {
+ > StBoxLayout {
+ spacing: $base_padding;
+ }
+ }
+}
+
+// app folders
+.app-well-app.app-folder {
+ @include overview_icon($osd_fg_color, $flat: false);
+}
+
+// expanded folder
+.app-folder-dialog {
+ border-radius: $modal_radius*2;
+ background-color: $dash_background_color;
+
+ & .folder-name-container {
+ padding: 24px 36px 0;
+ spacing: 12px;
+
+ & .folder-name-label,
+ & .folder-name-entry {
+ @extend %title_1;
+ }
+
+ & .folder-name-entry { width: 300px }
+
+ /* FIXME: this is to keep the label in sync with the entry */
+ & .folder-name-label { padding: 5px 7px; color: $osd_fg_color; }
+
+ & .edit-folder-button {
+ @extend %button;
+ padding: 0;
+ width: 36px;
+ height: 36px;
+ border-radius: 99px;
+ & > StIcon { icon-size: $base_icon_size }
+ }
+ }
+
+ & .icon-grid {
+ row-spacing: $base_padding * 2;
+ column-spacing: $base_padding * 5;
+ page-padding-top: 0;
+ page-padding-bottom: 0;
+ page-padding-left: 0;
+ page-padding-right: 0;
+ }
+
+ & .page-indicators {
+ margin-bottom: 18px;
+ }
+}
+
+.app-folder-dialog-container {
+ padding: $base_padding*2;
+ width: 720px;
+ height: 720px;
+}
+
+// Running app indicator (also shown in dash)
+.app-well-app-running-dot {
+ height: 5px;
+ width: 5px;
+ border-radius:5px;
+ margin-bottom: 8px;
+ background-color: $osd_fg_color;
+}
+
+// Rename popup for app folders
+.rename-folder-popup {
+ .rename-folder-popup-item {
+ spacing: $base_padding;
+ &:ltr, &:rtl { padding: 0 $base_padding * 2; }
+ }
+}
+
+// App Grid pagination indicators
+.page-indicator {
+ padding: $base_padding $base_padding * 2 0;
+ transition-duration:400ms;
+
+ .page-indicator-icon {
+ width: 10px;
+ height: 10px;
+ border-radius: 10px; // the same as height&width
+ background-color: white;
+ }
+}
+
+.apps-scroll-view {
+ padding: 0;
+}
+
+// shutdown and other actions in the grid
+.system-action-icon {
+ background-color: rgba(0,0,0,0.8);
+ color: #fff;
+ border-radius: 99px;
+ icon-size: $app_icon_size * 0.5;
+}
+
+.page-navigation-hint {
+ &.dnd {
+ background: rgba(255, 255, 255, 0.1);
+ }
+
+ &.next:ltr,
+ &.previous:rtl {
+ background-gradient-start: rgba(255, 255, 255, 0.05);
+ background-gradient-end: transparent;
+ background-gradient-direction: horizontal;
+ border-radius: $modal_radius*1.5 0px 0px $modal_radius*1.5;
+ }
+
+ &.previous:ltr,
+ &.next:rtl {
+ background-gradient-start: transparent;
+ background-gradient-end: rgba(255, 255, 255, 0.05);
+ background-gradient-direction: horizontal;
+ border-radius: 0px $modal_radius*1.5 $modal_radius*1.5 0px;
+ }
+}
+
+.page-navigation-arrow {
+ & > StIcon {
+ margin: 6px;
+ padding: 18px;
+ width: 24px;
+ height: 24px;
+ border-radius: 99px;
+ }
+
+ &:insensitive > StIcon { @include button(undecorated, $osd_fg_color, transparentize($osd_bg_color, 0.5));}
+ &:hover > StIcon { @include button(hover, $osd_fg_color, transparentize($osd_bg_color, 0.5));}
+ &:active > StIcon { @include button(active, $osd_fg_color, transparentize($osd_bg_color, 0.5));}
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_base.scss b/data/theme/gnome-shell-sass/widgets/_base.scss
new file mode 100644
index 0000000..69ebb30
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_base.scss
@@ -0,0 +1,18 @@
+// Links
+.shell-link {
+ color: $link_color;
+
+ &:hover {
+ color: lighten($link_color, 10%);
+ }
+}
+
+// Outline for low res icons
+.lowres-icon {
+ icon-shadow: 0 1px 2px rgba(black, 0.3);
+}
+
+// Dropshadow for large icons
+.icon-dropshadow {
+ icon-shadow: 0 1px 5px rgba(black, 0.8);
+}
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 0000000..def96fe
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_buttons.scss
@@ -0,0 +1,19 @@
+/* Buttons */
+
+.button {
+ @extend %button; // that's it
+ min-height: 22px;
+}
+
+.icon-button {
+ @extend .button; // same style as buttons
+
+ border-radius: 99px;
+ padding: $base_padding*2;
+ min-height: 16px;
+
+ StIcon {
+ icon-size: $base_icon_size;
+ -st-icon-style: symbolic;
+ }
+} \ 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 0000000..fa7080b
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_calendar.scss
@@ -0,0 +1,257 @@
+/* Date/Time Menu */
+
+// overall menu
+#calendarArea {
+ padding: $base_padding - 2px;
+}
+
+// Calendar menu side column
+.datemenu-calendar-column {
+ spacing: $base_padding;
+ &:ltr {padding-left: $base_padding;}
+ &:rtl {padding-right: $base_padding;}
+ .datemenu-displays-box {spacing: $base_padding;}
+}
+
+/* today button (the date) */
+.datemenu-today-button {
+ @include card(flat);
+ padding: $base_padding * 1.5;
+
+ // weekday label
+ .day-label {
+ @extend %heading;
+ }
+
+ // date label
+ .date-label {
+ @extend %title_2;
+ }
+}
+
+/* Calendar */
+.calendar {
+ @include card(flat);
+ margin-top: 0;
+
+ // month header
+ .calendar-month-header {
+
+ // prev/next month icons
+ .calendar-change-month-back StIcon,
+ .calendar-change-month-forward StIcon {
+ icon-size: $base_icon_size;
+ }
+
+ // month label
+ .calendar-month-label {
+ color: lighten($fg_color,5%);
+ @extend %heading;
+ padding: 8px 0;
+ }
+ .pager-button {
+ background-color: transparent;
+ height: 32px;
+ width: 32px;
+ margin: 2px;
+ border-radius: $base_border_radius - 2px;
+ &:hover, &:focus {background-color: $hover_bg_color;}
+ &:active {background-color: $active_bg_color;}
+ }
+ }
+
+ $calendar_day_size: 3em;
+
+ .calendar-day-base {
+ text-align: center;
+ margin: 2px;
+ padding: 0 !important;
+ height: $calendar_day_size !important;
+ width: $calendar_day_size !important;
+ border-radius: 99px;
+ transition-duration: 100ms;
+ @extend %numeric;
+ @extend %smaller;
+
+ &:hover {background-color: $hover_bg_color;}
+ &:focus {
+ background-color: mix($bg_color, $selected_bg_color, 80%);
+ color: $selected_fg_color;
+ box-shadow:inset 0 0 0 2px transparentize($selected_bg_color, 0.4);
+ }
+
+ &:active,&:selected {
+ color: $active_fg_color;
+ background-color: $active_bg_color;
+ &:focus {
+ background-color: mix($active_bg_color, $selected_bg_color, 80%);
+ }
+ }
+
+ // day of week heading
+ &.calendar-day-heading {
+ color: $insensitive_fg_color;
+ padding-top: $base_padding;
+ height: 16px !important; // force heading to be smaller height
+ font-weight: bold;
+ @extend %smaller;
+ }
+ }
+
+ .calendar-day {}
+ .calendar-work-day {}
+ .calendar-nonwork-day {color: $insensitive_fg_color;}
+ .calendar-other-month-day {
+ color: transparentize($fg_color, 0.5);
+ &.calendar-nonwork-day {
+ color: transparentize($insensitive_fg_color, 0.5);
+ }
+ }
+
+ // Today
+ .calendar-today {
+ background-color: $selected_bg_color;
+ font-weight: 800;
+ color: $selected_fg_color !important;
+
+ &:hover,&:focus {
+ background-color:lighten($selected_bg_color, 3%);
+ color: inherit;
+ }
+
+ &:active,&:selected {
+ background-color: $selected_bg_color;
+ color: inherit;
+
+ &:hover,&:focus {
+ background-color:lighten($selected_bg_color, 3%);
+ color: inherit;
+ }
+ }
+ }
+
+ .calendar-day-with-events {
+ background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/calendar-today-light.svg"),url("resource:///org/gnome/shell/theme/calendar-today.svg"));
+ background-size: contain;
+ }
+
+ .calendar-week-number {
+ @include fontsize($base_font_size - 4);
+ font-weight: bold;
+ font-feature-settings: "tnum";
+ margin: 6px;
+ padding: 0 $base_padding;
+ border-radius: 3px;
+ background-color: darken($bg_color, 2%);
+ color: $insensitive_fg_color
+ }
+}
+
+/* Events */
+.events-button {
+ @include card;
+ padding: $base_padding * 2;
+
+ .events-box {
+ spacing: $base_padding;
+ }
+
+ .events-list {
+ spacing: 2 * $base_padding;
+ }
+
+ .events-title {
+ @extend %heading;
+ color: $insensitive_fg_color;
+ margin-bottom: $base_margin;
+ }
+
+ .event-time {
+ @extend %numeric;
+ @extend %caption;
+ color: $insensitive_fg_color;
+ }
+}
+
+/* World clocks */
+.world-clocks-button {
+ @include card;
+ padding: $base_padding * 2;
+
+ .world-clocks-grid {
+ spacing-rows: $base_padding;
+ spacing-columns: $base_padding * 2;
+ }
+
+ // title
+ .world-clocks-header {
+ @extend %heading;
+ color: $insensitive_fg_color;
+ }
+
+ // city label
+ .world-clocks-city {
+ color: $fg_color;
+ }
+
+ // timezone time
+ .world-clocks-time {
+ @extend %heading;
+ @extend %numeric;
+ color: $fg_color;
+
+ &:ltr {text-align: right;}
+ &:rtl {text-align: left;}
+ }
+
+ // timezone offset label
+ .world-clocks-timezone {
+ @extend %numeric;
+ @extend %caption;
+ color: $insensitive_fg_color;
+ }
+}
+
+/* Weather */
+.weather-button {
+ @include card;
+ padding: $base_padding * 2;
+
+ .weather-box {
+ spacing: $base_padding + $base_margin;
+ }
+
+ .weather-header-box {
+ spacing: $base_padding;
+ }
+
+ .weather-header {
+ color: $insensitive_fg_color;
+ @extend %heading;
+
+ &.location {
+ font-weight: normal;
+ }
+ }
+
+ .weather-grid {
+ spacing-rows: $base_padding;
+ spacing-columns: $base_padding * 2;
+ }
+
+ .weather-forecast-time {
+ @extend %numeric;
+ @extend %caption;
+ color: darken($fg_color,30%);
+ padding-top: 0.2em;
+ padding-bottom: 0.4em;
+ }
+
+ .weather-forecast-icon {
+ icon-size: $large_icon_size;
+ }
+
+ .weather-forecast-temp {
+ @extend %heading;
+ }
+}
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 0000000..1480ade
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_check-box.scss
@@ -0,0 +1,18 @@
+/* Check Boxes */
+
+// these are equal to the size of the SVG assets
+$check_height: 24px;
+$check_width: 24px;
+
+
+.check-box {
+ StBoxLayout { spacing: .8em; }
+ StBin {
+ width: $check_width;
+ height: $check_height;
+ background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/checkbox-off-light.svg"), url("resource:///org/gnome/shell/theme/checkbox-off.svg"));
+ }
+ &:focus StBin { background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/checkbox-off-focused-light.svg"), 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"); }
+}
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 0000000..9aff431
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_corner-ripple.scss
@@ -0,0 +1,15 @@
+/* Activities Ripple */
+
+$ripple_size: 50px;
+
+.ripple-box {
+ background-color: rgba(255,255,255,0.2);
+ box-shadow: 0 0 2px 2px rgba(255,255,255,0.2);
+ // plus + 2px for the border (box-shadow)
+ width: $ripple_size + 2px;
+ height: $ripple_size + 2px;
+ border-radius: 0 0 $ripple_size + 2px 0; // radius equals the size of the box to give us the curve
+
+ // just a simple change to the border radius position
+ &:rtl { border-radius: 0 0 0 $ripple_size + 2px; }
+}
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 0000000..8f5d5f9
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_dash.scss
@@ -0,0 +1,75 @@
+/* Dash */
+
+$dash_background_color: lighten($system_bg_color, 5%);
+$dash_placeholder_size: 32px;
+$dash_padding: $base_padding*2; // 12px
+$dash_border_radius: $modal_radius + $dash_padding;
+
+// container for the dash
+#dash {
+ @extend %caption;
+ margin-top: $dash_padding;
+
+ .placeholder {
+ // background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
+ background-image:none;
+ background-size: contain;
+ height: $dash_placeholder_size;
+ }
+
+ .empty-dash-drop-target {
+ width: $dash_placeholder_size;
+ height: $dash_placeholder_size;
+ }
+
+ // Running app indicator (also shown in app grid)
+ .app-well-app-running-dot {
+ margin-bottom: 14px; // hardcoded
+ }
+}
+
+// background of the dash behind app icons
+.dash-background {
+ background-color: $dash_background_color;
+ border-radius: $dash_border_radius;
+ padding: $dash_padding;
+ spacing: $base_padding;
+ margin-bottom: $dash_padding;
+}
+
+// items on the dash
+.dash-item-container {
+ > * {margin: 0 2px;}
+ &:ltr:first-child {margin-left: 0;}
+ &:rtl:first-child {margin-right: 0;}
+
+ // each app item on the dash
+ .app-well-app .overview-icon {
+ padding: $base_padding;
+ }
+
+ // show apps button
+ .show-apps { @include overview_icon($osd_fg_color);}
+
+ .show-apps, .app-well-app {
+ padding-bottom: $dash_padding;
+ }
+}
+
+// separator between favourites and running apps
+.dash-separator {
+ width: 1px;
+ margin: 0 $base_margin;
+ background-color: $borders_color;
+ margin-bottom: $dash_padding;
+}
+
+// OSD Tooltip
+.dash-label {
+ color: $osd_fg_color;
+ background-color: $osd_bg_color;
+ border-radius: 99px;
+ padding: $base_padding $base_padding * 2;
+ text-align: center;
+ -y-offset: $base_margin * 2; // distance from the dash edge
+}
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 0000000..defa20b
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_dialogs.scss
@@ -0,0 +1,172 @@
+/* Modal Dialogs */
+
+.headline {
+ @extend %title_4;
+}
+
+.modal-dialog {
+ @extend %bubble_panel;
+
+ .modal-dialog-content-box {
+ margin: 32px 40px;
+ spacing: 32px;
+ max-width: 28em;
+ }
+
+ .modal-dialog-linked-button {
+ @extend %bubble_button;
+ }
+}
+
+/* End Session Dialog */
+.end-session-dialog {
+ width: 30em;
+
+ .end-session-dialog-battery-warning,
+ .dialog-list-title {
+ color: $warning_color;
+ }
+}
+
+/* Message Dialog */
+.message-dialog-content {
+ spacing: 18px;
+
+ .message-dialog-title {
+ text-align: center;
+ @extend %title_2;
+
+ &.lightweight { @extend %title_4;}
+ }
+ .message-dialog-description { text-align: center; }
+}
+
+/* Dialog List */
+.dialog-list {
+ spacing: 18px;
+
+ .dialog-list-title {
+ text-align: center;
+ @extend %heading;
+ }
+
+ .dialog-list-scrollview { max-height: 200px; }
+ .dialog-list-box {
+ spacing: 1em;
+
+ .dialog-list-item {
+ spacing: 1em;
+
+ .dialog-list-item-title { font-weight: bold; }
+ .dialog-list-item-description {
+ color: darken($fg_color,5%);
+ @extend %caption;
+ }
+ }
+ }
+}
+
+/* Run Dialog */
+.run-dialog {
+ .modal-dialog-content-box {
+ margin-top: 24px;
+ margin-bottom: 14px;
+ }
+ .run-dialog-entry { width: 20em; }
+ .run-dialog-description {
+ @extend %caption;
+ text-align: center;
+ color: darken($fg_color, 20%);
+ }
+}
+
+/* Password or Authentication Dialog */
+
+.prompt-dialog {
+ width: 28em;
+
+ .modal-dialog-content-box {
+ margin-bottom: 24px;
+ }
+}
+
+.prompt-dialog-password-grid {
+ spacing-rows: 8px;
+ spacing-columns: 4px;
+
+ .prompt-dialog-password-entry {
+ width: auto;
+
+ // 4px (spacing) + 16px (spinner-width)
+ &:ltr { margin-left: 20px; }
+ &:rtl { margin-right: 20px; }
+ }
+}
+
+.prompt-dialog-password-layout {
+ spacing: 8px;
+}
+
+.prompt-dialog-password-entry {
+ width: 20em;
+}
+
+.prompt-dialog-error-label,
+.prompt-dialog-info-label,
+.prompt-dialog-null-label {
+ text-align: center;
+ @extend %caption;
+}
+
+.prompt-dialog-error-label {
+ color: $warning_color;
+}
+
+
+/* Polkit Dialog */
+
+.polkit-dialog-user-layout {
+ text-align: center;
+ spacing: 8px;
+ margin-bottom: 6px;
+
+ .polkit-dialog-user-root-label { color: $warning_color; }
+}
+
+/* Audio selection dialog */
+.audio-device-selection-dialog {
+ .modal-dialog-content-box { margin-bottom: 28px; }
+ .audio-selection-box { spacing: 20px; }
+}
+
+.audio-selection-device {
+ border-radius: $base_border_radius*2;
+ &: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: $base_icon_size * 4;
+}
+
+/* Welcome dialog */
+.welcome-dialog-image {
+ background-image: url("resource:///org/gnome/shell/theme/gnome-shell-start.svg");
+ background-size: contain;
+ /* Reasonable maximum dimensions */
+ height: 300px;
+ width: 300px;
+}
+
+/* Access portal dialog */
+.access-dialog {
+ text-align: center;
+} \ 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 0000000..6be6760
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_entries.scss
@@ -0,0 +1,31 @@
+/* Entries */
+
+StEntry {
+ border-radius: $base_border_radius;
+ padding: 8px;
+ color: $fg_color;
+
+ @include entry(normal);
+ &:hover { @include entry(hover);}
+ &:focus { @include entry(focus);}
+ &: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: $base_icon_size;
+ padding: 0 4px;
+ }
+
+ StLabel.hint-text {
+ margin-left: 2px;
+ color: transparentize($fg_color, 0.3);
+ }
+}
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 0000000..acd0265
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_hotplug.scss
@@ -0,0 +1,10 @@
+// hotplug
+
+.hotplug-notification-item {
+ @extend %bubble_button;
+}
+
+.hotplug-notification-item-icon {
+ icon-size: 24px;
+ padding: 0 4px;
+}
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 0000000..8cbaa95
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_ibus-popup.scss
@@ -0,0 +1,39 @@
+// IBus Candidate Popup
+
+.candidate-popup-boxpointer {
+ @extend .popup-menu-boxpointer;
+}
+
+.candidate-popup-content {
+ padding: $base_padding;
+ spacing: $base_padding;
+ @extend .popup-menu-content;
+}
+
+.candidate-index {
+ padding: 0;
+ padding-right: $base_padding;
+ color: $insensitive_fg_color;
+}
+
+.candidate-box {
+ padding: $base_padding $base_padding*2 $base_padding $base_padding*2;
+ border-radius: $base_border_radius;
+ &:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
+ &:hover { background-color: $hover_bg_color; color: $hover_fg_color; }
+}
+
+.candidate-page-button-box {
+ height: 2em;
+ .vertical & { padding-top: $base_padding*2; }
+ .horizontal & { padding-left: $base_padding*2; }
+}
+
+.candidate-page-button {
+ padding: $base_padding;
+
+ & StIcon { icon-size: $base_icon_size; }
+}
+
+.candidate-page-button-previous { border-radius: $base_border_radius 0px 0px $base_border_radius; border-right-width: 0;box-shadow: none;}
+.candidate-page-button-next { border-radius: 0px $base_border_radius $base_border_radius 0px;box-shadow: none;}
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 0000000..1dc6b95
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_keyboard.scss
@@ -0,0 +1,159 @@
+/* On-screen Keyboard */
+
+$key_size: 1.2em;
+$key_border_radius: $base_border_radius + 4px; // 12px
+$key_bg_color: darken($osd_fg_color, 70%);
+// $default_key_bg_color: darken($key_bg_color, 4%);
+$default_key_bg_color: if($variant=='light', darken($key_bg_color, 11%), darken($key_bg_color, 10%));
+
+
+// draw keys using button function
+#keyboard {
+ // background-color: transparentize(if($variant=='light', darken($bg_color, 5%), darken($bg_color, 8%)), 0.1);
+ background-color: $osd_bg_color;
+ box-shadow: inset 0 1px 0 0 $osd_outer_borders_color;
+
+ .page-indicator {
+ padding: $base_padding;
+
+ .page-indicator-icon {
+ width: 8px;
+ height: 8px;
+ }
+ }
+}
+
+// the container for individual keys
+.key-container {
+ padding: $base_margin;
+ spacing: $base_margin;
+}
+
+// the keys
+.keyboard-key {
+
+ @include fontsize($base_font_size + 5);
+ font-weight: bold;
+ min-height: $key_size;
+ min-width: $key_size;
+ border-width: 1px;
+ border-style: solid;
+ border-radius: $key_border_radius;
+ box-shadow: 0 1px 0 0 $shadow_color;
+
+ @include keyboard_key(normal, $key_bg_color, $osd_fg_color);
+
+ &:focus { @include keyboard_key(focus);}
+ &:hover { @include keyboard_key(hover, $key_bg_color, $osd_fg_color);}
+ &:active { @include keyboard_key(active, $key_bg_color, $osd_fg_color); }
+ &:checked { @include keyboard_key(checked, $key_bg_color, $osd_fg_color); }
+
+ &:grayed { //FIXMEy
+ background-color: darken($bg_color, 3%);
+ color: $osd_fg_color;
+ border-color: $osd_borders_color;
+ }
+
+ // non-character keys
+ &.default-key {
+ @include keyboard_key(normal, $default_key_bg_color, $osd_fg_color);
+ &:hover {@include keyboard_key(hover, $default_key_bg_color, $osd_fg_color);}
+ &:active { @include keyboard_key(active, $default_key_bg_color, $osd_fg_color);}
+ &:checked { @include keyboard_key(checked, $default_key_bg_color, $osd_fg_color);}
+ border-radius: $key_border_radius;
+
+ // keys that may be latched: ctrl/alt/shift
+ &:latched {
+ border-color: lighten($selected_bg_color, 5%);
+ background-color: $selected_bg_color;
+ }
+ }
+
+ // enter key is suggested-action
+ &.enter-key {
+ @include keyboard_key(normal, $selected_bg_color, $selected_fg_color);
+ &:hover { @include keyboard_key(hover, $selected_bg_color, $selected_fg_color);}
+ &:active {@include keyboard_key(active, $selected_bg_color, $selected_fg_color);}
+ &:checked {@include keyboard_key(checked, $selected_bg_color, $selected_fg_color);}
+ border-radius: $key_border_radius;
+ color: $osd_fg_color;
+ }
+
+ &.shift-key-lowercase {}
+
+ // pressed shift has different style
+ &.shift-key-uppercase {
+ background-color: lighten($key_bg_color, 20%);
+ color: $osd_bg_color;
+ &:hover {
+ background-color: lighten($key_bg_color, 25%);
+ color: lighten($osd_bg_color, 5%);
+ }
+ }
+
+ // size of icons on keys
+ StIcon { icon-size: 24px; }
+}
+
+// long press on a key popup
+.keyboard-subkeys {
+ -arrow-border-radius: $base_border_radius*2;
+ -arrow-background-color: $osd_bg_color;
+ -arrow-border-width: 1px;
+ -arrow-border-color: lighten($osd_bg_color, 9%);
+ -arrow-base: 20px;
+ -arrow-rise: 10px;
+ -boxpointer-gap: $base_padding;
+ padding: $base_padding;
+
+ .keyboard-key {
+ @include keyboard_key(normal, $key_bg_color, $osd_fg_color);
+
+ &:focus { @include keyboard_key(focus);}
+ &:hover { @include keyboard_key(hover, $key_bg_color, $osd_fg_color);}
+ &:active { @include keyboard_key(active, $key_bg_color, $osd_fg_color); }
+ &:checked { @include keyboard_key(checked, $key_bg_color, $osd_fg_color); }
+
+ border-radius:$key_border_radius;
+ }
+}
+
+// emoji
+.emoji-page {
+ .keyboard-key {
+ background-color: transparent;
+ border: none;
+ color: initial;
+ }
+}
+
+.emoji-panel {
+ .keyboard-key:latched {
+ border-color: lighten($selected_bg_color, 5%);
+ background-color: $selected_bg_color;
+ }
+}
+
+// suggestions
+.word-suggestions {
+ @include fontsize($base_font_size + 1);
+ spacing: 12px;
+ min-height: 17pt;
+ padding: $base_padding*2;
+ color: $osd_fg_color;
+
+ // each suggestion
+ StButton {
+ margin: 0 3px;
+ min-width: 32px;
+ border-radius: $base_border_radius - 2px;
+ padding: 0px $base_padding*3;
+
+ @include keyboard_key(undecorated, $key_bg_color, $osd_fg_color);
+
+ &:focus { @include keyboard_key(focus);}
+ &:hover { @include keyboard_key(hover, $key_bg_color, $osd_fg_color);}
+ &:active { @include keyboard_key(active, $key_bg_color, $osd_fg_color); }
+ &:checked { @include keyboard_key(checked, $key_bg_color, $osd_fg_color); }
+ }
+}
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 0000000..208165d
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss
@@ -0,0 +1,201 @@
+/* Login Dialog */
+
+.login-dialog-banner-view {
+ padding-top: 24px;
+ max-width: 23em;
+}
+
+.login-dialog,
+.unlock-dialog {
+ //reset
+ border: none;
+ background-color: transparent;
+
+ $_gdm_bg: $system_bg_color;
+
+ .modal-dialog-button-box { spacing: 3px; }
+ .modal-dialog-button {
+ padding: 4px 18px;
+ background-color: darken($system_bg_color, 3%);
+ border-color: darken($system_bg_color, 3%);
+ color: $osd_fg_color;
+
+ $_hover_c: lighten($_gdm_bg, 5%);
+ &:hover, &:focus {
+ background-color: $_hover_c;
+ border-color: $_hover_c;
+ }
+ &:active {
+ $_active_c: darken($_gdm_bg, 5%);
+ 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($osd_fg_color, 0.3);
+ }
+ &:default {
+ @include button(default);
+ }
+ }
+
+ .cancel-button,
+ .switch-user-button,
+ .login-dialog-session-list-button {
+ padding: 0;
+ border-radius: 99px;
+ width: $large_icon_size;
+ height: $large_icon_size;
+ border-color: darken($system_bg_color, 3%);
+ background-color: darken($system_bg_color, 3%);
+
+ StIcon { icon-size: $base_icon_size; }
+ }
+
+ .caps-lock-warning-label,
+ .login-dialog-message-warning {
+ color: $osd_fg_color;
+ }
+}
+
+.login-dialog-logo-bin { padding: 24px 0px; }
+.login-dialog-banner { color: darken($osd_fg_color,10%); }
+.login-dialog-button-box { width: 23em; spacing: 5px; }
+.login-dialog-message { text-align: center; }
+.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 {
+ @extend %caption;
+ font-weight: bold;
+ color: darken($osd_fg_color,30%);
+ padding-top: 1em;
+}
+
+.login-dialog-auth-list-view { -st-vfade-offset: 1em; }
+.login-dialog-auth-list {
+ spacing: 6px;
+ margin-left: 2em;
+}
+
+.login-dialog-auth-list-title {
+ margin-left: 2em;
+}
+
+.login-dialog-auth-list-item {
+ border-radius: $base_border_radius + 4px;
+ padding: 6px;
+ color: darken($osd_fg_color,30%);
+ &:focus, &:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
+}
+
+.login-dialog-auth-list-label {
+ @include fontsize($base_font_size + 2);
+ font-weight: bold;
+ padding-left: 15px;
+ &:ltr { padding-left: 14px; text-align: left; }
+ &:rtl { padding-right: 14px; text-align: right; }
+}
+
+.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: $base_border_radius + 4px;
+ 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; }
+}
+
+.user-widget-label {
+ color: $osd_fg_color;
+}
+
+.user-widget.horizontal .user-widget-label {
+ @include fontsize($base_font_size + 2);
+ font-weight: bold;
+ padding-left: 15px;
+
+ &:ltr { padding-left: 14px; text-align: left; }
+ &:rtl { padding-right: 14px; text-align: right; }
+}
+
+.user-widget.vertical .user-widget-label {
+ @include fontsize($base_font_size + 5);
+ text-align: center;
+ font-weight: normal;
+ padding-top: 16px;
+}
+
+.login-dialog-timed-login-indicator {
+ height: 2px;
+ background-color: darken($fg_color,40%);
+}
+
+.login-dialog-prompt-layout {
+ padding-top: 24px;
+ padding-bottom: 12px;
+ spacing: $base_padding * 2;
+ width: 23em;
+}
+
+.login-dialog-prompt-entry {
+ height: 1.5em;
+}
+
+.login-dialog-prompt-label {
+ color: darken($osd_fg_color, 20%);
+ @include fontsize($base_font_size + 1);
+ padding-top: 1em;
+}
+
+.login-dialog {
+ StEntry {
+ @if $variant=='dark' {
+ $_gdm_entry_bg: darken($system_bg_color, 3%);
+ background-color: $_gdm_entry_bg;
+ color: $fg_color;
+ }
+ }
+}
+
+// Custom styling for unlock entry
+.unlock-dialog {
+ StEntry {
+ border:none !important;
+ &:focus {
+ background-color: if($variant == 'light', transparentize(white, 0.9), transparentize($fg_color, 0.9));
+ }
+ &:insensitive {
+ color: if($variant == 'light', transparentize(white, 0.5), transparentize($fg_color, 0.5));
+ background-color: if($variant == 'light', transparentize(white, 0.95), transparentize($fg_color, 0.95));
+ }
+ }
+
+ .cancel-button,
+ .switch-user-button,
+ .login-dialog-session-list-button {
+ border-color: transparent;
+ background-color: transparentize($fg_color, 0.9);
+ }
+}
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 0000000..00630c3
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_looking-glass.scss
@@ -0,0 +1,144 @@
+/* Looking Glass */
+
+// Dialog
+#LookingGlassDialog {
+ background-color: $osd_bg_color;
+ border-radius: 0 0 $modal_radius $modal_radius;
+ border-top-width: 0;
+ border: 1px solid $osd_outer_borders_color;
+ color: $osd_fg_color;
+ padding: $base_padding;
+ spacing: $base_padding;
+ box-shadow: 0 2px 4px 0 $shadow_color;
+
+ & > #Toolbar {
+ border: none;
+ padding: $base_padding;
+ border-radius: 0;
+ background-color: transparent;
+ spacing: $base_padding;
+
+ .lg-toolbar-button {
+ padding: $base_padding $base_padding*2;
+ @extend %button;
+
+ & > StIcon { icon-size: $base_icon_size; }
+ }
+ }
+
+ .labels {
+ spacing: $base_padding;
+ }
+
+ .notebook-tab {
+ -natural-hpadding: $base_padding*2;
+ -minimum-hpadding: $base_padding*2;
+
+ font-weight: bold;
+ padding: $base_padding $base_padding*2;
+ color: darken($osd_fg_color, 15%);
+ transition-duration: 100ms;
+ box-shadow:none;
+ border:none;
+ border-radius: $base_border_radius - 2px;
+ background-color: transparent;
+
+ &:hover {
+ color: $osd_fg_color;
+ background-color: transparentize($osd_fg_color, 0.95);
+ }
+
+ &:selected {
+ color: $osd_fg_color;
+ background-color: transparentize($osd_fg_color, 0.9);
+ }
+ }
+
+ StBoxLayout#EvalBox { padding: 4px; spacing: $base_padding; padding: $base_padding; }
+ StBoxLayout#ResultsArea { spacing: $base_padding; padding: $base_padding; }
+}
+
+.lg-dialog {
+
+ StEntry {
+ background-color: transparentize(lighten($osd_bg_color, 5%), 0.4);
+ color: $osd_fg_color;
+ border-color: transparentize($osd_fg_color, 0.8);
+ min-height: 22px;
+ selection-background-color: $selected_bg_color;
+ selected-color: $selected_fg_color;
+ }
+
+ .shell-link {
+ color: $link_color;
+ &:hover { color: lighten($link_color, 10%); }
+ &:active { color: darken($link_color, 10%); }
+ }
+
+ .actor-link {
+ color: $insensitive_fg_color;
+ &:hover { color: lighten($insensitive_fg_color, 20%); }
+ &:active { color: darken($insensitive_fg_color, 20%); }
+
+ & StIcon { icon-size: 12px; }
+ }
+}
+
+.lg-completions-text {
+ @extend %caption;
+ font-style: italic;
+}
+
+.lg-obj-inspector-title {
+ spacing: $base_padding;
+}
+
+.lg-obj-inspector-button {
+ border: 1px solid $osd_borders_color;
+ padding: 4px;
+ border-radius: $base_border_radius;
+ &:hover { border: 1px solid #ffffff; }
+}
+
+// Extensions
+#lookingGlassExtensions { padding: $base_padding; }
+
+.lg-extensions-list {
+ padding: $base_padding;
+ spacing: $base_padding;
+}
+
+.lg-extension {
+ padding: $base_padding*2;
+ @include card;
+}
+
+.lg-extension-name {
+ @extend %heading;
+}
+
+.lg-extension-meta {
+ spacing: $base_padding;
+}
+
+// Inspector
+#LookingGlassPropertyInspector {
+ background: $osd_bg_color;
+ border: 1px solid $osd_borders_color;
+ border-radius: $base_border_radius;
+ padding: $base_padding;
+}
+
+.lg-debug-flag-button {
+ StLabel { padding: $base_padding, 2 * $base_padding; }
+
+ color: $fg_color;
+ &:hover { color: lighten($fg_color, 20%); }
+ &:active { color: darken($fg_color, 20%); }
+}
+
+.lg-debug-flags-header {
+ padding-top: 2 * $base_padding;
+ padding: $base_padding;
+ @extend %title_2;
+}
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 0000000..5196661
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_message-list.scss
@@ -0,0 +1,180 @@
+/* Message List */
+// a.k.a. notifications in the menu
+
+// main list
+.message-list {
+ width: 29em;
+ border: solid $borders_color;
+
+ // padding and margins to account for scrollbar
+ &:ltr {margin-left: 0; margin-right: $base_margin; padding-right: $base_padding; border-right-width: 1px; }
+ &:rtl {margin-right: 0; margin-left: $base_margin; padding-left: $base_padding; border-left-width: 1px; }
+
+ .message-list-placeholder {
+ @extend %title_2;
+ color: transparentize($insensitive_fg_color, .5);
+
+ // icon size and color
+ > StIcon {
+ icon-size: $base_icon_size*3; // 48px
+ margin-bottom: $base_margin*3;
+ -st-icon-style: symbolic;
+ }
+ }
+}
+
+.message-list-sections {
+ spacing: $base_padding;
+ margin: 0;
+ padding-bottom: $base_padding;
+
+ // to account for scrollbar
+ &:ltr {margin-right: $base_margin * 3; }
+ &:rtl {margin-left: $base_margin * 3;}
+}
+
+.message-list-section,
+.message-list-section-list {
+ spacing: $base_padding;
+}
+
+// do-not-disturb + clear button
+.message-list-controls {
+ // NOTE: remove the padding if notification_bubble could remove margin for drop shadow
+ padding: $base_padding;
+ spacing: $base_padding;
+ @extend %heading;
+
+ .dnd-button {
+ // We need this because the focus outline isn't inset like for the buttons
+ // so the dnd button would grow when it gets focus if we didn't change only
+ // its color when focusing.
+ border-width: 2px;
+ border-color: transparent;
+ border-radius: 32px;
+ border-style: solid;
+
+ &:focus {
+ border-color: transparentize($selected_bg_color, 0.4);
+ }
+ }
+}
+
+// message bubbles
+.message {
+ @include card;
+
+ // icon container
+ .message-icon-bin {
+ padding: ($base_padding * 3);
+
+ &:ltr {padding-right:$base_padding;}
+ &:rtl {padding-left:$base_padding;}
+
+ // icon size and color
+ > StIcon {
+ icon-size: $large_icon_size; // 32px
+ -st-icon-style: symbolic;
+ }
+
+ // fallback
+ > .fallback-app-icon {
+ width: $base_icon_size;
+ height: $base_icon_size;
+ }
+ }
+
+ // content
+ .message-content {
+ spacing: 4px;
+ padding: ($base_padding*1.5);
+ margin-bottom: $base_margin*2;
+ }
+
+ // title
+ .message-title {
+ font-weight: bold;
+ /* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
+ padding-top: 0.57em;
+ }
+
+ // secondary container in title box
+ .message-secondary-bin {
+ padding: 0 $base_margin * 2;
+
+ // notification time stamp
+ > .event-time {
+ color: transparentize($fg_color, 0.5);
+ @include fontsize($base_font_size - 2);
+ /* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
+ padding-bottom: 0.13em;
+
+ &:ltr { text-align: right };
+ &:rtl { text-align: left };
+ }
+ }
+
+ // close button
+ .message-close-button {
+ color: $fg_color;
+ background-color: transparentize($fg_color, 0.9);
+ border-radius: 99px;
+ padding: $base_padding - 1px;
+ margin: 1px;
+ &:hover {background-color: transparentize($fg_color, 0.8);}
+ &:active {background-color: transparentize($fg_color, 0.9);}
+
+ & StIcon { icon-size: $base_icon_size; }
+ }
+
+ // body
+ .message-body {color: darken($fg_color, 10%);}
+}
+
+// URLs in messages
+.url-highlighter {
+ link-color: $link_color;
+}
+
+/* Media Controls */
+.message-media-control {
+ padding: 0 $base_padding*3;
+ margin: $base_padding*2 0;
+ border-radius: $base_border_radius;
+ color: $fg_color;
+
+ // colors are lightened since the media controls are in a card
+ &:hover {
+ background-color: lighten($hover_bg_color, 5%);
+ color: $fg_color;
+ }
+
+ &:active {
+ background-color: lighten($active_bg_color, 5%);
+ color: $fg_color;
+ }
+
+ &:insensitive { color: lighten($insensitive_fg_color, 5%); }
+
+ // fix margin for last button
+ &:last-child:ltr { margin-right: $base_margin*3; }
+ &:last-child:rtl { margin-left: $base_margin*3; }
+
+ & StIcon { icon-size: $base_icon_size; }
+}
+
+// album-art
+.media-message-cover-icon {
+ icon-size: $base_icon_size*3 !important; // 48px
+ border-radius: $base_border_radius;
+
+ // when there is no artwork
+ &.fallback {
+ color: darken($fg_color, 17%);
+ background-color: $bg_color;
+ border: 1px solid transparent;
+ border-radius: $base_border_radius;
+ icon-size: $large_icon_size !important; // 32px
+ padding: ($base_padding*2 + 2); // 16px
+ }
+}
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 0000000..7409278
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_misc.scss
@@ -0,0 +1,65 @@
+// Rubberband for select-area screenshots
+.select-area-rubberband {
+ background-color: transparentize($selected_bg_color,0.7);
+ border: 1px solid $selected_bg_color;
+}
+
+// User icon
+.user-icon {
+ background-size: contain;
+ color: $osd_fg_color;
+ border-radius: 99px;
+ icon-size: $base_icon_size * 4; // 64px
+ &:hover {
+ color: lighten($osd_fg_color,30%);
+ }
+
+ & StIcon {
+ background-color: transparentize($osd_fg_color,0.95);
+ border-radius: 99px;
+ padding: $base_padding * 2 ; // 12px
+ width: $base_icon_size * 2.5; height: $base_icon_size * 2.5; // 40px;
+ }
+
+ &.user-avatar {
+ border: 2px $osd_fg_color;
+ }
+}
+
+.user-widget.vertical .user-icon {
+ icon-size: $base_icon_size * 6; // 128px
+
+ & StIcon {
+ padding: $base_padding * 3 + 2px; // 20px
+ padding-top: $base_padding * 3; // 18 px
+ padding-bottom: $base_padding * 3 + 4px; // 22px
+ width: $base_icon_size * 5.5; height: $base_icon_size * 5.5; // 88px;
+ }
+}
+
+.lightbox { background-color: black; }
+.flashspot { background-color: white; }
+
+
+// Hidden
+.hidden { color: rgba(0,0,0,0);}
+
+// Caps-lock warning
+.caps-lock-warning-label {
+ text-align: center;
+ padding-bottom: 8px;
+ @extend %caption;
+ color: $warning_color;
+}
+
+/* Workspace animation */
+
+.workspace-animation {
+ background-color: $system_bg_color;
+}
+
+/* Tiled window previews */
+.tile-preview {
+ background-color: transparentize($selected_bg_color,0.5);
+ border: 1px solid $selected_bg_color;
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_notifications.scss b/data/theme/gnome-shell-sass/widgets/_notifications.scss
new file mode 100644
index 0000000..86480a8
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_notifications.scss
@@ -0,0 +1,61 @@
+/* Notifications & Message Tray */
+
+$notification_banner_height: 64px;
+$notification_banner_width: 34em;
+$notification_banner_radius: $base_border_radius*1.5;
+
+// Banner notifications
+.notification-banner {
+ min-height: $notification_banner_height;
+ width: $notification_banner_width;
+ box-shadow: 0 2px 4px 2px $shadow_color;
+ border-radius: $notification_banner_radius;
+ margin: $base_margin;
+
+ .notification-actions {
+ spacing: 0;
+ }
+
+ .notification-button {
+ @extend %bubble_button;
+ }
+}
+
+// counter
+.summary-source-counter {
+ font-size: $base_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%;
+}
+
+// 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;
+ @include fontsize($base_font_size - 2);
+ font-weight: bold;
+ color: lighten($fg_color,18%);
+ &:rtl { padding-left: 0; padding-right: 4px; }
+}
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 0000000..a8d1a55
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_osd.scss
@@ -0,0 +1,64 @@
+/* OSD */
+
+$osd_levelbar_height:6px;
+
+.osd-window {
+ @extend %osd_panel;
+ @extend %heading;
+ text-align: center;
+ font-weight: bold;
+ spacing: $base_padding * 2; // 12px
+ padding: $base_padding * 2 $base_padding * 3;
+ & > * { spacing: 8px; }
+ margin-bottom: 4em;
+
+ StIcon { icon-size:$large_icon_size;}
+
+ StLabel {
+ &:ltr { margin-right: 6px; }
+ &:rtl { margin-left: 6px; }
+ }
+
+ .level {
+ margin-bottom: 4px;
+ &:first-child { margin-bottom: 0px; }
+
+ height: $osd_levelbar_height;
+ min-width:$base_icon_size * 10;
+ -barlevel-height: $osd_levelbar_height;
+ -barlevel-background-color: transparentize($osd_fg_color, if($variant=='light', 0.7, 0.9));
+ -barlevel-active-background-color: $osd_fg_color;
+ -barlevel-overdrive-color: $destructive_color;
+ -barlevel-overdrive-separator-width: 3px;
+ &:ltr { margin-right: 6px; }
+ &:rtl { margin-left: 6px; }
+ }
+}
+
+// Monitor number label
+.osd-monitor-label {
+ @extend %osd_panel;
+ border-radius: $modal_radius;
+ font-size: 3em;
+ font-weight: bold;
+ margin: $base_margin * 3;
+ text-align: center;
+ min-width: 1.3em;
+}
+
+/* Pad OSD */
+.pad-osd-window {
+ padding: 32px;
+ background-color: transparentize(#000, 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;
+}
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 0000000..d8e70ea
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_overview.scss
@@ -0,0 +1,13 @@
+/* OVERVIEW */
+
+.controls-manager, .secondary-monitor-workspaces {
+ spacing: $base_padding * 2;
+}
+
+#overviewGroup {
+ background-color: $system_bg_color;
+}
+
+.overview-controls {
+ padding-bottom: 32px;
+}
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 0000000..fd3e7d2
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_panel.scss
@@ -0,0 +1,233 @@
+/* Top Bar */
+// a.k.a. the panel
+
+$panel_bg_color: #000;
+$panel_fg_color: if($variant == 'light', lighten($bg_color, 10%), darken($fg_color, 5%));
+$panel_height: 2.2em;
+$panel_transition_duration: 250ms; // same as the overview transition duration
+
+#panel {
+ background-color: $panel_bg_color;
+ font-weight: bold;
+ height: $panel_height;
+ @extend %numeric;
+ transition-duration: $panel_transition_duration;
+
+ // transparent panel on lock & login screens
+ &.unlock-screen,
+ &.login-screen,
+ &:overview {
+ background-color: transparent;
+ }
+
+ // panel menus
+ .panel-button {
+ font-weight: bold;
+ color: $panel_fg_color;
+ -natural-hpadding: $base_padding * 2;
+ -minimum-hpadding: $base_padding;
+ transition-duration: 150ms;
+ border: 3px solid transparent;
+ border-radius: 99px;
+
+ &.clock-display {
+ .clock {
+ transition-duration: 150ms;
+ border: 3px solid transparent;
+ border-radius: 99px;
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px $screenshot_ui_button_red;
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px $warning_color;
+ StBoxLayout { margin: 0 $base_padding; }
+ }
+
+ &.screen-recording-indicator,
+ &.screen-sharing-indicator {
+ StBoxLayout {
+ spacing: $base_padding;
+ }
+
+ StIcon {
+ icon-size: $base_icon_size;
+ }
+ }
+
+ &:active, &:overview, &:focus, &:checked {
+ box-shadow: inset 0 0 0 100px transparentize($panel_fg_color, 0.8);
+
+ // The clock display needs to have the background on .clock because
+ // we want to exclude the do-not-disturb indicator from the background
+ &.clock-display {
+ box-shadow: none;
+
+ .clock {
+ box-shadow: inset 0 0 0 100px transparentize($panel_fg_color, 0.8);
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($screenshot_ui_button_red, 0.15);
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($warning_color, 0.15);
+ }
+ }
+
+ &:hover {
+ box-shadow: inset 0 0 0 100px transparentize($panel_fg_color, 0.85);
+ &.clock-display {
+ box-shadow: none;
+ .clock {
+ box-shadow: inset 0 0 0 100px transparentize($panel_fg_color, 0.85);
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($screenshot_ui_button_red, 0.1);
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($warning_color, 0.1);
+ }
+ }
+
+ &:active:hover, &:overview:hover, &:focus:hover, &:checked:hover {
+ box-shadow: inset 0 0 0 100px transparentize($panel_fg_color, 0.75);
+ &.clock-display {
+ box-shadow: none;
+ .clock {
+ box-shadow: inset 0 0 0 100px transparentize($panel_fg_color, 0.75);
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($screenshot_ui_button_red, 0.2);
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($warning_color, 0.2);
+ }
+ }
+
+ // status area icons
+ .system-status-icon {
+ icon-size: $base_icon_size;
+ padding: $base_padding - 1px;
+ margin: 0 $base_margin;
+ }
+
+ .panel-status-indicators-box .system-status-icon,
+ .panel-status-menu-box .system-status-icon {
+ margin: 0;
+ }
+
+ // app menu icon
+ .app-menu-icon {
+ -st-icon-style: symbolic;
+ // dimensions of the icon are hardcoded
+ }
+
+ &#panelActivities {
+ -natural-hpadding: $base_padding * 3;
+ }
+ }
+
+ &.unlock-screen,
+ &.login-screen,
+ &:overview {
+ .panel-button {
+ &:active, &:overview, &:focus, &:checked {
+ box-shadow: inset 0 0 0 100px rgba(255,255,255, 0.15);
+
+ &.clock-display {
+ box-shadow: none;
+
+ .clock {
+ box-shadow: inset 0 0 0 100px rgba(255,255,255, 0.15);
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($screenshot_ui_button_red, 0.15);
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($warning_color, 0.15);
+ }
+ }
+
+ &:hover {
+ box-shadow: inset 0 0 0 100px rgba(255,255,255, 0.10);
+ &.clock-display {
+ box-shadow: none;
+ .clock {
+ box-shadow: inset 0 0 0 100px rgba(255,255,255, 0.10);
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($screenshot_ui_button_red, 0.1);
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($warning_color, 0.1);
+ }
+ }
+
+ &:active:hover, &:overview:hover, &:focus:hover, &:checked:hover {
+ box-shadow: inset 0 0 0 100px rgba(255,255,255, 0.2);
+ &.clock-display {
+ box-shadow: none;
+ .clock {
+ box-shadow: inset 0 0 0 100px rgba(255,255,255, 0.2);
+ }
+ }
+
+ &.screen-recording-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($screenshot_ui_button_red, 0.2);
+ }
+ &.screen-sharing-indicator {
+ box-shadow: inset 0 0 0 100px transparentize($warning_color, 0.2);
+ }
+ }
+ }
+ }
+
+ .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;
+ }
+
+ // indicator for active
+ .screencast-indicator,
+ .remote-access-indicator { color: $warning_color; }
+}
+
+// App Menu
+#appMenu {
+ spacing: $base_padding;
+ .label-shadow { color: transparent; }
+}
+
+#appMenu .panel-status-menu-box {
+ padding: 0 $base_padding;
+ spacing: $base_padding;
+}
+
+
+// Clock
+
+.clock-display-box {
+ spacing: 2px;
+
+ .clock {
+ padding-left: $base_padding * 2;
+ padding-right: $base_padding * 2;
+ }
+}
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 0000000..138a4fc
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_popovers.scss
@@ -0,0 +1,182 @@
+/* Popovers/Menus */
+
+// the popover itself
+.popup-menu-boxpointer {
+ -arrow-rise: $base_margin+2px; // distance from the panel & screen edge
+}
+
+// container of the popover menu
+.popup-menu {
+ min-width: 15em;
+ color: $fg_color;
+
+ //.popup-status-menu-item {font-weight: normal; color: pink;} //dunno what that is
+ &.panel-menu {
+ margin-bottom: 1.75em; // so it doesn't touch the bottom of the screen
+ }
+}
+
+// popover content
+.popup-menu-content {
+ padding: $base_padding;
+ border-radius: $modal_radius*1.25;
+ border: 1px solid $borders_edge;
+ box-shadow: 0 2px 4px 0 $shadow_color;
+ background-color: $bg_color;
+}
+
+// menu items
+.popup-menu-item {
+ padding: $base_padding*1.5 $base_padding*2;
+ border-radius: $base_border_radius*1.5;
+ spacing: $base_padding;
+ transition-duration: 100ms;
+ background-color: transparent;
+
+ &:ltr {padding-left: $base_padding;}
+ &:rtl {padding-right: $base_padding;}
+
+ &:focus, &:hover {
+ background-color: $hover_bg_color !important;
+ &:active { background-color: $active_bg_color !important;}
+ }
+
+ &:checked {background-color: $checked_bg_color !important;}
+
+ &:checked {
+ margin-bottom: 0;
+ box-shadow: inset 0 -1px 0 0 darken($checked_bg_color, 5%);
+ border-radius: $base_border_radius $base_border_radius 0 0;
+ &:focus,&:hover { background-color: lighten($checked_bg_color, 3%) !important;}
+ &:active { background-color: lighten($checked_bg_color, 5%) !important;}
+ }
+
+ &:active {
+ background-color: lighten($active_bg_color, 5%);
+ color: $active_fg_color;
+ }
+
+ &:insensitive {color: transparentize($fg_color,0.5);}
+
+ // add margin to switches in menu items
+ .toggle-switch {
+ &:ltr { margin-left: $base_margin;}
+ &:rtl { margin-right: $base_margin;}
+ }
+}
+
+
+// all other graphical elements (sliders)
+.popup-inactive-menu-item {
+ color: $fg_color;
+ &:insensitive { color: $insensitive_fg_color; }
+}
+
+// symbolic icons in popover
+.popup-menu-arrow,
+.popup-menu-icon {
+ icon-size: 16px !important; // for some reason the variable doesn't work here
+}
+
+.popup-menu-arrow {
+}
+
+
+// popover submenus
+.popup-sub-menu {
+ background-color: $checked_bg_color;
+ border-radius: 0 0 $base_border_radius $base_border_radius;
+
+ .popup-menu-ornament {
+ min-width: $base_icon_size !important;
+ }
+
+ // submenu specific styles
+ .popup-menu-item {
+ border-radius: 0;
+ margin: 0;
+
+ &:last-child {
+ border-radius: 0 0 $base_border_radius $base_border_radius;
+ }
+
+ &:focus,&:hover { background-color: $hover_bg_color !important;}
+ &:checked {
+ background-color: $checked_bg_color !important;
+ &:focus,&:hover { background-color: lighten($checked_bg_color, 8%) !important;}
+ }
+ &:active { background-color: $active_bg_color !important;}
+ }
+
+ .popup-menu-section {
+ .popup-menu-item:last-child {
+ &:hover,&:focus { border-radius: 0;}
+ }
+ &:last-child .popup-menu-item:last-child {
+ border-radius: 0 0 $base_border_radius $base_border_radius;
+ }
+ }
+}
+
+// container for radio and check boxes
+.popup-menu-ornament {
+ @extend %heading;
+ width: 1.2em;
+ text-align: center !important;
+
+ &:ltr { text-align: right;}
+ &:rtl { text-align: left;}
+}
+
+// separator
+.popup-separator-menu-item {
+ margin: 6px 0;
+ padding:0 !important;
+ &:ltr { margin-right: $base_margin;}
+ &:rtl { margin-left: $base_margin;}
+
+ .popup-separator-menu-item-separator {
+ height: 1px; //not really the whole box
+ background-color: $borders_color;
+ }
+
+ .popup-menu-ornament {
+ width: 0 !important;
+ }
+
+ // separators in submenus
+ .popup-sub-menu & {
+ background-color: transparent;
+
+ // account for ornament
+ &:ltr { margin-right: 2.5em;}
+ &:rtl { margin-left: 2.5em;}
+
+ .popup-separator-menu-item-separator {
+ background-color: lighten($borders_color, 7%);
+ }
+ }
+}
+
+// desktop background menu
+.background-menu {
+ -boxpointer-gap: 0px;
+ -arrow-rise: 0px; // hide the beak on the menu
+}
+
+// right-click (and panel) app menu
+.app-menu {
+ max-width: 27.25em;
+
+ // this is unneeded at the top-level in this menu, hide it
+ .popup-menu-ornament { width: 0 !important; }
+
+ .popup-inactive-menu-item:first-child {
+ // "Open Windows" label
+ > StLabel {
+ @extend %caption_heading;
+ &:ltr {margin-right: $base_margin*2;}
+ &:rtl {margin-left: $base_margin*2;}
+ }
+ }
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_quick-settings.scss b/data/theme/gnome-shell-sass/widgets/_quick-settings.scss
new file mode 100644
index 0000000..b429a2d
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_quick-settings.scss
@@ -0,0 +1,118 @@
+.quick-settings {
+ padding: $base_padding*3;
+ border-radius: $modal_radius*2.25;
+
+ .icon-button, .button {
+ padding: $base_padding*1.75;
+ }
+}
+
+.quick-settings-grid {
+ spacing-rows: $base_padding*2;
+ spacing-columns: $base_padding*2;
+}
+
+.quick-toggle {
+ border-radius: 99px;
+ min-width: 12em;
+ max-width: 12em;
+ min-height: 40px;
+ border:none;
+
+ &:checked { @include button(default); }
+
+ & > StBoxLayout { spacing: $base_padding; }
+
+ /* Move padding into the box; this is to allow menu arrows
+ to extend to the border */
+ &.button { padding: 0; }
+ & > StBoxLayout { padding: 0 $base_padding*2; }
+ &:ltr > StBoxLayout { padding-left: $base_padding*2.5; }
+ &:rtl > StBoxLayout { padding-right: $base_padding*2.5; }
+
+ .quick-toggle-label { font-weight: bold; }
+ .quick-toggle-icon, .quick-toggle-arrow { icon-size: $base_icon_size; }
+}
+
+.quick-menu-toggle {
+ &:ltr > StBoxLayout { padding-right: 0; }
+ &:rtl > StBoxLayout { padding-left: 0; }
+
+ & .quick-toggle-arrow {
+ background-color: transparentize($fg_color, 0.9);
+ padding: $base_padding $base_padding*1.75;
+
+ &:ltr { border-radius: 0 99px 99px 0; }
+ &:rtl { border-radius: 99px 0 0 99px; }
+ }
+}
+
+.quick-slider {
+ & > StBoxLayout { spacing: $base_padding; }
+
+ .slider-bin {
+ &:focus {@include button(focus);}
+ min-height: 16px; // slider size
+ padding: $base_padding;
+ border-radius: 99px;
+ }
+ .quick-toggle-icon {
+ icon-size: $base_icon_size;
+
+ &:ltr { margin-left: $base_padding; }
+ &:rtl { margin-right: $base_padding; }
+ }
+}
+
+.quick-toggle-menu {
+ background-color: $card_bg_color;
+ border-radius: $base_border_radius*3;
+ padding: $base_padding*2;
+ margin: $base_padding*2 $base_padding*3 0;
+
+ .popup-menu-item > StIcon { -st-icon-style: symbolic; }
+
+ & .header {
+ spacing-rows: 0.5 * $base_padding;
+ spacing-columns: $base_padding*2;
+ padding-bottom: 2 * $base_padding;
+
+ & .icon {
+ icon-size: $base_icon_size*1.5; // a non-standard symbolic size but ok
+ border-radius: 999px;
+ padding: 1.5 * $base_padding;
+ background-color: lighten($bg_color, 10%);
+
+ &.active { background-color: $selected_bg_color; }
+ }
+
+ & .title {
+ @extend %title_3;
+ }
+
+ & .subtitle {
+ @extend %caption_heading;
+ }
+ }
+}
+
+.quick-toggle-menu-container {
+}
+
+.quick-settings-system-item {
+ & > StBoxLayout { spacing: 2 * $base_padding; }
+
+ & .power-item {
+ min-height: 0;
+ min-width: 0;
+
+ &:insensitive {
+ @include button(normal);
+ background-color: transparent;
+ }
+ }
+}
+
+.nm-network-item {
+ .wireless-secure-icon { icon-size: 0.5 * $base_icon_size; }
+}
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 0000000..a459ba1
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_screen-shield.scss
@@ -0,0 +1,78 @@
+/* Screen Shield */
+
+.unlock-dialog-clock {
+ color: white;
+ font-weight: 300;
+ text-align: center;
+ spacing: 24px;
+ padding-bottom: 2.5em;
+}
+
+.unlock-dialog-clock-time {
+ font-size: 64pt;
+ padding-top: 42px;
+ @extend %numeric;
+}
+
+.unlock-dialog-clock-date {
+ font-size: 16pt;
+ font-weight: normal;
+}
+
+.unlock-dialog-clock-hint {
+ font-weight: normal;
+ padding-top: 48px;
+}
+
+.unlock-dialog-notifications-container {
+ margin: 12px;
+ spacing: 6px;
+ width: 23em;
+ background-color: transparent;
+
+ .summary-notification-stack-scrollview {
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .notification,
+ .unlock-dialog-notification-source {
+ padding: 12px 16px;
+ border: none;
+ background-color: transparentize($osd_fg_color,0.9);
+ color: $osd_fg_color;
+ border-radius: $modal_radius;
+
+ &.critical { background-color: transparentize($osd_fg_color,0.8) }
+ }
+}
+
+.unlock-dialog-notification-label {
+ padding-left: 12px;
+ padding-right: 0;
+ &:rtl { padding-right: 12px; padding-left: 0; }
+}
+
+.unlock-dialog-notification-count-text {
+ font-weight: bold;
+ padding: 0 12px;
+ color: $osd_fg_color;
+ background-color: transparentize($osd_fg_color, 0.9);
+ border-radius: 99px;
+}
+
+.screen-shield-background { //just the shadow, really
+ background: black;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.6);
+}
+
+#lockDialogGroup {
+ background-color: $system_bg_color;
+}
+#unlockDialogNotifications {
+ 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); }
+ }
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_screenshot.scss b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
new file mode 100644
index 0000000..150f273
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
@@ -0,0 +1,204 @@
+// Screenshot UI
+.icon-label-button-container {
+ spacing: $base_padding;
+ @extend %caption;
+
+ StIcon { icon-size: 32px;}
+}
+
+$screenshot_ui_panel_padding: $base_padding*3;
+$screenshot_ui_shot_cast_margin: 21px;
+$screenshot_ui_panel_border_radius: $modal_radius + $screenshot_ui_shot_cast_margin;
+$screenshot_ui_shot_cast_spacing: 3px;
+
+$screenshot_ui_button_red: $error_color;
+
+.screenshot-ui-panel {
+ @extend %osd_panel;
+ border-radius: $screenshot_ui_panel_border_radius;
+ padding: $screenshot_ui_panel_padding;
+ // Reduce the bottom padding a little to accommodate the large capture button.
+ padding-bottom: $screenshot_ui_panel_padding - 6px;
+ margin-bottom: 4em;
+ spacing: $base_padding * 2;
+}
+
+.screenshot-ui-close-button {
+ @extend .window-close; // copy window close button
+ padding: $base_padding !important; // but with more padding
+ margin-top: 12px;
+ box-shadow: 0 2px 4px 0 $shadow_color;
+ &.left { margin-left: 12px;}
+ &.right { margin-right: 12px;}
+}
+
+.screenshot-ui-type-button {
+ @extend %osd_button;
+ min-width: 48px;
+ padding: $base_padding * 2 $base_padding * 3 !important;
+ border-radius: $screenshot_ui_panel_border_radius - $screenshot_ui_panel_padding;
+}
+
+.screenshot-ui-capture-button {
+ width: 36px;
+ height: 36px;
+ border-radius: 99px;
+ border: 4px $osd_fg_color;
+ padding: 4px;
+
+ .screenshot-ui-capture-button-circle {
+ background-color: $osd_fg_color;
+ transition-duration: 200ms;
+ &:hover, &:focus { background-color: $hover_bg_color;}
+ border-radius: 99px;
+ }
+
+ &:hover, &:focus {
+ .screenshot-ui-capture-button-circle {
+ background-color: darken($osd_fg_color, 15%);
+ }
+ }
+
+ &:active {
+ .screenshot-ui-capture-button-circle {
+ background-color: darken($osd_fg_color, 50%);
+ }
+ }
+
+ &:cast {
+ .screenshot-ui-capture-button-circle {
+ background-color: $screenshot_ui_button_red;
+ }
+ &:hover, &:focus {
+ .screenshot-ui-capture-button-circle {
+ background-color: lighten($screenshot_ui_button_red, 5%);
+ }
+ }
+ &:active {
+ .screenshot-ui-capture-button-circle {
+ background-color: darken($screenshot_ui_button_red, 7%);
+ }
+ }
+ }
+}
+
+.screenshot-ui-shot-cast-container {
+ background-color: lighten($osd_bg_color,5%);
+ border-radius: $modal_radius;
+ padding: $screenshot_ui_shot_cast_spacing;
+ spacing: $screenshot_ui_shot_cast_spacing;
+
+ &:ltr { margin-left: $screenshot_ui_shot_cast_margin - $screenshot_ui_panel_padding;}
+ &:rtl { margin-right: $screenshot_ui_shot_cast_margin - $screenshot_ui_panel_padding;}
+}
+
+.screenshot-ui-shot-cast-button {
+ padding: $base_padding $base_padding*2;
+ background-color: transparent;
+ &:hover, &:focus { background-color: lighten($osd_bg_color, 10%);}
+ &:active { background-color: lighten($active_bg_color,5%);}
+ &:checked { background-color: white;color: black;}
+ &:insensitive { color: transparentize($osd_fg_color, 0.5);}
+
+ border-radius: $modal_radius - $screenshot_ui_shot_cast_spacing;
+
+ StIcon { icon-size: $base_icon_size;}
+}
+
+.screenshot-ui-show-pointer-button {
+ @extend %osd_button;
+ border-radius: 99px;
+ padding: $base_padding * 2 !important;
+ StIcon { icon-size: $base_icon_size;}
+}
+
+.screenshot-ui-area-indicator-shade {
+ background-color: rgba(0,0,0,.3);
+}
+
+.screenshot-ui-area-selector {
+ .screenshot-ui-area-indicator-shade {
+ background-color: rgba(0,0,0,.5);
+ }
+
+ .screenshot-ui-area-indicator-selection {
+ border: 2px white;
+ }
+}
+
+.screenshot-ui-area-selector-handle {
+ border-radius: 99px;
+ background-color: white;
+ box-shadow: 0 1px 3px 2px rgba(0,0,0,0.2);
+ width: 24px;
+ height: 24px;
+}
+
+.screenshot-ui-window-selector {
+ background-color: $system_bg_color;
+
+ .screenshot-ui-window-selector-window-container {
+ margin: 100px;
+ }
+
+ &:primary-monitor {
+ .screenshot-ui-window-selector-window-container {
+ // Make some room for the panel.
+ margin-bottom: 200px;
+ }
+ }
+}
+
+.screenshot-ui-window-selector-window-border {
+ transition-duration: 200ms;
+ border-radius: $modal_radius;
+ border: 6px transparent;
+}
+
+.screenshot-ui-window-selector-check {
+ transition-duration: 200ms;
+ color: transparent;
+ border-radius: 99px;
+ border-width: 12px;
+ icon-size: 24px;
+}
+
+.screenshot-ui-window-selector-window {
+ &:hover {
+ .screenshot-ui-window-selector-window-border {
+ border-color: darken($selected_bg_color, 15%);
+ }
+ }
+ &:checked {
+ .screenshot-ui-window-selector-window-border {
+ border-color: $selected_bg_color;
+ background-color: transparentize($selected_bg_color, 0.8);
+ }
+
+ .screenshot-ui-window-selector-check {
+ color: $selected_fg_color;
+ background-color: $selected_bg_color;
+ }
+ }
+}
+
+.screenshot-ui-screen-selector {
+ transition-duration: 200ms;
+ background-color: rgba(0,0,0,.5);
+
+ &:hover { background-color: rgba(0,0,0,.3);}
+ &:active { background-color: rgba(0,0,0,.7);}
+ &:checked {
+ background-color: transparent;
+ border: 2px white;
+ }
+}
+
+.screenshot-ui-tooltip {
+ color: $osd_fg_color;
+ background-color: $osd_bg_color;
+ border-radius: 99px;
+ padding: $base_padding $base_padding * 2;
+ text-align: center;
+ -y-offset: 24px;
+}
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 0000000..77cde65
--- /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: 8px;
+ min-height: 8px;
+ }
+
+ StBin#trough {
+ border-radius: 0;
+ background-color: transparent;
+ }
+
+ StButton#vhandle, StButton#hhandle {
+ border-radius: 8px;
+ background-color: mix($fg_color, $bg_color, 30%);
+ border: 3px solid transparent; //would be nice to margin or at least to transparent
+ transition: 500ms all ease;
+ &:hover {background-color: mix($fg_color, $bg_color, 50%);}
+ &:active {background-color: mix($fg_color, $bg_color, 40%);}
+ }
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_search-entry.scss b/data/theme/gnome-shell-sass/widgets/_search-entry.scss
new file mode 100644
index 0000000..faca50e
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_search-entry.scss
@@ -0,0 +1,26 @@
+// Search entry
+
+$search_entry_width: 320px;
+$search_entry_height: 36px;
+
+%search_entry,
+.search-entry {
+ border-radius: $search_entry_height * 0.5; // half the height
+
+ margin-top: $base_padding * 2;
+ margin-bottom: $base_padding;
+ padding: $base_padding+1 $base_padding+3;
+ width: $search_entry_width;
+
+ @include entry(normal);
+ &:hover { @include entry(hover);}
+ &:focus { @include entry(focus);}
+ &:insensitive { @include entry(insensitive);}
+
+ .search-entry-icon {
+ color: inherit;
+ icon-size: $base_icon_size;
+ margin-top: 2px; // center vertically
+ padding: 0 4px;
+ }
+}
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 0000000..644c53d
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_search-results.scss
@@ -0,0 +1,96 @@
+/* Search */
+
+// search overview container
+#searchResults {
+ margin: 0 $base_margin;
+}
+
+#searchResultsContent {
+ max-width: 1072px;
+}
+
+// search results sections "the boxes"
+.search-section {
+ // This should be equal to #searchResultsContent spacing
+ spacing: $base_padding*3;
+
+ // separator (unstyled)
+ .search-section-separator {
+ height: $base_margin*2; // use it as a spacer
+ background-color: transparent;
+ }
+}
+
+// content
+.search-section-content {
+ background-color: lighten($system_bg_color, 5%);
+ border-radius: $modal_radius*1.5;
+ border: 1px solid $osd_outer_borders_color;
+ color: $osd_fg_color;
+ padding: $base_padding*2;
+ margin:0 $base_margin*3;
+}
+
+%search_section_content_item {
+ @include tile_button($osd_fg_color);
+ border-radius: $base_border_radius+3px;
+}
+
+// "no results" text
+.search-statustext {
+ @extend %title_1;
+}
+
+.grid-search-results {
+ spacing: $base_padding*5;
+ margin:0 $base_margin*3;
+}
+
+// Search results with icons
+.grid-search-result {
+ @extend .app-well-app;
+}
+
+// search result provider
+.search-provider-icon {
+ @extend %search_section_content_item;
+ &:ltr {margin-right: $base_margin;}
+ &:rtl {margin-left: $base_margin;}
+
+ // content
+ .list-search-provider-content {
+ spacing: $base_padding * 2;
+
+ // provider labels
+ .list-search-provider-details {
+ width: 120px;
+ color: $osd_fg_color;
+ }
+ }
+}
+
+// search results list
+.list-search-results {
+ spacing: $base_padding;
+}
+
+// search result listitem
+.list-search-result {
+ @extend %search_section_content_item;
+
+ // content
+ .list-search-result-content {
+ spacing: $base_padding;
+ }
+
+ // list item title (with leading icon)
+ .list-search-result-title {
+ spacing: $base_padding * 2;
+ // font-weight: bold;
+ }
+
+ // list item description
+ .list-search-result-description {
+ color: $osd_insensitive_fg_color;
+ }
+}
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 0000000..500249a
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_slider.scss
@@ -0,0 +1,22 @@
+/* Slider */
+
+$slider_size: 16px;
+
+.slider {
+ // slider trough
+ -barlevel-height: 4px;
+ -barlevel-background-color: if($variant == 'light', transparentize($fg_color, 0.6), transparentize($fg_color, 0.8)); //background of the trough
+ -barlevel-border-width: 2px;
+ -barlevel-border-color: transparent; // trough border color
+ // fill style
+ -barlevel-active-background-color: $selected_bg_color;
+ -barlevel-active-border-color: transparent;
+ // overfill style (red in this case)
+ -barlevel-overdrive-color: $destructive_color;
+ -barlevel-overdrive-border-color: transparent; //trough border when red;
+ -barlevel-overdrive-separator-width:1px;
+ // slider handler
+ -slider-handle-radius: $slider_size * 0.5; // half the size of the size
+ -slider-handle-border-width: 0;
+ -slider-handle-border-color: transparent; // because 0 width
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_switcher-popup.scss b/data/theme/gnome-shell-sass/widgets/_switcher-popup.scss
new file mode 100644
index 0000000..cec6c9a
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_switcher-popup.scss
@@ -0,0 +1,72 @@
+/* App Switcher */
+
+// same as dash
+$switcher_padding: $base_padding + 4px; // 10px
+$switcher_border_radius: $modal_radius + 8px;
+
+
+// the full screen container of the switcher
+.switcher-popup {
+ padding: 0;
+ spacing: $base_padding * 4;
+}
+
+// switcher onscreen panel
+.switcher-list {
+ @extend %osd_panel;
+ padding: $switcher_padding;
+ border-radius: $switcher_border_radius;
+ box-shadow: 0 8px 8px 0 rgba(0,0,0,0.1);
+
+ // container for items in list
+ .switcher-list-item-container {
+ spacing: $base_padding * 2;
+ }
+
+ // each item in the list
+ .item-box {
+ @include tile_button($osd_fg_color);
+ // override over style so mouse doesn't steal focus
+ &:hover {background: none;}
+ }
+
+ .separator {
+ width: 1px;
+ background: $borders_color;
+ }
+
+ // container of thumbnails
+ .thumbnail-box {
+ padding: 2px;
+ spacing: $base_padding;
+ }
+
+ // window thumbnail itself
+ .thumbnail {
+ width: 256px; // equal to THUMBNAIL_DEFAULT_SIZE in altTab.js
+ border-radius:$base_border_radius;
+ }
+}
+
+// arrow if app has multiple windows
+.switcher-arrow {
+ border-color: transparentize($osd_fg_color, 0.2);
+ color: transparentize($osd_fg_color, 0.2);
+
+ &:highlighted {
+ border-color: $osd_fg_color;
+ color: $osd_fg_color;
+ }
+}
+
+// Input Source Switcher
+.input-source-switcher-symbol {
+ font-size: 34pt;
+ width: 96px;
+ height: 96px;
+}
+
+// Window cycler highlight
+.cycler-highlight {
+ border: 5px solid $selected_bg_color;
+}
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 0000000..b6d8fe8
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_switches.scss
@@ -0,0 +1,16 @@
+/* Switches */
+
+// these are equal to the size of the SVG assets
+$switch_height: 26px;
+$switch_width: 48px;
+
+.toggle-switch {
+ color: $fg_color;
+ height: $switch_height;
+ width: $switch_width;
+ background-size: contain;
+ background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-off-light.svg"),url("resource:///org/gnome/shell/theme/toggle-off.svg"));
+ &:checked {
+ background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-on-light.svg"),url("resource:///org/gnome/shell/theme/toggle-on.svg"));
+ }
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_window-picker.scss b/data/theme/gnome-shell-sass/widgets/_window-picker.scss
new file mode 100644
index 0000000..9067a6d
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_window-picker.scss
@@ -0,0 +1,53 @@
+/* Window Picker */
+
+$window_picker_spacing: $base_padding; // 6px
+$window_picker_padding: $base_padding * 2; // 12px
+
+$window_thumbnail_label_color: transparentize($osd_bg_color, 0.4);
+
+$window_close_button_color: transparentize(lighten($osd_bg_color, 7%), .02);
+$window_close_button_size: 30px;
+$window_close_button_padding: 3px;
+
+// Window picker
+.window-picker {
+ // Space between window thumbnails
+ spacing: $window_picker_spacing;
+}
+
+// Window titles
+.window-caption {
+ color: $osd_fg_color;
+ background-color: lighten($osd_bg_color, 5%);
+ border-radius: 99px;
+ padding: $base_padding $base_padding * 2;
+}
+
+// Close button
+.window-close {
+ background-color: $window_close_button_color;
+ color: $osd_fg_color;
+ border-radius: 99px;
+ box-shadow: 0 2px 4px 0 $shadow_color;
+ padding: $window_close_button_padding;
+ height: $window_close_button_size;
+ width: $window_close_button_size;
+ transition-duration: 100ms;
+
+ & StIcon { icon-size: 24px; } // uses non standard icon size
+
+ &:hover {
+ background-color: lighten($window_close_button_color, 7%);
+ }
+
+ &:active {
+ background-color: lighten($window_close_button_color, 13%);
+ }
+}
+
+.workspace-background {
+ // keep in sync with BACKGROUND_CORNER_RADIUS_PIXELS in workspace.js
+ border-radius: 30px;
+ background-color: $invisible_occluded_bg_color;
+ box-shadow: 0 4px 16px 4px transparentize(darken($osd_bg_color, 30%), 0.7);
+}
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 0000000..f06130b
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_workspace-switcher.scss
@@ -0,0 +1,25 @@
+/* Workspace Switcher */
+
+$ws_indicator_height: $large_icon_size;
+$ws_dot_active: $ws_indicator_height / 3;
+$ws_dot_inactive: $ws_indicator_height / 6;
+
+.workspace-switcher {
+ @extend %osd_panel;
+ margin-bottom: 4em;
+ spacing: $base_padding * 2;
+ padding: $base_padding * 2 $base_padding * 3;
+}
+
+.ws-switcher-indicator {
+ background-color: transparentize($osd_fg_color,0.5);
+ padding: $ws_dot_inactive / 2;
+ margin: ($ws_indicator_height - $ws_dot_inactive) / 2;
+ border-radius: $ws_indicator_height;
+
+ &:active {
+ background-color: $osd_fg_color;
+ padding: $ws_dot_active / 2;
+ margin: ($ws_indicator_height - $ws_dot_active) / 2;
+ }
+}
diff --git a/data/theme/gnome-shell-sass/widgets/_workspace-thumbnails.scss b/data/theme/gnome-shell-sass/widgets/_workspace-thumbnails.scss
new file mode 100644
index 0000000..0a1867c
--- /dev/null
+++ b/data/theme/gnome-shell-sass/widgets/_workspace-thumbnails.scss
@@ -0,0 +1,28 @@
+/* Workspace pager */
+
+// thumbnails in overview
+.workspace-thumbnails {
+ visible-width: 32px; //amount visible before hover
+ spacing: $base_padding;
+ padding: $base_padding;
+
+ .workspace-thumbnail {
+ @extend %overview_panel;
+ border-radius: 3px;
+ }
+
+ // drag and drop indicator
+ .placeholder {
+ background-image: url("resource:///org/gnome/shell/theme/workspace-placeholder.svg");
+ background-size: contain;
+ width: 18px;
+ }
+}
+
+// selected indicator
+.workspace-thumbnail-indicator {
+ border: 3px solid $selected_bg_color;
+ border-radius: 3px;
+ padding: 0px;
+ // background-color: transparentize($selected_bg_color, 0.9);
+}