dotfiles/.themes/dracula/gtk-3.20/widgets/_header-bars.scss
2021-08-12 16:13:26 +02:00

315 lines
7.7 KiB
SCSS

/***************
* Header bars *
***************/
%titlebar,
headerbar {
padding: 0 6px;
min-height: 34px;
background-color: $headerbar_color;
color: $headerbar_fg_color;
border-radius: 0;
&:backdrop {
border-color: $backdrop_borders_color;
background-image: none;
transition: $backdrop_transition;
}
.title {
font-weight: bold;
padding-left: 12px;
padding-right: 12px;
}
.subtitle {
font-size: smaller;
padding-left: 12px;
padding-right: 12px;
@extend .dim-label;
}
%linked-header {
border: none;
border-radius: 0;
border-right-style: none;
box-shadow: none;
&:first-child {
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
&:last-child {
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-right-style: solid;
}
&:only-child {
border-radius: 0px;
border-style: solid;
}
}
entry { min-height: 24px; }
button {
@include button(normal-header);
min-height: 34px;
&:hover {
@include button(hover-header, transparent, $purple);
}
&:active,
&:checked {
@include button(active-header, transparent, $purple);
}
&:backdrop,
&:disabled,
&:backdrop:disabled {
@include button(backdrop-header,transparent,transparentize(white,0.7));
}
&:backdrop {
&:hover,
&:active,
&:checked {
background-color: transparent;
color: $selected_bg_color;
box-shadow: none;
// @include button(hover-header,transparent,transparentize(white,0.7));
}
}
@each $b_type, $b_color in (suggested-action, $cyan),
(destructive-action, $destructive_color) {
&.#{$b_type} {
font-weight: bold;
min-height: 24px;
margin-top: 4px;
margin-bottom: 4px;
border-radius: 3px;
@include button(normal, $b_color, white);
&:hover { @include button(hover, $b_color, white); }
&:active { @include button(active, $b_color, white); }
&:disabled {
@include button(insensitive, $b_color, white);
label {color: transparentize(white,0.5);}
}
&:backdrop {
@include button(backdrop, $b_color, white);
border-radius: 3px;
}
&:backdrop:disabled { @include button(backdrop-insensitive, $b_color, white); }
}
}
//Reset style
&.titlebutton {
color: transparent;
box-shadow: none;
&:hover,
&:active,
&:checked,
&:backdrop,
&:backdrop:hover,* {
color: transparent;
box-shadow: none;
}
}
}
.linked > button,
.linked > button:hover,
.linked > button:active,
.linked > button:checked,
.linked > button:backdrop { @extend %linked-header; }
.linked > button:active,
.linked > button:checked{
&:backdrop{
color: $backdrop_selected_bg_color;
label{
color: $backdrop_selected_bg_color;
}
}
}
// End reset style
&.selection-mode {
$_hc: mix($top_highlight,$selected_bg_color, 50%); // highlight color
color: $selected_fg_color;
text-shadow: 0 -1px transparentize(black, 0.5);
border-color: $selected_borders_color;
@include headerbar_fill($selected_bg_color, $_hc);
&:backdrop {
background-color: $selected_bg_color;
background-image: none;
box-shadow: inset 0 1px mix($top_highlight, $selected_bg_color, 60%);
}
.subtitle:link { @extend *:link:selected; }
button {
@include button(normal, $selected_bg_color, $selected_fg_color);
&.flat { @include button(undecorated); }
&:hover { @include button(hover, $selected_bg_color, $selected_fg_color); }
&:active,
&:checked { @include button(active, $selected_bg_color, $selected_fg_color); }
&:backdrop {
&.flat, & {
@include button(backdrop, $selected_bg_color, $selected_fg_color);
-gtk-icon-effect: none;
border-color: $selected_borders_color;
&:active,
&:checked {
@include button(backdrop-active, $selected_bg_color, $selected_fg_color);
border-color: $selected_borders_color;
}
&:disabled {
@include button(backdrop-insensitive, $selected_bg_color, $selected_fg_color);
border-color: $selected_borders_color;
&:active, &:checked {
@include button(backdrop-insensitive-active, $selected_bg_color, $selected_fg_color);
border-color: $selected_borders_color;
}
}
}
}
&.flat { &:backdrop, &:disabled, &:backdrop:disabled { @include button(undecorated); }}
&:disabled {
@include button(insensitive, $selected_bg_color, $selected_fg_color);
&:active,
&:checked { @include button(insensitive-active, $selected_bg_color, $selected_fg_color); }
}
&.suggested-action {
@include button(normal, $cyan, white);
&:hover { @include button(hover, $cyan, white); }
&:active { @include button(active, $cyan, white); }
&:disabled { @include button(insensitive, $cyan, white); }
&:backdrop { @include button(backdrop, $cyan, white); }
&:backdrop:disabled { @include button(backdrop-insensitive, $cyan, white); }
}
}
.selection-menu {
&:backdrop, & {
border-color: transparentize($selected_bg_color, 1);
background-image: linear-gradient(to bottom, transparentize($selected_bg_color, 1), transparentize($selected_bg_color, 1));
box-shadow: none;
padding-left: 10px;
padding-right: 10px;
GtkArrow { -GtkArrow-arrow-scaling: 1; }
.arrow {
-gtk-icon-source: -gtk-icontheme('pan-down-symbolic');
color: transparentize($selected_fg_color,0.5);
-gtk-icon-shadow: none;
}
}
}
}
.tiled &,
.maximized & {
&.titlebar {
@if $variant == 'light' { box-shadow: none; }
@else { box-shadow: inset 0 -1px $bottom_highlight; }
}
&:backdrop, & { border-radius: 0; }
} // squared corners when the window is maximized or tiled
&.default-decoration {
padding: 4px;
min-height: 28px;
button.titlebutton {
min-height: 26px;
min-width: 26px;
margin: 0;
padding: 0;
}
}
}
headerbar {
// add vertical margins to common widget on the headerbar to avoid them spanning the whole height
entry,
spinbutton,
separator {
margin-top: 5px;
margin-bottom: 5px;
}
switch {
margin-top: 10px;
margin-bottom: 10px;
}
separator { background: transparent; }
}
.background:not(.tiled):not(.maximized) .titlebar {
@if $variant == 'light' { box-shadow: inset 0 1px lighten($headerbar_color, 5%); }
@else { box-shadow: inset 0 1px $top_highlight,inset 0 -1px $bottom_highlight; }
&:backdrop, & {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
}
headerbar {
window:not(.tiled):not(.maximized) separator:first-child + &, // tackles the paned container case
window:not(.tiled):not(.maximized) &:first-child { &:backdrop, & { border-top-left-radius: 4px; }}
window:not(.tiled):not(.maximized) &:last-child { &:backdrop, & { border-top-right-radius: 4px; }}
}
.titlebar:not(headerbar) {
window.csd > & {
// in csd we assume every titlebar is a headerbar so reset anything, this is needed for split toolbars cases
padding: 0;
background-color: transparent;
background-image: none;
border-style: none;
border-color: transparent;
box-shadow: none;
}
> separator {
&, &:backdrop {
background: $headerbar_color;
}
}
@extend %titlebar;
}