TIF_E41201544/public/assets/scss/demo1/_sidebar.scss

343 lines
8.8 KiB
SCSS

// Sidebar
.sidebar {
width: $sidebar-width-lg;
height: 100%;
position: fixed;
left: 0;
top: 0;
-webkit-transition: visibility .1s ease, width .1s ease, margin .1s ease;
transition: visibility .1s ease, width .1s ease, margin .1s ease;
z-index: $zindex-sidebar;
.sidebar-header {
background: var(--#{$prefix}body-bg);
height: $navbar-height;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 25px;
border-right: 1px solid var(--#{$prefix}border-color);
border-bottom: 1px solid var(--#{$prefix}border-color);
z-index: $zindex-sidebar;
width: $sidebar-width-lg;
-webkit-transition: width .1s ease;
transition: width .1s ease;
.sidebar-open & {
border-bottom: 1px solid var(--#{$prefix}border-color);
}
.sidebar-brand {
opacity: 1;
visibility: visible;
-webkit-transition: opacity .5s ease;
transition: opacity .5s ease;
font-weight: 700;
font-size: 25px;
color: darken($primary, 50%);
direction: ltr#{'/*rtl:ignore*/'};
span {
color: $primary;
font-weight: 300;
}
}
.sidebar-toggler {
cursor: pointer;
width: 18px;
span {
display: block;
width: 100%;
border-radius: 3px;
height: 2px;
background: $secondary;
// -webkit-transition: all .3s;
// transition: all .3s;
position: relative;
}
span + span {
margin-top: 4px;
}
&.active span:nth-child(1) {
animation: ease .2s hamburger-animation-top forwards;
}
&:not(.active) span:nth-child(1) {
animation: ease .2s hamburger-animation-top-2 forwards;
}
&.active span:nth-child(2) {
animation: ease .2s hamburger-animation-scaled forwards;
}
&:not(.active) span:nth-child(2) {
animation: ease .2s hamburger-animation-scaled-2 forwards;
}
&.active span:nth-child(3) {
animation: ease .2s hamburger-animation-bottom forwards;
}
&:not(.active) span:nth-child(3) {
animation: ease .2s hamburger-animation-bottom-2 forwards;
}
}
}
.sidebar-body {
max-height: calc(100% - #{$navbar-height});
position: relative;
border-right: 1px solid var(--#{$prefix}border-color);
height: 100%;
-webkit-box-shadow: 0 8px 10px 0 var(--#{$prefix}sidebar-box-shadow-color);
box-shadow: 0 8px 10px 0 var(--#{$prefix}sidebar-box-shadow-color);
background: var(--#{$prefix}body-bg);
.nav {
display: flex;
flex-direction: column;
padding: 25px 25px 50px 25px;
.nav-item {
position: relative;
.nav-link {
display: flex;
align-items: center;
padding: 0;
height: 32px;
white-space: nowrap;
color: var(--#{$prefix}sidebar-color);
.link-icon {
width: 16px;
height: 16px;
fill: rgba($secondary, .05);
position: absolute;
color: inherit;
}
.link-title {
margin-left: 30px;
font-size: 14px;
-webkit-transition: all .1s ease-in-out;
transition: all .1s ease-in-out;
}
.link-arrow {
width: 14px;
height: 14px;
margin-left: auto;
-webkit-transition: all .1s ease-in-out;
transition: all .1s ease-in-out;
color: inherit;
}
.link-icon,
.link-title,
.link-arrow {
-webkit-transition: all .1s ease;
transition: all .1s ease;
}
&[aria-expanded="true"] {
color: $sidebar-nav-link-active-color;
.link-arrow {
-webkit-transform: rotate(90deg);
transform: rotate(180deg);
}
}
}
&.nav-category {
color: $secondary;
font-size: 11px;
text-transform: uppercase;
font-weight: 500;
letter-spacing: .5px;
margin-bottom: 5px;
height: 15px;
&:not(:first-child) {
margin-top: 20px;
}
}
&:hover {
.nav-link {
color: $sidebar-nav-link-hover-color;
.link-title {
margin-left: 31px;
}
.link-icon {
color: $sidebar-nav-link-hover-color;
fill: rgba($sidebar-nav-link-hover-color, .1);
}
}
}
&.active {
.nav-link {
color: $sidebar-nav-link-active-color;
&::before {
content: '';
width: 3px;
height: 26px;
background: $sidebar-nav-link-active-color;
position: absolute;
left: -25px;
}
.link-icon {
fill: rgba($sidebar-nav-link-active-color, .1);
color: $sidebar-nav-link-active-color;
}
}
}
}
&.sub-menu {
padding: 0 0 15px 33px;
.nav-item {
position: relative;
.nav-link {
height: 25px;
color: var(--#{$prefix}sidebar-color);
font-size: 13px;
-webkit-transition: all .1s ease-in-out;
transition: all .1s ease-in-out;
&::before {
content: '';
width: 6px;
height: 6px;
border-radius: 50%;
background: transparent;
border: 1px solid rgba(var(--#{$prefix}sidebar-color-rgb), .3);
position: absolute;
left: -29px;
top: 10px;
-webkit-transition: all .1s ease-in-out;
transition: all .1s ease-in-out;
}
&.active {
color: $sidebar-nav-link-active-color;
&::before {
border: 1px solid $sidebar-nav-link-active-color;
background: $sidebar-nav-link-active-color;
}
}
}
&:hover {
.nav-link {
color: $sidebar-nav-link-hover-color;
margin-left: 3px;
&::before {
border: 1px solid $sidebar-nav-link-hover-color;
background: $sidebar-nav-link-hover-color;
}
}
}
}
}
}
}
@media(max-width: 991px) {
right: 0;
left: unset;
z-index: $zindex-sidebar;
margin-right: -#{$sidebar-width-lg};
visibility: hidden;
.sidebar-open & {
margin-right: 0;
visibility: visible;
}
.sidebar-header {
// transform: translateX($sidebar-folded-width);
// visibility: visible;
// transition: none;
// .sidebar-open & {
// transform: translateX(0);
// }
}
.sidebar-body {
.nav {
.nav-item {
width: auto;
.nav-link {
.link-icon {
-webkit-transition: none;
transition: none;
margin: 0;
}
}
}
}
}
}
}
// Dark sidebar in the Light Theme
.sidebar-dark {
.sidebar {
.sidebar-header {
background: $sidebar-dark-bg;
border-bottom: 1px solid $border-color-dark;
border-right: 1px solid $border-color-dark;
.sidebar-brand {
color: $light;
}
.sidebar-toggler {
span {
background: $sidebar-dark-color;
}
}
}
.sidebar-body {
background: $sidebar-dark-bg;
border-right: 1px solid $border-color-dark;
.nav {
.nav-item {
&.nav-category {
color: $body-color-dark;
}
.nav-link {
color: $sidebar-dark-color;
svg {
fill: none;
}
&[aria-expanded="true"] {
color: $sidebar-nav-link-active-color;
}
}
&:hover,
&.active {
.nav-link {
svg {
fill: rgba($sidebar-nav-link-active-color, .2);
}
.link-title {
color: $sidebar-nav-link-active-color;
}
}
}
}
&.sub-menu {
.nav-item {
.nav-link {
&::before {
border-color: $sidebar-dark-color
}
}
}
}
}
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
// For dark theme only
.sidebar {
.sidebar-header {
.sidebar-brand {
color: var(--#{$prefix}body-color);
}
}
.sidebar-body {
.nav {
.nav-item {
&.nav-category {
color: var(--#{$prefix}body-color);
}
}
}
}
}
}
}