dumi
Version:
📖 Documentation Generator of React Component
188 lines (155 loc) • 3.58 kB
text/less
@import (reference) '../../styles/variables.less';
.@{prefix}-navbar {
list-style: none;
margin: 0;
padding: 0;
display: flex;
align-items: center;
@media @mobile {
display: block;
padding-top: 24px;
}
> li {
color: @c-text-secondary;
font-size: 18px;
line-height: 1;
text-align: center;
position: relative;
@{dark-selector} & {
color: @c-text-secondary-dark;
}
@media @mobile {
padding: 12px 0;
}
> .@{prefix}-navbar-dropdown > li > a,
> a {
color: @c-text-secondary;
text-decoration: none;
transition: all 0.3s;
@{dark-selector} & {
color: @c-text-secondary-dark;
}
&:hover {
color: @c-primary;
@{dark-selector} & {
color: @c-primary-dark;
}
}
}
> a.active,
> span.active,
> .@{prefix}-navbar-dropdown > li > a.active {
color: @c-text;
font-weight: bold;
@{dark-selector} & {
color: @c-text-dark;
}
}
> .@{prefix}-navbar-collapse-btn {
appearance: none;
margin-left: 6px;
margin-right: -24px;
width: 18px;
height: 18px;
padding: 0;
border: 0;
background: transparent;
vertical-align: middle;
> svg {
fill: @c-text-note;
width: 14px;
transition: transform 0.3s;
@{dark-selector} & {
fill: @c-text-note-dark;
}
}
@media @mobile {
&[data-collapsed] > svg {
transform: rotate(180deg);
}
}
@media @desktop {
margin-left: 4px;
margin-right: 0;
pointer-events: none;
> svg {
width: 12px;
transition-delay: 0.1s;
}
}
}
&:hover > .@{prefix}-navbar-collapse-btn > svg {
transform: rotate(180deg);
transition-delay: 0;
}
> .@{prefix}-navbar-dropdown {
position: absolute;
top: 100%;
left: -18px;
min-width: calc(100% + 16px);
list-style: none;
padding: 0;
margin: 6px 0 0;
background-color: #fff;
box-shadow: 0 4px 16px rgba(0, 0, 0, 10%);
border-radius: 6px;
transition: all 0.2s ease-in-out;
z-index: 1;
@{dark-selector} & {
background-color: lighten(@c-site-bg-dark, 6%);
}
> li {
> a {
display: block;
padding: 0 18px;
color: @c-text-secondary;
font-size: 15px;
line-height: 1.6;
text-align: left;
white-space: nowrap;
@media @mobile {
display: inline;
}
&:hover {
color: @c-primary;
}
}
&:first-child > a {
padding-top: 8px;
}
&:last-child > a {
padding-bottom: 8px;
}
}
@media @mobile {
position: static;
background: transparent;
box-shadow: none;
min-width: 0;
@{dark-selector} & {
background: transparent;
}
&:not([data-collapsed]) {
display: none;
}
}
}
&:not(:hover) > .@{prefix}-navbar-dropdown {
visibility: hidden;
opacity: 0;
transform: translateY(-6px) scale(0.98);
transition-delay: 0.1s;
@media @mobile {
visibility: visible;
opacity: 1;
transform: none;
}
}
&:not(:last-child) {
margin-inline-end: 48px;
@media @mobile {
margin-inline-end: 0;
}
}
}
}