element/packages/theme-chalk/src/menu.scss

268 lines
5.2 KiB
SCSS

@import "mixins/mixins";
@import "mixins/utils";
@import "common/var";
@mixin menu-item {
height: 56px;
line-height: 56px;
font-size: 14px;
color: $--menu-item-color;
padding: 0 20px;
cursor: pointer;
position: relative;
transition: border-color .3s, background-color .3s, color .3s;
box-sizing: border-box;
white-space: nowrap;
}
@include b(menu) {
border-right: solid 1px #e6e6e6;
list-style: none;
position: relative;
margin: 0;
padding-left: 0;
background-color: $--menu-item-fill;
@include utils-clearfix;
& li {
list-style: none;
}
@include m(horizontal) {
border-right: none;
border-bottom: solid 1px #e6e6e6;
& .el-menu-item {
float: left;
height: 60px;
line-height: 60px;
margin: 0;
cursor: pointer;
position: relative;
box-sizing: border-box;
border-bottom: 2px solid transparent;
color: $--color-text-secondary;
a,
a:hover {
color: inherit;
}
&:hover, &:focus{
background-color: #fff;
}
}
& .el-submenu {
float: left;
position: relative;
&:focus {
outline: none;
> .el-submenu__title {
color: $--color-text-primary;
}
}
> .el-menu {
position: absolute;
top: 65px;
left: 0;
border: none;
padding: 5px 0;
background-color: $--color-white;
z-index: 100;
min-width: 100%;
box-shadow: $--box-shadow-light;
border-radius: $--border-radius-small;
}
& .el-submenu__title {
height: 60px;
line-height: 60px;
border-bottom: 2px solid transparent;
color: $--color-text-secondary;
}
.el-submenu__title:hover {
background-color: #fff;
}
& .el-menu-item {
background-color: $--color-white;
float: none;
height: 36px;
line-height: 36px;
padding: 0 10px;
}
& .el-submenu__icon-arrow {
position: static;
vertical-align: middle;
margin-left: 8px;
margin-top: -3px;
}
}
& .el-menu-item:hover,
& .el-submenu__title:hover,
& .el-menu-item:focus {
outline: none;
color: $--color-text-primary;
}
& > .el-menu-item.is-active,
& > .el-submenu.is-active .el-submenu__title {
border-bottom: 2px solid $--color-primary;
color: $--color-text-primary;
}
}
@include m(collapse) {
width: 64px;
> .el-menu-item,
> .el-submenu > .el-submenu__title {
[class^="el-icon-"] {
margin: 0;
vertical-align: middle;
width: 24px;
text-align: center;
}
.el-submenu__icon-arrow {
display: none;
}
span {
height: 0;
width: 0;
overflow: hidden;
visibility: hidden;
display: inline-block;
}
}
> .el-menu-item.is-active i {
color: inherit;
}
.el-menu .el-submenu {
min-width: 200px;
}
.el-submenu {
position: relative;
& .el-menu {
position: absolute;
margin-left: 5px;
top: 0;
left: 100%;
z-index: 10;
border: 1px solid $--border-color-light;
border-radius: $--border-radius-small;
box-shadow: $--box-shadow-light;
}
&.is-opened {
> .el-submenu__title .el-submenu__icon-arrow {
transform: none;
}
}
}
}
}
@include b(menu-item) {
@include menu-item;
& [class^="el-icon-"] {
margin-right: 5px;
width: 24px;
text-align: center;
font-size: 18px;
}
& * {
vertical-align: middle;
}
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
&:hover, &:focus {
outline: none;
background-color: $--menu-item-hover-fill;
}
i {
color: $--color-text-secondary;
}
@include when(active) {
color: $--color-primary;
i {
color: inherit;
}
}
}
@include b(submenu) {
@include e(title) {
position: relative;
@include menu-item;
& * {
vertical-align: middle;
}
i {
color: $--color-text-secondary;
}
&:hover {
background-color: $--menu-item-hover-fill;
}
}
& .el-menu {
border: none;
}
& .el-menu-item {
height: 50px;
line-height: 50px;
padding: 0 45px;
min-width: 200px;
}
@include e(icon-arrow) {
position: absolute;
top: 50%;
right: 20px;
margin-top: -7px;
transition: transform .3s;
font-size: 12px;
}
@include when(active) {
.el-submenu__title {
border-bottom-color: $--color-primary;
}
}
@include when(opened) {
> .el-submenu__title .el-submenu__icon-arrow {
transform: rotateZ(180deg);
}
}
[class^="el-icon-"] {
vertical-align: middle;
margin-right: 5px;
width: 24px;
text-align: center;
font-size: 18px;
}
}
@include b(menu-item-group) {
> ul {
padding: 0;
}
@include e(title) {
padding: 7px 0 7px 20px;
line-height: normal;
font-size: 12px;
color: $--color-text-secondary;
}
}
.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow {
transition: .2s;
opacity: 0;
}