@enact/sandstone
Version:
Large-screen/TV support library for Enact, containing a variety of UI components.
127 lines (126 loc) • 4.74 kB
CSS
.scrollbarTrack {
--scrollbar-track-margin: 0.25rem;
--scrollbar-thumb-size-ratio: 1;
--scrollbar-thumb-progress-ratio: 0;
--scrollbar-thumb-size: calc(100% * var(--scrollbar-thumb-size-ratio));
--scrollbar-thumb-progress: calc(((1 - var(--scrollbar-thumb-size-ratio)) * var(--scrollbar-thumb-progress-ratio)) * 100%);
position: relative;
height: 100%;
width: 100%;
background-color: rgb(var(--sand-progress-bg-color-rgb, 55, 58, 65), 50%);
border-radius: 0.25rem;
opacity: 0;
transition: opacity 100ms ease-out;
}
.scrollbarTrack:hover {
opacity: 1;
}
.scrollbarTrack.focusableScrollbar {
opacity: 1;
--scrollbar-track-margin: 0.5rem;
}
.scrollbarTrack .thumb {
background: rgb(var(--sand-progress-color-rgb, 230, 230, 230), 60%);
display: block;
position: absolute;
width: 100%;
height: 100%;
border-radius: 0.25rem;
}
:global(.spotlight-input-key) .scrollbarTrack .thumb:global(.spottable):focus,
:global(.spotlight-input-mouse) .scrollbarTrack .thumb:global(.spottable):focus {
position: absolute;
background-color: rgb(var(--sand-focus-bg-color-rgb, 230, 230, 230));
box-shadow: 0 0.75rem 0.75rem rgb(var(--sand-shadow-color-rgb, 0, 0, 0), 30%);
border-radius: 0.25rem;
}
:global(.spotlight-input-key) .scrollbarTrack .thumb:global(.spottable):focus .directionIndicator,
:global(.spotlight-input-mouse) .scrollbarTrack .thumb:global(.spottable):focus .directionIndicator {
position: absolute;
width: 0;
height: 0;
border-top: 0.25rem solid transparent;
border-bottom: 0.25rem solid rgb(var(--sand-component-focus-text-color-rgb, 76, 80, 89), 40%);
border-right: 0.1875rem solid transparent;
border-left: 0.1875rem solid transparent;
}
:global(.spotlight-input-touch) .scrollbarTrack .thumb:global(.spottable):active {
position: absolute;
background-color: rgb(var(--sand-focus-bg-color-rgb, 230, 230, 230));
box-shadow: 0 0.75rem 0.75rem rgb(var(--sand-shadow-color-rgb, 0, 0, 0), 30%);
border-radius: 0.25rem;
}
:global(.spotlight-input-touch) .scrollbarTrack .thumb:global(.spottable):active .directionIndicator {
position: absolute;
width: 0;
height: 0;
border-top: 0.25rem solid transparent;
border-bottom: 0.25rem solid rgb(var(--sand-component-focus-text-color-rgb, 76, 80, 89), 40%);
border-right: 0.1875rem solid transparent;
border-left: 0.1875rem solid transparent;
}
:global(.spotlight-input-touch) .scrollbarTrack .thumb {
pointer-events: none;
}
.scrollbarTrack.vertical {
margin: 0 var(--scrollbar-track-margin);
width: 0.25rem;
}
.scrollbarTrack.vertical .thumb {
height: var(--scrollbar-thumb-size);
top: var(--scrollbar-thumb-progress);
will-change: top;
}
.scrollbarTrack.vertical .thumb:focus {
width: 0.625rem;
left: -0.1875rem;
}
.scrollbarTrack.vertical .thumb:focus .directionIndicator.backward {
top: calc(6px - 0.25rem);
left: 0.125rem;
}
.scrollbarTrack.vertical .thumb:focus .directionIndicator.forward {
transform: rotate(180deg);
bottom: calc(6px - 0.25rem);
left: 0.125rem;
}
.scrollbarTrack:not(.vertical) {
margin: var(--scrollbar-track-margin) 0;
height: 0.25rem;
}
.scrollbarTrack:not(.vertical) .thumb {
width: var(--scrollbar-thumb-size);
left: var(--scrollbar-thumb-progress);
will-change: left;
top: 50%;
transform: translateY(-50%);
}
:global(.spotlight-input-key) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):focus,
:global(.spotlight-input-mouse) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):focus {
height: 0.625rem;
}
:global(.spotlight-input-key) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):focus .directionIndicator.backward,
:global(.spotlight-input-mouse) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):focus .directionIndicator.backward {
transform: rotate(-90deg);
left: calc(6px - 0.25rem);
top: calc(0.125rem / 2);
}
:global(.spotlight-input-key) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):focus .directionIndicator.forward,
:global(.spotlight-input-mouse) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):focus .directionIndicator.forward {
transform: rotate(90deg);
right: calc(6px - 0.25rem);
top: calc(0.125rem / 2);
}
:global(.spotlight-input-touch) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):active {
height: 0.625rem;
}
:global(.spotlight-input-touch) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):active .directionIndicator.backward {
transform: rotate(-90deg);
left: calc(6px - 0.25rem);
top: calc(0.125rem / 2);
}
:global(.spotlight-input-touch) .scrollbarTrack:not(.vertical) .thumb:global(.spottable):active .directionIndicator.forward {
transform: rotate(90deg);
right: calc(6px - 0.25rem);
top: calc(0.125rem / 2);
}