diff --git a/install.sh b/install.sh index 7b3334e4..31cfb0b9 100755 --- a/install.sh +++ b/install.sh @@ -511,7 +511,7 @@ theme_tweaks() { if [[ "$compact" = "true" ]]; then compact_size fi - + if [[ "$colorscheme" = "true" ]] ; then color_schemes fi @@ -534,7 +534,7 @@ theme_tweaks() { } uninstall_link() { - rm -rf "${HOME}/.config/gtk-4.0/"{assets,windows-assets,gtk.css,gtk-dark.css} + rm -rf "${HOME}/.config/gtk-4.0/"{assets,windows-assets,gtk.css,gtk-dark.css,gtk-Light.css,gtk-Dark.css} } link_libadwaita() { @@ -558,6 +558,15 @@ link_libadwaita() { } install_libadwaita() { + local dest="${1}" + local name="${2}" + local theme="${3}" + local color="${4}" + local size="${5}" + local scheme="${6}" + + theme_tweaks + rm -rf "${HOME}/.config/gtk-4.0/"{assets,gtk.css,gtk-dark.css} echo -e "\nInstalling theme into '${HOME}/.config/gtk-4.0' for libadwaita..." @@ -565,7 +574,12 @@ install_libadwaita() { mkdir -p "${HOME}/.config/gtk-4.0" cp -r "${SRC_DIR}/assets/gtk/assets" "${HOME}/.config/gtk-4.0" cp -r "${SRC_DIR}/assets/gtk/symbolics/"*'.svg' "${HOME}/.config/gtk-4.0/assets" - sassc $SASSC_OPT "${SRC_DIR}/main/libadwaita/libadwaita.scss" "${HOME}/.config/gtk-4.0/gtk.css" + + if [[ "$colorscheme" = "true" || "$blackness" = "true" ]] ; then + sassc $SASSC_OPT "${SRC_DIR}/main/libadwaita/libadwaita${color}.scss" "${HOME}/.config/gtk-4.0/gtk.css" + else + sassc $SASSC_OPT "${SRC_DIR}/main/libadwaita/libadwaita-Light.scss" "${HOME}/.config/gtk-4.0/gtk.css" + fi } link_theme() { @@ -580,6 +594,18 @@ link_theme() { done } +libadwaita_theme() { + for theme in "${themes[@]}"; do + for color in "${lcolors[@]}"; do + for size in "${sizes[@]}"; do + for scheme in "${schemes[@]}"; do + install_libadwaita "${dest:-$DEST_DIR}" "${name:-$THEME_NAME}" "$theme" "$color" "$size" "$scheme" + done + done + done + done +} + clean() { local dest="${1}" local name="${2}" @@ -663,15 +689,18 @@ uninstall_theme() { if [[ "$uninstall" == 'true' ]]; then if [[ "$libadwaita" == 'true' ]]; then - echo -e "\nUninstall ${HOME}/.config/gtk-4.0 links ..." + echo -e "\nUninstall libadwaita theme from ${HOME}/.config/gtk-4.0 ..." uninstall_link else echo && uninstall_theme && uninstall_link fi else - install_package && tweaks_temp && gnome_shell_version && install_theme + install_package && tweaks_temp + if [[ "$libadwaita" == 'true' ]]; then - uninstall_link && install_libadwaita + uninstall_link && libadwaita_theme + else + gnome_shell_version && install_theme fi fi diff --git a/src/main/libadwaita/libadwaita-Dark.scss b/src/main/libadwaita/libadwaita-Dark.scss new file mode 100644 index 00000000..fc3ca2f0 --- /dev/null +++ b/src/main/libadwaita/libadwaita-Dark.scss @@ -0,0 +1,12 @@ +$variant: 'dark'; +$topbar: 'dark'; + +@import '../../sass/colors'; +@import '../../sass/libadwaita/palette'; +@import '../../sass/libadwaita/functions'; +@import '../../sass/libadwaita/variables'; +@import '../../sass/libadwaita/colors'; +@import '../../sass/libadwaita/drawing'; +@import '../../sass/libadwaita/common'; +@import '../../sass/libadwaita/defaults'; +@import '../../sass/libadwaita/compat-colors'; diff --git a/src/main/libadwaita/libadwaita-Light.scss b/src/main/libadwaita/libadwaita-Light.scss new file mode 100644 index 00000000..640b49a5 --- /dev/null +++ b/src/main/libadwaita/libadwaita-Light.scss @@ -0,0 +1,12 @@ +$variant: 'light'; +$topbar: 'light'; + +@import '../../sass/colors'; +@import '../../sass/libadwaita/palette'; +@import '../../sass/libadwaita/functions'; +@import '../../sass/libadwaita/variables'; +@import '../../sass/libadwaita/colors'; +@import '../../sass/libadwaita/drawing'; +@import '../../sass/libadwaita/common'; +@import '../../sass/libadwaita/defaults'; +@import '../../sass/libadwaita/compat-colors'; diff --git a/src/main/libadwaita/libadwaita.scss b/src/main/libadwaita/libadwaita.scss index 77f57b0a..0ebfd591 100644 --- a/src/main/libadwaita/libadwaita.scss +++ b/src/main/libadwaita/libadwaita.scss @@ -1,6 +1,5 @@ -$contrast: 'normal'; $variant: 'light'; -$topbar: 'light'; +$topbar: 'dark'; @import '../../sass/colors'; @import '../../sass/libadwaita/palette'; diff --git a/src/sass/_colors.scss b/src/sass/_colors.scss index e8366fa0..8738bf37 100644 --- a/src/sass/_colors.scss +++ b/src/sass/_colors.scss @@ -133,6 +133,8 @@ $scrim-inverse: rgba($white, 0.1); $titlebar: if($topbar == 'dark', background(f), background(c)); $titlebar-backdrop: if($topbar == 'dark', background(g), background(b)); $titlebar-primary: if($topbar == 'dark' and $theme == 'grey' and $variant == 'light', lighten($primary, 15%), $primary); +$sidebar: if($topbar == 'dark' and $variant == 'light', $titlebar, $base-alt); +$sidebar-backdrop: if($topbar == 'dark' and $variant == 'light', $titlebar-backdrop, $background); $popover: if($variant == 'light', background(a), background(g)); $panel-solid: if($topbar == 'dark', background(e), background(c)); // for Unity panel which doesn't allow translucent colors $panel: rgba($panel-solid, $panel_opacity); diff --git a/src/sass/gtk/apps/_libadwaita.scss b/src/sass/gtk/apps/_libadwaita.scss index 73d90acb..0cbd3cc8 100644 --- a/src/sass/gtk/apps/_libadwaita.scss +++ b/src/sass/gtk/apps/_libadwaita.scss @@ -380,9 +380,6 @@ toolbarview.undershoot-bottom scrolledwindow { // Sidebar .unfolded stacksidebar.sidebar { border: none; } -$sidebar: if($topbar == 'dark' and $variant == 'light', $titlebar, $base-alt); -$sidebar-backdrop: if($topbar == 'dark' and $variant == 'light', $titlebar-backdrop, $background); - .sidebar-pane { background-color: $sidebar; color: on($sidebar); diff --git a/src/sass/libadwaita/_defaults.scss b/src/sass/libadwaita/_defaults.scss index 29113312..0576a2f0 100644 --- a/src/sass/libadwaita/_defaults.scss +++ b/src/sass/libadwaita/_defaults.scss @@ -8,76 +8,80 @@ // These are the colors apps are can override. We define the defaults here and // define variables for them in _colors.scss -// // The main accent color and the matching text value -// @define-color accent_bg_color #{$primary}; -// @define-color accent_fg_color #{on($primary)}; -// @define-color accent_color #{$primary}; +@if $theme != 'default' { +// The main accent color and the matching text value +@define-color accent_bg_color #{$primary}; +@define-color accent_fg_color #{on($primary)}; +@define-color accent_color #{$primary}; +} -// // destructive-action buttons -// @define-color destructive_bg_color #{if($variant == 'dark', "@red_4", "@red_3")}; -// @define-color destructive_fg_color white; -// @define-color destructive_color #{if($variant == 'dark', #ff7b63, "@red_4")}; +// destructive-action buttons +@define-color destructive_bg_color #{$destructive}; +@define-color destructive_fg_color #{on($destructive)}; +@define-color destructive_color #{$destructive}; -// // Levelbars, entries, labels and infobars. These don't need text colors -// @define-color success_bg_color #{if($variant == 'dark', "@green_5", "@green_4")}; -// @define-color success_fg_color white; -// @define-color success_color #{if($variant == 'dark', "@green_1", "#1b8553")}; +// Levelbars, entries, labels and infobars. These don't need text colors +@define-color success_bg_color #{$success}; +@define-color success_fg_color #{on($success)}; +@define-color success_color #{$success}; -// @define-color warning_bg_color #{if($variant == 'dark', #cd9309, "@yellow_5")}; -// @define-color warning_fg_color #{transparentize(black, .2)}; -// @define-color warning_color #{if($variant == 'dark', "@yellow_2", #9c6e03)}; +@define-color warning_bg_color #{$warning}; +@define-color warning_fg_color #{on($warning)}; +@define-color warning_color #{$warning}; -// @define-color error_bg_color #{if($variant == 'dark', "@red_4", "@red_3")}; -// @define-color error_fg_color white; -// @define-color error_color #{if($variant == 'dark', #ff7b63, "@red_4")}; +@define-color error_bg_color #{$error}; +@define-color error_fg_color #{on($error)}; +@define-color error_color #{$error}; -// // Window -// @define-color window_bg_color #{if($variant == 'light', #fafafa, #242424)}; -// @define-color window_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; +@if $colorscheme != 'default' or $blackness == 'true' { +// Window +@define-color window_bg_color #{$background}; +@define-color window_fg_color #{$text}; -// // Views - e.g. text view or tree view -// @define-color view_bg_color #{if($variant == 'light', #ffffff, #1e1e1e)}; -// @define-color view_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; +// Views - e.g. text view or tree view +@define-color view_bg_color #{$base}; +@define-color view_fg_color #{$text}; -// // Header bar, search bar, tab bar -// @define-color headerbar_bg_color #{if($variant == 'light', #ffffff, #303030)}; -// @define-color headerbar_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; -// @define-color headerbar_border_color #{if($variant == 'light', transparentize(black, .2), white)}; -// @define-color headerbar_backdrop_color @window_bg_color; -// @define-color headerbar_shade_color #{if($variant == 'light', transparentize(black, .88), transparentize(black, .64))}; -// @define-color headerbar_darker_shade_color #{if($variant == 'light', transparentize(black, .88), transparentize(black, .1))}; +// Header bar, search bar, tab bar +@define-color headerbar_bg_color #{$titlebar-backdrop}; +@define-color headerbar_fg_color #{$titlebar-text}; +@define-color headerbar_border_color #{$border}; +@define-color headerbar_backdrop_color #{$titlebar}; +@define-color headerbar_shade_color #{if($variant == 'light', transparentize(black, .88), transparentize(black, .64))}; +@define-color headerbar_darker_shade_color #{$window-border}; -// // Split pane views -// @define-color sidebar_bg_color #{if($variant == 'light', #ebebeb, #303030)}; -// @define-color sidebar_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; -// @define-color sidebar_backdrop_color #{if($variant == 'light', #f2f2f2, #2a2a2a)}; -// @define-color sidebar_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; -// @define-color sidebar_border_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .64))}; +// Split pane views +@define-color sidebar_bg_color #{$sidebar}; +@define-color sidebar_fg_color #{on($sidebar)}; +@define-color sidebar_backdrop_color #{$sidebar-backdrop}; +@define-color sidebar_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; +@define-color sidebar_border_color #{transparentize(on($sidebar), .92)}; -// @define-color secondary_sidebar_bg_color #{if($variant == 'light', #f3f3f3, #2a2a2a)}; -// @define-color secondary_sidebar_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; -// @define-color secondary_sidebar_backdrop_color #{if($variant == 'light', #f6f6f6, #272727)}; -// @define-color secondary_sidebar_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; -// @define-color secondary_sidebar_border_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .64))}; +@define-color secondary_sidebar_bg_color #{$base}; +@define-color secondary_sidebar_fg_color #{$text}; +@define-color secondary_sidebar_backdrop_color #{$background}; +@define-color secondary_sidebar_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; +@define-color secondary_sidebar_border_color #{$border}; -// // Cards, boxed lists -// @define-color card_bg_color #{if($variant == 'light', #ffffff, transparentize(white, .92))}; -// @define-color card_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; -// @define-color card_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .64))}; +// Cards, boxed lists +@define-color card_bg_color #{if($variant == 'light', $base, $fill)}; +@define-color card_fg_color #{$text}; +@define-color card_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .64))}; -// // Dialogs -// @define-color dialog_bg_color #{if($variant == 'light', #fafafa, #383838)}; -// @define-color dialog_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; +// Dialogs +@define-color dialog_bg_color #{$base-alt}; +@define-color dialog_fg_color #{$text}; -// // Popovers -// @define-color popover_bg_color #{if($variant == 'light', #ffffff, #383838)}; -// @define-color popover_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; -// @define-color popover_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; +// Popovers +@define-color popover_bg_color #{$popover}; +@define-color popover_fg_color #{$text}; +@define-color popover_shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; -// // Thumbnails -// @define-color thumbnail_bg_color #{if($variant == 'light', #ffffff, #383838)}; -// @define-color thumbnail_fg_color #{if($variant == 'light', transparentize(black, .2), white)}; +// Thumbnails +@define-color thumbnail_bg_color #{$surface}; +@define-color thumbnail_fg_color #{$text}; -// // Miscellaneous -// @define-color shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; -// @define-color scrollbar_outline_color #{if($variant == 'light', white, transparentize(black, .5))}; +// Miscellaneous +@define-color shade_color #{if($variant == 'light', transparentize(black, .93), transparentize(black, .75))}; +@define-color scrollbar_outline_color #{if($variant == 'light', white, transparentize(black, .5))}; +} diff --git a/src/sass/libadwaita/_drawing.scss b/src/sass/libadwaita/_drawing.scss index e5022d66..48ede63f 100644 --- a/src/sass/libadwaita/_drawing.scss +++ b/src/sass/libadwaita/_drawing.scss @@ -374,14 +374,6 @@ background: $color; } - @if $contrast == 'high' { - > border { - min-width: 1px; - min-height: 1px; - background: $border_color; - } - } - > shadow { min-width: 56px; min-height: 56px; diff --git a/src/sass/libadwaita/defaults-dark.scss b/src/sass/libadwaita/defaults-dark.scss deleted file mode 100644 index 7c56516c..00000000 --- a/src/sass/libadwaita/defaults-dark.scss +++ /dev/null @@ -1,3 +0,0 @@ -$variant: 'dark'; - -@import 'defaults'; diff --git a/src/sass/libadwaita/defaults-light.scss b/src/sass/libadwaita/defaults-light.scss deleted file mode 100644 index 97159a23..00000000 --- a/src/sass/libadwaita/defaults-light.scss +++ /dev/null @@ -1,3 +0,0 @@ -$variant: 'light'; - -@import 'defaults'; diff --git a/src/sass/libadwaita/widgets/_color-chooser.scss b/src/sass/libadwaita/widgets/_color-chooser.scss index 514d33e8..bc4ba076 100644 --- a/src/sass/libadwaita/widgets/_color-chooser.scss +++ b/src/sass/libadwaita/widgets/_color-chooser.scss @@ -52,22 +52,13 @@ colorswatch { } } - @if $contrast == 'high' { - > overlay { - box-shadow: inset 0 0 0 1px gtkalpha($view_fg_color, .5); - } - } - &.dark > overlay { color: white; } &.light > overlay { color: transparentize(black, .25); - - @if $contrast != 'high' { - box-shadow: inset 0 0 0 1px gtkalpha($view_fg_color, 0.1); - } + box-shadow: inset 0 0 0 1px gtkalpha($view_fg_color, 0.1); } &:drop(active) { diff --git a/src/sass/libadwaita/widgets/_deprecated.scss b/src/sass/libadwaita/widgets/_deprecated.scss index e85b7fb4..186ed5c0 100644 --- a/src/sass/libadwaita/widgets/_deprecated.scss +++ b/src/sass/libadwaita/widgets/_deprecated.scss @@ -102,13 +102,6 @@ combobox { iconview { @extend %view; - - @if $contrast == 'high' { - &:selected { - box-shadow: inset 0 0 0 1px $border_color; - } - } - @include focus-ring(); &:drop(active) { @@ -179,7 +172,7 @@ statusbar { // To be used for opaque elements overlaid atop the selected row $treeview_selection_opaque: gtkmix(currentColor, $view_bg_color, 10%); -$treeview_borders_opaque: gtkmix(currentColor, $view_bg_color, if($contrast == 'high', 40%, 20%)); +$treeview_borders_opaque: gtkmix(currentColor, $view_bg_color, 20%); treeview.view { @extend columnview; diff --git a/src/sass/libadwaita/widgets/_emoji-chooser.scss b/src/sass/libadwaita/widgets/_emoji-chooser.scss index 4718ac29..f40ac966 100644 --- a/src/sass/libadwaita/widgets/_emoji-chooser.scss +++ b/src/sass/libadwaita/widgets/_emoji-chooser.scss @@ -33,14 +33,6 @@ popover.emoji-picker emoji { &:active { background: $active_color; } - - @if $contrast == 'high' { - &:focus, - &:hover, - &:active { - box-shadow: inset 0 0 0 1px $border_color; - } - } } popover.emoji-picker scrolledwindow.view { @@ -80,12 +72,4 @@ emoji-completion-row { &:active { background-color: $active_color; // matching buttons } - - @if $contrast == 'high' { - &:focus, - &:hover, - &:active { - box-shadow: inset 0 0 0 1px $border_color; - } - } } diff --git a/src/sass/libadwaita/widgets/_entries.scss b/src/sass/libadwaita/widgets/_entries.scss index c7e47f1c..1abeadcd 100644 --- a/src/sass/libadwaita/widgets/_entries.scss +++ b/src/sass/libadwaita/widgets/_entries.scss @@ -59,12 +59,12 @@ entry { } > image { // icons inside the entry - opacity: if($contrast == 'high', .85, .7); + opacity: .7; &:hover { opacity: 1; } &:active { - opacity: if($contrast == 'high', .9, .8); + opacity: .8; } &.left { margin-right: 6px; } diff --git a/src/sass/libadwaita/widgets/_level-bar.scss b/src/sass/libadwaita/widgets/_level-bar.scss index bf75593d..71b7759b 100644 --- a/src/sass/libadwaita/widgets/_level-bar.scss +++ b/src/sass/libadwaita/widgets/_level-bar.scss @@ -84,10 +84,6 @@ levelbar { &.empty { background-color: $trough_color; - - @if $contrast == "high" { - box-shadow: inset 0 0 0 1px $border_color; - } } } } diff --git a/src/sass/libadwaita/widgets/_scale.scss b/src/sass/libadwaita/widgets/_scale.scss index bb3155e6..d5916b22 100644 --- a/src/sass/libadwaita/widgets/_scale.scss +++ b/src/sass/libadwaita/widgets/_scale.scss @@ -1,16 +1,12 @@ -$_slider_border_color: transparentize(black, if($contrast == 'high', .65, .9)); +$_slider_border_color: transparentize(black, .9); %scale_trough { - border-radius: 99px; + border-radius: $circular_radius; background-color: $trough_color; - - @if $contrast == "high" { - box-shadow: inset 0 0 0 1px $border_color; - } } %scale_highlight { - border-radius: 99px; + border-radius: $circular_radius; background-color: $fill_color; color: $fill_text_color; } @@ -81,7 +77,7 @@ scale { > trough > slider { box-shadow: 0 0 0 1px $_slider_border_color, 0 2px 4px transparent; - outline-color: transparentize(black, if($contrast == 'high', .5, .8)); + outline-color: transparentize(black, .8); } } diff --git a/src/sass/libadwaita/widgets/_spin-button.scss b/src/sass/libadwaita/widgets/_spin-button.scss index 4f806add..93da087d 100644 --- a/src/sass/libadwaita/widgets/_spin-button.scss +++ b/src/sass/libadwaita/widgets/_spin-button.scss @@ -16,7 +16,7 @@ spinbutton { box-shadow: none; border-style: solid; - border-color: gtkalpha(currentColor, if($contrast == 'high', .5, .1)); + border-color: gtkalpha(currentColor, .1); } &:not(.vertical) { diff --git a/src/sass/libadwaita/widgets/_tab-view.scss b/src/sass/libadwaita/widgets/_tab-view.scss index 5c4324a9..370b8aa9 100644 --- a/src/sass/libadwaita/widgets/_tab-view.scss +++ b/src/sass/libadwaita/widgets/_tab-view.scss @@ -50,14 +50,6 @@ tabbar { tab { transition: background 150ms ease-in-out; - @if $contrast == 'high' { - &:hover, - &:active, - &:selected { - box-shadow: inset 0 0 0 1px $border_color; - } - } - &:selected { background-color: $selected_color; @@ -72,10 +64,6 @@ tabbar { tabbox.single-tab tab { &, &:hover, &:active { background: none; - - @if $contrast == 'high' { - box-shadow: none; - } } } @@ -136,11 +124,6 @@ dnd tab { 0 1px 3px 1px transparentize(black, .93), 0 2px 6px 2px transparentize(black, .97); - @if $contrast == 'high' { - outline: 1px solid $border_color; - outline-offset: -1px; - } - margin: 25px; } @@ -209,22 +192,11 @@ tabthumbnail { background: none; color: inherit; - - @if $contrast == 'high' { - box-shadow: 0 0 0 1px transparentize(black, 0.5), - 0 1px 3px 1px transparentize(black, .93), - 0 2px 6px 2px transparentize(black, .97); - } } &.pinned .card { background-color: $thumbnail_bg_color; color: $thumbnail_fg_color; - - @if $contrast == 'high' { - outline: 1px solid $window_outline_color; - outline-offset: -1px; - } } .icon-title-box { @@ -243,10 +215,6 @@ tabthumbnail { min-width: 24px; min-height: 24px; - @if $contrast == 'high' { - box-shadow: 0 0 0 1px currentColor; - } - &:hover { background-color: gtkalpha(gtkmix($thumbnail_bg_color, currentColor, 90%), .75); } diff --git a/src/sass/libadwaita/widgets/_views.scss b/src/sass/libadwaita/widgets/_views.scss index 8dd24e48..f5823f3b 100644 --- a/src/sass/libadwaita/widgets/_views.scss +++ b/src/sass/libadwaita/widgets/_views.scss @@ -54,10 +54,6 @@ gridview > child { &:selected { background-color: $view_selected_color; - - @if $contrast == 'high' { - box-shadow: inset 0 0 0 1px $border_color; - } } } @@ -71,10 +67,4 @@ gridview > child.activatable { &:active { background-color: $view_selected_active_color; } } - - @if $contrast == 'high' { - &:hover, &:active { - box-shadow: inset 0 0 0 1px $border_color; - } - } }