UNPKG

rsuite

Version:

A suite of react components

365 lines (305 loc) 7.88 kB
@import '../../styles/common'; @import '../../Button/styles/mixin'; // // Navs // -------------------------------------------------- // Base class // -------------------------------------------------- .@{ns}nav { position: relative; > ul { list-style: none; margin: 0; padding: 0; } // Nav item &-item { //:hover :focus :active &:not(.@{ns}nav-item-disabled) > .@{ns}nav-item-content { &:hover, &:focus { color: @nav-item-hover-font-color; } &:active { color: @nav-item-click-font-color; } } &.@{ns}nav-item-disabled { cursor: not-allowed; > .@{ns}nav-item-content { // Repair the cursor style is not the right questions. cursor: not-allowed; color: @B400; } } // Nav item content > .@{ns}nav-item-content { padding: @nav-item-padding-vertical @nav-item-padding-horizontal; font-size: @nav-item-font-size; line-height: @nav-item-line-height; display: block; cursor: pointer; color: @nav-item-font-default-color; transition: @nav-item-transition; .ellipsis-basic; .safari-border-radius-overflow-hidden; > .@{ns}icon { margin-right: @nav-item-icon-spacing; } } // reset link style > a.@{ns}nav-item-content:hover, > a.@{ns}nav-item-content:active, > a.@{ns}nav-item-content:focus { text-decoration: none; } } // Rest dropdown height .@{ns}dropdown > .@{ns}dropdown-toggle { height: @nav-base-height; } // Active .@{ns}dropdown .@{ns}dropdown-menu-active ~ .@{ns}dropdown-toggle, .@{ns}nav-item-active > .@{ns}nav-item-content { position: relative; z-index: 1; &, &:hover, &:focus, &:active { color: @nav-item-active-font-color; background: transparent; } } // Orientation &.@{ns}nav-horizontal { white-space: nowrap; // Justified &.@{ns}nav-justified { > ul { display: flex; } .@{ns}nav-item, .@{ns}dropdown { flex: 1 1 1%; } .@{ns}dropdown .@{ns}dropdown-toggle { width: 100%; text-align: left; } } .@{ns}dropdown, .@{ns}nav-item { display: inline-block; vertical-align: top; } // Waterline .@{ns}nav-waterline { position: absolute; bottom: 0; width: 100%; //** Reversed .@{ns}nav-reversed& { bottom: auto; top: 0; } } } &.@{ns}nav-vertical { // margin space ul > .@{ns}dropdown:not(:first-child), ul > .@{ns}nav-item:not(:first-child) { margin-top: @nav-item-spacing; } .@{ns}dropdown { width: 100%; > .@{ns}dropdown-toggle { width: 100%; text-align: left; z-index: 0; } } // Waterline .@{ns}nav-waterline { display: block; position: absolute; top: 0; bottom: 0; right: 0; .@{ns}nav-reversed& { right: auto; } } } // Ripple .@{ns}nav-default &-item, .@{ns}nav-tabs &-item { .button-ripple(~'@{ns}nav-item-'); transition: @nav-item-transition; } .@{ns}nav-default &-item .@{ns}ripple-pond { border-radius: inherit; overflow: hidden; } &-tabs &-item&-item-active { z-index: 1; } } // Alternate Navs // -------------------------------------------------- // Default Nav .@{ns}nav-default { .@{ns}nav-item > .@{ns}nav-item-content { border-radius: @nav-item-border-radius; } .@{ns}nav-item:not(.@{ns}nav-item-active):not(.@{ns}nav-item-disabled) > .@{ns}nav-item-content { &:hover, &:focus { background: @nav-item-default-hover-bg; } &:active { background: @nav-item-click-bg; } } } // Tab Nav .@{ns}nav-tabs { //Default style //.@{ns}nav-item > .@{ns}nav-item-content { // background-color: @nav-tab-default-bg; //} //:hover :active :focus .@{ns}nav-item:not(.@{ns}nav-item-active):not(.@{ns}nav-item-disabled) > .@{ns}nav-item-content { &:hover, &:focus { background: @nav-subtle-hover-bg; } &:active { background: @nav-item-click-bg; } } //** Active .@{ns}nav-item.@{ns}nav-item-active > .@{ns}nav-item-content { @padding-vertical: @nav-item-padding-vertical - @nav-tab-waterline-width; @padding-horizontal: @nav-item-padding-horizontal - @nav-tab-waterline-width; padding: @padding-vertical @padding-horizontal; } // Horizontal &.@{ns}nav-horizontal { //Nav content .@{ns}nav-item > .@{ns}nav-item-content { border-radius: @nav-item-border-radius @nav-item-border-radius 0 0; .@{ns}nav-reversed& { border-radius: 0 0 @nav-item-border-radius @nav-item-border-radius; } } //** Waterline .@{ns}nav-waterline { border-top: @nav-tab-waterline; } //** Active .@{ns}nav-item.@{ns}nav-item-active > .@{ns}nav-item-content { border: @nav-tab-waterline-width solid @nav-tab-waterline-color; border-bottom-color: @nav-tab-default-bg; // Reversed .@{ns}nav-reversed& { border-bottom-color: @nav-tab-waterline-color; border-top-color: @nav-tab-default-bg; } } } // Vertical &.@{ns}nav-vertical { //Nav content .@{ns}dropdown > .@{ns}dropdown-toggle, .@{ns}nav-item > .@{ns}nav-item-content { border-radius: @nav-item-border-radius 0 0 @nav-item-border-radius; .@{ns}nav-reversed& { border-radius: 0 @nav-item-border-radius @nav-item-border-radius 0; } } //** Waterline .@{ns}nav-waterline { width: @nav-tab-waterline-width; background: @nav-tab-waterline-color; } //** Active .@{ns}nav-item.@{ns}nav-item-active > .@{ns}nav-item-content { border: @nav-tab-waterline-width solid @nav-tab-waterline-color; border-right-color: @nav-tab-default-bg; // Reversed .@{ns}nav-reversed& { border-left-color: @nav-tab-default-bg; border-right-color: @nav-tab-waterline-color; } } } } // Subtle Nav .@{ns}nav-subtle { // Horizontal &.@{ns}nav-horizontal { //Waterline .@{ns}nav-waterline { border-top: @nav-subtle-default-waterline; } // Active item .@{ns}nav-item { > .@{ns}nav-item-content { position: relative; &::before { content: ''; position: absolute; bottom: 0; left: 50%; right: 50%; height: @nav-subtle-waterline-width; background-color: @nav-subtle-waterline-active-color; transition: left @nav-subtle-content-transition, right @nav-subtle-content-transition; // Reversed .@{ns}nav-reversed& { bottom: auto; top: 0; } } } &.@{ns}nav-item-active > .@{ns}nav-item-content::before { left: 0; right: 0; } } } // Horizontal &.@{ns}nav-vertical { //Waterline .@{ns}nav-waterline { width: @nav-subtle-waterline-width; background: @nav-subtle-waterline-default-color; } // Active item .@{ns}nav-item { > .@{ns}nav-item-content { position: relative; &::before { content: ''; position: absolute; right: 0; top: 50%; bottom: 50%; width: @nav-subtle-waterline-width; background-color: @nav-subtle-waterline-active-color; transition: top @nav-subtle-content-transition, bottom @nav-subtle-content-transition; // Reversed .@{ns}nav-reversed& { right: auto; left: 0; } } } &.@{ns}nav-item-active > .@{ns}nav-item-content::before { top: 0; bottom: 0; } } } }