#app { .main-container { position: relative; min-height: 100%; margin-left: $sideBarWidth; transition: margin-left 0.28s; } .sidebar-container { position: fixed; top: 0; bottom: 0; left: 0; z-index: 1001; width: $sideBarWidth !important; height: 100%; overflow: hidden; background-color: $menuBg; transition: width 0.28s; // reset element-ui css .horizontal-collapse-transition { transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out; } .scrollbar-wrapper { overflow-x: hidden !important; } .el-scrollbar__bar.is-vertical { right: 0; } .el-scrollbar { height: 100%; } &.has-logo { .el-scrollbar { height: calc(100% - 50px); } } .is-horizontal { display: none; } .el-menu-item, .el-sub-menu__title { display: flex; gap: 12px; align-items: center; height: 48px; padding: 0 16px !important; line-height: normal; color: $menuText !important; } .el-menu-item:hover, .el-sub-menu__title:hover { background-color: $menuHover !important; } .el-menu-item.is-active { position: relative; color: $menuActiveText !important; background-color: $menuActiveBg !important; } .el-menu-item.is-active::before { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; content: ""; background-color: $menuActiveBorder; } .svg-icon { flex: 0 0 18px; width: 18px; height: 18px; margin-right: 0; color: currentcolor; fill: currentcolor; } .menu-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .el-sub-menu__icon-arrow { margin-left: auto; } .sub-el-icon { margin-right: 12px; margin-left: -2px; } .el-menu { width: 100% !important; height: 100%; border: none; } // menu hover .el-sub-menu__title { &:hover { background-color: $menuHover !important; } } .is-active > .el-sub-menu__title { color: $subMenuActiveText !important; } & .nest-menu .el-sub-menu > .el-sub-menu__title, & .el-sub-menu .el-menu-item { min-width: $sideBarWidth !important; background-color: $subMenuBg !important; &:hover { background-color: $subMenuHover !important; } } } .hideSidebar { .sidebar-container { width: $sideBarCollapsedWidth !important; .svg-icon { margin-right: 0; } } .main-container { margin-left: $sideBarCollapsedWidth; } .sidebar-container .el-menu--collapse { width: $sideBarCollapsedWidth !important; } .sidebar-container .el-menu--collapse > .el-menu-item, .sidebar-container .el-menu--collapse > .el-sub-menu > .el-sub-menu__title { gap: 0; justify-content: center; padding: 0 !important; } .sidebar-container .el-menu--collapse .svg-icon { display: block; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; } .el-sub-menu { overflow: hidden; & > .el-sub-menu__title { .el-sub-menu__icon-arrow { display: none; } } } .el-menu--collapse { .el-sub-menu { & > .el-sub-menu__title { & > span { display: inline-block; visibility: hidden; width: 0; height: 0; overflow: hidden; } } } } } .el-menu--collapse .el-menu .el-sub-menu { min-width: $sideBarCollapsedWidth !important; } // mobile responsive .mobile { .main-container { margin-left: 0; } .sidebar-container { width: $sideBarWidth !important; transition: transform 0.28s; } &.hideSidebar { .sidebar-container { pointer-events: none; transform: translate3d(-$sideBarWidth, 0, 0); transition-duration: 0.3s; } } } .withoutAnimation { .main-container, .sidebar-container { transition: none; } } } // when menu collapsed .el-menu--vertical { & > .el-menu { .svg-icon { margin-right: 16px; } .sub-el-icon { margin-right: 12px; margin-left: -2px; } } .nest-menu .el-sub-menu > .el-sub-menu__title, .el-menu-item { &:hover { // you can use $subMenuHover background-color: $menuHover !important; } } // the scroll bar appears when the subMenu is too long > .el-menu--popup { max-height: 100vh; overflow-y: auto; &::-webkit-scrollbar-track-piece { background: #d3dce6; } &::-webkit-scrollbar { width: 6px; } &::-webkit-scrollbar-thumb { background: #99a9bf; border-radius: 20px; } } }