Skip to content

Commit

Permalink
Improvement: GTK4 - initial support for GTK4
Browse files Browse the repository at this point in the history
  • Loading branch information
thekomer committed Dec 14, 2021
1 parent 2ce0257 commit 489915c
Show file tree
Hide file tree
Showing 62 changed files with 22,186 additions and 0 deletions.
22 changes: 22 additions & 0 deletions gtk-4.0/COPYRIGHT
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
*
* Copyright 2020 Mislav Komerički <thekomer@gmail.com>
* based on work by Eliver Lara.
* source: https://github.com/EliverLara/Sweet/tree/nova
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
18 changes: 18 additions & 0 deletions gtk-4.0/_apps.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**********************
* DE-Specific Styles *
**********************/

@import 'apps/budgie';
@import 'apps/gnome';
@import 'apps/xfce';
@import 'apps/pantheon';
@import 'apps/unity';

/***********************
* App-Specific Styles *
***********************/

@import 'apps/geary';
@import 'apps/lightdm';
@import 'apps/nemo';
@import 'apps/mate';
18 changes: 18 additions & 0 deletions gtk-4.0/_apps.scss~
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**********************
* DE-Specific Styles *
**********************/

@import 'apps/budgie';
@import 'apps/gnome';
@import 'apps/xfce';
@import 'apps/pantheon';
@import 'apps/unity';

/***********************
* App-Specific Styles *
***********************/

@import 'apps/geary';
@import 'apps/lightdm';
@import 'apps/nemo';
@import 'apps/caja';
117 changes: 117 additions & 0 deletions gtk-4.0/_colors.scss~
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
// When color definition differs for dark and light variant
// it gets @if ed depending on $variant

