Update gdm theme

This commit is contained in:
vinceliuice
2025-08-05 16:32:59 +08:00
parent 542635d206
commit 348f7b2ed8
65 changed files with 19630 additions and 75 deletions

BIN
MacTahoe-day.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

View File

@@ -195,20 +195,6 @@ Usage: `./tweaks.sh [OPTIONS...]`
```bash
OPTIONS:
-o, --opacity [normal|solid]
Set 'WhiteSur' GDM/Flatpak theme opacity variants. Default is 'normal'
-c, --color [light|dark]
Set 'WhiteSur' GDM/Flatpak theme color variants. Default is 'light'
-t, --theme [default|blue|purple|pink|red|orange|yellow|green|grey]
Set 'WhiteSur' GDM/Flatpak theme accent color. Default is BigSur-like theme
-s, --scheme [standard|nord]
Set 'WhiteSur' GDM/Flatpak theme colorscheme style. Default is 'standard'
Tweaks for GDM theme. options
-g, --gdm Without options default GDM theme will install...
@@ -227,12 +213,20 @@ OPTIONS:
7. -nb, -noblur Don't blur 'WhiteSur' GDM theme background image
8. -o, --opacity [normal|solid] Set 'WhiteSur' GDM theme opacity variants Default is 'normal'
9. -c, --color [Light|Dark] Set 'WhiteSur' GDM theme color variants Default is 'dark'
10. -t, --theme [default|blue|purple|pink|red|orange|yellow|green|grey] Set 'WhiteSur' GDM theme accent color Default is 'blue'
11. -s, --scheme [standard|nord] Set 'WhiteSur' GDM theme colorscheme style Default is 'standard'
Tweaks for firefox. options
-f, --firefox [(monterey|flat)|alt|(darker|adaptive)] Without options default WhiteSur theme will install... Options:
1. monterey [3+3|3+4|3+5|4+3|4+4|4+5|5+3|5+4|5+5] Topbar buttons number: 'a+b' a: left side buttons number, b: right side buttons number
1. monterey [3+3|3+4|3+5|4+3|4+4|4+5|5+3|5+4|5+5] Topbar buttons (not window control buttons) number: 'a+b' a: left side buttons number, b: right side buttons number
2. flat Monterey alt version Flat round tabs...
@@ -256,7 +250,7 @@ OPTIONS:
2. -c, --color [Light|Dark] Set 'WhiteSur' flatpak theme color variants Default is 'light'
3. -t, --theme [default|blue|purple|pink|red|orange|yellow|green|grey] Set 'WhiteSur' flatpak theme accent color Default is BigSur-like theme
3. -t, --theme [default|blue|purple|pink|red|orange|yellow|green|grey] Set 'WhiteSur' flatpak theme accent color Default is 'blue'
4. -s, --scheme [standard|nord] Set 'WhiteSur' flatpak theme colorscheme style Default is 'standard'

View File

@@ -4,7 +4,7 @@
# WARNING: Don't use "cd" in this shell, use it in a subshell instead,
# for example ( cd blabla && do_blabla ) or $( cd .. && do_blabla )
set -Eeo pipefail
set -o pipefail
if [[ ! "${REPO_DIR}" ]]; then
echo "Please define 'REPODIR' variable"; exit 1
@@ -89,6 +89,7 @@ POP_OS_GR_FILE="/usr/share/gnome-shell/theme/Pop/gnome-shell-theme.gresource"
ZORIN_GR_FILE="/usr/share/gnome-shell/theme/ZorinBlue-Light/gnome-shell-theme.gresource"
MISC_GR_FILE="/usr/share/gnome-shell/gnome-shell-theme.gresource"
GS_GR_XML_FILE="${THEME_SRC_DIR}/main/gnome-shell/gnome-shell-theme.gresource.xml"
GDM_GR_XML_FILE="${THEME_SRC_DIR}/other/gdm/gnome-shell-theme.gresource.xml"
#-------------Theme---------------#
THEME_NAME="WhiteSur"
@@ -119,6 +120,10 @@ panel_size="${PANEL_SIZE_VARIANTS[0]}"
nautilus_style="${NAUTILUS_STYLE_VARIANTS[0]}"
background="blank"
compact="true"
# Firefox values
adaptive=''
theme_name="$THEME_NAME"
firefoxtheme="$THEME_NAME"
left_button="3"
right_button="3"
@@ -394,8 +399,7 @@ dialogify() {
}
helpify_title() {
printf "${c_cyan}%s${c_blue}%s ${c_green}%s\n\n" "Usage: " "$0" "[OPTIONS...]"
printf "${c_cyan}%s\n" "OPTIONS:"
printf "${c_cyan}%s${c_blue}%s ${c_green}%s \n" " Usage: " "$0" "[OPTION]"
}
helpify() {

View File

@@ -322,29 +322,44 @@ install_flatpak_deps() {
install_beggy() {
local CONVERT_OPT=""
local BLUR_INFO="Not Blur"
local DARK_INFO="Not Darken"
[[ "${no_blur}" == "false" ]] && CONVERT_OPT+=" -scale 1280x -blur 0x50 "
[[ "${no_darken}" == "false" ]] && CONVERT_OPT+=" -fill black -colorize 45% "
if [[ "${no_blur}" == "false" ]]; then
CONVERT_OPT+=" -scale 1280x -blur 0x50 "
BLUR_INFO="Blur"
fi
if [[ "${no_darken}" == "false" ]]; then
CONVERT_OPT+=" -fill black -colorize 45% "
DARK_INFO="Darken"
fi
case "${background}" in
blank)
cp -r "${THEME_SRC_DIR}/assets/gnome-shell/backgrounds/background-blank.png" "${WHITESUR_TMP_DIR}/beggy.png" ;;
default)
if [[ "${no_blur}" == "false" && "${no_darken}" == "true" ]]; then
prompt -i "Installed $BLUR_INFO but $DARK_INFO background! \n"
cp -r "${THEME_SRC_DIR}/assets/gnome-shell/backgrounds/background-blur.png" "${WHITESUR_TMP_DIR}/beggy.png"
elif [[ "${no_blur}" == "false" && "${no_darken}" == "false" ]]; then
prompt -i "Installed $BLUR_INFO and $DARK_INFO background! \n"
cp -r "${THEME_SRC_DIR}/assets/gnome-shell/backgrounds/background-blur-darken.png" "${WHITESUR_TMP_DIR}/beggy.png"
elif [[ "${no_blur}" == "true" && "${no_darken}" == "true" ]]; then
prompt -i "Installed $BLUR_INFO and $DARK_INFO background! \n"
cp -r "${THEME_SRC_DIR}/assets/gnome-shell/backgrounds/background-default.png" "${WHITESUR_TMP_DIR}/beggy.png"
else
prompt -i "Installed $BLUR_INFO but $DARK_INFO background! \n"
cp -r "${THEME_SRC_DIR}/assets/gnome-shell/backgrounds/background-darken.png" "${WHITESUR_TMP_DIR}/beggy.png"
fi
;;
*)
if [[ "${no_blur}" == "false" || "${darken}" == "true" ]]; then
if [[ "${no_blur}" == "false" || "${darken}" == "false" ]]; then
install_beggy_deps
prompt -i "Installed Custome $BLUR_INFO $DARK_INFO ${background} picture for background! \n"
convert "${background}" ${CONVERT_OPT} "${WHITESUR_TMP_DIR}/beggy.png"
else
prompt -i "Installed Custome ${background} picture for background! \n"
cp -r "${background}" "${WHITESUR_TMP_DIR}/beggy.png"
fi
;;
@@ -629,12 +644,13 @@ install_gdm_theme() {
local TARGET=
# Let's go!
install_theme_deps
rm -rf "${WHITESUR_GS_DIR}"; install_beggy
gtk_base && shell_base
install_theme_deps; install_beggy
gtk_base && shell_base "${colors[1]}" "${opacities[0]}" "${alts[0]}" "${themes[0]}" "${schemes[0]}"
if check_theme_file "${COMMON_CSS_FILE}"; then # CSS-based theme
install_shelly "${colors[0]}" "${opacities[0]}" "${alts[0]}" "${themes[0]}" "${schemes[0]}" "${icon}" "${WHITESUR_GS_DIR}"
rm -rf "${WHITESUR_GS_DIR}"
install_shelly "${colors[1]}" "${opacities[0]}" "${alts[0]}" "${themes[0]}" "${schemes[0]}" "${icon}" "${WHITESUR_GS_DIR}"
sed $SED_OPT "s|assets|${WHITESUR_GS_DIR}/assets|" "${WHITESUR_GS_DIR}/gnome-shell.css"
if check_theme_file "${UBUNTU_CSS_FILE}"; then
@@ -654,7 +670,7 @@ install_gdm_theme() {
# Fix previously installed WhiteSur
restore_file "${ETC_CSS_FILE}"
else # GR-based theme
install_shelly "${colors[0]}" "${opacities[0]}" "${alts[0]}" "${themes[0]}" "${schemes[0]}" "${icon}" "${WHITESUR_TMP_DIR}/shelly"
install_shelly "${colors[1]}" "${opacities[0]}" "${alts[0]}" "${themes[0]}" "${schemes[0]}" "${icon}" "${WHITESUR_TMP_DIR}/shelly"
sed $SED_OPT "s|assets|resource:///org/gnome/shell/theme/assets|" "${WHITESUR_TMP_DIR}/shelly/gnome-shell.css"
if check_theme_file "$POP_OS_GR_FILE"; then
@@ -675,6 +691,27 @@ install_gdm_theme() {
fi
}
install_gdm_tmp() {
local TARGET_DIR="${1}"
mkdir -p "${TARGET_DIR}"
cp -r "${THEME_SRC_DIR}/other/gdm/theme" "${TARGET_DIR}"
cp -r "${WHITESUR_TMP_DIR}/beggy.png" "${TARGET_DIR}/theme/background.png"
}
install_only_gdm_theme() {
if check_theme_file "$MISC_GR_FILE"; then
TARGET="${MISC_GR_FILE}"
else
prompt -e "\n $MISC_GR_FILE File not found! exit..."; exit 1
fi
install_theme_deps; install_beggy; install_gdm_tmp "${WHITESUR_TMP_DIR}/gdm"
backup_file "${TARGET}"
glib-compile-resources --sourcedir="${WHITESUR_TMP_DIR}/gdm/theme" --target="${TARGET}" "${GDM_GR_XML_FILE}"
}
revert_gdm_theme() {
rm -rf "${WHITESUR_GS_DIR}"
restore_file "${COMMON_CSS_FILE}"; restore_file "${UBUNTU_CSS_FILE}"

View File

View File

@@ -0,0 +1,7 @@
$variant: 'dark';
$contrast: 'normal';
@import "gnome-shell-sass/_colors"; //use gtk colors
@import "gnome-shell-sass/_drawing";
@import "gnome-shell-sass/_common";
@import "gnome-shell-sass/_widgets";

View File

@@ -0,0 +1,7 @@
$variant: 'dark';
$contrast: "high";
@import "gnome-shell-sass/_high-contrast-colors"; //use gtk colors
@import "gnome-shell-sass/_drawing";
@import "gnome-shell-sass/_common";
@import "gnome-shell-sass/_widgets";

View File

@@ -0,0 +1,7 @@
$variant: 'light';
$contrast: 'normal';
@import "gnome-shell-sass/_colors"; //use gtk colors
@import "gnome-shell-sass/_drawing";
@import "gnome-shell-sass/_common";
@import "gnome-shell-sass/_widgets";

View File

@@ -0,0 +1,70 @@
//
// Main color definitions
//
// When color definition differs for dark and light variant, it gets @if-ed depending on $variant
@import '_palette.scss';
@import '_default-colors.scss';
// global colors
$base_color: if($variant == 'light', $light_1, $_base_color_dark);
$bg_color: if($variant == 'light', $_base_color_light, #36363a);
$fg_color: if($variant == 'light', $_base_color_dark, $light_1);
// OSD elements
$osd_fg_color: $light_1;
$osd_bg_color: lighten($_base_color_dark, 5%);
// system elements (e.g. the overview) that are always dark
$system_base_color: $_base_color_dark;
$system_fg_color: $_base_color_light;
// panel colors
$panel_bg_color: if($variant == 'light', $_base_color_light, $dark_5);
$panel_fg_color: if($variant == 'light', $_base_color_dark, $light_1);
$panel_border_color: if($variant == 'light', transparentize($_base_color_dark, .9), transparent);
// card elements
$card_bg_color: if($variant == 'light', $light_1, lighten($bg_color, 7%));
$card_shadow_color: if($variant == 'light', transparentize($dark_5, .97), transparent);
$card_shadow_border_color: if($variant == 'light', transparentize($dark_5, .91), transparent);
//
// Derived Colors
//
// colors based on the global defines above
// borders
$borders_color: transparentize($fg_color, $border_opacity);
$outer_borders_color: if($variant == 'light', darken($bg_color, 7%), lighten($bg_color, 5%));
// osd colors
$osd_borders_color: transparentize($osd_fg_color, 0.9);
$osd_outer_borders_color: transparentize($osd_fg_color, 0.98);
// system colors
$system_bg_color: lighten($system_base_color, 5%);
$system_borders_color: transparentize($system_fg_color, .9);
$system_insensitive_fg_color: mix($system_bg_color, $system_fg_color, 37%);
$system_overlay_bg_color: mix($system_base_color, $system_fg_color, 90%); // for non-transparent items, e.g. dash
// insensitive state
$insensitive_fg_color: if($variant == 'light', mix($fg_color, $bg_color, 60%), mix($fg_color, $bg_color, 50%));
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
$insensitive_borders_color: mix($borders_color, $base_color, 60%);
// checked state
$checked_bg_color: if($variant=='light', darken($bg_color, 7%), lighten($bg_color, 7%));
$checked_fg_color: if($variant=='light', darken($fg_color, 7%), lighten($fg_color, 7%));
// hover state
$hover_bg_color: if($variant=='light', darken($bg_color,9%), lighten($bg_color, 10%));
$hover_fg_color: if($variant=='light', darken($fg_color,9%), lighten($fg_color, 10%));
// active state
$active_bg_color: if($variant=='light', darken($bg_color, 11%), lighten($bg_color, 12%));
$active_fg_color: if($variant=='light', darken($fg_color, 11%), lighten($fg_color, 12%));
// accent colors
$accent_borders_color: if($variant== 'light', st-darken(-st-accent-color, 20%), st-lighten(-st-accent-color, 30%));

View File

@@ -0,0 +1,380 @@
//This is the RIGHT PLACE to edit the stylesheet
//let's start by telling people not to edit the generated CSS:
$cakeisalie: "This stylesheet is generated, DO NOT EDIT";
/* #{$cakeisalie} */
/* Copyright 2009, 2015 Red Hat, Inc.
*
* Portions adapted from Mx's data/style/default.css
* Copyright 2009 Intel Corporation
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
* version 2.1, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/
/* Global Values */
// Base values of elements of the shell in their smallest "unit".
// These are used in calculations elsewhere to have elements in proportion
$base_font_size: 11pt; // font size
$base_padding: 6px; // internal padding of elements
$base_margin: 4px; // margin between elements
$base_border_radius: 8px; // radii on all elements
// Radius used to make sure elements that have rounded corners stay as such.
// This is a workaround for 50% not working.
$forced_circular_radius: 999px;
// radii of things that display over other things, e.g. popovers
$modal_radius: $base_border_radius * 2;
// radii of dialogs
$alert_radius: 18px;
// Chroma key to flag when a background-color is always occluded, not visible.
// This allows any box-shadow behind it to be rendered more efficiently by
// omitting the middle rectangle.
$invisible_occluded_bg_color: rgba(3,2,1,0);
// Fixed icon sizes
$base_icon_size: 16px;
$medium_icon_size: $base_icon_size * 1.5; // 24px
$large_icon_size: $base_icon_size * 2; // 32px
// Scaled values
// Used in elements that follow text scaling factors
$scaled_padding: to_em(6px); // same as $base_padding
// Used for symbolic icons that scale
$scalable_icon_size: to_em(16px);
$medium_scalable_icon_size: $scalable_icon_size * 1.5;
$large_scalable_icon_size: $scalable_icon_size * 2;
// animation definition
$ease_out_quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
// Stage
stage {
@include fontsize($base_font_size);
color: $fg_color;
}
/* Common Stylings */
%reset {
background: none;
box-shadow: none;
border: none;
border-radius: 0;
padding: 0;
margin: 0;
}
// icon tiles
%tile {
border-radius: $base_border_radius * 2;
padding: $base_padding;
spacing: $base_padding;
text-align: center;
transition-duration: 100ms;
}
// common button styling
%button_common {
border-radius: $base_border_radius;
padding: $base_padding * .5 $base_padding * 4;
font-weight: bold;
transition: border-width 300ms $ease_out_quad,
box-shadow 300ms $ease_out_quad;
}
%button {
@extend %button_common;
@include button(normal);
&:focus { @include button(focus);}
&:hover { @include button(hover);}
&:insensitive { @include button(insensitive);}
&:selected,
&:active { @include button(active);}
&:checked { @include button(checked);}
}
%flat_button {
@include button(normal, $style: flat);
&:focus { @include button(focus, $style: flat);}
&:hover { @include button(hover, $style: flat);}
&:insensitive { @include button(insensitive, $style: flat);}
&:selected,
&:active { @include button(active, $style: flat);}
&:checked { @include button(checked, $style: flat);}
}
%default_button {
@include button(normal, $c:-st-accent-color, $tc:-st-accent-fg-color, $style: default);
&:focus { @include button(focus, $c:-st-accent-color, $tc:-st-accent-fg-color, $style: default);}
&:hover { @include button(hover, $c:-st-accent-color, $tc:-st-accent-fg-color, $style: default);}
&:insensitive { @include button(insensitive, $c:-st-accent-color, $tc:-st-accent-fg-color, $style: default);}
&:active { @include button(active, $c:-st-accent-color, $tc:-st-accent-fg-color, $style: default);}
}
// items in popover menus
%menuitem {
font-weight: normal;
spacing: $base_padding;
transition-duration: 100ms;
padding: $base_padding * 1.5 $base_padding * 2;
}
// common style for card elements
%card_common {
border-radius: $base_border_radius * 1.5;
padding: $scaled_padding * 2;
margin: $base_margin;
background-color: $card_bg_color;
box-shadow: 0 1px 2px 0 $card_shadow_color;
// bit of a hack here with border since we can't have double box-shadow
border: 1px solid $card_shadow_border_color;
@if $contrast == 'high' {
border-color: transparent;
box-shadow: none;
}
}
%card {
@extend %card_common;
@include button(normal, $style: card);
&:hover { @include button(hover, $style: card);}
&:active { @include button(active, $style: card);}
&:focus { @include button(focus, $style: card);}
&:insensitive { @include button(insensitive, $style: card);}
}
%card_flat {
@extend %card_common;
border: 1px solid transparent !important; // override of the button style needed here
@include button(undecorated, $style: flat);
&:hover { @include button(hover, $style: flat);}
&:active { @include button(active, $style: flat);}
&:focus { @include button(focus, $style: card);}
&:insensitive { @include button(insensitive, $style: card);}
}
// normal entry style
%entry_common {
border-radius: $base_border_radius;
padding: $base_padding * 1.5 $base_padding * 1.5;
selection-background-color: st-transparentize(-st-accent-color, 0.7);
selected-color: $fg_color;
}
%entry {
@extend %entry_common;
@include entry(normal);
&:hover { @include entry(hover);}
&:focus { @include entry(focus);}
&:insensitive { @include entry(insensitive);}
StLabel.hint-text {
color: transparentize($fg_color, 0.3);
}
}
// buttons in notifications
// use a rounded style and have a lighter background
%notification_button {
font-weight: bold;
padding: $base_padding $base_padding * 2;
border-radius: $base_border_radius;
@include button(normal, $style: notification);
&:focus { @include button(focus, $style: notification);}
&:hover { @include button(hover, $style: notification);}
&:active { @include button(active, $style: notification);}
&:checked { @include button(checked, $style: notification);}
&:insensitive { @include button(insensitive, $style: notification);}
}
// buttons in dialogs
%dialog_button {
font-weight: bold;
padding: $base_padding * 2;
border-radius: $base_border_radius * 1.5;
@include button(normal, $style: dialog);
&:focus { @include button(focus, $style: dialog);}
&:hover { @include button(hover, $style: dialog);}
&:active { @include button(active, $style: dialog);}
&:checked { @include button(checked, $style: dialog);}
&:insensitive { @include button(insensitive, $style: dialog);}
}
// tooltip
%tooltip {
background-color: transparentize(black, 0.1);
border: 1px solid transparentize($light_1, 0.9);
color: $light_1;
border-radius: $forced_circular_radius;
padding: $base_padding $base_padding * 2;
text-align: center;
@if $contrast == 'high' {
background-color: black;
border-color: $hc_inset_color;
}
}
/* General Typography */
%large_title {
font-weight: 300;
@include fontsize(24pt);
}
%title_1 {
font-weight: 800;
@include fontsize(20pt);
}
%title_2 {
font-weight: 800;
@include fontsize(15pt);
}
%title_3 {
font-weight: 700;
@include fontsize(15pt);
}
%title_4 {
font-weight: 700;
@include fontsize(13pt);
}
%heading {
font-weight: 700;
@include fontsize(11pt);
}
%caption_heading {
font-weight: 700;
@include fontsize(9pt);
}
%caption {
font-weight: 400;
@include fontsize(9pt);
}
%smaller {
font-weight: 400;
@include fontsize(9pt);
}
%monospace {font-family: monospace;}
%numeric { font-feature-settings: "tnum";}
/* OSD Elements */
%osd_panel {
color: $osd_fg_color;
background-color: $osd_bg_color;
border: 1px solid $osd_outer_borders_color;
border-radius: $forced_circular_radius;
padding: $base_padding * 2;
@if $contrast == 'high' {
@include draw_hc_inset($width: 2px,$border: true);
}
}
// entries
%osd_entry {
@extend %entry_common;
@include entry(normal, $c:$osd_fg_color, $bc:$osd_bg_color, $always_dark: true);
&:hover { @include entry(hover, $c:$osd_fg_color, $bc:$osd_bg_color, $always_dark: true);}
&:focus { @include entry(focus, $c:$osd_fg_color, $bc:$osd_bg_color, $always_dark: true);}
&:insensitive { @include entry(insensitive, $c:$osd_fg_color, $bc:$osd_bg_color, $always_dark: true);}
StLabel.hint-text {color: transparentize($osd_fg_color, 0.3); }
}
// buttons on OSD elements
%osd_button {
@extend %button_common;
@include button(normal, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);
&:focus { @include button(focus, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);}
&:hover { @include button(hover, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);}
&:active { @include button(active, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);}
&:checked { @include button(checked, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);}
&:insensitive { @include button(insensitive, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);}
}
%osd_button_flat {
@extend %button_common;
@include button(normal, $tc:$osd_fg_color, $c:$osd_bg_color, $style: flat, $always_dark: true);
&:focus { @include button(focus, $tc:$osd_fg_color, $c:$osd_bg_color, $style: flat, $always_dark: true);}
&:hover { @include button(hover, $tc:$osd_fg_color, $c:$osd_bg_color, $style: flat, $always_dark: true);}
&:active { @include button(active, $tc:$osd_fg_color, $c:$osd_bg_color, $style: flat, $always_dark: true);}
&:checked { @include button(checked, $tc:$osd_fg_color, $c:$osd_bg_color, $style: flat, $always_dark: true);}
&:insensitive { @include button(insensitive, $tc:$osd_fg_color, $c:$osd_bg_color, $style: flat, $always_dark: true);}
}
/* System Elements */
// entries
%system_entry {
@extend %entry_common;
@include entry(normal, $c:$system_fg_color, $bc:$system_bg_color, $always_dark: true);
&:hover { @include entry(hover, $c:$system_fg_color, $bc:$system_bg_color, $always_dark: true);}
&:focus { @include entry(focus, $c:$system_fg_color, $bc:$system_bg_color, $always_dark: true);}
&:insensitive { @include entry(insensitive, $c:$system_fg_color, $bc:$system_bg_color, $always_dark: true);}
StLabel.hint-text { color: transparentize($system_fg_color, 0.3);}
}
// buttons
%system_button {
@include button(normal, $tc:$system_fg_color, $c:$system_bg_color);
&:insensitive { @include button(insensitive, $tc:$system_fg_color, $c:$system_bg_color);}
&:focus { @include button(focus, $tc:$system_fg_color, $c:$system_bg_color);}
&:hover { @include button(hover, $tc:$system_fg_color, $c:$system_bg_color);}
&:active { @include button(active, $tc:$system_fg_color, $c:$system_bg_color);}
&:checked { @include button(checked, $tc:$system_fg_color, $c:$system_bg_color);}
}
/* Lockscreen Elements */
// buttons
%lockscreen_button {
@extend %button_common;
@include button(normal, $tc:$system_fg_color, $style: lockscreen);
&:focus { @include button(focus, $tc:$system_fg_color, $style: lockscreen);}
&:hover { @include button(hover, $tc:$system_fg_color, $style: lockscreen);}
&:active { @include button(active, $tc:$system_fg_color, $style: lockscreen);}
&:checked { @include button(checked, $tc:$system_fg_color, $style: lockscreen);}
&:insensitive { @include button(insensitive, $tc:$system_fg_color, $style: lockscreen);}
}
// entries
%lockscreen_entry {
@extend %entry_common;
@include entry(normal, $c:$system_fg_color, $style: lockscreen, $always_dark: true);
&:hover { @include entry(hover, $c:$system_fg_color, $style: lockscreen, $always_dark: true);}
&:focus { @include entry(focus, $c:$system_fg_color, $style: lockscreen, $always_dark: true);}
&:insensitive { @include entry(insensitive, $c:$system_fg_color, $style: lockscreen, $always_dark: true);}
StLabel.hint-text { color: transparentize($system_fg_color, 0.3);}
}

View File

@@ -0,0 +1,51 @@
// Named Colors
// base colors
$_base_color_dark: #222226;
$_base_color_light: #fafafb;
// accent colors
$accent_color: if($variant== 'light', -st-accent-color, st-mix(-st-accent-color, $light_1, 60%));
// colors for destructive elements
$destructive_bg_color: if($variant == 'light', $red_3, $red_4);
$destructive_fg_color: $light_1;
$destructive_color: $destructive_bg_color;
// colors for levelbars, entries, labels and infobars
$success_bg_color: if($variant == 'light', $green_4, $green_5);
$success_fg_color: $light_1;
$success_color: $success_bg_color;
$warning_bg_color: if($variant == 'light', $yellow_5, #cd9309); // uses darker off-palette yellow
$warning_fg_color: transparentize(black, .2);
$warning_color: $warning_bg_color;
$error_bg_color: if($variant == 'light', $red_3, $red_4);
$error_fg_color: $light_1;
$error_color: $error_bg_color;
// link colors
$link_color: if($variant == 'light', st-darken(-st-accent-color, 10%), st-lighten(-st-accent-color, 20%));
$link_visited_color: st-transparentize($link_color, .6);
// special cased widget definitions
$background_mix_factor: if($variant == 'light', 12%, 9%); // used to boost the color of backgrounds in different variants
// shadows
$shadow_color: if($variant == 'light', rgba(0,0,0,.05), rgba(0,0,0,0.2));
$text_shadow_color: if($variant == 'light', rgba(255,255,255,0.3), rgba(0,0,0,0.2));
// border opacities
$border_opacity: if($variant == 'light', .85, .9); // change the border opacity in different variants
$focus_border_opacity: .2;
// High Contrast overrides
@if $contrast == 'high' {
// increase border opacity
$border_opacity: .5;
$focus_border_opacity: .1;
// remove shadows
$shadow_color: transparent;
$text_shadow_color: transparent;
}

View File

@@ -0,0 +1,471 @@
//
// Drawing functions
//
// Function to convert px values to em
@function to_em($input, $base: 16px) {
// multiplied and divided by 1000 to make up for round() shortcoming
$em_value: ($input / $base) * 1.091 * 1000;
@return round($em_value) / 1000 * 1em;
}
// Boost the contrast of a color by mixing it with high contrast defined colors
@function hc_color_mix($c, $mc:$hc_mix_color, $mf:$hc_mix_factor) {
//
// $c: input color
// $mc: mix color, defined in High Contrast specific stylesheet
// $mf: mix factor (%), defined in High Contrast specific stylesheet
//
@return st-mix($c, $mc, $mf);
}
// Function to mix the color and make the focus background
@function focus_bg_color($bg, $fc:$accent_color) {
@return st-mix($fc, $bg, 5%);
}
//
// Drawing mixins
//
// Draw the inset for High Contrast elements
@mixin draw_hc_inset($width: 1px, $ic: $hc_inset_color, $border: false, $no_inset: false) {
//
// $width width of the inset, in pixels
// $ic color of the inset
//
// $border if true, use a border instead of a box-shadow to draw inset
// $no_inset if true, override the mixin to not draw an iset
//
box-shadow: inset 0 0 0 $width $ic;
// draw inset as border
@if $border {
border: $width solid $ic;
box-shadow: none;
}
// don't draw an inset at all
@if $no_inset {
box-shadow: none;
border: none;
}
}
// Draw the focus ring
@mixin focus_ring($width: 2px, $fc: $accent_color, $border: false) {
$focus_color: st-transparentize($fc, $focus_border_opacity);
box-shadow: inset 0 0 0 $width $focus_color !important;
@if $border {
border:$width solid $focus_color !important;
box-shadow: none;
}
}
// Mixin to convert provided font size in pt to em units
@mixin fontsize($size, $base: 16px, $unit: pt) {
// if pt, convert into unitless value with the assumption: 1pt = 1.091px
$adjusted_size: if($unit == pt, $size * 1.091, $size) * 1000;
$rounded_size: round($adjusted_size / $base) / 1000;
font-size: $rounded_size * 1em;
// font-size: round($size) + pt;
}
// Function to fill the background of a panel button
@mixin panel_button_fill($bg) {
// use a box-shadow to fill the background
// this is done because panel buttons use a transparent border to fake padding
box-shadow: inset 0 0 0 100px $bg;
}
// Text entries drawing function
@mixin entry($type, $c:$fg_color, $bc:$bg_color, $style: null, $always_dark: false) {
//
// $type: entry type, possible values: normal, focus, hover, insensitive
// $c: text color
// $bc: background color
// $always_dark: override the light theme check to use dark colors, true or false
//
// entry colors
$entry_fg_color: $c;
$entry_bg_color: mix($c, $bc, $background_mix_factor);
$entry_focus_color: $accent_color;
// entry color overrides for lockscreen style
@if $style == 'lockscreen' {
$entry_bg_color: transparentize($c, .9);
$entry_focus_color: transparentize($entry_fg_color, 0.6);
@if $contrast == 'high' {
$entry_focus_color: transparentize($entry_fg_color, 0.3);
}
}
// background color adjustment factors
// the % a color is lightened or darkened for button states
$hover_factor: 4%;
$insensitive_factor: 3%;
// entry state background colors
$hover_entry_bg_color: if($variant == 'light', darken($entry_bg_color, $hover_factor), lighten($entry_bg_color, $hover_factor));
$insensitive_entry_bg_color: if($variant == 'light', lighten($entry_bg_color, $insensitive_factor), darken($entry_bg_color, $insensitive_factor));
// override entry background colours if element is always dark
@if $always_dark {
$hover_entry_bg_color: lighten($entry_bg_color, $hover_factor);
$insensitive_entry_bg_color: darken($entry_bg_color, $insensitive_factor);
}
@if $contrast == 'high' {
@include draw_hc_inset();
}
// normal
@if $type == 'normal' {
background-color: $entry_bg_color;
color: transparentize($c, 0.3);
}
// focus styles
@if $type == 'focus' {
@include focus_ring($fc:$entry_focus_color);
background-color: focus_bg_color($entry_bg_color);
color: $entry_fg_color;
// lockscreen style
@if $style == 'lockscreen' {
@include focus_ring($fc:$entry_focus_color);
background-color: focus_bg_color($entry_bg_color, $fc:$entry_focus_color);
}
}
// hover styles
@if $type == 'hover' {
background-color: $hover_entry_bg_color;
color: $entry_fg_color;
}
// insensitive styles
@if $type == 'insensitive' {
background-color: $insensitive_entry_bg_color;
color: transparentize($entry_fg_color, 0.5);
}
}
// Button drawing function
@mixin button($type, $tc:$fg_color, $c:$bg_color, $style: null, $always_dark: false) {
//
// $type: button type, possible values:
// - normal, focus, hover, active, checked, insensitive, default, undecorated
// $c: button bg color, derived from bg_color
// $tc: button text color, derived from fg_color
// $style: button style, possible values: card, notification, dialog, flat, default
// $always_dark: override the light theme check to use dark colors, true or false
//
// mix input colors to get button background color
$button_bg_color: st-mix($tc, $c, $background_mix_factor);
// background color override for card elements
@if $style == 'card' { $button_bg_color: $card_bg_color;}
// background color mix override for flat style; the button bg color is the background color input
@if $style == 'flat' { $button_bg_color: $c;}
// background color mix override for default button style
@if $style == 'default' { $button_bg_color: $c;}
// background color adjustment factors
// the % a color is lightened or darkened for button states
$hover_factor: 4%;
$active_factor: 9%;
$checked_factor: 8%;
$insensitive_factor: 3%;
// flat style overrides
@if $style == 'flat' {
$hover_factor: 7%; // stronger factor in flat style
}
// button base state background colors
$hover_button_bg_color: if($variant == 'light', st-darken($button_bg_color, $hover_factor), st-lighten($button_bg_color, $hover_factor));
$active_button_bg_color: if($variant == 'light', st-darken($button_bg_color, $active_factor), st-lighten($button_bg_color, $active_factor));
$checked_button_bg_color: if($variant == 'light', st-darken($button_bg_color, $checked_factor), st-lighten($button_bg_color, $checked_factor));
$insensitive_button_bg_color: if($variant == 'light', st-lighten($button_bg_color, $insensitive_factor), st-darken($button_bg_color, $insensitive_factor));
// button extended state background colors
$active_hover_button_bg_color: if($variant == 'light', st-darken($active_button_bg_color, $hover_factor), st-lighten($active_button_bg_color, $hover_factor));
$checked_hover_button_bg_color: if($variant == 'light', st-darken($checked_button_bg_color, $hover_factor), st-lighten($checked_button_bg_color, $hover_factor));
$checked_active_button_bg_color: if($variant == 'light', st-darken($checked_button_bg_color, $active_factor), st-lighten($checked_button_bg_color, $active_factor));
// override button background colours if element is always dark
@if $always_dark {
$hover_button_bg_color: st-lighten($button_bg_color, $hover_factor);
$active_button_bg_color: st-lighten($button_bg_color, $active_factor);
$checked_button_bg_color: st-lighten($button_bg_color, $checked_factor);
$insensitive_button_bg_color: st-darken($button_bg_color, $insensitive_factor);
// extended
$active_hover_button_bg_color: st-lighten($active_button_bg_color, $hover_factor);
$checked_hover_button_bg_color: st-lighten($checked_button_bg_color, $hover_factor);
$checked_active_button_bg_color: st-lighten($checked_button_bg_color, $active_factor);
}
// background color override for buttons that use transparency
// styles: dialogs bubbles, lockscreen
@if $style == 'dialog' or $style == 'lockscreen' {
$button_bg_color: transparentize($tc, .9);
$hover_button_bg_color: transparentize($tc, .87);
$active_button_bg_color: transparentize($tc, .84);
$active_hover_button_bg_color: transparentize($tc, .81);
$insensitive_button_bg_color: transparentize($tc, .95);
}
// background color overrides for notification style
@if $style == 'notification' {
$button_bg_color: transparentize($tc, .85);
$hover_button_bg_color: transparentize($tc, .7);
$insensitive_button_bg_color: transparentize($tc, .9);
$active_button_bg_color: transparentize($tc, .8);
$active_hover_button_bg_color: transparentize($tc, .8);
}
// flat style overrides
@if $style == 'flat' {
$insensitive_button_bg_color: $button_bg_color;
}
// high contrast overrides
@if $contrast == 'high' {
// override button background colors for high contrast
$button_bg_color: hc_color_mix($button_bg_color);
$hover_button_bg_color: hc_color_mix($hover_button_bg_color);
$active_button_bg_color: hc_color_mix($active_button_bg_color);
$checked_button_bg_color: hc_color_mix($checked_button_bg_color);
// also draw the inset border
@include draw_hc_inset();
// duplicate flat bg color for High Contrast
@if $style == 'flat' {
$button_bg_color: $c;
}
@if $style == 'default' {
@include draw_hc_inset($no_inset: true);
}
}
// normal style
@if $type == 'normal' {
color: $tc;
background-color: $button_bg_color;
// no inset in High Contrast when the style is flat
@if $style == 'flat' and $contrast == 'high' {
@include draw_hc_inset($no_inset: true);
}
}
// hover button
@else if $type == 'hover' {
color: $tc;
background-color: $hover_button_bg_color;
}
// active button
@else if $type == 'active' {
color: $tc;
background-color: $active_button_bg_color;
&:hover { background-color: $active_hover_button_bg_color;}
&:focus {
// otherwise use focus bg color mixin
$bg: focus_bg_color($active_button_bg_color);
background-color: $bg;
}
}
// checked button
@else if $type == 'checked' {
color: $tc;
background-color: $checked_button_bg_color;
&:hover { background-color: $checked_hover_button_bg_color;}
&:active { background-color: $checked_active_button_bg_color;}
}
// insensitive button
@else if $type == 'insensitive' {
$insensitive_button_fg_color: if($variant == 'light', st-transparentize($tc, .6), st-transparentize($tc, .5));
color: $insensitive_button_fg_color;
background-color: $insensitive_button_bg_color;
// no outline in High Contrast for insensitive buttons
@if $contrast == 'high' {
@include draw_hc_inset($no_inset: true);
}
}
// focused button
@else if $type == 'focus' {
color: $tc;
@include focus_ring();
// use a different focus ring color for default style
@if $style == 'default' {
@include focus_ring($fc:$accent_borders_color);
}
// change background color if style is flat
@if $style == 'flat' {
$button_bg_color: transparentize($button_bg_color, 0.75);
}
background-color: focus_bg_color($button_bg_color);
&:hover {
background-color: focus_bg_color($hover_button_bg_color);
}
}
// reset (unstyled button)
@else if $type == 'undecorated' {
background-color: transparent;
border-color: transparent;
box-shadow: none;
&:insensitive {
background-color: transparent !important;
}
}
}
// Helper mixin for button-like elements with an icon
@mixin tile_button($fg:$system_fg_color, $bg:$system_bg_color, $raised: false, $system: true) {
//
// $fg: foreground color
// $bg: background color
//
// $raised: uses raised style, true or false
// $system: uses system styles, true or false
//
@extend %tile;
@if $raised {
@include button(normal, $tc:$fg, $c:$bg, $always_dark: $system);
&:focus { @include button(focus, $tc:$fg, $c:$bg, $always_dark: $system);}
&:hover { @include button(hover, $tc:$fg, $c:$bg, $always_dark: $system);}
&:active { @include button(active, $tc:$fg, $c:$bg, $always_dark: $system);}
&:highlighted,&:selected,
&:checked { @include button(checked, $tc:$fg, $c:$bg, $always_dark: $system);}
&:insensitive { @include button(insensitive, $tc:$fg, $c:$bg, $always_dark: $system);}
} @else {
@include button(normal, $tc:$fg, $c:$bg, $style: flat, $always_dark: $system);
// override the mixin to have the flat button always be transparent
// fixes issue with overlapping tiles
background-color: transparent;
&:focus { @include button(focus, $tc:$fg, $c:$bg, $style: flat, $always_dark: $system);}
&:hover { @include button(hover, $tc:$fg, $c:$bg, $style: flat, $always_dark: $system);}
&:active { @include button(active, $tc:$fg, $c:$bg, $style: flat, $always_dark: $system);}
&:highlighted,&:selected,
&:checked { @include button(checked, $tc:$fg, $c:$bg, $style: flat, $always_dark: $system);}
&:insensitive { @include button(insensitive, $tc:$fg, $c:$bg, $style: flat, $always_dark: $system);}
}
&:drop {
background-color: st-transparentize(-st-accent-color, .8);
box-shadow: inset 0 0 0 2px st-transparentize(-st-accent-color, .2);
}
}
// styling for all menuitems in popovers
@mixin menuitem($bg) {
// extend common styles
@extend %menuitem;
@include button(undecorated, $c:$bg, $style: flat);
&:active { @include button(active, $c:$bg, $style: flat);}
&:hover, &:selected, &:checked { @include button(hover, $c:$bg, $style: flat);}
&:insensitive { @include button(insensitive, $c:$bg, $style: flat);}
}
// Panel menu/button drawing function
@mixin panel_button($bg:$panel_fg_color, $fg:$panel_fg_color, $style: null, $highlighted_child: false, $child_class:"") {
//
// $bg: background color, derived from $panel_fg_color
// $fg: foreground color, also derived from $panel_fg_color
// $style: can be set to 'filled' if button uses a colored background
//
// $highlighted_child: if true, applies some special overrides for to a
// child element, see _panel.scss for details
// $child_class: class name of the child element
//
transition-duration: 150ms;
border: 3px solid transparent;
background-color: transparent;
border-radius: $forced_circular_radius;
font-weight: bold;
color: $fg;
// background fill defines
$fill: transparent;
$hover_fill: transparentize($fg, .83);
$active_fill: transparentize($fg, .72);
$active_hover_fill: transparentize($fg, .68);
@if $style == 'filled' {
$fill: $bg;
$hover_fill: if($variant == 'light', darken($bg, 5%), lighten($bg, 5%));
$active_fill: if($variant == 'light', darken($bg, 9%), lighten($bg, 9%));
$active_hover_fill: if($variant == 'light', darken($bg, 11%), lighten($bg, 11%));
}
@include panel_button_fill($fill);
&:focus, &:hover {
@include panel_button_fill($hover_fill);
}
&:active, &:checked {
@include panel_button_fill($active_fill);
&:hover{
@include panel_button_fill($active_hover_fill);
}
}
// some overrides to style a child element
@if $highlighted_child {
// remove the common styles from the parent
background: none !important;
box-shadow: none !important;
border: none !important;
// add them to the child
#{$child_class} {
transition-duration: 150ms;
border: 3px solid transparent;
border-radius: $forced_circular_radius;
}
&:focus, &:hover {
#{$child_class} {
@include panel_button_fill($hover_fill);
}
}
&:active, &:checked {
#{$child_class} {
@include panel_button_fill($active_fill);
&:hover {
@include panel_button_fill($active_hover_fill);
}
}
}
}
}

View File

@@ -0,0 +1,81 @@
//
// High Contrast theme definitions
//
// this is an always dark theme, so no 'light' theme conditions
@import '_palette.scss';
@import '_default-colors.scss';
// global colors
$base_color: $dark_5;
$bg_color: lighten($base_color, 10%);
$fg_color: $light_1;
// OSD elements
$osd_fg_color: $light_1;
$osd_bg_color: $base_color;
// system elements
$system_base_color: $dark_5;
$system_fg_color: $light_1;
// panel colors
$panel_bg_color: $dark_5;
$panel_fg_color: $light_1;
// card elements
$card_bg_color: $bg_color;
$card_shadow_color: transparent;
$card_shadow_border_color: $card_bg_color;
//
// Derived Colors
//
// colors based on the global defines above
// borders
$borders_color: transparentize($fg_color, $border_opacity);
$outer_borders_color: $borders_color;
// osd colors
$osd_borders_color: transparentize($osd_fg_color, 0.8);
$osd_outer_borders_color: $osd_borders_color;
// system colors
$system_bg_color: lighten($system_base_color, 5%);
$system_borders_color: transparentize($system_fg_color, .9);
$system_insensitive_fg_color: mix($system_bg_color, $system_fg_color, 30%);
$system_overlay_bg_color: mix($system_bg_color, $system_fg_color, 90%);
// insensitive state
$insensitive_fg_color: $fg_color;
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
$insensitive_borders_color: $borders_color;
// checked state
$checked_bg_color: lighten($bg_color, 18%);
$checked_fg_color: lighten($fg_color, 18%);
// hover state
$hover_bg_color: lighten($bg_color, 20%);
$hover_fg_color: lighten($fg_color, 20%);
// active state
$active_bg_color: lighten($bg_color, 22%);
$active_fg_color: lighten($fg_color, 22%);
// accent colors
$accent_borders_color: st-lighten(-st-accent-color, 30%);
//
// High Contrast specific definitions
//
// color for outline drawn onto all elements (may be a border or a box-shadow)
$hc_inset_color: transparentize($fg_color, 0.6);
// color used in a mixin in _drawing to boost a color's contrast
$hc_mix_color: $light_1;
// the mix factor used to boost contrast of a color in the above mixin
$hc_mix_factor: 87%;

View File

@@ -0,0 +1,46 @@
//GNOME Color Palette
$blue_1: #99c1f1;
$blue_2: #62a0ea;
$blue_3: #3584e4;
$blue_4: #1c71d8;
$blue_5: #1a5fb4;
$green_1: #8ff0a4;
$green_2: #57e389;
$green_3: #33d17a;
$green_4: #2ec27e;
$green_5: #26a269;
$yellow_1: #f9f06b;
$yellow_2: #f8e45c;
$yellow_3: #f6d32d;
$yellow_4: #f5c211;
$yellow_5: #e5a50a;
$orange_1: #ffbe6f;
$orange_2: #ffa348;
$orange_3: #ff7800;
$orange_4: #e66100;
$orange_5: #c64600;
$red_1: #f66151;
$red_2: #ed333b;
$red_3: #e01b24;
$red_4: #c01c28;
$red_5: #a51d2d;
$purple_1: #dc8add;
$purple_2: #c061cb;
$purple_3: #9141ac;
$purple_4: #813d9c;
$purple_5: #613583;
$brown_1: #cdab8f;
$brown_2: #b5835a;
$brown_3: #986a44;
$brown_4: #865e3c;
$brown_5: #63452c;
$light_1: #ffffff;
$light_2: #f6f5f4;
$light_3: #deddda;
$light_4: #c0bfbc;
$light_5: #9a9996;
$dark_1: #77767b;
$dark_2: #5e5c64;
$dark_3: #3d3846;
$dark_4: #241f31;
$dark_5: #000000;

View File

@@ -0,0 +1,49 @@
//
// Shell widgets stylesheets are placed in separate .scss files
// in 'widgets' and imported into the main stylesheet in this file.
// To create or update a widget for the shell modify the list below.
//
/* WIDGETS */
// Primary widgets
@import 'widgets/base';
@import 'widgets/entries';
@import 'widgets/buttons';
@import 'widgets/check-box';
@import 'widgets/switches';
@import 'widgets/slider';
@import 'widgets/scrollbars';
// Popovers
@import 'widgets/popovers';
@import 'widgets/calendar';
@import 'widgets/message-list';
@import 'widgets/ibus-popup';
// Notifications
@import 'widgets/notifications';
// Dialogs
@import 'widgets/dialogs';
// OSDs
@import 'widgets/osd';
@import 'widgets/switcher-popup';
@import 'widgets/workspace-switcher';
@import 'widgets/screenshot';
// Panel
@import 'widgets/panel';
@import 'widgets/corner-ripple';
@import 'widgets/quick-settings';
// Overview
@import 'widgets/overview';
@import 'widgets/window-picker';
@import 'widgets/search-entry';
@import 'widgets/search-results';
@import 'widgets/dash';
@import 'widgets/app-grid';
@import 'widgets/workspace-thumbnails';
// A11y / misc
@import 'widgets/a11y';
@import 'widgets/misc';
@import 'widgets/keyboard';
@import 'widgets/looking-glass';
// Lock / login screen
@import 'widgets/login-lock';

View File

@@ -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: st-lighten(st-transparentize(-st-accent-color, 0.7), 30%);
box-shadow: 0 0 2px 2px st-lighten(-st-accent-color, 20%);
}
// Pointer accessibility notifications
.pie-timer {
width: 60px;
height: 60px;
-pie-border-width: 3px;
-pie-border-color: -st-accent-color;
-pie-background-color: st-lighten(st-transparentize(-st-accent-color, 0.7), 40%);
}
// Screen zoom/Magnifier
.magnifier-zoom-region {
border: 2px solid -st-accent-color;
&.full-screen { border-width: 0; }
}

View File

@@ -0,0 +1,185 @@
/* App Grid */
$app_icon_size: 96px;
$app_folder_size: 720px;
// app icons
.icon-grid {
row-spacing: $base_padding * 2;
column-spacing: $base_padding * 2;
max-row-spacing: $base_padding * 6;
max-column-spacing: $base_padding * 6;
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 */
// items in the app grid and dash
.overview-tile {
@include tile_button($bg:$system_base_color);
// override the %tile style
border-radius: $base_border_radius*3;
padding: $base_padding * 2;
// the icon itself
.overview-icon {
// item with a label
&.overview-icon-with-label {
> StBoxLayout {
spacing: $base_padding;
}
}
}
}
// app folders
.app-folder {
@include tile_button($bg:$system_base_color, $raised: true);
}
// Running app indicator (also shown in dash)
.app-grid-running-dot {
height: 5px;
width: 5px;
border-radius:5px;
background-color: $system_fg_color;
offset-y: 6px;
}
.app-folder-dialog-container {
// pad the top with panel height so the folder doesn't overlap the panel on smaller resolutions
padding-top: $panel_height;
}
// Expanded app folder dialog
.app-folder-dialog {
width: $app_folder_size;
height: $app_folder_size;
border-radius: $modal_radius * 4;
background-color: $system_overlay_bg_color;
color: $system_fg_color;
@if $contrast == 'high' {
padding: 0 2px;
box-shadow: inset 0 0 0 2px $hc_inset_color;
} @else {
padding: 0 1px;
box-shadow: inset 0 0 0 1px $system_borders_color;
}
& .folder-name-container {
padding: $base_padding * 4 $base_padding * 6;
padding-bottom: 0;
& .folder-name-label,
& .folder-name-entry {
@extend %title_1;
}
& .folder-name-entry {
@extend %system_entry;
width: 12em;
}
}
& .icon-button {
@include button(normal, $tc:$system_fg_color, $c:$system_overlay_bg_color, $always_dark: true);
&:hover { @include button(hover, $tc:$system_fg_color, $c:$system_overlay_bg_color, $always_dark: true);}
&:active { @include button(active, $tc:$system_fg_color, $c:$system_overlay_bg_color, $always_dark: true);}
}
& .page-indicators {
margin-bottom: $base_padding * 4;
}
& .page-navigation-arrow {
@include button(normal, $tc:$system_fg_color, $c:$system_overlay_bg_color, $style: flat, $always_dark: true);
&:hover { @include button(hover, $tc:$system_fg_color, $c:$system_overlay_bg_color, $style: flat, $always_dark: true);}
&:active { @include button(active, $tc:$system_fg_color, $c:$system_overlay_bg_color, $style: flat, $always_dark: true);}
}
& .overview-tile {
@include tile_button($bg:$system_overlay_bg_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_size: 10px;
.page-indicator {
padding: $base_padding $base_padding * 2 0;
transition-duration:400ms;
.page-indicator-icon {
width: $page_indicator_size;
height: $page_indicator_size;
border-radius: $forced_circular_radius;
background-color: $system_fg_color;
transition-duration: 400ms;
}
}
.apps-scroll-view {
padding: 0;
}
// shutdown and other actions in the grid
.system-action-icon {
background-color: transparentize($system_fg_color,.9);
color: $system_fg_color;
border-radius: $forced_circular_radius;
icon-size: $app_icon_size * 0.5;
@if $contrast == 'high' {
box-shadow: inset 0 0 0 2px $hc_inset_color;
}
}
// page navigation
.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 {
margin: $base_padding;
padding: $base_padding * 3;
width: $medium_icon_size;
height: $medium_icon_size;
border-radius: $forced_circular_radius;
transition-duration: 100ms;
> StIcon { color: $system_fg_color;}
@include button(normal, $tc:$system_fg_color, $c:$system_base_color, $style: flat, $always_dark: true);
&:hover { @include button(hover, $tc:$system_fg_color, $c:$system_base_color, $style: flat, $always_dark: true);}
&:active { @include button(active, $tc:$system_fg_color, $c:$system_base_color, $style: flat, $always_dark: true);}
}

View File

@@ -0,0 +1,22 @@
// Links
.shell-link {
color: $link_color;
&:hover {
color: st-lighten($link_color, 10%);
}
}
// Outline for low res icons
.lowres-icon {
icon-shadow: 0 1px 2px rgba(black, 0.2);
}
// Dropshadow for large icons
.icon-dropshadow {
icon-shadow: 0 2px 4px rgba(black, 0.4);
@if $contrast == 'high' {
icon-shadow: none;
}
}

View File

@@ -0,0 +1,39 @@
/* Buttons */
.button {
@extend %button;
// uses scalable value since it's a text element
min-height: to_em(22px);
// default style
&.default {
@extend %default_button;
}
// flat style
&.flat {
@extend %flat_button;
}
}
.icon-button {
@extend %button;
border-radius: $forced_circular_radius; // is circular
padding: $scaled_padding * 2;
min-height: $scalable_icon_size;
StIcon {
icon-size: $scalable_icon_size;
-st-icon-style: symbolic;
}
// default style
&.default {
@extend %default_button;
}
// flat style
&.flat {
@extend %flat_button;
}
}

View File

@@ -0,0 +1,286 @@
/* Date/Time Menu */
// overall menu
#calendarArea {
padding: $base_margin;
}
.datemenu-popover {
border-radius: $base_border_radius * 1.5 + $base_padding * 3;
}
// calendar menu side column
.datemenu-calendar-column {
spacing: $base_padding;
&:ltr { margin-left: $base_padding;}
&:rtl { margin-right: $base_padding;}
.datemenu-displays-box {
spacing: $base_padding;
}
}
// today button (the date)
.datemenu-today-button {
@extend %card_flat;
padding: $base_padding * 1.5;
// weekday label
.day-label {
font-weight: bold;
}
// date label
.date-label {
@extend %title_2;
}
}
// the mini calendar
.calendar {
@extend %card_flat;
margin-top: 0;
padding: 0;
// month header
.calendar-month-header {
// prev/next month icons
.calendar-change-month-back StIcon,
.calendar-change-month-forward StIcon {
icon-size: $scalable_icon_size;
}
// month label
.calendar-month-label {
@extend %heading;
@extend %flat_button;
color: $fg_color !important;
padding: 8px 0;
width: 10em;
border-radius: $forced_circular_radius;
text-align: center;
}
.pager-button {
@extend .icon-button, .flat;
height: 2.6em;
width: 2.6em;
padding: 0;
}
}
// day style
.calendar-day {
@extend %numeric;
@extend %smaller;
@extend %flat_button;
border-radius: $forced_circular_radius;
height: 3em;
width: 3em;
margin: 2px;
padding: 0;
font-weight: bold;
text-align: center;
&.calendar-weekday {}
&.calendar-weekend {
color: $insensitive_fg_color;
@if $contrast == 'high' {
font-style: italic;
}
}
&.calendar-other-month {
color: transparentize($fg_color, 0.5);
font-weight: normal;
&.calendar-weekend {
color: transparentize($fg_color, 0.5);
@if $contrast == 'high' {
color: $fg_color;
}
}
@if $contrast == 'high' {
color: $fg_color;
font-style: italic; // differentiate with a font-style instead of text color
}
}
&.calendar-today {
@extend %default_button;
// override colors above for when today is a weekend
color: -st-accent-fg-color !important;
&.calendar-day-with-events {
background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg") !important; // always use light asset with .default style
}
}
&.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;
}
}
// day of week heading
.calendar-day-heading {
@extend %numeric;
@extend %smaller;
@extend %flat_button;
font-weight: bold;
text-align: center;
margin: $base_margin;
padding: $base_padding * 0.5 $base_padding;
border-radius: $base_border_radius;
}
// week number style
.calendar-week-number {
@extend %smaller;
font-weight: bold;
font-feature-settings: "tnum";
text-align: center;
margin: $base_padding;
padding: 0 $base_padding;
border-radius: $base_border_radius * 0.5;
background-color: transparentize($insensitive_fg_color, .8);
color: $insensitive_fg_color;
}
}
// common style for the date menu widgets
.events-button,
.world-clocks-button,
.weather-button {
@extend %card;
}
// events
.events-button {
.events-box {
// event title
.events-title {
@extend %heading;
color: $insensitive_fg_color;
padding-bottom: $base_padding;
}
// list of events
.events-list {
spacing: $base_padding;
// container for an event
.event-box {
spacing: $base_padding;
border-radius: $base_border_radius;
.event-summary {
@extend %heading;
}
.event-time {
@extend %numeric;
@extend %caption;
color: $insensitive_fg_color;
}
}
.event-placeholder {
color: $insensitive_fg_color;
font-style: italic;
}
}
}
}
// world clocks
.world-clocks-button {
// title
.world-clocks-header {
@extend %heading;
color: $insensitive_fg_color;
// change style when no world clocks are configured
&.no-world-clocks {
color: $fg_color;
}
}
// clocks
.world-clocks-grid {
spacing-rows: $base_padding;
spacing-columns: $base_padding * 2;
// city label
.world-clocks-city {
}
// timezone time
.world-clocks-time {
@extend %numeric;
font-weight: bold;
&: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 {
.weather-box {
spacing: $base_padding;
// header
.weather-header-box {
spacing: $base_padding;
.weather-header {
@extend %heading;
color: $insensitive_fg_color;
// change style when no location is configured
&.no-location {
color: $fg_color;
}
&.location {
font-weight: normal;
}
}
}
// weather items
.weather-grid {
spacing-rows: $base_padding;
spacing-columns: $base_padding * 2;
.weather-forecast-time {
@extend %smaller;
padding-top: $base_padding;
padding-bottom: $base_padding;
}
.weather-forecast-icon {
icon-size: $large_scalable_icon_size;
margin-bottom: $base_margin;
}
.weather-forecast-temp {
@extend %numeric;
font-weight: bold;
}
}
}
}

View File

@@ -0,0 +1,49 @@
/* Check Boxes */
.check-box {
StBoxLayout { spacing: .8em; }
StBin {
border-radius: 7px;
padding: 2px;
}
&:focus StBin {
// 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 0 0 2px st-transparentize(-st-accent-color, .65);
}
StIcon {
icon-size: 14px;
padding: 1px;
color: transparent;
border-radius: 6px;
border: 2px solid transparentize(if($variant == 'light', black, white), .85);
}
&:hover StIcon {
border-color: transparentize(if($variant == 'light', black, white), .8);
}
&:active StIcon {
border-color: transparentize(if($variant == 'light', black, white), .7);
}
&:checked StIcon {
background-color: -st-accent-color;
color: -st-accent-fg-color;
border-color: transparent;
}
&:checked:hover StIcon {
background-color: st-lighten(-st-accent-color, 5%);
color: st-lighten(-st-accent-fg-color, 5%);
}
&:checked:active StIcon {
background-color: st-darken(-st-accent-color, 7%);
color: st-darken(-st-accent-fg-color, 7%);
}
}

View File

@@ -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; }
}

View File

@@ -0,0 +1,106 @@
/* Dash */
// uses system colors
$dash_background_color: $system_overlay_bg_color;
$dash_placeholder_size: 32px;
$dash_padding: $base_padding * 2;
$dash_edge_offset: $base_margin * 3;
$dash_border_radius: $modal_radius + $dash_padding;
$dash_spacing: $base_margin * 0.5;
// container for the dash
#dash {
// a bit of spacing so that dash doesn't touch the screen edges
padding-left: $base_padding;
padding-right: $base_padding;
// background behind item container
.dash-background {
background-color: $dash_background_color;
border-radius: $dash_border_radius;
padding-top: $dash_padding;
padding-bottom: $dash_padding;
padding-left: $dash_padding - $dash_spacing; // subtract the margins added to .overview-tile below
padding-right: $dash_padding - $dash_spacing;
@if $contrast == 'high' {
@include draw_hc_inset($width: 2px);
}
}
// items on the dash
.dash-item-container {
.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;
}
// IMPORTANT: items on the dash need to extend to the edge to be adequate click targets
// as such the %tile style is overriden and button styles are applied to the child class .overview-icon
.show-apps,
.overview-tile {
// remove styles
@extend %reset;
margin: 0 $dash_spacing;
padding-bottom: $dash_edge_offset; // align with other items
$fg:$system_fg_color;
$bg:$dash_background_color;
.overview-icon {
@extend %tile;
@include button(normal, $tc:$fg, $c:$bg, $style: flat, $always_dark: true);
}
&:focus .overview-icon { @include button(focus, $tc:$fg, $c:$bg, $style: flat, $always_dark: true);}
&:hover .overview-icon { @include button(hover, $tc:$fg, $c:$bg, $style: flat, $always_dark: true);}
&:active .overview-icon { @include button(active, $tc:$fg, $c:$bg, $style: flat, $always_dark: true);}
&:checked .overview-icon { @include button(checked, $tc:$fg, $c:$bg, $style: flat, $always_dark: true);}
}
// running app dot
.app-grid-running-dot {
// manually position the dot within the dash item
@if $contrast == 'high' {
offset-y: -$dash_padding - 1px; // don't draw dot directly on inset
} @else {
offset-y: -$dash_padding;
}
}
}
// separator between pinned and running apps
.dash-separator {
width: 1px;
margin-left:$base_margin;
margin-right:$base_margin;
background-color: $system_borders_color;
@if $contrast == 'high' {
width: 2px;
background-color: $hc_inset_color;
}
}
// make sure all dash components have same margin from screen edge
.dash-separator,
.dash-background {
margin-bottom: $dash_edge_offset;
}
}
// OSD Tooltip
.dash-label {
@extend %tooltip;
-y-offset: $base_margin * 2; // distance from the dash edge
}

View File

@@ -0,0 +1,192 @@
/* Modal Dialogs */
// style for all dialogs
.modal-dialog {
background-color: $bg_color;
border-radius: $alert_radius;
padding: $base_padding * 4;
spacing: $base_padding * 3;
box-shadow: 0 12px 8px 12px rgba(0,0,0,0.03);
.modal-dialog-content-box {
padding-top: $base_padding * 2;
spacing: $base_padding * 3;
max-width: 28em;
}
.modal-dialog-button-box {
padding-top: $base_padding;
.modal-dialog-button {
@extend %dialog_button;
}
}
}
// lists in dialogs
.dialog-list {
spacing: $base_padding * 3;
.dialog-list-title {
@extend %heading;
text-align: center;
}
.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 {
@extend %caption;
color: darken($fg_color,5%);
}
}
}
}
/* End Session Dialog */
.end-session-dialog {
width: 24em;
// special style for session warnings
.end-session-dialog-battery-warning,
.dialog-list-title {
color: $warning_color;
background-color: transparentize($warning_color, 0.9);
padding: $base_padding * 1.5;
border-radius: $base_border_radius;
margin: $base_margin 0;
}
}
/* Message Dialog */
.message-dialog-content {
spacing: $base_padding * 3;
.message-dialog-title {
text-align: center;
@extend %title_2;
&.lightweight {
@extend %title_4;
}
}
.message-dialog-description {
text-align: center;
}
}
/* Run Dialog */
.run-dialog {
width: 24em;
// run dialog needs to override bottom padding
// to account for inexplicable extra padding
padding-bottom: $base_padding;
.run-dialog-entry {
padding: $base_padding * 2 $base_padding * 1.5;
}
.run-dialog-description {
@extend %caption;
color: darken($fg_color, 20%);
}
}
/* Password or Authentication Dialog */
.prompt-dialog {
width: 28em;
.prompt-dialog-password-grid {
spacing-rows: $base_margin * 2;
spacing-columns: $base_margin;
.prompt-dialog-password-entry {
width: auto;
// 4px (spacing) + 16px (spinner-width)
&:ltr { margin-left: $base_margin+$base_icon_size; }
&:rtl { margin-right: $base_margin+$base_icon_size; }
}
}
.prompt-dialog-password-layout {
spacing: $base_margin * 2;
}
.prompt-dialog-password-entry {
width: 20em;
padding: $base_padding * 2 $base_padding * 1.5;
}
.prompt-dialog-error-label,
.prompt-dialog-info-label,
.prompt-dialog-null-label {
@extend %caption;
text-align: center;
}
.prompt-dialog-error-label {
color: $warning_color;
}
}
/* Polkit Dialog */
.polkit-dialog-user-layout {
text-align: center;
spacing: $base_margin * 2;
margin-bottom: $base_padding;
.polkit-dialog-user-label,
.polkit-dialog-user-root-label {
@extend %title_4;
}
.polkit-dialog-user-root-label {
color: $warning_color;
}
}
/* Audio selection dialog */
.audio-device-selection-dialog {
min-width: 24em;
.audio-selection-box {
spacing: $base_padding * 2;
// styled similar to switcher-popup
.audio-selection-device {
@include tile_button($fg:$fg_color, $bg:$bg_color, $system:false);
.audio-selection-device-box {
padding: $base_padding * 2;
spacing: $base_padding * 2;
}
.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;
}
// specific label style for restart message
.restart-message {
@extend %title_4;
}

View File

@@ -0,0 +1,20 @@
/* Entries */
StEntry {
@extend %entry;
StIcon.capslock-warning {
icon-size: $scalable_icon_size;
warning-color: $warning_color;
padding: 0 $base_margin;
}
StIcon.peek-password {
icon-size: $scalable_icon_size;
padding: 0 $base_margin;
}
StLabel.hint-text {
margin-left: $base_margin * 0.5;
}
}

View File

@@ -0,0 +1,40 @@
// IBus Candidate Popup
.candidate-popup-boxpointer {
@extend .popup-menu-boxpointer;
}
.candidate-popup-content {
padding: $base_padding;
spacing: $base_padding;
border-radius: $base_padding * 2;
@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: -st-accent-color; color: -st-accent-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;}

View File

@@ -0,0 +1,119 @@
/* On-screen Keyboard */
$key_border_radius: to_em($base_border_radius);
$key_bg_color: darken($osd_fg_color, 70%);
$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 + 5pt);
font-weight: bold;
border-radius: $key_border_radius;
box-shadow: 0 1px 0 0 $shadow_color;
@include button(normal, $c:$key_bg_color, $tc:$osd_fg_color);
&:focus { @include button(focus);}
&:hover { @include button(hover, $c:$key_bg_color, $tc:$osd_fg_color);}
&:active { @include button(active, $c:$key_bg_color, $tc:$osd_fg_color); }
&:checked { @include button(checked, $c:$key_bg_color, $tc:$osd_fg_color); }
// non-character keys
&.default-key {
@include button(normal, $c:$default_key_bg_color, $tc:$osd_fg_color);
&:hover { @include button(hover, $c:$default_key_bg_color, $tc:$osd_fg_color);}
&:active { @include button(active, $c:$default_key_bg_color, $tc:$osd_fg_color);}
&:checked { @include button(checked, $c:$default_key_bg_color, $tc:$osd_fg_color);}
border:none;
// keys that may be latched: ctrl/alt/shift
&:latched {
background-color: -st-accent-color;
}
}
// size of icons on keys
StIcon { icon-size: $medium_scalable_icon_size; }
}
// long press on a key popup
.keyboard-subkeys-boxpointer {
-arrow-border-radius: $base_border_radius * 2 + $base_padding;
-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_margin;
border-radius: $base_border_radius * 2 + $base_padding;
box-shadow: 0 0 12px 0 rgba(0,0,0,0.1);
.key-container {
padding: $base_padding * 2;
spacing: $base_margin * 2;
}
}
// emoji
.emoji-page {
.keyboard-key {
background-color: transparent;
border: none;
color: initial;
}
}
.emoji-panel {
.keyboard-key:latched {
border-color: st-lighten(-st-accent-color, 5%);
background-color: -st-accent-color;
}
}
// suggestions
.word-suggestions {
@extend %title_4;
spacing: 12px;
min-height: 17pt;
padding: $base_padding * 2;
color: $osd_fg_color;
// each suggestion
StButton {
margin: 0 3px;
min-width: 32px;
border-radius: 4px;
padding: $base_padding $base_padding * 3;
@include button(undecorated, $c:$key_bg_color, $tc:$osd_fg_color);
&:focus { @include button(focus);}
&:hover { @include button(hover, $c:$key_bg_color, $tc:$osd_fg_color);}
&:active { @include button(active, $c:$key_bg_color, $tc:$osd_fg_color); }
&:checked { @include button(checked, $c:$key_bg_color, $tc:$osd_fg_color); }
}
}

View File

@@ -0,0 +1,365 @@
$_gdm_bg: $system_base_color;
$_gdm_fg: $system_fg_color;
$_gdm_dialog_width: 25em;
// common style for login and lockscreen
.login-dialog,
.unlock-dialog {
color: $_gdm_fg;
.caps-lock-warning-label,
.login-dialog-message-warning {
color: $_gdm_fg;
}
.login-dialog-prompt-layout {
width: $_gdm_dialog_width;
spacing: $base_padding * 1.5;
}
}
@mixin remove_hc_inset() {
border: none !important;
box-shadow: none !important;
}
// GDM Login Dialog
// uses dark grey system styles
.login-dialog {
.login-dialog-prompt-entry {
@extend %lockscreen_entry;
&:focus { @include remove_hc_inset(); }
border-radius: 1000px;
}
}
.login-dialog-bottom-button-group {
padding: 32px;
spacing: 16px;
}
// buttons on login screen
.login-dialog-button {
&.a11y-button,
&.cancel-button,
&.switch-user-button,
&.login-dialog-session-list-button {
@extend .icon-button;
@extend %lockscreen_button;
padding: to_em(16px);
border-radius: 1000px;
&:focus { @include remove_hc_inset(); }
}
&.cancel-button {
padding: $base_padding * 1.5;
}
}
.login-dialog-button-box {
spacing: $base_padding * 2;
}
.conflicting-session-dialog-content {
spacing: 20px;
.conflicting-session-dialog-title {
text-align: center;
@extend %title_2;
margin-bottom: 5px;
}
.conflicting-session-dialog-desc {
text-align: center;
}
.conflicting-session-dialog-desc-warning {
text-align: center;
color: $warning_color;
}
}
.login-dialog-logo-bin {
margin: 3em 0;
background: none !important;
icon-size: 0 !important;
}
.login-dialog-banner-view {
max-width: $_gdm_dialog_width;
.login-dialog-banner {
color: darken($_gdm_fg,10%);
}
}
.login-dialog-message {
text-align: center;
}
.login-dialog-message-hint, .login-dialog-message {
color: darken($_gdm_fg, 10%);
min-height: 2.75em;
}
.login-dialog-user-selection-box {
// padding to ensure the box doesn't overlap the panel
padding-top: 4em;
padding-bottom: 8em;
}
.login-dialog-not-listed-label {
@extend %heading;
padding: $base_padding;
}
.login-dialog-not-listed-button {
// use button styling
@extend %lockscreen_button;
padding: 0 $base_padding;
margin: $base_padding;
&:focus { @include remove_hc_inset(); }
}
// Authentication methods list
.login-dialog-auth-list-view {
-st-vfade-offset: 3em;
}
.login-dialog-auth-list {
spacing: $base_padding;
margin-left: 2em;
}
.login-dialog-auth-list-title {
margin-left: 2em;
padding-bottom: $base_padding;
}
.login-dialog {
.login-dialog-auth-list-item {
@extend %lockscreen_button;
border-radius: $modal_radius * 0.6;
padding: $base_padding * 1.2;
&:focus { @include remove_hc_inset(); }
}
}
.unlock-dialog {
.login-dialog-auth-list-item {
@extend %lockscreen_button;
border-radius: $modal_radius * 0.6;
padding: $base_padding * 1.2;
&:focus { @include remove_hc_inset(); }
}
}
.login-dialog-auth-list-label {
@extend %title_4;
&:ltr { padding-left: $base_padding * 2.5; text-align: left; }
&:rtl { padding-right: $base_padding * 2.5; text-align: right; }
}
// User list
.login-dialog-user-list-view {
width: $_gdm_dialog_width;
-st-vfade-offset: 3em;
.login-dialog-user-list {
margin: 0 $base_margin * 2; // margin to account for scrollbar
spacing: $base_padding * 2;
.login-dialog-user-list-item {
// use button styling
@extend %lockscreen_button;
border-radius: $modal_radius;
padding: $base_padding * 1.5;
&:focus { @include remove_hc_inset(); }
// create border for indicating logged in user
.user-icon {
border: 2px solid transparent;
}
.login-dialog-timed-login-indicator {
height: 2px;
margin-top: $base_padding;
background-color: transparentize($_gdm_fg, .3);
}
&:logged-in {
// color border for logged-in user
.user-icon {
border-color: -st-accent-color;
StIcon {
background-color: st-transparentize(-st-accent-color, .7);
}
}
}
}
}
}
// Screen Shield
// a.k.a. the lockscreen, uses transparent styles
.unlock-dialog {
background-color: transparent;
.login-dialog-prompt-entry {
@extend %lockscreen_entry;
border-radius: 1000px;
&:focus { @include remove_hc_inset(); }
}
.button,
.icon-button {
@extend %lockscreen_button;
border-radius: 1000px;
&:focus { @include remove_hc_inset(); }
}
}
.screen-shield-background { // just the shadow, really
background: black;
box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
#lockDialogGroup {
background-color: $_gdm_bg;
background-image: url("resource:///org/gnome/shell/theme/background.png");
background-size: cover;
}
// Clock
.unlock-dialog-clock {
color: $_gdm_fg;
spacing: 2em;
.unlock-dialog-clock-time {
@extend %numeric;
@include fontsize(72pt);
font-weight: 800;
}
.unlock-dialog-clock-date {
@extend %title_1;
font-weight: 400;
}
.unlock-dialog-clock-hint {
margin-top: 2em;
padding: $base_padding $base_padding * 3;
border-radius: $base_border_radius * 2;
font-weight: bold;
}
}
// Notifications
#unlockDialogNotifications {
StButton#vhandle, StButton#hhandle {
background-color: transparentize($bg_color,0.7);
&:hover, &:focus { background-color: transparentize($bg_color,0.5); }
&:active { background-color: st-transparentize(-st-accent-color,0.5); }
}
}
.unlock-dialog-notifications-container {
margin: $base_margin * 3;
spacing: $base_padding;
width: $_gdm_dialog_width;
background-color: transparent;
.summary-notification-stack-scrollview {
padding-top: 0;
padding-bottom: 0;
}
.notification,
.unlock-dialog-notification-source {
padding: $base_margin * 3 $base_margin * 4;
border: none;
background-color: transparentize($_gdm_fg,0.9);
color: $_gdm_fg;
border-radius: $modal_radius;
&.critical { background-color: transparentize($_gdm_fg,0.8) }
}
}
.unlock-dialog-notification-icon {
icon-size: $large_icon_size;
}
.unlock-dialog-notification-label {
padding-left: $base_padding * 2;
padding-right: 0;
&:rtl { padding-right: $base_padding * 2; padding-left: 0; }
}
.unlock-dialog-notification-count-text {
font-weight: bold;
padding: 0 $base_padding * 2;
color: $_gdm_fg;
background-color: transparentize($_gdm_fg, .9);
border-radius: $forced_circular_radius;
}
.login-dialog,
.unlock-dialog {
// User Widget
.user-widget {
// common
.user-widget-label {
color: $_gdm_fg;
}
.user-icon {
background-color: transparentize($_gdm_fg, .87);
color: $_gdm_fg;
@if $contrast == 'high' {
background-color: transparentize($_gdm_fg, .7);
box-shadow:inset 0 0 0 1px $hc_inset_color;
}
}
// layout of the user list
&.horizontal {
spacing: $base_padding * 3;
.user-widget-label {
@extend %title_3;
}
}
// layout of the login prompt
&.vertical {
spacing: $base_padding * 4;
.user-widget-label {
font-weight: 400;
@include fontsize(20pt);
text-align: center;
margin-bottom: .75em;
}
.user-icon {
icon-size: $base_icon_size * 8;
& StIcon {
padding: $base_padding * 5;
}
}
}
}
}

View File

@@ -0,0 +1,235 @@
/* Looking Glass */
// common
.lg-dialog {
StEntry {
@extend %osd_entry;
min-height: to_em(22px);
}
// override link color since OSD style
$lg_link_color: st-lighten(-st-accent-color, 20%);
.shell-link {
color: $lg_link_color;
&:hover { color: st-lighten($lg_link_color, 10%); }
&:active { color: st-darken($lg_link_color, 10%); }
}
.actor-link {
@extend %monospace;
color: st-darken($osd_fg_color, 20%);
&:hover { color:$osd_fg_color; }
&:active { color: st-lighten($osd_fg_color, 20%); }
& StIcon { icon-size: 12px; }
}
}
.lg-completions-text {
@extend %caption;
font-style: italic;
}
// Dialog
#LookingGlassDialog {
@extend %osd_panel;
background-color: transparentize($osd_bg_color,0.02);
color: $osd_fg_color;
border-radius: $modal_radius;
margin-top: $base_margin;
border: 2px solid transparent;
padding: $base_padding;
spacing: $base_padding;
box-shadow: 0 2px 4px 0 $shadow_color;
@if $contrast == 'high' {
border-color: $hc_inset_color;
background-color: $osd_bg_color;
box-shadow:none;
}
& > #Toolbar {
border: none;
padding: $base_padding;
border-radius: 0;
background-color: transparent;
spacing: $base_padding;
.lg-toolbar-button {
@extend %osd_button;
padding: $base_padding $base_padding * 2;
& > StIcon { icon-size: $base_icon_size; }
}
}
.labels {
spacing: $base_padding;
}
.notebook-tab {
@extend %osd_button_flat;
background-color: transparent;
-natural-hpadding: $base_padding * 2;
-minimum-hpadding: $base_padding * 2;
padding: $base_padding $base_padding * 2;
&:selected {
@include button(active, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);
}
}
}
// Inspector
#LookingGlassPropertyInspector {
background-color: $osd_bg_color;
color: $osd_fg_color;
border-radius: $modal_radius;
border: 1px solid $osd_borders_color;
padding: $base_padding * 2;
@if $contrast == 'high' {
border-color: $hc_inset_color;
}
.lg-obj-inspector-title {
@extend %heading;
spacing: $base_margin;
}
.lg-obj-inspector-close-button,
.lg-obj-inspector-button {
@extend %osd_button;
padding: $base_padding $base_padding * 2;
}
.lg-obj-inspector-close-button {
margin: $base_margin;
padding: $base_padding;
border-radius: $forced_circular_radius;
> StIcon {
icon-size: $base_icon_size;
}
}
}
// Evaluator
#LookingGlassEvaluator {
padding: $base_padding;
.evaluator-results {
@extend %monospace;
spacing: $base_padding;
}
}
// Window List
#LookingGlassWindows {
padding: $base_padding;
spacing: $base_padding;
.lg-window {
@extend %card_common;
@include button(normal, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);
margin: 0;
padding: $base_padding * 2;
.lg-window-name {
@extend %heading;
}
.lg-window-props-box {
.lg-window-props {
}
}
}
}
// Extensions
#LookingGlassExtensions {
.lg-extensions-list {
padding: $base_padding;
spacing: $base_padding;
}
.lg-extension {
@extend %card_common;
@include button(normal, $tc:$osd_fg_color, $c:$osd_bg_color, $always_dark: true);
margin: 0;
spacing: $base_margin;
padding: $base_padding * 2;
.lg-extension-name {
@extend %heading;
color: $osd_fg_color !important;
}
.lg-extension-description {
}
.lg-extension-meta {
spacing: $base_padding * 2;
}
}
.lg-extensions-none {
@extend %title_4;
color: transparentize($osd_fg_color, 0.5);
}
}
// Actors
#LookingGlassActors {
padding: $base_padding;
spacing: $base_margin;
}
// Debug
#LookingGlassDebugFlags {
.lg-debug-flags-header {
padding: $base_padding;
padding-top: 2 * $base_padding;
@extend %title_4;
}
.lg-debug-flag-button {
@extend %osd_button;
padding: $base_padding * 1.5 $base_padding * 2;
margin-bottom: $base_padding;
StLabel {
@extend %monospace;
font-weight: normal !important;
}
// switch style overrides since lg is OSD style
.toggle-switch {
@if $contrast == 'high' {
background: transparentize(white, .7);
&:hover {
background: transparentize(white, .6);
}
} @else {
background: transparentize(white, .85);
&:hover {
background: transparentize(white, .8);
}
}
&:checked {
background: -st-accent-color;
color: -st-accent-fg-color;
&:hover {
background-color: st-lighten(-st-accent-color, 5%);
color: st-lighten(-st-accent-fg-color, 5%);
}
}
}
}
}

View File

@@ -0,0 +1,268 @@
/* 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_3;
color: transparentize($fg_color, .55);
@if $contrast == 'high' {
color: $fg_color;
}
// icon size and color
> StIcon {
icon-size: 96px; // non-em asset size
margin-bottom: $base_margin * 3;
-st-icon-style: symbolic;
}
}
}
.message-view {
// to account for scrollbar
&:ltr {margin-right: $base_margin * 3; }
&:rtl {margin-left: $base_margin * 3;}
-st-vfade-offset: 68px;
.message {
margin-bottom: $base_padding * 2 !important;
// manually adjust radius to account for popover corners
border-radius: $modal_radius + 2px;
}
}
// do-not-disturb + clear button
.message-list-controls {
// NOTE: remove the padding if notification_bubble could remove margin for drop shadow
padding: $base_padding * 2;
padding-bottom: $base_padding * 1.5;
spacing: $base_padding;
@extend %heading;
.message-list-clear-button {
border-radius: $forced_circular_radius;
}
}
// message notification group
.message-notification-group {
spacing: $base_padding * 2;
.message-group-header {
padding: $base_padding;
.message-group-title {
@extend %title_2;
margin: 0 $base_margin;
}
}
// close button
.message-collapse-button {
@extend .icon-button;
color: $fg_color;
background-color: transparentize($fg_color, 0.8);
padding: 4px !important;
border: 4px transparent solid;
&:hover {background-color: transparentize($fg_color, 0.7);}
&:active {background-color: transparentize($fg_color, 0.8);}
}
}
// message bubbles
.message {
@extend %card;
padding: $base_padding;
margin: 0;
border-radius: $modal_radius;
background-color: if($variant == 'light', $card_bg_color, lighten($card_bg_color, 5%));
&:second-in-stack {
background-color: if($variant == 'light', darken($card_bg_color, 4%), darken($card_bg_color, 1%));
box-shadow: 0 1px 1px 0 $card_shadow_color;
}
&:lower-in-stack {
background-color: if($variant == 'light', darken($card_bg_color, 7%), darken($card_bg_color, 4%));
box-shadow: none;
border-color: if($variant == 'light', darken($card_bg_color, 10%), transparent); // a not ideal workaround for light theme
}
// message header
.message-header {
spacing: $base_padding;
color: $insensitive_fg_color;
padding:0 $base_padding;
// remove side padding to accommodate the close button
&:ltr { padding-right: 0; }
&:rtl { padding-left: 0; }
// header source icon
.message-source-icon {
icon-size: $scalable_icon_size; // 16px
-st-icon-style: symbolic;
}
// box that contains the source icon, source name and timestamp of the message
.message-header-content {
spacing: $base_padding;
min-height: to_em(24px);
padding-bottom: $base_padding;
// header source title
.message-source-title {
font-weight: bold;
}
// Time label
.event-time {
@extend %caption;
color: $insensitive_fg_color;
// Add bottom padding to align the app name with the time horizontally
padding-bottom: to_em(1px);
&:ltr { text-align: right; }
&:rtl { text-align: left; }
}
}
// buttons in the message header
.message-expand-button,
.message-close-button {
@extend .icon-button;
@extend %notification_button;
border-radius: $forced_circular_radius; // make circular
color: $fg_color;
}
// increase padding to expand button to make it larger
.message-expand-button {
padding: $base_padding;
}
// add margin to close button to balance it with the expand button
.message-close-button {
margin: $base_padding * 0.5;
padding: 4px;
}
}
// container for message contents
.message-box {
padding: $base_padding;
margin-top: 0;
spacing: $base_padding;
// icon of the message
.message-icon {
&:ltr { margin-right:$base_padding;}
&:rtl { margin-left:$base_padding;}
// icon size and color
icon-size: $base_icon_size * 3; // 48px
// a small symbolic icon on a circle background
&.message-themed-icon {
border-radius: $forced_circular_radius;
background-color: transparentize($fg_color, .93);
icon-size: $scalable_icon_size;
min-width: $base_icon_size * 3;
min-height: $base_icon_size * 3;
}
}
// If the header isn't displayed we need more top margin
&:first-child {
margin-top: $base_padding * 2;
}
// text of the message
.message-content {
spacing: $base_margin;
// message title
.message-title {
font-weight: bold;
}
}
}
// container for message buttons
.message-action-bin {
padding: $base_margin;
spacing: $base_padding;
// set margin on children
* {
margin: 0 $base_margin;
// remove margins
&:first-child {
&:ltr { margin-left:0;}
&:rtl { margin-right:0;}
}
&:last-child {
&:ltr { margin-right:0;}
&:rtl { margin-left:0;}
}
}
}
}
// URLs in messages
.url-highlighter {
link-color: $link_color;
}
/* Media Controls */
.message-media-control {
padding: 0 $base_padding * 3;
border-radius: $base_border_radius;
color: $fg_color;
border: 1px solid transparent;
@if $contrast == 'high' {
border-color: $hc_inset_color;
margin: $base_padding * 2 2px;
}
// 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%);
@if $contrast == 'high' {
border-color: transparent;
}
}
& StIcon { icon-size: $base_icon_size; }
}
.media-message {
// album-art
.message-icon {
border-radius: $base_border_radius !important;
&.message-themed-icon {
icon-size: $large_icon_size !important; // 32px
}
}
}

View File

@@ -0,0 +1,53 @@
// Rubberband for select-area screenshots
.select-area-rubberband {
background-color: st-transparentize(-st-accent-color,0.7);
border: 1px solid -st-accent-color;
}
// User icon
.user-icon {
background-size: contain;
border-radius: $forced_circular_radius;
icon-size: $base_icon_size * 4;
background-color: transparentize($fg_color,0.95);
color: $fg_color;
& StIcon {
padding: $base_padding * 2;
}
&.user-avatar {
box-shadow:inset 0 0 0 1px transparentize($fg_color, 0.9);
@if $contrast == 'high' {
@include draw_hc_inset();
}
}
}
.lightbox { background-color: black; }
.flashspot { background-color: white; }
// Hidden
.hidden { color: transparent;}
// 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: st-transparentize(-st-accent-color,0.5);
border: 1px solid -st-accent-color;
}

View File

@@ -0,0 +1,25 @@
/* Notifications & Message Tray */
$notification_banner_height: 64px;
$notification_banner_width: 34em;
// Banner notifications
.notification-banner {
min-height: $notification_banner_height;
width: $notification_banner_width;
box-shadow: 0 2px 4px 2px $shadow_color;
border-radius: $modal_radius;
margin: $base_margin;
@if $contrast == 'high' {
@include draw_hc_inset();
}
}
.notification-buttons-bin {
spacing: 0;
}
.notification-button {
@extend %notification_button;
}

View File

@@ -0,0 +1,66 @@
/* OSD */
$osd_levelbar_height:6px;
.osd-window {
@extend %osd_panel;
@extend %heading;
text-align: center;
font-weight: bold;
spacing: $base_padding * 2;
padding: $base_padding * 2 $base_padding * 3;
& > * { spacing: $base_margin * 2; }
margin-bottom: 4em;
StIcon { icon-size: $large_icon_size;}
StLabel {
&:ltr { margin-right: $base_padding; }
&:rtl { margin-left: $base_padding; }
}
.level {
margin-bottom: $base_margin;
&:first-child { margin-bottom: 0; }
min-width: 160px;
-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: $base_padding * 0.5;
&:ltr { margin-right: $base_padding; }
&:rtl { margin-left: $base_padding; }
}
}
// Monitor number label
.osd-monitor-label, .osd-break-countdown-label {
background-color: -st-accent-color;
color: -st-accent-fg-color;
border-radius: $modal_radius;
font-size: 3em;
font-weight: bold;
font-feature-settings: "tnum";
margin: $base_margin * 3;
padding: $base_padding * 2;
text-align: center;
min-width: 1.5em;
}
/* 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;
}

View File

@@ -0,0 +1,9 @@
/* OVERVIEW */
.secondary-monitor-workspaces {
spacing: $base_padding * 2;
}
#overviewGroup {
background-color: $system_base_color;
}

View File

@@ -0,0 +1,165 @@
/* Top Bar */
// a.k.a. the panel
$privacy_indicator_color: if($variant == 'light', $orange_4, $orange_3);
$recording_indicator_color: $red_4;
$transparent_panel_fg_color: $light_1; // always white for transparent lock screens
$system_panel_fg_color: $system_fg_color; // always light for lockscreen, overview
$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;
@if $variant == 'light' {
// uses half a pixel to compensate for box-shadow weirdness
box-shadow: inset 0 -0.5px 0 0 $panel_border_color;
}
// panel menus
.panel-button {
@include panel_button();
-natural-hpadding: $base_padding * 2;
-minimum-hpadding: $base_padding;
// status area icons
.system-status-icon {
icon-size: $scalable_icon_size;
padding: 0 $base_padding;
margin: 0 $base_margin;
}
// reduce margin between icons in combined menu
.panel-status-indicators-box {
spacing: $base_margin;
> .system-status-icon {
padding: 0;
}
}
&#panelActivities {
& StBoxLayout {
padding: 0 $scaled_padding * 0.5; // use em padding to keep proportion
spacing: 5px;
}
& .workspace-dot {
border-radius: $forced_circular_radius;
min-width: $scalable_icon_size * 0.5;
min-height: $scalable_icon_size * 0.5;
background-color: $panel_fg_color;
}
}
// screen activity indicators
&.screen-recording-indicator,
&.screen-sharing-indicator {
StBoxLayout {
spacing: $scaled_padding;
}
StIcon {
icon-size: $scalable_icon_size;
}
}
&.screen-recording-indicator {
@include panel_button($bg:$recording_indicator_color, $fg:$_base_color_light, $style: filled);
}
&.screen-sharing-indicator {
@include panel_button($bg:$privacy_indicator_color, $fg:$_base_color_light, $style: filled);
}
// clock
&.clock-display {
// The clock display needs to have the background on .clock because
// we want to exclude the do-not-disturb indicator from the background
// see _drawing.scss for override details
@include panel_button($highlighted_child: true, $child_class: '.clock');
.clock {
// the highlighted child
}
.messages-indicator {
icon-size: $scalable_icon_size;
}
}
}
// transparent panel on overview, lock & login screens
&:overview,
&.unlock-screen,
&.login-screen {
background-color: transparent;
// unfortunate duplication to keep indicator style in these states
.panel-button {
&.screen-recording-indicator {
@include panel_button($bg:$recording_indicator_color, $fg:$_base_color_light, $style: filled);
}
&.screen-sharing-indicator {
@include panel_button($bg:$privacy_indicator_color, $fg:$_base_color_light, $style: filled);
}
}
}
// use transparent text styles for lock & login screen panels
&.unlock-screen,
&.login-screen {
.panel-button {
@include panel_button($fg:$transparent_panel_fg_color);
// clock
&.clock-display {
@include panel_button($fg:$transparent_panel_fg_color, $highlighted_child: true, $child_class: '.clock');
}
}
}
// use system text styles for overview panel
&:overview {
.panel-button {
@include panel_button($fg:$system_panel_fg_color);
&#panelActivities .workspace-dot {
background-color: $system_panel_fg_color;
}
// clock
&.clock-display {
@include panel_button($fg:$system_panel_fg_color, $highlighted_child: true, $child_class: '.clock');
}
}
}
.panel-status-indicators-box {
spacing: 2px;
}
// spacing between power icon and (optional) percentage label
.power-status.panel-status-indicators-box {
spacing: 0;
}
// important privacy related indicators
.privacy-indicator { color: $privacy_indicator_color; }
}
// Clock
.clock-display-box {
spacing: 2px;
.clock {
padding-left: $scaled_padding * 2;
padding-right: $scaled_padding * 2;
}
}

View File

@@ -0,0 +1,154 @@
/* Popovers/Menus */
$menu_bg_color: $bg_color;
$menuitem_bg_color: if($variant == 'light', darken($menu_bg_color, 5%), lighten($menu_bg_color, 5%));
$menuitem_border_radius: $base_border_radius * 1.5;
$submenu_bg_color: if($variant == 'light', darken($menu_bg_color, 17%), lighten($menu_bg_color, 13%));
// the popover itself
.popup-menu-boxpointer {
-arrow-rise: $base_padding; // 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;
background-color: $bg_color;
border-radius: $modal_radius * 1.25;
border: 1px solid $outer_borders_color;
box-shadow: 0 2px 4px 0 $shadow_color;
}
// menu items
.popup-menu-item {
@include menuitem($bg:$menuitem_bg_color);
border-radius: $menuitem_border_radius;
&:checked {
border-radius: $menuitem_border_radius $menuitem_border_radius 0 0 !important;
@if $contrast == 'high' {
border: 1px solid $hc_inset_color;
border-bottom-width:0;
}
}
// add margin to switches in menu items
.toggle-switch {
&:ltr { margin-left: $base_margin;}
&:rtl { margin-right: $base_margin;}
}
}
.popup-ornamented-menu-item {
&:ltr {padding-left: $base_padding;}
&:rtl {padding-right: $base_padding;}
}
// 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: $scalable_icon_size;
}
// popover submenus
.popup-sub-menu {
border-radius: 0 0 $menuitem_border_radius+1px $menuitem_border_radius+1px;
margin-bottom: $base_padding;
border: 1px solid transparent;
background-color: $submenu_bg_color;
@if $contrast == 'high' {
border-color: $hc_inset_color;
}
// submenu specific styles
.popup-menu-item {
border-radius: 0;
border-top-width:0;
@include menuitem($bg:$submenu_bg_color);
&:last-child {
border-radius: 0 0 $menuitem_border_radius $menuitem_border_radius;
border-bottom-width:0;
}
}
.popup-menu-section {
.popup-menu-item:last-child {
&:hover,&:focus { border-radius: 0;}
}
&:last-child .popup-menu-item:last-child {
border-radius: 0 0 $menuitem_border_radius $menuitem_border_radius;
}
}
}
// container for radio and check boxes
.popup-menu-ornament {
icon-size: $scalable_icon_size !important;
width: $scalable_icon_size;
}
// separator
.popup-separator-menu-item {
border:none !important;
.popup-separator-menu-item-separator {
height: 1px; //not really the whole box
background-color: $borders_color;
}
// 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: $borders_color;
}
}
}
// 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;
.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;}
}
}
}

View File

@@ -0,0 +1,272 @@
.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, .quick-toggle-has-menu {
border-radius: $forced_circular_radius;
min-width: 12em;
max-width: 12em;
min-height: $scalable_icon_size * 3; // use icon size so the button scales
}
// standalone toggle button
.quick-toggle {
&:checked { @extend %default_button;}
& > StBoxLayout { spacing: $base_padding * 1.5; }
/* 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-title {
@extend %heading;
}
.quick-toggle-subtitle {
@extend %caption;
font-weight: normal;
}
.quick-toggle-icon { icon-size: $scalable_icon_size; }
}
// toggle with a menu button
.quick-toggle-has-menu {
& .quick-toggle {
min-width: auto;
max-width: auto;
&:ltr {
border-radius: $forced_circular_radius 0 0 $forced_circular_radius;
> StBoxLayout { padding-right: $scaled_padding * 1.5; }
}
&:rtl {
border-radius: 0 $forced_circular_radius $forced_circular_radius 0;
> StBoxLayout { padding-left: $scaled_padding * 1.5; }
}
&:ltr:last-child { border-radius: $forced_circular_radius; }
&:rtl:last-child { border-radius: $forced_circular_radius; }
}
& .quick-toggle-menu-button {
padding: $scaled_padding $scaled_padding * 1.75;
&:ltr {
border-radius: 0 $forced_circular_radius $forced_circular_radius 0;
}
&:rtl {
border-radius: $forced_circular_radius 0 0 $forced_circular_radius;
}
}
& .quick-toggle-separator {
width: 1px;
}
}
// Set the color of separators and menu buttons within the toggle.
// This is bit of a mess but needed to have working colors in
// both light, dark and high contrast styles.
// menu button colors
$quick_toggle_menubutton_bg_color: if(
$contrast == 'high', lighten($bg_color, 22%),
if($variant == 'light', darken($bg_color, 5%), lighten($bg_color, 8%))
);
$quick_toggle_menubutton_checked_bg_color: if(
$contrast == 'high', st-mix(-st-accent-color, $fg_color, 75%),
if($variant == 'light', st-mix(-st-accent-color, $fg_color, 92%), st-mix(-st-accent-color, $fg_color, 85%))
);
// separator colors
$quick_toggle_separator_color: if(
$contrast == 'high', transparent,
transparentize($fg_color, .75)
);
$quick_toggle_checked_separator_color: if(
$contrast == 'high', transparent,
if($variant == 'light', st-mix(-st-accent-fg-color, -st-accent-color, 20%), st-mix(-st-accent-fg-color, -st-accent-color, 30%),)
);
.quick-toggle-has-menu {
& .quick-toggle-menu-button {
@include button(normal, $c: $quick_toggle_menubutton_bg_color);
&:focus { @include button(focus, $c: $quick_toggle_menubutton_bg_color);}
&:hover { @include button(hover, $c: $quick_toggle_menubutton_bg_color);}
&:active { @include button(active, $c: $quick_toggle_menubutton_bg_color);}
&:checked {
@include button(normal, $c: $quick_toggle_menubutton_checked_bg_color, $tc:-st-accent-fg-color, $style: default);
&:focus { @include button(focus, $c: $quick_toggle_menubutton_checked_bg_color, $tc:-st-accent-fg-color, $style: default);}
&:hover { @include button(hover, $c: $quick_toggle_menubutton_checked_bg_color, $tc:-st-accent-fg-color, $style: default);}
&:active { @include button(active, $c: $quick_toggle_menubutton_checked_bg_color, $tc:-st-accent-fg-color, $style: default);}
}
}
&:checked {
& .quick-toggle-separator {
background-color: $quick_toggle_checked_separator_color;
}
}
& .quick-toggle-separator {
background-color: $quick_toggle_separator_color;
}
}
.quick-slider {
& > StBoxLayout { spacing: $base_padding; }
.icon-button { padding: $base_padding; }
.slider-bin {
&:focus {@include button(focus);}
padding: $base_padding;
border-radius: $forced_circular_radius;
}
}
.quick-toggle-menu {
@extend %card;
&:insensitive {
// override insensitive style on submenu
@include button(normal);
}
border-radius: $base_border_radius * 3;
margin: $base_padding * 2 $base_padding * 3 0;
.popup-menu-item > StIcon {
-st-icon-style: symbolic;
icon-size: $scalable_icon_size;
}
& .header {
spacing-rows: $base_padding * 0.5;
spacing-columns: $base_padding * 2;
padding-bottom: $base_padding * 2;
& .icon {
icon-size: $medium_scalable_icon_size;
border-radius: $forced_circular_radius;
padding: 1.5 * $base_padding;
background-color: transparentize($fg_color, 0.8);
&.active {
background-color: -st-accent-color;
color: -st-accent-fg-color;
}
// draw hc outline
@if $contrast == 'high' {
@include draw_hc_inset();
&.active {
@include draw_hc_inset($no_inset: true);
}
}
}
& .title {
@extend %title_3;
}
& .subtitle {
@extend %caption_heading;
}
}
}
.quick-toggle-menu-container {
}
.quick-settings-system-item {
& > StBoxLayout { spacing: $base_padding * 2; }
& .power-item {
min-height: 0;
min-width: 0;
&:insensitive {
@include button(normal);
background-color: transparent;
}
}
}
.nm-network-item {
.wireless-secure-icon { icon-size: $scalable_icon_size * 0.5; } // half-size symbolic
}
.bt-device-item {
.popup-menu-icon { -st-icon-style: symbolic; }
}
.bt-menu-placeholder.popup-menu-item {
@extend %title_4;
text-align: center;
padding: 2em 4em;
}
.device-subtitle { color: transparentize($fg_color, 0.5); }
.keyboard-brightness-level {
spacing: $base_padding;
.button:checked { @extend %default_button; }
}
// background apps
.background-apps-quick-toggle {
min-height: to_em(40px);
background-color: transparent;
& StIcon { icon-size: $scalable_icon_size !important; }
}
.background-app-item {
& .title { @extend %heading; }
& .subtitle { @extend %caption; }
& .popup-menu-icon {
icon-size: $large_icon_size !important;
-st-icon-style: regular !important;
}
& .icon-button {
padding: $base_padding;
// override some background colors since it's a button on an already styled background
// FIXME: may need a generic drawing method for button in menu item in future
background-color: transparentize($fg_color, 0.87);
&:hover { background-color: transparentize($fg_color, 0.78);}
&:active { background-color: transparentize($fg_color, 0.69);}
}
& .spinner {
padding: $base_padding;
}
&.popup-inactive-menu-item { color: $fg_color; }
}

View File

@@ -0,0 +1,203 @@
// Screenshot UI
$screenshot_ui_panel_padding: $base_padding * 3;
$screenshot_ui_panel_border_radius: $modal_radius * 2;
$screenshot_ui_button_red: $red_4;
.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 - $base_padding;
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: $base_margin * 3;
box-shadow: 0 2px 4px 0 $shadow_color;
&.left { margin-left: $base_margin * 3;}
&.right { margin-right: $base_margin * 3;}
}
.screenshot-ui-type-button {
@extend %osd_button_flat;
min-width: 48px;
padding: $base_padding * 2 $base_padding * 3;
border-radius: $screenshot_ui_panel_border_radius - $screenshot_ui_panel_padding;
.icon-label-button-container {
@extend %caption;
spacing: $scaled_padding;
> StIcon { icon-size: $large_icon_size;}
}
}
.screenshot-ui-capture-button {
width: $large_icon_size;
height: $large_icon_size;
border-radius: $forced_circular_radius;
border: 4px $osd_fg_color;
padding: $base_margin;
.screenshot-ui-capture-button-circle {
background-color: $osd_fg_color;
transition-duration: 200ms;
&:hover, &:focus { background-color: $hover_bg_color;}
border-radius: $forced_circular_radius;
}
&:hover, &:focus {
.screenshot-ui-capture-button-circle {
background-color: darken($osd_fg_color, 20%);
}
}
&: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: transparentize($osd_fg_color,0.9);
border-radius: $forced_circular_radius;
padding: $base_padding * 0.5;
spacing: $base_padding * 0.5;
@if $contrast == 'high' {
@include draw_hc_inset();
}
}
// non-standard button style
.screenshot-ui-shot-cast-button {
padding: $base_padding $base_padding * 2;
background-color: transparent;
border-radius: $forced_circular_radius;
@if $contrast == 'high' {
@include draw_hc_inset();
}
> StIcon { icon-size: $base_icon_size;}
&:hover, &:focus { background-color: transparentize($osd_fg_color, 0.8);}
&:active { background-color: transparentize($osd_fg_color, .5);}
&:checked { background-color: $osd_fg_color; color: $osd_bg_color;}
&:insensitive { color: transparentize($osd_fg_color, 0.5);}
}
.screenshot-ui-show-pointer-button {
@extend %osd_button_flat;
@extend .icon-button;
}
.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: $forced_circular_radius;
background-color: white;
box-shadow: 0 1px 3px 2px $shadow_color;
width: $medium_icon_size;
height: $medium_icon_size;
}
.screenshot-ui-window-selector {
background-color: $system_base_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: $forced_circular_radius;
border-width: 12px;
icon-size: $medium_icon_size;
}
.screenshot-ui-window-selector-window {
&:hover {
.screenshot-ui-window-selector-window-border {
border-color: st-darken(-st-accent-color, 15%);
}
}
&:checked {
.screenshot-ui-window-selector-window-border {
border-color: -st-accent-color;
background-color: st-transparentize(-st-accent-color, 0.8);
}
.screenshot-ui-window-selector-check {
color: -st-accent-fg-color;
background-color: -st-accent-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 {
@extend %tooltip;
text-align: center;
-y-offset: $base_margin * 6;
}

View File

@@ -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%);}
}
}

View File

@@ -0,0 +1,15 @@
// Search entry
.search-entry {
border-radius: $forced_circular_radius;
margin-top: $base_padding * 2;
margin-bottom: $base_padding;
width: 24em;
@extend %system_entry;
.search-entry-icon {
icon-size: $scalable_icon_size;
margin-top: 2px; // center vertically
padding: 0 $base_margin;
}
}

View File

@@ -0,0 +1,107 @@
/* Search */
// search overview container
#searchResults {
margin: 0 $base_margin;
}
#searchResultsContent {
max-width: 1044px;
}
// 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: $system_overlay_bg_color;
color: $system_fg_color;
border-radius: $modal_radius * 1.5;
padding: $base_padding * 2;
margin:0 $base_margin * 3;
border: 2px solid transparent;
@if $contrast == 'high' {
border-color: $hc_inset_color;
}
}
%search_section_content_item {
@include tile_button($bg:$system_overlay_bg_color);
border-radius: $base_border_radius * 1.65;
}
// "no results" text
.search-statustext {
@extend %title_1;
color: transparentize($system_fg_color, .2);
}
.grid-search-results {
spacing: $base_padding * 5;
}
// Search results with icons
.grid-search-result {
@extend .overview-tile;
}
// 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: $system_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;
@if $contrast == 'high' {
font-weight: bold;
}
}
// list item description
.list-search-result-description {
color: $system_insensitive_fg_color;
@if $contrast == 'high' {
color: $system_fg_color;
}
}
}

View File

@@ -0,0 +1,27 @@
/* Slider */
$slider_size: $scalable_icon_size;
.slider {
color: if($variant == 'light', $fg_color, darken($fg_color, 9%));
// slider trough
-barlevel-height: 4px;
-barlevel-background-color: transparentize($fg_color, 0.9);
// fill style
-barlevel-active-background-color: -st-accent-color;
// overfill style (red in this case)
-barlevel-overdrive-color: $destructive_color;
-barlevel-overdrive-separator-width:1px;
// slider handler
-slider-handle-radius: $slider_size * 0.5; // half the size of the size
// hc style
@if $contrast == 'high' {
-barlevel-background-color: transparentize($fg_color, 0.6);
}
&:hover {
color: if($variant == 'light', lighten($fg_color, 7%), $fg_color);
}
}

View File

@@ -0,0 +1,82 @@
/* App Switcher */
// same as dash
$switcher_padding: $base_padding * 2;
$switcher_radius: $modal_radius + $switcher_padding;
// 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_radius;
box-shadow: 0 8px 8px 0 $shadow_color;
// container for items in list
.switcher-list-item-container {
spacing: $base_padding * 2;
}
// each item in the list
.item-box {
@include tile_button($fg:$osd_fg_color, $bg:$osd_bg_color);
// override %tile style so mouse doesn't steal focus
&:hover {background: none;}
// brighter than normal selected style
&:selected {
background-color: transparentize($osd_fg_color, 0.8);
}
@if $contrast == 'high' {
&:selected {
background-color: transparentize($osd_fg_color, 0.7);
}
}
}
.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 -st-accent-color;
}

View File

@@ -0,0 +1,53 @@
/* Switches */
$switch_width: 46px;
$switch_handle_size: 20px;
.toggle-switch {
width: $switch_width;
border-radius: $forced_circular_radius;
transition-duration: 100ms;
color: $fg_color;
@if $contrast == 'high' {
background: transparentize(if($variant == 'light', black, white), .7);
&:hover {
background: transparentize(if($variant == 'light', black, white), .6);
}
} @else {
background: transparentize(if($variant == 'light', black, white), .85);
&:hover {
background: transparentize(if($variant == 'light', black, white), .8);
}
}
StIcon {
icon-size: $base_icon_size;
}
.handle {
margin: 3px;
width: $switch_handle_size;
height: $switch_handle_size;
border-radius: $forced_circular_radius;
background: if($variant == 'light', white, mix(white, $bg_color, 80%));
box-shadow: 0 2px 4px transparentize(black, .8);
transition-duration: 100ms;
}
&:checked {
background: -st-accent-color;
color: -st-accent-fg-color;
&:hover {
background-color: st-lighten(-st-accent-color, 5%);
color: st-lighten(-st-accent-fg-color, 5%);
}
.handle {
background: white;
}
}
}

View File

@@ -0,0 +1,61 @@
/* Window Picker */
$window_close_button_color: transparentize(lighten($system_bg_color, 7%), .02);
// Window picker
.window-picker {
// Space between window thumbnails
spacing: $base_padding;
}
// Window icons
.window-icon {
// styled only with .icon-dropshadow
// but has a different style in high-contrast
@if $contrast == 'high' {
background-color: $osd_bg_color;
padding: $base_padding * 2;
border-radius: $modal_radius;
border: 2px solid $hc_inset_color;
margin: $base_padding * 3;
}
}
// Window titles
.window-caption {
@extend %tooltip;
}
// Close button
.window-close {
background-color: $window_close_button_color;
color: $system_fg_color;
border-radius: $forced_circular_radius;
box-shadow: 0 2px 4px 0 $shadow_color;
padding: $base_padding * 0.5;
height: $large_icon_size;
width: $large_icon_size;
transition-duration: 100ms;
border: 2px solid transparent;
@if $contrast == 'high' {
border-color: $hc_inset_color;
}
& StIcon { icon-size: $medium_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 $shadow_color;
}

View File

@@ -0,0 +1,25 @@
/* Workspace Switcher */
$ws_indicator_height: 32px;
$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;
}
}

View File

@@ -0,0 +1,32 @@
/* Workspace pager */
// thumbnails in overview
.workspace-thumbnails {
visible-width: 32px; //amount visible before hover
spacing: $base_padding;
padding: $base_padding;
.workspace-thumbnail {
color: $system_fg_color;
background-color: lighten($system_bg_color, 10%);
border-radius: $base_border_radius * 0.5;
border: 1px solid transparent;
@if $contrast == 'high' {
border-color: $hc_inset_color;
}
}
// 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 -st-accent-color;
border-radius: $base_border_radius;
}

Binary file not shown.

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/theme">
<file>calendar-today.svg</file>
<file>calendar-today-light.svg</file>
<file>gnome-shell-dark.css</file>
<file>gnome-shell-light.css</file>
<file>gnome-shell-high-contrast.css</file>
<file>gnome-shell-start.svg</file>
<file>pad-osd.css</file>
<file>workspace-placeholder.svg</file>
<file>background.png</file>
</gresource>
</gresources>

8
src/other/gdm/install.sh Executable file
View File

@@ -0,0 +1,8 @@
#! /usr/bin/env bash
./parse-sass.sh
./make_gresource.sh
sudo cp -r gnome-shell-theme.gresource /usr/share/gnome-shell/gnome-shell-theme.gresource

32
src/other/gdm/make_gresource.sh Executable file
View File

@@ -0,0 +1,32 @@
#! /usr/bin/env bash
# Check command availability
function has_command() {
command -v $1 > /dev/null
}
if ! has_command glib-compile-resources; then
echo -e "DEPS: 'glib2.0' are required for theme installation."
if has_command zypper; then
sudo zypper in -y glib2-devel
elif has_command swupd; then
prepare_swupd && sudo swupd bundle-add libglib
elif has_command apt; then
prepare_install_apt_packages libglib2.0-dev-bin
elif has_command dnf; then
sudo dnf install -y glib2-devel
elif has_command yum; then
sudo yum install -y glib2-devel
elif has_command pacman; then
sudo pacman -Syyu --noconfirm --needed glib2
elif has_command xbps-install; then
prepare_xbps && sudo xbps-install -Sy glib-devel
elif has_command eopkg; then
sudo eopkg -y upgrade; sudo eopkg -y install glib2
fi
fi
glib-compile-resources --sourcedir="theme" --target="gnome-shell-theme.gresource" gnome-shell-theme.gresource.xml
echo finished !

34
src/other/gdm/parse-sass.sh Executable file
View File

@@ -0,0 +1,34 @@
#! /usr/bin/env bash
# Check command availability
function has_command() {
command -v $1 > /dev/null
}
if [ ! "$(which sassc 2> /dev/null)" ]; then
echo sassc needs to be installed to generate the css.
if has_command zypper; then
sudo zypper in sassc
elif has_command apt; then
sudo apt install -y sassc
elif has_command dnf; then
sudo dnf install -y sassc
elif has_command yum; then
sudo yum install -y sassc
elif has_command pacman; then
sudo pacman -S --noconfirm sassc
fi
fi
SASSC_OPT="-M -t expanded"
_COLOR_VARIANTS=('-light' '-dark' '-high-contrast')
if [ ! -z "${COLOR_VARIANTS:-}" ]; then
IFS=', ' read -r -a _COLOR_VARIANTS <<< "${COLOR_VARIANTS:-}"
fi
for color in "${_COLOR_VARIANTS[@]}"; do
sassc $SASSC_OPT gnome-shell${color}.scss theme/gnome-shell${color}.css
echo "==> Generating gnome-shell${color}.css..."
done

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@@ -0,0 +1 @@
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg"><circle style="color:#000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000;solid-opacity:1;fill:#242424;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" cx="16" cy="28" r="2"/></svg>

After

Width:  |  Height:  |  Size: 718 B

View File

@@ -0,0 +1 @@
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg"><circle style="color:#000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000;solid-opacity:1;fill:#fff;fill-opacity:.858277;fill-rule:nonzero;stroke:none;stroke-width:.999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" cx="16" cy="28" r="2"/></svg>

After

Width:  |  Height:  |  Size: 727 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,343 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
id="svg8"
version="1.1"
viewBox="0 0 600 400"
height="400"
width="600"
sodipodi:docname="gnome-shell-start.svg">
<defs
id="defs2">
<linearGradient
id="a">
<stop
offset="0"
stop-color="#eef4fc"
id="stop3"
style="stop-color:#b2cdf1;stop-opacity:1" />
<stop
offset="1"
stop-color="#fff"
id="stop5" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10562"
id="linearGradient10564"
x1="-1179.9999"
y1="1314.5198"
x2="-940.00006"
y2="1314.5198"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3993149,0,0,1.3993149,1306.25,-919.42736)" />
<linearGradient
inkscape:collect="always"
id="linearGradient10562">
<stop
style="stop-color:#3580e4;stop-opacity:1"
offset="0"
id="stop10558" />
<stop
style="stop-color:#8abfdd;stop-opacity:1"
offset="1"
id="stop10560" />
</linearGradient>
<clipPath
id="e-3"
clipPathUnits="userSpaceOnUse">
<path
d="m 65,177 c -18.502,0 -33.5,14.998 -33.5,33.5 0.008,7.371 4.131,15.807 11.388,23.526 l 12.617,13.171 H 75.02 l 12.137,-13.245 c 6.636,-7.059 11.33,-16.117 11.344,-23.452 0,-18.502 -14.998,-33.5 -33.5,-33.5 z"
style="marker:none"
fill="#ffffff"
stroke-width="2"
id="path34-6" />
</clipPath>
<radialGradient
r="33.5"
fy="48.405998"
fx="79.091003"
cy="48.405998"
cx="79.091003"
gradientTransform="matrix(0.00476,1.62228,-1.43419,0.00422,141.702,-82.047)"
gradientUnits="userSpaceOnUse"
id="f-7"
xlink:href="#b" />
<linearGradient
id="b">
<stop
offset="0"
stop-color="#fff"
id="stop11" />
<stop
offset=".519"
stop-color="#fff"
id="stop13" />
<stop
offset=".734"
stop-color="#cfcfcf"
id="stop15" />
<stop
offset="1"
stop-color="#dcdcdc"
id="stop17" />
</linearGradient>
<radialGradient
r="12"
fy="54.102001"
fx="71.473999"
cy="54.102001"
cx="71.473999"
gradientTransform="matrix(4.50607,0,0,4.76661,-259.306,-59.706)"
gradientUnits="userSpaceOnUse"
id="g-2"
xlink:href="#c" />
<linearGradient
id="c">
<stop
offset="0"
stop-color="#ed686f"
id="stop20" />
<stop
offset=".865"
stop-color="#a51d2d"
id="stop22" />
<stop
offset="1"
stop-color="#e01b24"
id="stop24" />
</linearGradient>
<radialGradient
r="14.583"
fy="49.777"
fx="40.152"
cy="49.777"
cx="40.152"
gradientTransform="matrix(0.87016,4.27869,-2.56693,0.52204,148.394,-163.306)"
gradientUnits="userSpaceOnUse"
id="h-7"
xlink:href="#d" />
<linearGradient
id="d">
<stop
offset="0"
stop-color="#ed686f"
id="stop27" />
<stop
offset=".911"
stop-color="#a51d2d"
id="stop29" />
<stop
offset="1"
stop-color="#e01b24"
id="stop31" />
</linearGradient>
<radialGradient
r="14.583"
fy="49.777"
fx="40.152"
cy="49.777"
cx="40.152"
gradientTransform="matrix(0.87016,4.27869,-2.56693,0.52204,148.394,-163.306)"
gradientUnits="userSpaceOnUse"
id="i-6"
xlink:href="#d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient860"
id="linearGradient22"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.575111,0,0,1.575111,1217.8748,47.173672)"
x1="85"
y1="107.162"
x2="85"
y2="86" />
<linearGradient
id="linearGradient860">
<stop
offset="0"
stop-color="#eef4fc"
id="stop856"
style="stop-color:#c5dcf7;stop-opacity:1" />
<stop
offset="1"
stop-color="#fff"
id="stop858" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient860"
id="linearGradient24"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-2.1158457,0,0,2.1158457,1459.4994,-118.92278)"
x1="85"
y1="110.30392"
x2="85"
y2="86.986084" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient860"
id="linearGradient23"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5463767,0,0,1.5463767,655.03375,-16.075361)"
x1="85"
y1="107.162"
x2="85"
y2="82.13472" />
</defs>
<sodipodi:namedview
units="px"
borderlayer="true"
inkscape:showpageshadow="false"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="75.603256"
inkscape:cx="199.00314"
inkscape:zoom="0.98994949"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
borderopacity="1"
bordercolor="#383838"
pagecolor="#1f1f1f"
id="base"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid900" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1"
transform="translate(-620,9.4371882)">
<g
id="g4043"
transform="translate(-15.793175)">
<circle
style="fill:url(#linearGradient10564);fill-opacity:1;stroke:none;stroke-width:3.66905;stroke-linecap:round;stroke-linejoin:round"
id="path10517"
cx="-177.02397"
cy="920"
r="167.91774"
transform="rotate(-90)" />
<path
d="m 1066.6646,147.98131 c 12.3048,0.0174 23.474,7.19166 28.6008,18.37784 a 23.631877,23.631877 0 0 1 10.7762,-2.62748 c 12.4288,0.0178 22.7209,9.65384 23.5474,22.05492 h 0.08 c 8.6991,0 15.7508,7.05171 15.7508,15.75083 0,8.69911 -7.0522,15.75083 -15.7513,15.75083 h -88.2056 a 18.901933,18.901933 0 0 1 -18.9019,-18.901 18.901933,18.901933 0 0 1 12.6566,-17.81853 33.12417,33.12417 0 0 1 -0.056,-1.08246 c 0,-17.39824 14.1038,-31.50213 31.5025,-31.50213 z"
id="path10"
style="fill:url(#linearGradient22);stroke-width:0.577558" />
<g
id="g245"
transform="matrix(1.5161629,0,0,1.5161629,396.40481,-143.42807)">
<g
id="g126"
transform="matrix(0.75000161,0,0,0.75000161,154.45946,111.99828)">
<g
id="g265">
<g
transform="matrix(3.12129,0,0,2.9344,91.063695,-499.94397)"
clip-path="url(#e-3)"
id="g47-0">
<path
transform="translate(-8,156)"
d="M 73,21 C 54.498,21 39.5,35.998 39.5,54.5 39.508,61.871 43,68.922 46.44,74.879 L 58,98 H 88 L 99.605,74.79 C 103,68.91 106.485,61.835 106.5,54.5 106.5,35.998 91.502,21 73,21 Z"
style="fill:url(#f-7);marker:none"
fill="url(#f)"
id="path39-6" />
<path
d="m 64,177 c 0,0 -18.332,12.132 -18.332,30.989 0,14.571 16.174,46.011 16.174,46.011 H 67 c 0,0 1.333,-31.44 1.333,-46.011 C 68.333,189.132 64,177 64,177 Z"
fill="url(#g)"
id="path41-2"
style="fill:url(#g-2)" />
<path
transform="translate(-8,156)"
d="m 71.983,21.106 c -8.207,0.147 -16.328,3.285 -22.5,8.695 -6.174,5.409 -10.35,13.047 -11.574,21.163 -1.24,8.225 0.567,16.874 4.995,23.915 L 61.902,98 h 6.432 L 55.002,81.27 C 50.702,75.875 46.53,70.2 44.406,63.636 42.283,57.072 42.24,49.836 44.409,43.288 A 32.824,32.824 0 0 1 54.925,28.13 32.824,32.824 0 0 1 71.983,21.105 Z"
fill="url(#h)"
id="path43-6"
style="fill:url(#h-7)" />
<path
transform="matrix(-1,0,0,1,137.16,155.823)"
d="M 73.003,21.303 C 65.294,19.756 57.033,21.149 50.257,25.138 43.481,29.127 38.255,35.675 35.867,43.167 A 32.484,32.484 0 0 0 35.11,59.972 32.484,32.484 0 0 0 42.904,74.879 L 54.11,98 H 67.493 L 54.16,74.356 C 51.292,69.269 48.603,63.95 47.733,58.175 46.863,52.4 47.769,46.404 50.107,41.052 54.28,31.502 62.943,24.03 73.002,21.304 Z"
fill="url(#i)"
id="path45-1"
style="fill:url(#i-6)" />
</g>
<path
style="marker:none"
d="m 271.0607,256.22128 v 19.397 a 9.702,9.702 0 0 0 9.724,9.726 h 26.326 c 5.388,0 8.594,-4.457 9.725,-9.726 v -19.397 z"
fill="#e5a50a"
id="path49-8" />
<path
style="marker:none"
d="m 271.0607,252.06028 v 19.397 a 9.702,9.702 0 0 0 9.724,9.724 h 26.326 c 5.388,0 8.594,-4.455 9.725,-9.724 v -19.397 z"
fill="#e5a50a"
id="path51-7" />
<path
style="marker:none"
d="m 300.1907,252.06028 v 29.121 h 6.92 c 5.388,0 8.594,-4.455 9.725,-9.724 v -19.397 z"
fill="#f3af0b"
id="path53-9" />
</g>
</g>
</g>
<path
style="font-variation-settings:normal;fill:url(#linearGradient24);fill-opacity:1;stroke-width:0.822282"
d="m 1051.0577,24.011554 a 37.111799,37.111799 0 0 0 -36.9465,35.120895 c -13.3251,2.089947 -23.45686,13.564137 -23.45686,27.494149 0,15.421302 12.41476,27.836692 27.83666,27.836692 h 72.3273 c 11.9284,0 21.5316,-9.60251 21.5316,-21.530902 0,-11.928386 -9.6032,-21.532163 -21.5316,-21.532163 h -3.9868 a 37.111799,37.111799 0 0 0 1.4509,-10.27624 37.111799,37.111799 0 0 0 -37.1118,-37.111798 37.111799,37.111799 0 0 0 -0.1123,0 z"
id="path12" />
<path
d="m 803.48555,82.893284 c -12.0805,0.0171 -23.046,7.06046 -28.0791,18.042576 a 23.200767,23.200767 0 0 0 -10.5796,-2.579546 c -12.2021,0.0175 -22.3064,9.477716 -23.1179,21.652566 h -0.079 c -8.5404,0 -15.4634,6.92307 -15.4634,15.46349 0,8.54042 6.9235,15.46349 15.4639,15.46349 h 86.5965 a 18.55711,18.55711 0 0 0 18.5571,-18.55619 18.55711,18.55711 0 0 0 -12.4257,-17.49347 32.519894,32.519894 0 0 0 0.055,-1.06272 c 0,-17.080836 -13.8466,-30.927426 -30.9279,-30.927426 z"
id="path21"
style="fill:url(#linearGradient23);fill-opacity:1;stroke-width:0.999999" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,29 @@
.Leader {
stroke-width: .5 !important;
stroke: #535353;
fill: none !important;
}
.Button {
stroke-width: .25;
stroke: #ededed;
fill: #ededed;
}
.Ring {
stroke-width: .5 !important;
stroke: #535353 !important;
fill: none !important;
}
.Label {
stroke: none !important;
stroke-width: .1 !important;
fill: transparent !important;
}
.TouchStrip, .TouchRing {
stroke-width: .1 !important;
stroke: #ededed !important;
fill: #535353 !important;
}

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="27"
height="76"
id="svg11252"
version="1.1"
sodipodi:docname="dash-placeholder-horizontal.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)">
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="640"
inkscape:window-height="480"
id="namedview17"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="12.473684"
inkscape:cx="38"
inkscape:cy="26.327004"
inkscape:current-layer="g99967"
inkscape:document-rotation="0" />
<defs
id="defs11254">
<radialGradient
xlink:href="#linearGradient39563-4-2"
id="radialGradient68155-2-3"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.3486842,24.5,341.84211)"
cx="49"
cy="488"
fx="49"
fy="488"
r="38" />
<linearGradient
id="linearGradient39563-4-2">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop39565-1-4" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop39567-7-9" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient39573-6-1"
id="radialGradient68157-0-8"
gradientUnits="userSpaceOnUse"
cx="50.5"
cy="487.5"
fx="50.5"
fy="487.5"
r="10.5"
gradientTransform="matrix(1.2857143,0,0,1.2857143,8.571428,-114.78571)" />
<linearGradient
id="linearGradient39573-6-1">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop39575-5-6" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop39577-1-2" />
</linearGradient>
</defs>
<g
id="layer1"
transform="rotate(90,465.93109,104.43109)">
<g
id="g99967"
style="display:inline"
transform="translate(326,44.862171)">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.49375;fill:url(#radialGradient68155-2-3);fill-opacity:1;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
id="rect99969"
width="76"
height="2"
x="35.5"
y="511"
rx="0"
ry="0" />
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.43125;fill:url(#radialGradient68157-0-8);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.28571;marker:none;enable-background:accumulate"
id="path99971"
d="m 87,512.00001 c 0,7.45584 -6.044155,13.5 -13.5,13.5 -7.455844,0 -13.5,-6.04416 -13.5,-13.5 0,-7.45585 6.044156,-13.5 13.5,-13.5 7.455845,0 13.5,6.04415 13.5,13.5 z" />
<path
d="m 78.076923,512.00001 c 0,2.52776 -2.049159,4.57692 -4.576923,4.57692 -2.527766,0 -4.576923,-2.04916 -4.576923,-4.57692 0,-2.52777 2.049157,-4.57692 4.576923,-4.57692 2.527765,0 4.576923,2.04915 4.576923,4.57692 z"
id="path99973"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.435897;marker:none;enable-background:accumulate" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -55,9 +55,11 @@ $light_alt_fg_color: rgba($light_fg_color, 0.85);
$light_hint_fg_color: rgba($light_fg_color, 0.50);
$light_disabled_fg_color: rgba($light_fg_color, 0.45);
$light_alt_disabled_fg_color: rgba($light_fg_color, 0.35);
$light_track_color: rgba($light_fg_color, 0.2);
$light_divider_color: rgba($light_fg_color, 0.12);
$light_fill_color: rgba($light_fg_color, 0.06);
$light_active_color: rgba($light_fg_color, 0.2);
$light_track_color: rgba($light_fg_color, 0.16);
$light_visit_color: rgba($light_fg_color, 0.12);
$light_divider_color: rgba($light_fg_color, 0.1);
$light_fill_color: rgba($light_fg_color, 0.05);
$selected_fg_color: $light_fg_color;
$selected_bg_color: if($scheme == 'nord', $nord_color_default, $theme_color_default);

View File

@@ -324,8 +324,11 @@
padding: 0 !important;
border-radius: $circular_radius;
border: none;
background-color: rgba($light_fg_color, 0.1);
background-color: $fill_color;
color: $light_fg_color;
&:hover, &:focus { background-color: $divider_color; }
&:active { background-color: $track_color; }
}
}
@@ -351,26 +354,26 @@
}
.login-dialog-user-list {
&:expanded .login-dialog-user-list-item:selected { background-color: $light_divider_color; color: $light_alt_fg_color; }
&:expanded .login-dialog-user-list-item:hover { background-color: $light_divider_color; color: $light_alt_fg_color; }
&:expanded .login-dialog-user-list-item:active { background-color: $light_track_color; color: $light_alt_fg_color; }
&:expanded .login-dialog-user-list-item:selected { background-color: $light_visit_color; color: $light_fg_color; }
&:expanded .login-dialog-user-list-item:hover { background-color: $light_divider_color; color: $light_fg_color; }
&:expanded .login-dialog-user-list-item:active { background-color: $light_track_color; color: $light_fg_color; }
}
.login-dialog-user-list-item {
color: $light_alt_fg_color;
&:focus {
background-color: if($variant == 'light', rgba(black, 0.05), rgba(white, 0.03)) !important;
background-color: $visit_color !important;
}
&:hover, &:focus:hover {
background-color: $divider_color !important;
color: $light_alt_fg_color;
color: $light_fg_color;
}
&:active, &:focus:active {
background-color: $track_color !important;
color: $light_alt_fg_color;
color: $light_fg_color;
}
.login-dialog-timed-login-indicator {

View File

@@ -13,27 +13,28 @@
// User icon
.user-icon {
background-size: contain;
color: $light_alt_fg_color;
color: $alt_fg_color;
border-radius: $circular_radius;
border: none;
// box-shadow: 0 3px 8px rgba(black, 0.25);
icon-size: $base_icon_size * 4; // 64px
&:hover {
color: lighten($osd_fg_color, 30%);
color: $fg_color;
}
& StIcon {
background-color: $light_track_color;
background-color: $track_color;
border-radius: $circular_radius;
padding: $base_padding * 2; // 12px
width: $base_icon_size * 2.5;
height: $base_icon_size * 2.5; // 40px;
color: $light_fg_color;
}
&.user-avatar {
border: none;
box-shadow: inset 0 0 0 1px transparentize($light_alt_fg_color, 0.9);
box-shadow: inset 0 2px 3px rgba(black, 0.05);
}
.popup-menu & {
@@ -41,6 +42,7 @@
StIcon {
background-color: $track_color;
color: $fg_color;
}
}
}

View File

@@ -19,21 +19,10 @@ source "${REPO_DIR}/libs/lib-install.sh"
colors=("${COLOR_VARIANTS[@]}")
opacities=("${OPACITY_VARIANTS[@]}")
# Firefox values
adaptive=''
theme_name="$THEME_NAME"
firefoxtheme="$THEME_NAME"
left_button="3"
right_button="3"
usage() {
# Please specify their default value manually, some of them are come from _variables.scss
# You also have to check and update them regurally
helpify_title
helpify "-o, --opacity" "[$(IFS='|'; echo "${OPACITY_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM/Flatpak theme opacity variants" "Default is 'normal'"
helpify "-c, --color" "[$(IFS='|'; echo "${COMMAND_COLOR_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM/Flatpak theme color variants" "Default is 'light'"
helpify "-t, --theme" "[$(IFS='|'; echo "${THEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM/Flatpak theme accent color" "Default is BigSur-like theme"
helpify "-s, --scheme" "[$(IFS='|'; echo "${SCHEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM/Flatpak theme colorscheme style" "Default is 'standard'"
helpify "" "" "Tweaks for GDM theme" "options"
sec_title "-g, --gdm" "" " Without options default GDM theme will install..." ""
@@ -44,6 +33,10 @@ usage() {
sec_helpify "5. -sf, -smallerfont" "" " Set GDM font size to smaller (10pt)" "Default is 11pt"
sec_helpify "6. -nd, -nodarken" "" " Don't darken '${THEME_NAME}' GDM theme background image" ""
sec_helpify "7. -nb, -noblur" "" " Don't blur '${THEME_NAME}' GDM theme background image" ""
sec_helpify "8. -o, --opacity" "[$(IFS='|'; echo "${OPACITY_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM theme opacity variants" "Default is 'normal'"
sec_helpify "9. -c, --color" "[$(IFS='|'; echo "${COLOR_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM theme color variants" "Default is 'dark'"
sec_helpify "10. -t, --theme" "[$(IFS='|'; echo "${THEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM theme accent color" "Default is 'blue'"
sec_helpify "11. -s, --scheme" "[$(IFS='|'; echo "${SCHEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' GDM theme colorscheme style" "Default is 'standard'"
helpify "" "" "Tweaks for firefox" "options"
sec_title "-f, --firefox" " [(monterey|flat)|alt|(darker|adaptive)]" " Without options default WhiteSur theme will install..." " Options:"
@@ -60,11 +53,9 @@ usage() {
sec_title "-F, --flatpak" "Support options: [-o, -c, -t...]" " Connect '${THEME_NAME}' theme to Flatpak" "Without options will only install default themes"
sec_helpify "1. -o, --opacity" "[$(IFS='|'; echo "${OPACITY_VARIANTS[*]}")]" " Set '${THEME_NAME}' flatpak theme opacity variants" "Default is 'normal'"
sec_helpify "2. -c, --color" "[$(IFS='|'; echo "${COLOR_VARIANTS[*]}")]" " Set '${THEME_NAME}' flatpak theme color variants" "Default is 'light'"
sec_helpify "3. -t, --theme" "[$(IFS='|'; echo "${THEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' flatpak theme accent color" "Default is BigSur-like theme"
sec_helpify "3. -t, --theme" "[$(IFS='|'; echo "${THEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' flatpak theme accent color" "Default is 'blue'"
sec_helpify "4. -s, --scheme" "[$(IFS='|'; echo "${SCHEME_VARIANTS[*]}")]" " Set '${THEME_NAME}' flatpak theme colorscheme style" "Default is 'standard'"
#helpify "-s, --snap" "" " Connect '${THEME_NAME}' theme the currently installed snap apps" ""
helpify "-d, --dash-to-dock" "" " Fixed Dash to Dock theme issue" ""
helpify "-r, --remove, --revert" "" " Revert to the original themes, do the opposite things of install and connect" ""
@@ -236,13 +227,6 @@ while [[ $# -gt 0 ]]; do
prompt -e "'${1}' ERROR: There's no Flatpak installed in your system"
has_any_error="true"
fi; shift ;;
# -s|--snap)
# snap="true";
# if ! has_command snap; then
# prompt -e "'${1}' ERROR: There's no Snap installed in your system"
# has_any_error="true"
# fi; shift ;;
-d|--dash-to-dock)
if [[ ! -d "${DASH_TO_DOCK_DIR_HOME}" && ! -d "${DASH_TO_DOCK_DIR_ROOT}" ]]; then
@@ -282,12 +266,6 @@ if [[ "${uninstall}" == 'true' ]]; then
fi
fi
# if [[ "${snap}" == 'true' && "${gdm}" != 'true' ]]; then
# prompt -i "Disconnecting '${name}' theme from your installed snap apps... \n"
# disconnect_snap
# prompt -s "Done! '${name}' theme has been disconnected from your snap apps.\n"
# fi
if [[ "${flatpak}" == 'true' && "${gdm}" != 'true' ]]; then
prompt -i "Disconnecting '${name}' theme from your Flatpak... \n"
disconnect_flatpak
@@ -313,17 +291,15 @@ else
prompt -e "Do not run this option with '--gdm' \n"
else
prompt -i "Installing '${name}' GDM theme... \n"
install_gdm_theme
if [[ "$GNOME_VERSION" == '48-0' ]]; then
install_only_gdm_theme
else
install_gdm_theme
fi
prompt -s "Done! '${name}' GDM theme has been installed. \n"
fi
fi
# if [[ "${snap}" == 'true' && "${gdm}" != 'true' ]]; then
# prompt -i "Connecting '${name}' theme to your installed snap apps... \n"
# connect_snap
# prompt -s "Done! '${name}' theme has been connected to your snap apps. \n"
# fi
if [[ "${flatpak}" == 'true' && "${gdm}" != 'true' ]]; then
prompt -i "Connecting '${name}' themes to your Flatpak... \n"
prompt -w "Without options it will only install default themes\n"