135 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			SCSS
		
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			SCSS
		
	
	
/***********
 | 
						|
 ! Scrollbar
 | 
						|
************/
 | 
						|
 | 
						|
@include exports("scrollbar") {
 | 
						|
    scrollbar {
 | 
						|
        $_slider_min_length: 40px;
 | 
						|
        $_slider_normal_width: 7px;
 | 
						|
        $_slider_small_width: 4px;
 | 
						|
 | 
						|
        // disable steppers
 | 
						|
        @at-root * {
 | 
						|
            -GtkScrollbar-has-backward-stepper: false;
 | 
						|
            -GtkScrollbar-has-forward-stepper: false;
 | 
						|
        }
 | 
						|
 | 
						|
        background-color: $scrollbar_bg_color;
 | 
						|
        transition: 300ms ease-out;
 | 
						|
 | 
						|
        // scrollbar border on the content side
 | 
						|
        &.top { border-bottom: 1px solid $borders_color; }
 | 
						|
        &.bottom { border-top: 1px solid $borders_color; }
 | 
						|
        &.left { border-right: 1px solid $borders_color; }
 | 
						|
        &.right { border-left: 1px solid $borders_color; }
 | 
						|
 | 
						|
        &:backdrop {
 | 
						|
            background-color: $backdrop_scrollbar_bg_color;
 | 
						|
            border-color: $backdrop_borders_color;
 | 
						|
            transition: 400ms ease-in;
 | 
						|
        }
 | 
						|
 | 
						|
        slider {
 | 
						|
            min-width: $_slider_normal_width;
 | 
						|
            min-height: $_slider_normal_width;
 | 
						|
            border: 1px solid transparent;
 | 
						|
            border-radius: $roundness;
 | 
						|
            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; }
 | 
						|
            &:disabled { background-color: transparent; }
 | 
						|
        }
 | 
						|
 | 
						|
        &.horizontal slider { min-width: $_slider_min_length; }
 | 
						|
        &.vertical slider { min-height: $_slider_min_length; }
 | 
						|
 | 
						|
        &.fine-tune slider:active {
 | 
						|
            background-color: lighten($scrollbar_slider_active_color, 10%);
 | 
						|
        }
 | 
						|
 | 
						|
        &.overlay-indicator {
 | 
						|
            opacity: .8;
 | 
						|
 | 
						|
            &:not(.dragging):not(.hovering) {
 | 
						|
                border-color: transparent;
 | 
						|
                opacity: .4;
 | 
						|
                background-color: transparent;
 | 
						|
 | 
						|
                slider {
 | 
						|
                    min-width: $_slider_small_width;
 | 
						|
                    min-height: $_slider_small_width;
 | 
						|
                    background-color: $fg_color;
 | 
						|
                    border: 1px solid if($variant == 'light', $white, $black);
 | 
						|
                }
 | 
						|
 | 
						|
                // hide steppers
 | 
						|
                button {
 | 
						|
                    min-width: $_slider_small_width;
 | 
						|
                    min-height: $_slider_small_width;
 | 
						|
                    border-color: transparent;
 | 
						|
                    -gtk-icon-source: none;
 | 
						|
                }
 | 
						|
 | 
						|
                &.horizontal {
 | 
						|
                    slider { min-width: $_slider_min_length; }
 | 
						|
                    button { min-width: $_slider_normal_width; }
 | 
						|
                }
 | 
						|
 | 
						|
                &.vertical {
 | 
						|
                    slider { min-height: $_slider_min_length; }
 | 
						|
                    button { min-height: $_slider_normal_width; }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        // stepper styling
 | 
						|
        button {
 | 
						|
            min-width: $_slider_normal_width;
 | 
						|
            min-height: $_slider_normal_width;
 | 
						|
            padding: 0;
 | 
						|
            border: 0;
 | 
						|
            border-radius: 0;
 | 
						|
            border-color: $borders_color; // FIXME overwritten by global button definition
 | 
						|
            background-color: transparent;
 | 
						|
            box-shadow: none;
 | 
						|
            color: $scrollbar_slider_color;
 | 
						|
 | 
						|
            &:hover { color: $scrollbar_slider_hover_color; }
 | 
						|
            &:active, &:checked { color: $scrollbar_slider_active_color; }
 | 
						|
            &:backdrop { color: $backdrop_scrollbar_slider_color; }
 | 
						|
        }
 | 
						|
 | 
						|
        // button icons
 | 
						|
        &.vertical {
 | 
						|
            button {
 | 
						|
                &.down {
 | 
						|
                    -gtk-icon-source: -gtk-icontheme("pan-down-symbolic");
 | 
						|
                    border-top: 1px solid $borders_color;
 | 
						|
                }
 | 
						|
 | 
						|
                &.up {
 | 
						|
                    -gtk-icon-source: -gtk-icontheme("pan-up-symbolic");
 | 
						|
                    border-bottom: 1px solid $borders_color;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        &.horizontal {
 | 
						|
            button {
 | 
						|
                &.down {
 | 
						|
                    -gtk-icon-source: -gtk-icontheme("pan-right-symbolic");
 | 
						|
                    border-left: 1px solid $borders_color;
 | 
						|
                }
 | 
						|
 | 
						|
                &.up {
 | 
						|
                    -gtk-icon-source: -gtk-icontheme("pan-left-symbolic");
 | 
						|
                    border-right: 1px solid $borders_color;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |