@yelon/theme
Version:
ng-yunzai theme system library.
320 lines (270 loc) • 7.27 kB
text/less
@sidebar-nav-prefix: ~'.sidebar-nav';
@sidebar-nav-arrow-width: 10px;
@{sidebar-nav-prefix} {
display: block;
margin: 0;
padding: 0;
font-size: @yunzai-default-aside-nav-fs;
&__item {
position: relative;
display: flex;
flex-direction: column;
border-left: 3px solid transparent;
transition: border-left-color 0.4s ease;
&-link {
user-select: none;
position: relative;
overflow: hidden;
display: block;
padding: @yunzai-default-aside-nav-padding-top-bottom @yunzai-default-aside-nav-padding-left-right * 2
@yunzai-default-aside-nav-padding-top-bottom @yunzai-default-aside-nav-padding-left-right;
color: @yunzai-default-aside-nav-text-color;
text-decoration: none ;
text-overflow: ellipsis;
white-space: nowrap;
&:hover {
color: @yunzai-default-aside-nav-text-hover-color;
}
}
&-icon {
display: inline-block;
min-width: @yunzai-default-aside-nav-icon-width;
margin-right: @layout-gutter;
transition:
font-size 0.15s @ease-out,
margin 0.3s @ease-in-out;
}
&-img,
&-svg {
width: @yunzai-default-aside-nav-img-wh;
height: @yunzai-default-aside-nav-img-wh;
}
&-text {
opacity: 1;
transition:
opacity 0.3s @ease-in-out,
width 0.3s @ease-in-out;
}
&-disabled {
cursor: default;
opacity: 0.6;
&:hover {
color: @yunzai-default-aside-nav-text-color;
}
}
}
&__divider {
overflow: hidden;
height: 1px;
margin: 4px 0;
line-height: 0;
background-color: @yunzai-default-aside-nav-divider-bg;
}
// Selected
&__selected {
border-left-color: @yunzai-default-aside-nav-selected-text-color;
background-color: @yunzai-default-aside-nav-selected-bg;
> @{sidebar-nav-prefix}__item-link {
color: @yunzai-default-aside-nav-selected-text-color;
}
}
// Open Submenu
&__open {
> @{sidebar-nav-prefix}__sub {
display: block;
animation: fadeIn 0.5s;
}
> @{sidebar-nav-prefix}__item-link {
@{sidebar-nav-prefix}__sub-arrow {
transform: translateY(-2px);
&::before {
transform: rotate(45deg) translateX(2px);
}
&::after {
transform: rotate(-45deg) translateX(-2px);
}
}
}
}
&__group-title {
padding: @yunzai-default-aside-nav-padding-top-bottom @layout-gutter * 2;
color: @yunzai-default-aside-nav-group-text-color;
}
&__sub {
overflow: hidden;
display: none;
@{sidebar-nav-prefix}__item {
border-left: 0 ;
}
&-arrow {
position: absolute;
top: 50%;
right: @yunzai-default-aside-nav-padding-left-right;
width: @sidebar-nav-arrow-width;
transition: transform 0.3s @ease-in-out;
&::before,
&::after {
content: '';
position: absolute;
width: 6px;
height: 1.5px;
border-radius: 2px;
background: #fff;
background-image: linear-gradient(to right, @menu-item-color, @menu-item-color);
transition:
background-color 0.3s @ease-in-out,
transform 0.3s @ease-in-out,
top 0.3s @ease-in-out;
}
&::before {
transform: rotate(-45deg) translateX(2px);
}
&::after {
transform: rotate(45deg) translateX(-2px);
}
}
}
// Badge
.@{ant-prefix}-badge {
position: absolute;
top: @yunzai-default-aside-nav-padding-top-bottom;
right: @layout-gutter;
&-dot {
top: 10px ;
right: @layout-gutter * 2 ;
}
}
// Dept
&__depth1 {
@{sidebar-nav-prefix}__item-link {
padding-left: @yunzai-default-aside-nav-depth1-padding-left + @yunzai-default-aside-nav-icon-width;
}
}
&__depth2 {
@{sidebar-nav-prefix}__item-link {
padding-left: @yunzai-default-aside-nav-depth2-padding-left + @yunzai-default-aside-nav-icon-width;
}
}
&__depth3 {
@{sidebar-nav-prefix}__item-link {
padding-left: @yunzai-default-aside-nav-depth3-padding-left + @yunzai-default-aside-nav-icon-width;
}
}
&__depth4 {
@{sidebar-nav-prefix}__item-link {
padding-left: @yunzai-default-aside-nav-depth4-padding-left + @yunzai-default-aside-nav-icon-width;
}
}
&__depth5 {
@{sidebar-nav-prefix}__item-link {
padding-left: @yunzai-default-aside-nav-depth5-padding-left + @yunzai-default-aside-nav-icon-width;
}
}
// Floating
&__floating {
position: absolute;
z-index: @zindex + 7;
display: none;
min-width: 160px;
border: 1px solid @yunzai-default-content-heading-border;
border-radius: 4px;
background-color: @yunzai-default-aside-bg;
@{sidebar-nav-prefix}__item {
&-link {
padding-left: @layout-gutter * 2;
}
}
&-show {
display: block;
}
@{sidebar-nav-prefix}__sub {
display: block;
&-arrow {
display: none;
}
}
// Dept
@{sidebar-nav-prefix}__depth2 {
@{sidebar-nav-prefix}__item-link {
padding-left: @layout-gutter * 3;
}
}
@{sidebar-nav-prefix}__depth3 {
@{sidebar-nav-prefix}__item-link {
padding-left: @layout-gutter * 4;
}
}
@{sidebar-nav-prefix}__depth4 {
@{sidebar-nav-prefix}__item-link {
padding-left: @layout-gutter * 5;
}
}
}
}
@media (min-width: @mobile-min) {
@{yunzai-default-prefix}__collapsed {
@{sidebar-nav-prefix}:not(@{sidebar-nav-prefix}__sub) {
@{sidebar-nav-prefix}__item {
border: none;
&-link {
display: flex;
justify-content: center;
padding: @yunzai-default-aside-collapsed-padding;
@{sidebar-nav-prefix}__item-icon {
margin-right: 0;
font-size: @yunzai-default-aside-collapsed-nav-fs;
}
@{sidebar-nav-prefix}__item-img {
width: @yunzai-default-aside-collapsed-nav-img-wh;
height: @yunzai-default-aside-collapsed-nav-img-wh;
}
@{sidebar-nav-prefix}__item-text {
display: none;
opacity: 0;
}
}
}
@{sidebar-nav-prefix}__group-title {
display: none;
}
}
@{sidebar-nav-prefix} {
&__sub {
display: none ;
&-arrow {
display: none;
}
}
}
}
}
.layout-default-sidebarnav-rtl-mixin(@enabled) when(@enabled=true) {
[dir='rtl'] {
@{sidebar-nav-prefix} {
&__item {
&-icon {
margin-right: 0;
margin-left: @layout-gutter;
}
}
.@{ant-prefix}-badge {
right: inherit;
left: @layout-gutter * 2;
}
}
@media (min-width: @mobile-min) {
@{yunzai-default-prefix}__collapsed {
@{sidebar-nav-prefix}:not(@{sidebar-nav-prefix}__sub) {
@{sidebar-nav-prefix}__item {
&-link {
@{sidebar-nav-prefix}__item-icon {
margin-left: 0;
}
}
}
}
}
}
}
}
.layout-default-sidebarnav-rtl-mixin(@rtl-enabled);