// Main definitions
$base_color: if($variant == 'light', #ebf0f5, lighten(#161925, 1%));
$text_color: if($variant == 'light', #31363D, #C3C7D1);
$bg_color: if($variant == 'light', darken( #EEEEEE, 3%), #161925);
$fg_color: if($variant == 'light', #31363d, #C3C7D1);
$switch_bg: if($variant == 'light', #ffffff, transparentize(black,1));
$shadow_color: rgba(162, 162, 165, 0.21);
$_sidebar_color: if($variant == 'light', #222e39, #161925);

// Primary colors
$lime: #71f79f;
$red: #FF0000;
$orange: #ff6a00;
$yellow: #FFD400;
$purple: #c74ded;
$darkpurple: #7b7bbd;
$blue: #7cb7ff;
$cyan: #00c1e4;
$slider: #7b7bbd;
$teal: #00e8c6;
$myorange: #ff6a00;
$selected_fg_color: #fefefe;
$selected_bg_color: #ff6a00;
//$selected_bg_color: #f7005a;
/*$selected_bg_color: #00e8c6;06d6a0*/
$selected_borders_color: darken($selected_bg_color, 10%);
$borders_color: if($variant == 'light', transparentize(black,0.87), transparentize(#0C0E15,0.2));
$borders_edge: if($variant == 'light', transparentize(white, 0.8), transparentize(white, 0.9));

$theme-gradient-start: $red;
$theme-gradient-end: $orange;


$link_color: $blue;
$link_visited_color:transparentize($link_color,0.5);
$top_highlight: if($variant == 'light', transparentize(white, 0.8), transparentize(white, 0.9));
$bottom_highlight: if($variant == 'light', transparentize(black, 0.8), transparentize(black, 0.9));
$dark_fill: mix($borders_color, $bg_color, 35%);
$headerbar_color: mix($base_color, darken($bg_color, 8%), 30%);
$headerbar_fg_color: $text_color;
$menu_color: if($variant == 'light', $base_color, mix($bg_color, $base_color, 20%));
$popover_bg_color: $base_color;
$popover_hover_color: lighten($bg_color, 5%);

$scrollbar_bg_color: mix($base_color, $bg_color, 50%);
$scrollbar_slider_color: mix($fg_color, $bg_color, 60%);
$scrollbar_slider_hover_color: mix($fg_color, $bg_color, 80%);
$scrollbar_slider_active_color: if($variant=='light', darken($selected_bg_color, 10%), lighten($selected_bg_color, 10%));

$warning_color: if($variant == 'light', $orange, darken($orange,10%));
$error_color: if($variant == 'light', $red, darken($red,5%));
$success_color: if($variant == 'light', $cyan, darken($cyan,10%));
$destructive_color: if($variant == 'light', darken($red,5%), darken($red,10%));
$suggested_color: if($variant == 'light', $selected_bg_color, darken($selected_bg_color,10%));

$osd_fg_color: #fefefe;
$osd_text_color: white;
$osd_bg_color: transparentize(#14171a, 0.2);
$osd_insensitive_bg_color: transparentize(mix($osd_fg_color, opacify($osd_bg_color, 1), 10%), 0.5);
$osd_insensitive_fg_color: mix($osd_fg_color, opacify($osd_bg_color, 1), 50%);
$osd_borders_color: transparentize(black, 0.3);

$sidebar_bg_color: mix($bg_color, $base_color, 50%);
$base_hover_color: transparentize($fg_color, 0.95);

$tooltip_borders_color: transparentize(white, 0.9);
$shadow_color: transparentize(black, 0.9);

$drop_target_color: #a1ce4b;

$text_shadow_color: if($variant == 'dark', $shadow_color, transparentize(white, 0.9));
$icon_shadow_color: $text_shadow_color;

$drop_target_color: $lime;

// Infobar colors
$info_color: $lime;
$question_color: $cyan;

// Panel colors
$panel_bg_color: transparentize($base_color, 0);
$panel_fg_color: white;
$panel_borders_color: transparentize($base_color, 0.8);

// Disabled state colors
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
$insensitive_base_color: darken($base_color, 5%);
$insensitive_borders_color: $borders_color;

// Backdrop state colors
$backdrop_base_color: if($variant == 'light', darken($base_color, 1%), lighten($base_color, 1%));
$backdrop_text_color: mix($text_color, $backdrop_base_color, 80%);
$backdrop_bg_color: $bg_color;
$backdrop_headerbar_bg_color: $headerbar_color;
$backdrop_headerbar_fg_color: if($variant == 'light', transparentize($headerbar_fg_color, 0.5), transparentize($headerbar_fg_color, 0.2));
$backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 50%);
$backdrop_insensitive_color: if($variant == 'light', darken($backdrop_bg_color, 15%), lighten($backdrop_bg_color, 15%));
$backdrop_selected_bg_color: transparentize($selected_bg_color, 0.4);
$backdrop_selected_fg_color: if($variant == 'light', $selected_fg_color, transparentize($selected_fg_color, 0.5));
$backdrop_borders_color: mix($borders_color, $bg_color, 90%);
$backdrop_dark_fill: mix($backdrop_borders_color, $backdrop_bg_color, 35%);
$backdrop_sidebar_bg_color: mix($backdrop_bg_color, $backdrop_base_color, 50%);

$backdrop_scrollbar_bg_color: darken($backdrop_bg_color, 3%);
$backdrop_scrollbar_slider_color: mix($backdrop_fg_color, $backdrop_bg_color, 40%);

$backdrop_menu_color: if($variant == 'light', $backdrop_base_color, mix($backdrop_bg_color, $backdrop_base_color, 20%));

$scale_bg: if($variant == 'light', transparentize(black,0.86) ,transparentize(white,0.86));
$scale_disabled_bg: if($variant == 'light', transparentize(black, 0.94) ,transparentize(white, 0.94));
$suggested_bg_color: linear-gradient(to right, #e87e33 0%, #ff6a00 100%);
$destructive_bg_color: linear-gradient(to right, #FF416C, #FF4B2B);
$menu_shadow_color: if($variant == 'light', transparentize(rgb(122, 122, 122), 0.6), transparent);
36 changes: 36 additions & 0 deletions gtk-4.0/_common.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*********
* Common *
*********/

@function gtkalpha($c,$a) {
@return unquote("alpha(#{$c},#{$a})");
}

$ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94);
$asset_suffix: if($variant=='dark', '-dark', '');
$backdrop_transition: 200ms ease-out;
$button_transition: all 200ms $ease-out-quad;

* {
padding: 0;
// We use the outline properties to signal the focus properties
// to the adwaita engine: using real CSS properties is faster,
// and we don't use any outlines for now.

outline-color: transparentize($fg_color, 0.7);
outline-style: dashed;
outline-offset: -3px;
outline-width: 0px;

-gtk-secondary-caret-color: $selected_bg_color;
}

/* komer: accessibility for keyboard navigation
* needs to be enhanced with focus for specific selected widgets
*/

*:focus {
outline: 1px dashed transparentize($theme_color, 0.3);
outline-offset: -2px;
&:active, &:selected { outline-color: black; }
}
Loading

0 comments on commit 489915c

Please sign in to comment.