mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-06-20 08:40:36 +03:00
107 lines
1.8 KiB
SCSS
107 lines
1.8 KiB
SCSS
$scrollbar-cushion: 100px;
|
|
$inflate-margin: 200px;
|
|
|
|
.os-size-observer,
|
|
.os-size-observer-listener {
|
|
direction: inherit;
|
|
pointer-events: none;
|
|
overflow: hidden;
|
|
visibility: hidden;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.os-size-observer,
|
|
.os-size-observer-listener,
|
|
.os-size-observer-listener-item,
|
|
.os-size-observer-listener-item-final {
|
|
writing-mode: horizontal-tb;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
}
|
|
|
|
.os-size-observer {
|
|
height: 25%;
|
|
width: 25%;
|
|
z-index: -1;
|
|
contain: strict;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex-wrap: nowrap;
|
|
padding: inherit;
|
|
border: inherit;
|
|
box-sizing: inherit;
|
|
margin: 0;
|
|
|
|
&::before,
|
|
&::after {
|
|
content: '';
|
|
flex: none;
|
|
box-sizing: inherit;
|
|
}
|
|
&::before {
|
|
padding: 1px;
|
|
width: 1px;
|
|
height: 1px;
|
|
}
|
|
&::after {
|
|
content: '';
|
|
padding: inherit;
|
|
border: inherit;
|
|
}
|
|
}
|
|
|
|
.os-size-observer-appear {
|
|
// "forwards" is important for older browsers
|
|
animation: os-size-observer-appear-animation 1ms forwards;
|
|
}
|
|
|
|
.os-size-observer-listener {
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
flex: auto;
|
|
margin: -#{$inflate-margin};
|
|
|
|
&.ltr {
|
|
margin-right: -#{$inflate-margin * 2};
|
|
margin-left: 0;
|
|
}
|
|
&.rtl {
|
|
margin-left: -#{$inflate-margin * 2};
|
|
margin-right: 0;
|
|
}
|
|
|
|
// lets assume no scrollbar is 100px wide
|
|
& > .os-size-observer-listener-item {
|
|
top: -$scrollbar-cushion;
|
|
right: -$scrollbar-cushion;
|
|
bottom: -$scrollbar-cushion;
|
|
left: -$scrollbar-cushion;
|
|
}
|
|
}
|
|
|
|
.os-size-observer-listener-scroll {
|
|
box-sizing: content-box;
|
|
}
|
|
|
|
.os-size-observer-listener-item {
|
|
right: 0;
|
|
bottom: 0;
|
|
overflow: hidden;
|
|
direction: ltr;
|
|
flex: none;
|
|
}
|
|
|
|
.os-size-observer-listener-item-final {
|
|
transition: none;
|
|
}
|
|
|
|
@keyframes os-size-observer-appear-animation {
|
|
from {
|
|
z-index: 0;
|
|
}
|
|
to {
|
|
z-index: -1;
|
|
}
|
|
}
|