AdminLTE/build/scss/_main-sidebar.scss

1199 lines
23 KiB
SCSS

//
// Component: Main Sidebar
//
.main-sidebar {
height: 100vh;
overflow-y: hidden;
z-index: $zindex-main-sidebar;
// Remove Firefox Focusring
a {
&:-moz-focusring {
border: 0;
outline: none;
}
}
}
.sidebar {
height: calc(100% - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));
overflow-x: hidden;
overflow-y: initial;
padding-bottom: $sidebar-padding-y;
padding-left: $sidebar-padding-x;
padding-right: $sidebar-padding-x;
padding-top: $sidebar-padding-y;
@include scrollbar-color-gray();
@include scrollbar-width-none();
&:hover {
@include scrollbar-width-thin();
}
.brand-link.border-bottom-0 ~ & {
height: calc(100% - #{$main-header-height-inner});
}
}
// Sidebar user panel
.user-panel {
position: relative;
[class*="sidebar-dark"] & {
border-bottom: 1px solid lighten($dark, 12%);
}
[class*="sidebar-light"] & {
border-bottom: 1px solid $gray-300;
}
&,
.info {
overflow: hidden;
white-space: nowrap;
}
.image {
display: inline-block;
padding-left: $nav-link-padding-x - .2;
}
img {
height: auto;
width: $sidebar-user-image-width;
}
.info {
display: inline-block;
padding: 5px 5px 5px 10px;
}
.status,
.dropdown-menu {
font-size: $font-size-sm;
}
}
// Sidebar navigation menu
.nav-sidebar {
// All levels
.nav-item {
> .nav-link {
margin-bottom: .2rem;
.right {
@include transition(transform $transition-fn $transition-speed);
}
}
}
.nav-link > .right,
.nav-link > p > .right {
position: absolute;
right: 1rem;
top: .7rem;
i,
span {
margin-left: .5rem;
}
&:nth-child(2) {
right: 2.2rem;
}
}
.menu-open {
> .nav-treeview {
display: block;
}
}
.menu-open,
.menu-is-opening {
> .nav-link {
svg.right,
i.right {
@include rotate(-90deg);
}
}
}
// First Level
> .nav-item {
margin-bottom: 0;
.nav-icon {
margin-left: .05rem;
font-size: 1.2rem;
margin-right: .2rem;
text-align: center;
width: $sidebar-nav-icon-width;
&.fa,
&.fas,
&.far,
&.fab,
&.fal,
&.fad,
&.svg-inline--fa,
&.ion {
font-size: 1.1rem;
}
}
.float-right {
margin-top: 3px;
}
}
// Tree view menu
.nav-treeview {
display: none;
list-style: none;
padding: 0;
> .nav-item {
> .nav-link {
> .nav-icon {
width: $sidebar-nav-icon-width;
}
}
}
}
&.nav-child-indent {
.nav-treeview {
transition: padding $transition-speed $transition-fn;
padding-left: 1rem;
.text-sm & {
padding-left: .5rem;
}
}
&.nav-legacy {
.nav-treeview {
.nav-treeview {
padding-left: 2rem;
margin-left: -1rem;
.text-sm & {
padding-left: 1rem;
margin-left: -.5rem;
}
}
}
}
}
.nav-header {
font-size: .9rem;
padding: $nav-link-padding-y ($nav-link-padding-y * 1.5);
}
.nav-link p {
display: inline;
margin: 0;
white-space: normal;
}
}
.sidebar-is-opening .sidebar .nav-sidebar {
.nav-link p {
animation-name: fadeIn;
animation-duration: $transition-speed;
animation-fill-mode: both;
}
}
#sidebar-overlay {
@include media-breakpoint-down(md) {
.sidebar-open & {
display: block;
}
}
background-color: rgba($black, .1);
bottom: 0;
display: none;
left: 0;
position: fixed;
right: 0;
top: 0;
z-index: $zindex-main-sidebar - 1;
}
[class*="sidebar-light-"] {
// Sidebar background color
background-color: $sidebar-light-bg;
// User Panel (resides in the sidebar)
.user-panel {
a:hover {
color: $sidebar-light-hover-color;
}
.status {
background-color: $sidebar-light-hover-bg;
color: $sidebar-light-color;
&:hover,
&:focus,
&:active {
background-color: darken($sidebar-light-hover-bg, 3%);
color: $sidebar-light-hover-color;
}
}
.dropdown-menu {
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
border-color: darken($sidebar-light-hover-bg, 5%);
}
.dropdown-item {
color: $body-color;
}
}
// Sidebar Menu. First level links
.nav-sidebar > .nav-item {
// links
> .nav-link {
// border-left: 3px solid transparent;
&:active,
&:focus {
color: $sidebar-light-color;
}
}
// Hover and active states
&.menu-open > .nav-link,
&:hover > .nav-link {
background-color: $sidebar-light-hover-bg;
color: $sidebar-light-hover-color;
}
> .nav-link.active {
color: $sidebar-light-active-color;
@if $enable-shadows {
box-shadow: map-get($elevations, 1);
}
}
// First Level Submenu
> .nav-treeview {
background-color: $sidebar-light-submenu-bg;
}
}
// Section Heading
.nav-header {
background-color: inherit;
color: darken($sidebar-light-color, 5%);
}
// All links within the sidebar menu
.sidebar {
a {
color: $sidebar-light-color;
&:hover {
text-decoration: none;
}
}
}
// All submenus
.nav-treeview {
> .nav-item {
> .nav-link {
color: $sidebar-light-submenu-color;
&:hover,
&:focus {
background-color: $sidebar-light-submenu-hover-bg;
color: $sidebar-light-submenu-hover-color;
}
}
> .nav-link.active {
&,
&:hover {
background-color: $sidebar-light-submenu-active-bg;
color: $sidebar-light-submenu-active-color;
}
}
> .nav-link:hover {
background-color: $sidebar-light-submenu-hover-bg;
}
}
}
// Flat style
.nav-flat {
.nav-item {
.nav-treeview {
.nav-treeview {
border-color: $sidebar-light-submenu-active-bg;
}
> .nav-item {
> .nav-link {
&,
&.active {
border-color: $sidebar-light-submenu-active-bg;
}
}
}
}
}
}
}
[class*="sidebar-dark-"] {
// Sidebar background color
background-color: $sidebar-dark-bg;
// User Panel (resides in the sidebar)
.user-panel {
a:hover {
color: $sidebar-dark-hover-color;
}
.status {
background-color: $sidebar-dark-hover-bg;
color: $sidebar-dark-color;
&:hover,
&:focus,
&:active {
background-color: darken($sidebar-dark-hover-bg, 3%);
color: $sidebar-dark-hover-color;
}
}
.dropdown-menu {
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
border-color: darken($sidebar-dark-hover-bg, 5%);
}
.dropdown-item {
color: $body-color;
}
}
// Sidebar Menu. First level links
.nav-sidebar > .nav-item {
// links
> .nav-link {
// border-left: 3px solid transparent;
&:active {
color: $sidebar-dark-color;
}
}
// Hover and active states
&.menu-open > .nav-link,
&:hover > .nav-link,
> .nav-link:focus {
background-color: $sidebar-dark-hover-bg;
color: $sidebar-dark-hover-color;
}
> .nav-link.active {
color: $sidebar-dark-hover-color;
@if $enable-shadows {
box-shadow: map-get($elevations, 1);
}
}
// First Level Submenu
> .nav-treeview {
background-color: $sidebar-dark-submenu-bg;
}
}
// Section Heading
.nav-header {
background-color: inherit; //darken($sidebar-dark-bg, 3%);
color: lighten($sidebar-dark-color, 5%);
}
// All links within the sidebar menu
.sidebar {
a {
color: $sidebar-dark-color;
&:hover,
&:focus {
text-decoration: none;
}
}
}
// All submenus
.nav-treeview {
> .nav-item {
> .nav-link {
color: $sidebar-dark-submenu-color;
&:hover,
&:focus {
background-color: $sidebar-dark-submenu-hover-bg;
color: $sidebar-dark-submenu-hover-color;
}
}
> .nav-link.active {
&,
&:hover,
&:focus {
background-color: $sidebar-dark-submenu-active-bg;
color: $sidebar-dark-submenu-active-color;
}
}
}
}
// Flat Style
.nav-flat {
.nav-item {
.nav-treeview {
.nav-treeview {
border-color: $sidebar-dark-submenu-active-bg;
}
> .nav-item {
> .nav-link {
&,
&.active {
border-color: $sidebar-dark-submenu-active-bg;
}
}
}
}
}
}
}
// Sidebar variants
@each $name, $color in $theme-colors {
.sidebar-dark-#{$name},
.sidebar-light-#{$name} {
@include sidebar-color($color);
}
}
@each $name, $color in $colors {
.sidebar-dark-#{$name},
.sidebar-light-#{$name} {
@include sidebar-color($color);
}
}
.sidebar-mini .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-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-md .main-sidebar.sidebar-focused,
.sidebar-mini-xs .main-sidebar.sidebar-focused {
.nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {
padding-left: 1rem;
margin-left: -.5rem;
}
}
// Nav Flat
.nav-flat {
margin: (-$sidebar-padding-x / 2) (-$sidebar-padding-x) 0;
.nav-item {
> .nav-link {
border-radius: 0;
margin-bottom: 0;
> .nav-icon {
margin-left: .55rem;
}
}
}
&:not(.nav-child-indent) {
.nav-treeview {
.nav-item {
> .nav-link {
> .nav-icon {
margin-left: .4rem;
}
}
}
}
}
&.nav-child-indent {
.nav-treeview {
padding-left: 0;
.nav-icon {
margin-left: .85rem;
}
.nav-treeview {
border-left: .2rem solid;
.nav-icon {
margin-left: 1.15rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.45rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.75rem;
}
.nav-treeview {
.nav-icon {
margin-left: 2.05rem;
}
}
}
}
}
}
}
.sidebar-collapse &.nav-child-indent .sidebar {
.nav-treeview {
.nav-icon {
margin-left: .55rem;
}
.nav-link {
padding-left: calc(#{$nav-link-padding-x} - .2rem);
}
.nav-treeview {
.nav-icon {
margin-left: .35rem;
}
.nav-treeview {
.nav-icon {
margin-left: .15rem;
}
.nav-treeview {
.nav-icon {
margin-left: -.15rem;
}
.nav-treeview {
.nav-icon {
margin-left: -.35rem;
}
}
}
}
}
}
}
.sidebar-mini .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-md .main-sidebar.sidebar-focused &,
.sidebar-mini-xs .main-sidebar.sidebar-focused & {
&.nav-compact.nav-sidebar .nav-treeview {
.nav-icon {
margin-left: .4rem;
}
}
&.nav-sidebar.nav-child-indent .nav-treeview {
.nav-icon {
margin-left: .85rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.15rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.45rem;
}
.nav-treeview {
.nav-icon {
margin-left: 1.75rem;
}
.nav-treeview {
.nav-icon {
margin-left: 2.05rem;
}
}
}
}
}
}
}
.nav-icon {
@include transition(margin-left $transition-fn $transition-speed);
}
.nav-treeview {
.nav-icon {
margin-left: -.2rem;
}
}
&.nav-sidebar > .nav-item {
.nav-treeview,
> .nav-treeview {
background-color: rgba($white, .05);
.nav-item {
> .nav-link {
border-left: .2rem solid;
}
}
}
}
}
.nav-legacy {
margin: (-$sidebar-padding-x / 2) (-$sidebar-padding-x) 0;
&.nav-sidebar .nav-item {
> .nav-link {
border-radius: 0;
margin-bottom: 0;
> .nav-icon {
margin-left: .55rem;
.text-sm & {
margin-left: .75rem;
}
}
}
}
&.nav-sidebar > .nav-item {
> .nav-link {
&.active {
background-color: inherit;
border-left: 3px solid transparent;
box-shadow: none;
> .nav-icon {
margin-left: calc(.55rem - 3px);
.text-sm & {
margin-left: calc(.75rem - 3px);
}
}
}
}
}
.text-sm &.nav-sidebar.nav-flat .nav-treeview {
.nav-item {
> .nav-link {
> .nav-icon {
margin-left: calc(.75rem - 3px);
}
}
}
}
.sidebar-mini &,
.sidebar-mini-md &,
.sidebar-mini-xs & {
> .nav-item .nav-link {
.nav-icon {
@include transition(margin-left $transition-fn $transition-speed);
margin-left: .6rem;
}
}
}
.sidebar-mini.sidebar-collapse,
.sidebar-mini-md.sidebar-collapse,
.sidebar-mini-xs.sidebar-collapse {
.main-sidebar.sidebar-focused &.nav-child-indent,
.main-sidebar:hover &.nav-child-indent {
.nav-treeview {
padding-left: 1rem;
.nav-treeview {
padding-left: 2rem;
margin-left: -1rem;
}
}
}
}
.sidebar-mini.sidebar-collapse.text-sm,
.sidebar-mini-md.sidebar-collapse.text-sm,
.sidebar-mini-xs.sidebar-collapse.text-sm {
.main-sidebar.sidebar-focused &.nav-child-indent,
.main-sidebar:hover &.nav-child-indent {
.nav-treeview {
padding-left: .5rem;
.nav-treeview {
padding-left: 1rem;
margin-left: -.5rem;
}
}
}
}
.sidebar-mini.sidebar-collapse &,
.sidebar-mini-md.sidebar-collapse &,
.sidebar-mini-xs.sidebar-collapse & {
.sidebar {
> .nav-item > .nav-link {
.nav-icon {
margin-left: .55rem;
}
&.active {
> .nav-icon {
margin-left: .36rem;
}
}
}
&.nav-child-indent {
.nav-treeview {
.nav-treeview {
padding-left: 0;
margin-left: 0;
}
}
}
}
}
.sidebar-mini.sidebar-collapse.text-sm &,
.sidebar-mini-md.sidebar-collapse.text-sm &,
.sidebar-mini-xs.sidebar-collapse.text-sm & {
.sidebar {
> .nav-item > .nav-link {
.nav-icon {
margin-left: .75rem;
}
&.active {
> .nav-icon {
margin-left: calc(.75rem - 3px);
}
}
}
}
}
[class*="sidebar-dark"] & {
&.nav-sidebar > .nav-item {
.nav-treeview,
> .nav-treeview {
background-color: rgba($white, .05);
}
> .nav-link.active {
color: $sidebar-dark-active-color;
}
}
.nav-treeview > .nav-item > .nav-link {
&.active,
&:focus,
&:hover {
background-color: transparent;
color: $sidebar-dark-active-color;
}
}
}
[class*="sidebar-light"] & {
&.nav-sidebar > .nav-item {
.nav-treeview,
> .nav-treeview {
background-color: rgba($black, .05);
}
> .nav-link.active {
color: $sidebar-light-active-color;
}
}
.nav-treeview > .nav-item > .nav-link {
&.active,
&:focus,
&:hover {
background-color: transparent;
color: $sidebar-light-active-color;
}
}
}
}
.nav-collapse-hide-child {
.menu-open > .nav-treeview {
max-height: min-content;
animation-name: fadeIn;
animation-duration: $transition-speed;
animation-fill-mode: both;
}
.sidebar-collapse .sidebar & {
.menu-open > .nav-treeview {
max-height: 0;
animation-name: fadeOut;
animation-duration: $transition-speed;
animation-fill-mode: both;
}
}
.sidebar-mini.sidebar-collapse,
.sidebar-mini-md.sidebar-collapse,
.sidebar-mini-xs.sidebar-collapse {
.main-sidebar.sidebar-focused &,
.main-sidebar:not(.sidebar-no-expand):hover & {
.menu-open > .nav-treeview {
max-height: min-content;
animation-name: fadeIn;
animation-duration: $transition-speed;
animation-fill-mode: both;
}
}
}
}
// Nav Compact
.nav-compact {
.nav-link,
.nav-header {
padding-top: ($nav-link-padding-y / 2);
padding-bottom: ($nav-link-padding-y / 2);
}
.nav-header:not(:first-of-type) {
padding-top: ($nav-link-padding-y * 1.5);
padding-bottom: ($nav-link-padding-y / 2);
}
.nav-link > .right,
.nav-link > p > .right {
top: .465rem;
}
.text-sm & {
.nav-link > .right,
.nav-link > p > .right {
top: .7rem;
}
}
}
// Sidebar Form Control
[class*="sidebar-dark"] {
.form-control-sidebar,
.btn-sidebar {
background-color: lighten($sidebar-dark-bg, 5%);
border: 1px solid lighten($sidebar-dark-bg, 15%);
color: lighten(color-yiq(lighten($sidebar-dark-bg, 5%)), 15%);
}
.form-control-sidebar:focus,
.btn-sidebar:focus {
border: 1px solid lighten($sidebar-dark-bg, 30%);
}
.btn-sidebar:hover {
background-color: lighten($sidebar-dark-bg, 7.5%);
}
.btn-sidebar:focus {
background-color: lighten($sidebar-dark-bg, 10%);
}
.list-group-item {
background-color: lighten($sidebar-dark-bg, 7.5%);
border-color: lighten($sidebar-dark-bg, 15%);
color: $sidebar-dark-color;
&:hover {
background-color: lighten($sidebar-dark-bg, 10%);
}
&:focus {
background-color: lighten($sidebar-dark-bg, 12.5%);
}
.search-path {
color: $gray-500;
}
}
}
[class*="sidebar-light"] {
.form-control-sidebar,
.btn-sidebar {
background-color: darken($sidebar-light-bg, 5%);
border: 1px solid darken($sidebar-light-bg, 15%);
color: color-yiq(darken($sidebar-light-bg, 5%));
}
.form-control-sidebar:focus,
.btn-sidebar:focus {
border: 1px solid darken($sidebar-light-bg, 30%);
}
.btn-sidebar:hover {
background-color: darken($sidebar-light-bg, 7.5%);
}
.btn-sidebar:focus {
background-color: darken($sidebar-light-bg, 10%);
}
.list-group-item {
border-color: darken($sidebar-light-bg, 15%);
&:hover {
background-color: darken($sidebar-light-bg, 7.5%);
}
&:focus {
background-color: darken($sidebar-light-bg, 10%);
}
.search-path {
color: $gray-600;
}
}
}
// Sidebar inline input-group fix
.sidebar .form-inline .input-group {
width: 100%;
flex-wrap: nowrap;
}
.sidebar nav .form-inline {
margin-bottom: .2rem;
}
// Sidebar Collapse on Layout Boxed
.layout-boxed:not(.sidebar-mini):not(.sidebar-mini-md):not(.sidebar-mini-xs) {
&.sidebar-collapse .main-sidebar {
margin-left: 0;
}
.content-wrapper,
.main-header,
.main-footer {
z-index: 9999;
position: relative;
}
.control-sidebar {
z-index: 9999;
}
}
// Sidebar Search
.sidebar-collapse {
.form-control-sidebar,
.form-control-sidebar ~ .input-group-append,
.sidebar-search-results {
display: none;
}
}
[data-widget="sidebar-search"] {
input[type="search"] {
&::-ms-clear,
&::-ms-reveal {
display: none;
width: 0;
height: 0;
}
&::-webkit-search-cancel-button,
&::-webkit-search-decoration,
&::-webkit-search-results-button,
&::-webkit-search-results-decoration {
display: none;
}
}
}
.sidebar-search-results {
position: relative;
display: none;
width: 100%;
.sidebar-search-open & {
display: inline-block;
}
.search-title {
margin-bottom: -.1rem;
}
.list-group {
position: absolute;
width: 100%;
z-index: $zindex-main-sidebar + 1;
> .list-group-item {
padding: $input-padding-y $input-padding-x;
&:-moz-focusring {
margin-top: 0;
border-left: 1px solid transparent;
border-top: 0;
border-bottom: 1px solid transparent;
}
&:first-child {
margin-top: 0;
border-top: 0;
@include border-top-radius(0);
}
}
}
}
.sidebar-search-results .search-path {
font-size: $small-font-size;
}
.sidebar-search-open {
.btn,
.form-control {
@include border-bottom-radius(0);
}
}
// Custom Area
.sidebar-custom {
[class*="sidebar-dark"] & {
border-top: 1px solid lighten($dark, 12%);
}
[class*="sidebar-light"] & {
border-top: 1px solid $gray-300;
}
}
.layout-fixed {
&.sidebar-collapse {
.hide-on-collapse {
display: none;
}
}
&.sidebar-collapse:hover {
.hide-on-collapse {
display: block;
}
}
&.text-sm .main-sidebar-custom {
.sidebar {
height: calc(100% - ((#{$main-header-height-sm-inner} + #{$sidebar-custom-height * .95}) + #{$main-header-bottom-border-width}));
}
.sidebar-custom {
height: $sidebar-custom-height * .95;
padding: $sidebar-custom-padding-x $sidebar-custom-padding-y;
}
}
.main-sidebar-custom {
.sidebar {
height: calc(100% - ((#{$main-header-height-inner} + #{$sidebar-custom-height}) + #{$main-header-bottom-border-width}));
}
.sidebar-custom {
height: $sidebar-custom-height;
padding: $sidebar-custom-padding-x $sidebar-custom-padding-y;
}
height: stretch;
}
.main-sidebar-custom-lg {
.sidebar {
height: calc(100% - ((#{$main-header-height-inner} + #{$sidebar-custom-height-lg}) + #{$main-header-bottom-border-width}));
}
.sidebar-custom {
height: $sidebar-custom-height-lg;
}
}
.main-sidebar-custom-xl {
.sidebar {
height: calc(100% - ((#{$main-header-height-inner} + #{$sidebar-custom-height-xl}) + #{$main-header-bottom-border-width}));
}
.sidebar-custom {
height: $sidebar-custom-height-xl;
}
}
.main-sidebar-custom,
.main-sidebar-custom-lg,
.main-sidebar-custom-xl {
.pos-right {
position: absolute;
right: .5rem;
}
}
}
@include dark-mode() {
@each $name, $color in $theme-colors-alt {
.sidebar-dark-#{$name},
.sidebar-light-#{$name} {
@include sidebar-color($color);
}
}
@each $name, $color in $colors-alt {
.sidebar-dark-#{$name},
.sidebar-light-#{$name} {
@include sidebar-color($color);
}
}
[class*="sidebar-light-"] {
.sidebar {
a {
color: $sidebar-light-color;
&:hover {
text-decoration: none;
}
}
}
}
}
//