2022-12-21 00:07:52 -08:00

160 lines
4.8 KiB
SCSS

/**********************
* Window Decorations *
*********************/
window {
// lamefun trick to get rounded borders regardless of CSD use
border-width: 0px;
// this needs to be transparent
// see bug #722563
$_wm_border: if($variant=='light', transparentize(black, 0.77), transparentize(black, 0.25));
$_wm_border_backdrop: if($variant=='light', transparentize(black, 0.82), transparentize(black, 0.25));
$_window_radius: 4px;
$_menu_radius: 7px;
&.csd {
box-shadow: 0 3px 9px 1px transparentize(black, 0.5),
0 0 0 1px $_wm_border; //doing borders with box-shadow
margin: 0px;
border-radius: $_window_radius $_window_radius 0 0;
&:backdrop {
// the transparent shadow here is to enforce that the shadow extents don't
// change when we go to backdrop, to prevent jumping windows.
// The biggest shadow should be in the same order then in the active state
// or the jumping will happen during the transition.
box-shadow: 0 3px 9px 1px transparent,
0 2px 6px 2px transparentize(black, 0.8),
0 0 0 1px $_wm_border_backdrop;
transition: $backdrop_transition;
}
&.popup {
border-radius: $_menu_radius;
box-shadow: 0 1px 2px transparentize(black, 0.8),
0 0 0 1px transparentize($_wm_border, 0.1);
}
&.dialog.message {
border-radius: $_window_radius;
box-shadow: 0 1px 2px transparentize(black, 0.8),
0 0 0 1px transparentize($_wm_border, 0.1);
}
}
&.solid-csd {
margin: 0;
padding: 4px;
border: solid 1px $borders_color;
border-radius: 0;
box-shadow: inset 0 0 0 4px $borders_color, inset 0 0 0 3px $headerbar_color, inset 0 1px transparentize($fg_color, 0.93);
&:backdrop { box-shadow: inset 0 0 0 4px $borders_color, inset 0 0 0 3px $backdrop_bg_color, inset 0 1px transparentize($fg_color, 0.93); }
}
&.maximized,
&.fullscreen { border-radius: 0; box-shadow: none; }
&.tiled,
&.tiled-top,
&.tiled-left,
&.tiled-right,
&.tiled-bottom {
border-radius: 0;
box-shadow: 0 0 0 1px $_wm_border_backdrop,
0 0 0 20px transparent; //transparent control workaround -- #3670
}
&:backdrop { box-shadow: 0 0 0 1px $_wm_border_backdrop,
0 0 0 20px transparent; // #3670
}
&.popup { box-shadow: none; }
// server-side decorations as used by mutter
&.ssd { box-shadow: 0 0 0 1px $_wm_border; } //just doing borders, wm draws actual shadows
}
// Window Close button
windowcontrols {
button {
&.close, &.maximize, &.minimize {
min-width: 20px;
min-height: 20px;
margin: 0;
padding: 0 1px;
background-position: center;
background-repeat: no-repeat;
background-size: 16px 16px;
&, &:hover, &:focus, &:active, &:backdrop, &:backdrop:hover {
background-color: transparent;
border: none;
box-shadow: none;
color: transparent;
}
}
&.close {
background-image: -gtk-scaled(url("../assets/close.png"),url("../assets/close@2.png"));
&:hover,&:active {
background-image: -gtk-scaled(url("../assets/close_prelight.png"),url("../assets/close_prelight@2.png"));
}
}
&.maximize {
background-image: -gtk-scaled(url("../assets/maximize.png"),url("../assets/maximize@2.png"));
&:hover,&:active {
background-image: -gtk-scaled(url("../assets/maximize_prelight.png"),url("../assets/maximize_prelight@2.png"));
}
}
&.minimize {
background-image: -gtk-scaled(url("../assets/min.png"),url("../assets/min@2.png"));
&:hover,&:active {
background-image: -gtk-scaled(url("../assets/min_prelight.png"),url("../assets/min_prelight@2.png"));
}
}
.selection-mode & {
@extend %button.flat.suggested-action;
@extend %nobg_selected_items;
}
&:backdrop {
-gtk-icon-shadow: none;
background-image: -gtk-scaled(url("../assets/close_unfocused.png"),url("../assets/close_unfocused@2.png"));
}
}
}
headerbar.selection-mode button.titlebutton,
.titlebar.selection-mode button.titlebutton {
@include _button_text_shadow(white, $selected_bg_color);
&:backdrop { -gtk-icon-shadow: none; }
}
// catch all extend :)
%selected_items {
background-color: $selected_bg_color;
@at-root %nobg_selected_items, & {
color: $selected_fg_color;
font-weight: normal;
@if $variant == 'light' { outline-color: transparentize($selected_fg_color, 0.7); }
&:disabled { color: mix($selected_fg_color, $selected_bg_color, 50%); }
&:backdrop {
color: $backdrop_selected_fg_color;
&:disabled { color: mix($backdrop_selected_fg_color, $selected_bg_color, 30%); }
}
}
}
.monospace { font-family: Monospace; }