@import (reference) '../style/variables.less'; .@{prefix}-menu { position: fixed; z-index: 100; top: 0; left: 0; bottom: 0; width: @s-menu-width; background-color: #f2f5fa; box-sizing: border-box; transition: left 0.3s; &[data-hidden] { display: none; } @media @mobile { left: -@s-menu-mobile-width; top: @s-mobile-nav-height; display: block !important; width: @s-menu-mobile-width; background-color: #fff; &[data-mobile-show] { left: 0; } } // shadow &::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; display: block; width: 20px; background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.03)); pointer-events: none; // use border on mobile devices @media @mobile { width: 1px; background: @c-border; } } &-header { position: relative; padding-top: 40px; text-align: center; border-bottom: 1px solid @c-border; @media @mobile { display: none; } .@{prefix}-menu-logo { display: inline-block; width: 70%; height: 65px; background: url(@img-logo) no-repeat 0 / contain; } h1 { margin: 10px 0 0; color: @c-heading; font-weight: 500; line-height: 1.40625; } p { margin: 0 0 5px; color: lighten(@c-secondary, 10%); // badges > object[data^='https://img.shields.io'] { max-height: 20px; } + p { margin-bottom: 10px; } } } &-doc-locale { padding: 16px 0; text-align: center; border-bottom: 1px solid @c-border; &:empty { display: none; } } &-inner { width: 100%; height: 100%; overflow: auto; overscroll-behavior: contain; // common list styles ul { list-style: none; margin: 0; padding: 0; font-size: 16px; li { color: @c-text; a, > span { position: relative; display: block; padding-right: 24px; color: @c-heading; line-height: 2.4; text-decoration: none; outline: none; transition: color 0.3s, background 0.3s; span { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } &:hover, &.active { color: @c-primary; } &::before { content: ''; position: absolute; top: 50%; left: -10px; margin-top: -2.5px; display: inline-block; width: 5px; height: 5px; background-color: @c-primary; border-radius: 50%; opacity: 0; transition: transform 0.2s, opacity 0.2s; transform: scale(0) translateX(-10px); } } &.active a, a.active { &::before { opacity: 1; transform: scale(1) translateX(0); } } // level larger, offset larger, font size smaller ul { font-size: 0.9em; padding-left: 1em; } } } // 1-level list styles > ul { > li > a { line-height: 2.875; &:not([href]) { padding-top: 24px; line-height: 1; font-weight: 500; color: @c-heading !important; background: transparent !important; cursor: default; } } > li:first-child > a:not([href]) { padding-top: 0; } } // n-level list styles > ul ul { a { color: @c-secondary; &.active { color: @c-primary; } } } .@{prefix}-menu-mobile-area { display: none; padding-bottom: 16px; margin-bottom: 16px; text-align: center; border-bottom: 1px solid @c-border; @media @mobile { display: block; } } // mobile nav list .@{prefix}-menu-nav-list { padding: 16px 0; > li, > li > a { padding-right: 0; line-height: 2.4; ul { padding-left: 0; a { padding-right: 0; font-size: 90%; } } } } // menu list .@{prefix}-menu-list { padding: 8px 0; margin-bottom: 40px; > li > a { @c-active-bg: #e8ecf4; padding-left: 28px; &.active { background: linear-gradient(to left, #e8ecf4, rgba(232, 236, 244, 0)); } ~ ul { margin-top: 8px; margin-left: 28px; } @media @mobile { padding-left: 16px; ~ ul { margin-left: 16px; } } } } } &[data-mode='site'] { &::after { width: 1px; background: @c-border; } .@{prefix}-menu-list { padding: 0; > li > a { position: relative; &::after { content: ''; position: absolute; top: 0; bottom: 0; right: 0; display: block; width: 3px; background-color: @c-primary; visibility: hidden; opacity: 0; transition: all 0.3s; border-radius: 1px; } &.active { z-index: 1; background: linear-gradient(to left, #f8faff, rgba(248, 250, 255, 0)); &::after { opacity: 1; visibility: visible; } } } } @media @desktop { top: @s-nav-height; width: @s-site-menu-width; padding-top: 50px; background: transparent; .@{prefix}-menu-nav, .@{prefix}-menu-header { display: none; } .@{prefix}-menu-list > li > a { padding-left: 58px; ~ ul { margin-left: 58px; } } } } }