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

275 lines
5.2 KiB
SCSS
Raw Normal View History

@import "mixins/mixins";
2017-08-25 05:37:56 +00:00
@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-radius: 2px;
list-style: none;
position: relative;
margin: 0;
padding-left: 0;
background-color: $--menu-item-fill;
@include utils-clearfix;
& li {
list-style: none;
}
@include m(dark) {
background-color: $--dark-menu-item-fill;
& .el-menu-item,
& .el-submenu__title {
color: $--color-black;
&:hover {
background-color: $--color-black;
}
}
& .el-submenu .el-menu {
background-color: $--color-black;
& .el-menu-item:hover {
background-color: $--color-black;
}
}
}
@include m(horizontal) {
& .el-menu-item {
float: left;
height: 60px;
line-height: 60px;
margin: 0;
cursor: pointer;
position: relative;
box-sizing: border-box;
border-bottom: 5px solid transparent;
a,
a:hover {
color: inherit;
}
&:hover {
background-color: $--menu-item-hover-fill;
}
}
& .el-submenu {
float: left;
position: relative;
> .el-menu {
position: absolute;
top: 65px;
left: 0;
border:1px solid $--color-black;
padding: 5px 0;
background-color: $--color-white;
z-index: 100;
min-width: 100%;
box-shadow: 0 2px 4px 0 rgba(0,0,0,0.12), 0 0 6px 0 rgba(0,0,0,0.04);
}
& .el-submenu__title {
height: 60px;
line-height: 60px;
border-bottom: 5px solid transparent;
}
& .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: 5px;
color: $--color-black;
margin-top: -3px;
}
}
& .el-menu-item:hover,
& .el-submenu__title:hover {
background-color: $--menu-item-fill;
}
& > .el-menu-item:hover,
& > .el-submenu:hover .el-submenu__title,
& > .el-submenu.is-active .el-submenu__title {
border-bottom: 5px solid $--color-primary;
}
&.el-menu--dark {
& .el-menu-item:hover,
& .el-submenu__title:hover {
background-color: $--dark-menu-item-fill;
}
& .el-submenu {
.el-menu-item,
.el-submenu-title {
color: $--color-black;
&:hover {
background-color: $--color-black;
}
}
.el-menu-item.is-active {
color: $--color-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-submenu {
position: relative;
& .el-menu {
position: absolute;
margin-left: 5px;
top: 0;
left: 100%;
z-index: 10;
}
&.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;
}
& * {
vertical-align: middle;
}
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
&:hover {
background-color: $--color-black;
}
@include when(active) {
color: $--color-primary;
}
}
@include b(submenu) {
@include e(title) {
position: relative;
@include menu-item;
&:hover {
background-color: $--color-black;
}
& * {
vertical-align: middle;
}
}
& .el-menu {
background-color: $--color-black;
}
& .el-menu-item {
height: 50px;
line-height: 50px;
padding: 0 45px;
min-width: 200px;
&:hover {
background-color: $--color-black;
}
}
@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;
}
}
@include b(menu-item-group) {
> ul {
padding: 0;
}
@include e(title) {
padding-top: 15px;
line-height: normal;
font-size: 14px;
padding-left: 20px;
color: $--color-black;
}
}
.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow {
transition: .2s;
opacity: 0;
}