style: simplify sidebar scss

This commit is contained in:
xiaoxian521 2021-04-28 18:18:06 +08:00
parent 89162dee1e
commit b1751beab9

View File

@ -1,19 +1,19 @@
// 暗色主题
body[data-theme="dark"] {
@mixin merge-style(
// 菜单选中后字体样式
$subMenuActiveText,
//菜单背景
$menuBg,
// 鼠标覆盖菜单时的背景
$menuHover,
// 子菜单背景
$subMenuBg,
// 鼠标覆盖子菜单时的背景
$subMenuHover
) {
$menuText: #7a80b4;
$menuActiveText: #7a80b4;
$subMenuActiveText: #f4f4f5;
$sideBarWidth: 210px;
//菜单背景
$menuBg: #1b2a47;
// 鼠标覆盖菜单时的背景
$menuHover: #2a395b;
// 子菜单背景
$subMenuBg: #1f2d3d;
// 鼠标覆盖子菜单时的背景
$subMenuHover: #001528;
.main-container {
min-height: 100%;
transition: margin-left 0.28s;
@ -211,7 +211,7 @@ body[data-theme="dark"] {
min-width: $sideBarWidth !important;
}
// mobile responsive
// 手机端
.mobile {
.main-container {
margin-left: 0px;
@ -239,243 +239,36 @@ body[data-theme="dark"] {
}
}
// 暗色主题
body[data-theme="dark"] {
$subMenuActiveText: #f4f4f5;
$menuBg: #1b2a47;
$menuHover: #2a395b;
$subMenuBg: #1f2d3d;
$subMenuHover: #001528;
@include merge-style(
$subMenuActiveText,
$menuBg,
$menuHover,
$subMenuBg,
$subMenuHover
);
}
// 亮色主题
body[data-theme="light"] {
$menuText: #7a80b4;
$menuActiveText: #7a80b4;
$subMenuActiveText: #409eff;
$sideBarWidth: 210px;
//菜单背景
$menuBg: #fff;
// 鼠标覆盖菜单时的背景
$menuHover: #e0ebf6;
// 子菜单背景
$subMenuBg: #fff;
// 鼠标覆盖子菜单时的背景
$subMenuHover: #e0ebf6;
.main-container {
min-height: 100%;
transition: margin-left 0.28s;
margin-left: $sideBarWidth;
position: relative;
}
.sidebar-container {
transition: width 0.28s;
width: $sideBarWidth !important;
background-color: $menuBg;
height: 100%;
position: fixed;
font-size: 0px;
top: 0;
bottom: 0;
left: 0;
z-index: 1001;
overflow: hidden;
box-shadow: 0 0 1px #888888;
// reset element-plus 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: 0px;
}
.el-scrollbar {
height: 100%;
}
&.has-logo {
.el-scrollbar {
height: calc(100% - 50px);
}
}
.is-horizontal {
display: none;
}
a {
display: inline-block;
width: 100%;
overflow: hidden;
}
.el-menu {
border: none;
height: 100%;
// background-color: $menuBg !important;
// width: 100% !important;
}
.el-menu-item,
.el-submenu__title {
color: $menuText;
}
.el-menu {
background-color: transparent;
}
// menu hover
.submenu-title-noDropdown,
.el-submenu__title {
&:hover {
background-color: $menuHover !important;
}
background: $menuBg;
}
.is-active > .el-submenu__title,
.is-active.submenu-title-noDropdown {
color: $subMenuActiveText !important;
i {
color: $subMenuActiveText !important;
}
}
.is-active {
transition: color 0.3s;
color: $subMenuActiveText !important;
}
& .nest-menu .el-submenu > .el-submenu__title,
& .el-submenu .el-menu-item {
font-size: 12px;
min-width: $sideBarWidth !important;
background-color: $subMenuBg !important;
&:hover {
background-color: $subMenuHover !important;
}
}
}
.hideSidebar {
.sidebar-container {
width: 54px !important;
}
.main-container {
margin-left: 54px;
}
.submenu-title-noDropdown {
padding: 0 !important;
position: relative;
.el-tooltip {
padding: 0 !important;
}
}
.el-submenu {
overflow: hidden;
& > .el-submenu__title {
.el-submenu__icon-arrow {
display: none;
}
}
}
.el-menu--collapse {
margin-left: -5px; //需优化的地方
.el-submenu {
& > .el-submenu__title {
& > span {
height: 0;
width: 0;
overflow: hidden;
visibility: hidden;
display: inline-block;
}
}
}
}
}
// 菜单折叠
.el-menu--vertical {
.el-menu--popup {
background-color: $subMenuBg !important;
.el-menu-item {
color: $menuText;
background-color: $subMenuBg;
&:hover {
background-color: $subMenuHover;
}
}
}
& > .el-menu {
i {
margin-right: 16px;
}
}
.is-active > .el-submenu__title,
.is-active.submenu-title-noDropdown {
color: $subMenuActiveText !important;
i {
color: $subMenuActiveText !important;
}
}
.is-active {
transition: color 0.3s;
color: $subMenuActiveText !important;
}
.nest-menu .el-submenu > .el-submenu__title,
.el-menu-item {
&:hover {
// you can use $subMenuHover
background-color: $menuHover !important;
}
}
}
.el-scrollbar__wrap {
overflow: auto;
height: 100%;
}
.el-menu--collapse .el-menu .el-submenu {
min-width: $sideBarWidth !important;
}
// mobile responsive
.mobile {
.main-container {
margin-left: 0px;
}
.sidebar-container {
transition: transform 0.28s;
width: $sideBarWidth !important;
}
&.hideSidebar {
.sidebar-container {
pointer-events: none;
transition-duration: 0.3s;
transform: translate3d(-$sideBarWidth, 0, 0);
}
}
}
.withoutAnimation {
.main-container,
.sidebar-container {
transition: none;
}
}
@include merge-style(
$subMenuActiveText,
$menuBg,
$menuHover,
$subMenuBg,
$subMenuHover
);
}