rework sidebar & sidebar-mini

- add sidebar-mini-xs
- fixed sidebar-mini with nav-sidebar custom classes
pull/3162/head
REJack 2020-11-27 12:04:42 +01:00
parent 3d4e523b59
commit f23b9135e0
3 changed files with 419 additions and 58 deletions

View File

@ -71,7 +71,8 @@ body,
} }
.layout-navbar-fixed.sidebar-mini.sidebar-collapse &, .layout-navbar-fixed.sidebar-mini.sidebar-collapse &,
.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse & { .layout-navbar-fixed.sidebar-mini-md.sidebar-collapse &,
.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse & {
.brand-link { .brand-link {
height: $main-header-height; height: $main-header-height;
width: $sidebar-mini-width; width: $sidebar-mini-width;
@ -83,7 +84,8 @@ body,
} }
.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm &, .layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm &,
.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm & { .layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm &,
.layout-navbar-fixed.sidebar-mini-xs.sidebar-collapse.text-sm & {
.brand-link { .brand-link {
height: $main-header-height-sm; height: $main-header-height-sm;
} }
@ -421,7 +423,7 @@ body,
} }
body.sidebar-collapse:not(.sidebar-mini-md):not(.sidebar-mini) { body.sidebar-collapse:not(.sidebar-mini-xs):not(.sidebar-mini-md):not(.sidebar-mini) {
.content-wrapper, .content-wrapper,
.main-footer, .main-footer,
.main-header { .main-header {
@ -432,7 +434,7 @@ body.sidebar-collapse:not(.sidebar-mini-md):not(.sidebar-mini) {
} }
} }
body:not(.sidebar-mini-md) { body:not(.sidebar-mini-md):not(.sidebar-mini-xs) {
.content-wrapper, .content-wrapper,
.main-footer, .main-footer,
.main-header { .main-header {
@ -478,6 +480,20 @@ body:not(.sidebar-mini-md) {
} }
} }
.sidebar-mini-xs {
.content-wrapper,
.main-footer,
.main-header {
@include transition(margin-left $transition-speed $transition-fn);
margin-left: $sidebar-width;
.sidebar-collapse & {
margin-left: $sidebar-mini-width;
}
}
}
.content-wrapper { .content-wrapper {
background-color: $main-bg; background-color: $main-bg;
@ -494,7 +510,7 @@ body:not(.sidebar-mini-md) {
width: $sidebar-width; width: $sidebar-width;
} }
.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md) & { .sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) & {
&, &,
&::before { &::before {
box-shadow: none !important; box-shadow: none !important;

View File

@ -486,10 +486,13 @@
.sidebar-mini .main-sidebar:not(.sidebar-no-expand), .sidebar-mini .main-sidebar:not(.sidebar-no-expand),
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand), .sidebar-mini-md .main-sidebar:not(.sidebar-no-expand),
.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand),
.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover, .sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover,
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover, .sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover,
.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover,
.sidebar-mini .main-sidebar.sidebar-focused, .sidebar-mini .main-sidebar.sidebar-focused,
.sidebar-mini-md .main-sidebar.sidebar-focused { .sidebar-mini-md .main-sidebar.sidebar-focused,
.sidebar-mini-xs .main-sidebar.sidebar-focused {
.nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview { .nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {
padding-left: 1rem; padding-left: 1rem;
margin-left: -.5rem; margin-left: -.5rem;
@ -597,8 +600,10 @@
.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover &, .sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover &, .sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini-xs .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini .main-sidebar.sidebar-focused &, .sidebar-mini .main-sidebar.sidebar-focused &,
.sidebar-mini-md .main-sidebar.sidebar-focused & { .sidebar-mini-md .main-sidebar.sidebar-focused &,
.sidebar-mini-xs .main-sidebar.sidebar-focused & {
&.nav-compact.nav-sidebar .nav-treeview { &.nav-compact.nav-sidebar .nav-treeview {
.nav-icon { .nav-icon {
margin-left: .4rem; margin-left: .4rem;
@ -707,11 +712,13 @@
} }
.sidebar-mini &, .sidebar-mini &,
.sidebar-mini-md & { .sidebar-mini-md &,
.sidebar-mini-xs & {
> .nav-item .nav-link { > .nav-item .nav-link {
.nav-icon { .nav-icon {
@include transition(margin-left $transition-fn $transition-speed); @include transition(margin-left $transition-fn $transition-speed);
margin-left: .75rem; margin-left: .6rem;
} }
} }
} }
@ -719,7 +726,9 @@
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini.sidebar-collapse .main-sidebar:hover &.nav-child-indent, .sidebar-mini.sidebar-collapse .main-sidebar:hover &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse .main-sidebar:hover &.nav-child-indent { .sidebar-mini-md.sidebar-collapse .main-sidebar:hover &.nav-child-indent,
.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini-xs.sidebar-collapse .main-sidebar:hover &.nav-child-indent {
.nav-treeview { .nav-treeview {
padding-left: 1rem; padding-left: 1rem;
@ -733,7 +742,9 @@
.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent, .sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent, .sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent, .sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent { .sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent,
.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
.sidebar-mini-xs.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent {
.nav-treeview { .nav-treeview {
padding-left: .5rem; padding-left: .5rem;
@ -745,7 +756,8 @@
} }
.sidebar-mini.sidebar-collapse &, .sidebar-mini.sidebar-collapse &,
.sidebar-mini-md.sidebar-collapse & { .sidebar-mini-md.sidebar-collapse &,
.sidebar-mini-xs.sidebar-collapse & {
> .nav-item > .nav-link { > .nav-item > .nav-link {
.nav-icon { .nav-icon {
margin-left: .55rem; margin-left: .55rem;
@ -770,7 +782,8 @@
.sidebar-mini.sidebar-collapse.text-sm &, .sidebar-mini.sidebar-collapse.text-sm &,
.sidebar-mini-md.sidebar-collapse.text-sm & { .sidebar-mini-md.sidebar-collapse.text-sm &,
.sidebar-mini-xs.sidebar-collapse.text-sm & {
> .nav-item > .nav-link { > .nav-item > .nav-link {
.nav-icon { .nav-icon {
margin-left: .75rem; margin-left: .75rem;
@ -850,7 +863,9 @@
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &,
.sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover &, .sidebar-mini.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &,
.sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover & { .sidebar-mini-md.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover &,
.sidebar-mini-xs.sidebar-collapse .main-sidebar.sidebar-focused &,
.sidebar-mini-xs.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover & {
.menu-open > .nav-treeview { .menu-open > .nav-treeview {
max-height: min-content; max-height: min-content;
animation-name: fadeIn; animation-name: fadeIn;
@ -974,7 +989,7 @@
} }
// Sidebar Collapse on Layout Boxed // Sidebar Collapse on Layout Boxed
.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md) { .layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) {
&.sidebar-collapse .main-sidebar { &.sidebar-collapse .main-sidebar {
margin-left: 0; margin-left: 0;
} }

View File

@ -61,6 +61,12 @@
} }
} }
.sidebar-mini-xs {
@include media-breakpoint-up(xs) {
@include sidebar-mini-breakpoint ();
}
}
@keyframes fadeIn { @keyframes fadeIn {
from { from {
opacity: 0; opacity: 0;
@ -81,12 +87,335 @@
} }
} }
.sidebar-mini,
.sidebar-mini-md,
.sidebar-mini-xs {
.main-sidebar {
.nav-child-indent .nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 1rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 2rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 3rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 4rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 5rem);
}
}
}
}
}
}
.nav-legacy {
.nav-link {
width: $sidebar-width;
}
&.nav-child-indent {
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 1rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 2rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 3rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 4rem);
}
}
}
}
}
}
}
}
.nav-flat {
.nav-link {
width: $sidebar-width;
}
&.nav-child-indent {
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width});
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem * 2);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem * 3);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem * 4);
}
}
}
}
}
}
}
}
.nav-child-indent.nav-compact .nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - .5rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 1rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 1.5rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 2rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2 - 2.5rem);
}
}
}
}
}
}
.nav-child-indent.nav-legacy.nav-compact {
.nav-link {
width: $sidebar-width;
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 2);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 3);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 4);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 5);
}
}
}
}
}
}
}
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);
@include transition(width $transition-fn $transition-speed);
}
}
}
.sidebar-collapse { .sidebar-collapse {
.main-sidebar.sidebar-focused, &.sidebar-mini,
.main-sidebar:hover { &.sidebar-mini-md,
&.sidebar-mini-xs {
.main-sidebar {
.nav-sidebar {
.nav-link {
width: $sidebar-mini-width - $sidebar-padding-x * 2;
}
&.nav-flat,
&.nav-legacy {
.nav-link {
width: $sidebar-mini-width;
}
}
&.nav-child-indent.nav-compact {
.nav-treeview {
padding-left: 0 !important;
margin-left: 0 !important;
}
.nav-link {
width: calc(#{$sidebar-mini-width} - #{$sidebar-padding-x} * 2);
}
}
}
&.sidebar-focused,
&:hover {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);
}
.nav-header { .nav-header {
display: inline-block; display: inline-block;
} }
.nav-child-indent {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);
}
}
.nav-legacy {
.nav-link {
width: $sidebar-width;
}
&.nav-child-indent {
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 1rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 2rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 3rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - 1rem - 4rem);
}
}
}
}
}
}
}
}
.nav-flat {
.nav-link {
width: $sidebar-width;
}
&.nav-child-indent {
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width});
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem * 2);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem * 3);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .2rem * 4);
}
}
}
}
}
}
}
}
.nav-child-indent.nav-compact {
.nav-link {
width: calc(#{$sidebar-width} - #{$sidebar-padding-x} * 2);
}
}
.nav-child-indent.nav-legacy.nav-compact {
.nav-link {
width: $sidebar-width;
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 2);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 3);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 4);
}
.nav-treeview {
.nav-link {
width: calc(#{$sidebar-width} - .5rem * 5);
}
}
}
}
}
}
}
}
} }
.sidebar-no-expand.main-sidebar.sidebar-focused, .sidebar-no-expand.main-sidebar.sidebar-focused,
@ -139,6 +468,7 @@
} }
} }
} }
}
.nav-sidebar { .nav-sidebar {
position: relative; position: relative;