paper-gtk-theme/Paper/gtk-3.18/widgets/_scrollbars.scss

191 lines
3.7 KiB
SCSS

/**************
* Scrollbars *
**************/
.scrollbar {
$_slider_min_length: 40px;
// disable steppers
@at-root * {
-GtkScrollbar-has-backward-stepper: false;
-GtkScrollbar-has-forward-stepper: false;
}
background-color: $scrollbar_bg_color;
transition: 300ms $ease-out-quad;
// scrollbar border
$pos_list: ((top, bottom),(bottom,top),(left,right),(right,left));
@each $pos, $b_pos in $pos_list {
&.#{$pos} & {
border-#{$b_pos}: 1px solid $borders_color;
}
}
&:backdrop {
background-color: $backdrop_scrollbar_bg_color;
border-color: $backdrop_borders_color;
transition: $backdrop_transition;
}
// slider
.slider {
margin: -1px;
border: 4px solid transparent;
border-radius: 8px;
background-clip: padding-box;
background-color: $scrollbar_slider_color;
&:hover { background-color: $scrollbar_slider_hover_color; }
&:hover:active { background-color: $scrollbar_slider_active_color; }
&:backdrop { background-color: $backdrop_scrollbar_slider_color; }
&:insensitive { background-color: transparent; }
}
&.fine-tune {
.slider {
}
&.horizontal .slider { border-width: 5px 4px; }
&.vertical .slider { border-width: 4px 5px; }
}
&.overlay-indicator {
&:not(.dragging):not(.hovering) {
border-color: transparent;
opacity: 0.4;
background-color: transparent;
.slider {
margin: -1px;
background-color: $fg_color;
border: 1px solid if($variant == 'light', white, black);
}
.button,
button {
background-color: $fg_color;
background-clip: padding-box;
border-radius: 100%;
border: 1px solid if($variant == 'light', white, black);
-gtk-icon-source: none;
}
&.horizontal {
.slider,
slider {
margin: 0 2px;
}
.button,
button {
margin: 1px 2px;
}
}
&.vertical {
.slider {
margin: 2px 0;
}
.button {
margin: 2px 1px;
}
}
}
&.dragging,
&.hovering { opacity: 0.8; }
}
// button styling
.button {
padding: 0;
border-style: none;
border-radius: 0;
@include button(undecorated);
color: $scrollbar_slider_color;
&:hover {
@include button(undecorated);
color: $scrollbar_slider_hover_color;
}
&:active, &:checked {
@include button(undecorated);
color: $scrollbar_slider_active_color;
}
&:insensitive {
@include button(undecorated);
color: transparentize($scrollbar_slider_color, 0.8);
}
&:backdrop {
@include button(undecorated);
color: $backdrop_scrollbar_slider_color;
&:insensitive {
@include button(undecorated);
color: transparentize($backdrop_scrollbar_slider_color, 0.8);
}
}
}
// button icons
&.vertical {
.button,
button {
&.down { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic'); }
&.up { -gtk-icon-source: -gtk-icontheme('pan-up-symbolic'); }
}
}
&.horizontal {
.button,
button {
&.down { -gtk-icon-source: -gtk-icontheme('pan-right-symbolic'); }
&.up { -gtk-icon-source: -gtk-icontheme('pan-left-symbolic'); }
}
}
}
GtkTreeView ~ .scrollbar.vertical {
border-top: 1px solid $borders_color;
margin-top: -1px;
}
/**********************
* Overlay Scrollbars *
*********************/
OsThumb,
OsScrollbar {
color: $selected_bg_color;
&:active,
&:selected {
background-color: $selected_bg_color;
}
&:backdrop,
&:active:backdrop {
background-color: $backdrop_fg_color;
}
&:insensitive {
background-color: $insensitive_fg_color;
}
}