formstone
Version:
Library of modular front end components.
155 lines (132 loc) • 4.8 kB
CSS
.fs-navigation {
box-sizing: border-box;
}
.fs-navigation,
.fs-navigation-content {
--fs-navigation-offscreen-background: #fff;
--fs-navigation-offscreen-width: 80vw;
--fs-navigation-offscreen-zindex: 0;
--fs-navigation-offscreen-duration: 0.2s;
--fs-navigation-offscreen-timing: ease;
--fs-navigation-overlay-zindex: 3;
--fs-navigation-overlay-content-background: rgba(0, 0, 0, 0.8);
--fs-navigation-overlay-content-zindex: 2;
--fs-navigation-push-zindex: 0;
--fs-navigation-push-content-zindex: 1;
}
@media (prefers-reduced-motion) {
.fs-navigation,
.fs-navigation-content {
--fs-navigation-offscreen-duration: 0s;
}
}
.fs-navigation-toggle-nav.fs-navigation-enabled:not(.fs-navigation-open) {
display: none;
}
.fs-navigation-toggle-handle.fs-navigation-enabled {
width: 100%;
cursor: pointer;
display: block;
}
.fs-navigation-push-nav.fs-navigation-enabled,
.fs-navigation-reveal-nav.fs-navigation-enabled,
.fs-navigation-overlay-nav.fs-navigation-enabled {
width: var(--fs-navigation-offscreen-width);
height: calc(100% + 60px);
position: fixed;
top: 0;
background: var(--fs-navigation-offscreen-background);
display: block;
overflow-y: scroll;
visibility: hidden;
overscroll-behavior: contain;
}
.fs-navigation-reveal-nav.fs-navigation-animated {
transition: visibility 0.001s linear var(--fs-navigation-offscreen-duration);
}
.fs-navigation-push-nav.fs-navigation-animated,
.fs-navigation-overlay-nav.fs-navigation-animated {
transition: transform var(--fs-navigation-offscreen-duration) var(--fs-navigation-offscreen-timing), visibility 0.001s linear var(--fs-navigation-offscreen-duration);
}
.fs-navigation-push-nav.fs-navigation-enabled,
.fs-navigation-reveal-nav.fs-navigation-enabled {
z-index: var(--fs-navigation-push-zindex);
}
.fs-navigation-push-left-nav.fs-navigation-enabled,
.fs-navigation-reveal-left-nav.fs-navigation-enabled,
.fs-navigation-overlay-left-nav.fs-navigation-enabled {
left: 0;
}
.fs-navigation-push-right-nav.fs-navigation-enabled,
.fs-navigation-reveal-right-nav.fs-navigation-enabled,
.fs-navigation-overlay-right-nav.fs-navigation-enabled {
right: 0;
}
.fs-navigation-push-left-nav.fs-navigation-enabled,
.fs-navigation-overlay-left-nav.fs-navigation-enabled {
transform: translate3d(calc(var(--fs-navigation-offscreen-width) * -1), 0, 0);
}
.fs-navigation-push-right-nav.fs-navigation-enabled,
.fs-navigation-overlay-right-nav.fs-navigation-enabled {
transform: translate3d(var(--fs-navigation-offscreen-width), 0, 0);
}
.fs-navigation-overlay-nav.fs-navigation-enabled {
z-index: var(--fs-navigation-overlay-zindex);
}
.fs-navigation-reveal-nav.fs-navigation-open {
visibility: visible;
transition: visibility 0.001s linear;
}
.fs-navigation-push-nav.fs-navigation-open,
.fs-navigation-overlay-nav.fs-navigation-open {
transform: translate3d(0, 0, 0);
transition: transform var(--fs-navigation-offscreen-duration) var(--fs-navigation-offscreen-timing), visibility 0.001s linear;
visibility: visible;
}
.fs-navigation-push-handle.fs-navigation-enabled,
.fs-navigation-overlay-handle.fs-navigation-enabled {
cursor: pointer;
display: block;
}
.fs-navigation-overlay-content:before {
width: 100%;
height: 100%;
height: calc(100% + 60px);
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: var(--fs-navigation-overlay-content-zindex);
background: var(--fs-navigation-overlay-content-background);
content: '';
display: block;
opacity: 0;
overflow-y: scroll;
overscroll-behavior: contain;
transition: background var(--fs-navigation-offscreen-duration) var(--fs-navigation-offscreen-timing), opacity var(--fs-navigation-offscreen-duration) var(--fs-navigation-offscreen-timing), visibility var(--fs-navigation-offscreen-duration) var(--fs-navigation-offscreen-timing);
visibility: hidden;
}
.fs-navigation-overlay-content.fs-navigation-open:before {
opacity: 1;
visibility: visible;
}
.fs-navigation-reveal-content.fs-navigation-enabled,
.fs-navigation-push-content.fs-navigation-enabled {
position: relative;
z-index: var(--fs-navigation-push-content-zindex);
display: block;
transform: translate3d(0, 0, 0);
}
.fs-navigation-reveal-content.fs-navigation-animated,
.fs-navigation-push-content.fs-navigation-animated {
transition: transform var(--fs-navigation-offscreen-duration) var(--fs-navigation-offscreen-timing);
}
.fs-navigation-reveal-left-content.fs-navigation-open,
.fs-navigation-push-left-content.fs-navigation-open {
transform: translate3d(var(--fs-navigation-offscreen-width), 0, 0);
}
.fs-navigation-reveal-right-content.fs-navigation-open,
.fs-navigation-push-right-content.fs-navigation-open {
transform: translate3d(calc(var(--fs-navigation-offscreen-width) * -1), 0, 0);
}