react-toolbox/components/layout/theme.css

237 lines
4.7 KiB
CSS

@import '../colors.css';
@import '../media.css';
@import '../variables.css';
@import '../app_bar/config.css';
@import '../drawer/config.css';
:root {
--layout-side-transition: all var(--animation-duration) var(--animation-curve-default);
}
.layout {
align-items: stretch;
composes: reset from '../helpers.css';
display: flex;
flex: 1;
flex-direction: column;
justify-content: space-between;
min-height: 100vh;
min-width: 100%;
position: relative;
}
.panel {
left: 0;
position: absolute;
right: 0;
top: 0;
&:not(.bodyScroll) {
height: 100vh;
max-height: 100vh;
overflow-y: scroll;
}
}
.sidebarDrawer,
.navDrawerDrawer {
z-index: var(--z-index-high);
&.pinned {
box-shadow: none;
}
&.clipped {
height: calc(100vh - var(--appbar-height));
padding-top: calc(0.5 * var(--unit));
top: var(--appbar-height);
@media screen and (--xxs-viewport) and (--portrait) {
height: calc(100vh - var(--appbar-height-m-portrait));
top: var(--appbar-height-m-portrait);
}
@media screen and (--xs-viewport) and (--landscape) {
height: calc(100vh - var(--appbar-height-m-landscape));
top: var(--appbar-height-m-landscape);
}
}
}
.appbarInner,
.panel {
transition: var(--layout-side-transition);
}
.appbarFixed {
&.appbarAppBar {
z-index: var(--z-index-high);
}
& .panel {
top: var(--appbar-height);
&:not(.bodyScroll) {
height: calc(100vh - var(--appbar-height));
max-height: calc(100vh - var(--appbar-height));
overflow-y: scroll;
}
@media screen and (--xxs-viewport) and (--portrait) {
top: var(--appbar-height-m-portrait);
}
@media screen and (--xs-viewport) and (--landscape) {
top: var(--appbar-height-m-landscape);
}
}
}
.navDrawerPinned {
& .appbarLeftIcon {
display: none;
}
& .panel {
left: var(--drawer-mobile-width);
}
&:not(.navDrawerClipped) {
& .appbarAppBar {
padding-left: calc(var(--drawer-mobile-width) + var(--appbar-h-padding));
}
}
@media screen and (--larger-than-xs-viewport) {
& .panel {
left: var(--drawer-desktop-width);
}
&:not(.navDrawerClipped) {
& .appbarAppBar {
padding-left: calc(var(--drawer-desktop-width) + var(--appbar-h-padding));
}
}
}
}
.navDrawerClipped {
& .navDrawerWrapper {
position: relative;
z-index: var(--z-index-normal);
}
}
.sidebarPinned {
& .appbarLeftIcon {
display: none;
}
& .panel {
right: var(--drawer-mobile-width);
}
&:not(.sidebarClipped) {
& .appbarAppBar {
padding-right: calc(var(--drawer-mobile-width) + var(--appbar-h-padding));
}
}
@media screen and (--larger-than-xs-viewport) {
& .panel {
right: var(--drawer-desktop-width);
}
&:not(.sidebarClipped) {
& .appbarAppBar {
padding-right: calc(var(--drawer-desktop-width) + var(--appbar-h-padding));
}
}
}
}
.sidebarClipped {
& .sidebarWrapper {
position: relative;
z-index: var(--z-index-normal);
}
}
@define-mixin sidebarIncrements $platform {
& .sidebarDrawer {
width: calc(var(--standard-increment-$(platform)) * $(increment));
}
&.sidebarPinned {
& .panel {
right: calc(var(--standard-increment-$(platform)) * $(increment));
}
&:not(.sidebarClipped) {
& .appbarAppBar {
padding-right: calc(var(--standard-increment-$(platform)) * $(increment) + var(--appbar-h-padding));
}
}
}
}
@each $increment in 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 {
.sidebarWidth$(increment) {
& .sidebarDrawer {
width: 100%;
}
@media screen and (--larger-than-sm-viewport) {
@mixin sidebarIncrements desktop;
}
}
}
@each $increment in 1, 2, 3, 4, 5, 6, 7, 8, 9 {
.sidebarWidth$(increment) {
@media screen and (--larger-than-xs-viewport) and (--landscape) {
@mixin sidebarIncrements mobile;
}
@media screen and (--larger-than-xs-viewport) and (orientation: portrait) {
@mixin sidebarIncrements desktop;
}
}
}
@each $increment in 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 {
.sidebarWidth$(increment) {
@media screen and (--larger-than-sm-tablet-viewport) {
@mixin sidebarIncrements desktop;
}
}
}
@each $pct in 25, 33, 50, 66, 75, 100 {
.sidebarWidth$(pct) {
& .sidebarDrawer {
width: 100%;
}
}
}
@media screen and (--larger-than-sm-tablet-viewport) {
@each $pct in 25, 33, 50, 66, 75, 100 {
.sidebarWidth$(pct) {
& .panel {
right: calc($(pct) * 1%);
}
& .sidebarDrawer {
width: calc($(pct) * 1%);
}
&:not(.sidebarClipped) {
& .appbarAppBar {
padding-right: calc(calc($(pct) * 1%) + var(--appbar-h-padding));
}
}
}
}
}