mirror of
https://github.com/tabler/tabler.git
synced 2026-07-29 14:34:37 +04:00
162 lines
2.8 KiB
SCSS
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;
|
|
}
|
|
}
|