@robotical/sensors-dashboard
Version:
A dashboard tool for depicting Marty data by Robotical
146 lines (128 loc) • 3.13 kB
CSS
.mainContainer {
position: relative;
z-index: 0;
isolation: isolate;
display: flex;
flex-direction: column;
gap: 1.6rem;
margin: 0 auto;
padding: clamp(1.2rem, 2vw, 2.4rem);
grid-template-areas: "header" "main-content";
height: 100vh;
height: 100dvh;
min-height: 0;
max-height: 100vh;
max-height: 100dvh;
overflow-y: auto;
overscroll-behavior-y: contain;
scrollbar-color: var(--colour-BLUE_LIGHT_2) transparent;
scrollbar-gutter: stable;
scrollbar-width: thin;
touch-action: pan-y;
container-type: inline-size;
background:
radial-gradient(circle at 12% 8%, rgba(55, 171, 200, 0.13), transparent 26rem),
linear-gradient(180deg, var(--colour-BLUE_LIGHT_1) 0%, var(--colour-TRUE_WHITE) 62%);
}
.mainContainerInModal {
height: 100%;
max-height: none;
}
.mainContainer:focus-visible {
outline: 0.3rem solid var(--focus-ring);
outline-offset: -0.3rem;
}
.scrollCue {
position: sticky;
top: 50%;
right: 1.4rem;
z-index: 20;
width: 2rem;
height: 0;
align-self: flex-end;
margin-right: 1.4rem;
pointer-events: none;
transform: translateY(-50%);
opacity: 0.72;
}
.scrollCueControls {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.35rem;
width: 2rem;
}
.scrollCueIcon {
color: var(--colour-MAIN_BLUE);
filter: drop-shadow(0 0.1rem 0.2rem rgba(38, 38, 38, 0.16));
font-size: 1.2rem;
transition: opacity 120ms ease;
}
.scrollCueIconMuted {
opacity: 0.24;
}
.scrollCueTrack {
position: relative;
width: 0.3rem;
height: 6.4rem;
border-radius: 999px;
background: linear-gradient(
180deg,
rgba(55, 171, 200, 0.08),
rgba(55, 171, 200, 0.72),
rgba(55, 171, 200, 0.08)
);
}
.scrollCueThumb {
position: absolute;
top: 0.2rem;
left: 50%;
width: 0.8rem;
height: 1.6rem;
border: 0.1rem solid var(--colour-TRUE_WHITE);
border-radius: 999px;
background-color: var(--colour-MAIN_BLUE);
box-shadow: 0 0.2rem 0.6rem rgba(38, 38, 38, 0.18);
transform: translate(
-50%,
calc(var(--scroll-cue-progress, 0) * 4.4rem)
);
transition: transform 80ms linear;
}
.mainContainer::-webkit-scrollbar {
width: 1rem;
}
.mainContainer::-webkit-scrollbar-track {
background: transparent;
}
.mainContainer::-webkit-scrollbar-thumb {
min-height: 4rem;
border: 0.25rem solid transparent;
border-radius: 999px;
background-color: var(--colour-BLUE_LIGHT_2);
background-clip: content-box;
}
.mainContainer::-webkit-scrollbar-thumb:hover {
background-color: var(--colour-MAIN_BLUE);
}
@container (max-width: 520px) {
.scrollCue {
right: 0.8rem;
margin-right: 0.8rem;
}
.scrollCueTrack {
height: 5.2rem;
}
.scrollCueThumb {
transform: translate(
-50%,
calc(var(--scroll-cue-progress, 0) * 3.2rem)
);
}
}
@media (max-width: 640px) {
.mainContainer {
gap: 1.2rem;
padding: 1rem;
}
}