1
0
mirror of https://github.com/tabler/tabler.git synced 2026-07-29 14:34:37 +04:00
Files
tabler/scss/layout/_sidenav.scss
T
2019-11-25 10:53:13 +01:00

162 lines
2.8 KiB
SCSS

$sidenav-padding-x: 1rem;
$sidenav-padding-y: 1rem;
$sidenav-active-color: $primary;
$breakpoints: $grid-breakpoints;
@mixin sidenav-overlay {
display: none;
body.show-sidenav & {
display: block;
position: fixed;
z-index: $zindex-fixed - 1;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba($dark, .1);
}
}
@mixin sidenav-base {
position: fixed;
top: 0;
left: 0;
bottom: 0;
z-index: $zindex-fixed;
opacity: 0;
transform: translateX(-100%);
transition: .3s opacity, .3s transform;
will-change: transform;
width: $sidenav-width;
min-width: $sidenav-width;
&.sidenav-right {
left: auto;
right: 0;
transform: translateX(100%);
}
body.show-sidenav & {
@include sidenav-visible-common;
}
}
@mixin sidenav-visible-common {
transform: translateX(0) !important;
opacity: 1;
}
@mixin sidenav-expanded {
@include sidenav-visible-common;
width: $sidenav-width;
min-width: $sidenav-width;
&:not(.sidenav-right) ~ .layout-main {
//padding-left: $sidenav-width;
}
&.sidenav-right ~ .layout-main {
//padding-right: $sidenav-width;
}
& ~ .sidenav-overlay {
display: none !important;
}
}
@mixin sidenav-folded {
@include sidenav-visible-common;
width: $sidenav-folded-width;
min-width: $sidenav-folded-width;
&:not(.sidenav-right) ~ .layout-main {
//padding-left: $sidenav-folded-width;
}
&.sidenav-right ~ .layout-main {
//padding-right: $sidenav-folded-width;
}
& ~ .sidenav-overlay {
display: none !important;
}
}
/*
Sidebar
*/
.sidenav {
@include sidenav-base;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-items: inherit;
justify-content: flex-start;
margin: 0;
overflow: auto;
pointer-events: inherit;
user-select: none;
background: $sidenav-bg;
padding: $sidenav-padding-y $sidenav-padding-x;
padding: 0; //todo: remove
box-shadow: 1px 0 $sidenav-border-color;
/*
Right navbar
*/
&.sidenav-right {
order: 9;
box-shadow: -1px 0 $sidenav-border-color;
}
}
.sidenav-overlay {
@include sidenav-overlay;
}
/*
Folded navbar
*/
.sidenav-folded {
@each $breakpoint in map-keys($breakpoints) {
$infix: breakpoint-infix($breakpoint, $breakpoints);
@include media-breakpoint-up($breakpoint, $breakpoints) {
&#{$infix} {
@include sidenav-folded;
}
}
}
}
.sidenav-expanded {
@each $breakpoint in map-keys($breakpoints) {
$infix: breakpoint-infix($breakpoint, $breakpoints);
@include media-breakpoint-up($breakpoint, $breakpoints) {
&#{$infix} {
@include sidenav-expanded;
}
}
}
}
/**
Utils
*/
.hide-sidenav-folded {
.sidenav.sidenav-folded & {
display: none;
}
}
.hide-sidenav-expanded {
.sidenav:not(.sidenav-folded) & {
display: none;
}
}