// Nav // ******************************************************************************* .nav .nav-item, .nav .nav-link, .tab-pane, .tab-pane .card-body { outline: none !important; } .nav { flex-wrap: inherit; .nav-item { white-space: nowrap; } } .nav .nav-link { &:not(.active):hover { color: $nav-link-color !important; } } // Tab and pills style .nav-tabs, .nav-pills { .nav-link { display: inline-flex; align-items: center; justify-content: center; text-transform: uppercase; &, &.active { background-color: transparent; border-width: 0; } } &:not(.nav-fill):not(.nav-justified) .nav-link { margin-right: $nav-spacer; width: 100%; @include rtl-style { margin-left: $nav-spacer; margin-right: 0; } } } .tab-content:not(.doc-example-content) { padding: $card-spacer-y; border-radius: $border-radius; // tab content animation .tab-pane { opacity: 0; transition: all linear 0.1s; @include ltr-style { transform: translateX(-30px); } @include rtl-style { transform: translateX(30px); } &.show { opacity: 1; transform: translateX(0px) !important; transition: all ease-out 0.2s 0.1s; } } } // Widget Tabs // -------------------------------------------------- .nav-tabs { div:not(.nav-align-left):not(.nav-align-right) > & { display: inline-flex; width: 100%; overflow-x: auto !important; overflow-y: hidden; } &.nav-tabs-widget { border: 0 !important; overflow-x: auto; .nav-link { border: 2px dashed $border-color; @include media-breakpoint-up(md) { height: 92px !important; width: 110px !important; @include border-radius($border-radius-lg); } @include media-breakpoint-down(md) { border: 0 !important; padding: 0; } &.active { border-style: solid; border-color: $primary; .avatar-initial { background-color: rgba-to-hex(rgba($primary, 0.22), $rgba-to-hex-bg) !important; color: $primary !important; } } } // Remove bottom border of tabs .tab-slider { display: none; } & + .tab-content { .tab-pane { transition: unset; transform: none !important; } } } } // For scrollable navs/tabs/pills .nav-scrollable { display: -webkit-inline-box; display: -moz-inline-box; width: 100%; overflow-y: auto; flex-wrap: nowrap; } // Todo: remove/ update style for nav with perfect scrollbar // ? Not working with fixed width // ? if provide width/min-width with %/auto not working // ? Also can't use width with PX (as it's required for ps) // ? removed JS so need to initialize ps again // ? Once done add an example to docs // .nav-scrollable { // display: -webkit-inline-box; // display: -moz-inline-box; // width: 420px; // padding-bottom: 0.5rem; // position: relative; // // overflow-y: auto; // flex-wrap: nowrap; // } // Tab link .nav-tabs { position: relative; .tab-slider { height: 2px; border-radius: 2px; position: absolute; transition: all 0.2s linear; .nav-align-left &, .nav-align-right & { width: 2px !important; } } .nav-link { background-clip: padding-box; border-radius: 0; } } .nav-pills { .nav-link { padding: $nav-pills-padding-y $nav-pills-padding-x; } } // Sizing // ******************************************************************************* .nav-sm { @include template-nav-size($nav-link-padding-y-sm, $nav-link-padding-x-sm, $font-size-sm, $nav-link-line-height-sm); } .nav-lg { @include template-nav-size($nav-link-padding-y-lg, $nav-link-padding-x-lg, $font-size-lg, $nav-link-line-height-lg); } // Top, Right, Bottom & Left Tabbed panels // ******************************************************************************* .nav-align-top, .nav-align-right, .nav-align-bottom, .nav-align-left { display: flex; > .nav, > div > .nav { z-index: 1; } } .nav-align-right, .nav-align-left { align-items: stretch; > .nav, > div > .nav { flex-grow: 0; flex-direction: column; border-bottom-width: 0; } > .nav .nav-item, > div > .nav .nav-item { margin: 0 0 $nav-spacer 0 !important; } > .tab-content { flex-grow: 1; .tab-pane { transform: translateY(-30px); &.show { transform: translateY(0px); } } } } // Top tabs .nav-align-top { flex-direction: column; .nav-tabs { ~ .tab-content { @include border-top-radius(0); } } } .nav-align-top, .nav-align-bottom { > .tab-content { .tab-pane { @include ltr-style { transform: translateX(-30px); } @include rtl-style { transform: translateX(30px); } &.show { transform: translateX(0px) !important; } } } } // Right tabs .nav-align-right { flex-direction: row-reverse; .nav-tabs { position: relative; .tab-slider { @include ltr-style { left: 0; } @include rtl-style { right: 0; } } ~ .tab-content { .card & { @include ltr-style { border-right: $nav-tabs-border-width solid $nav-tabs-border-color; } @include rtl-style { border-left: $nav-tabs-border-width solid $nav-tabs-border-color; } } @include ltr-style { @include border-end-radius(0); } @include rtl-style { @include border-start-radius(0); } } } > .nav .nav-item, > div > .nav .nav-item { margin-left: -1px; margin-bottom: 0; @include rtl-style { margin-left: 0; margin-right: -1px; } } .nav-link { text-align: right; justify-content: end; } } // Bottom tabs .nav-align-bottom { flex-direction: column-reverse; > .nav .nav-item, > div > .nav .nav-item { margin-bottom: 0; margin-top: -1px; } > .nav, > div > .nav { border-bottom-width: 0; border-top: $nav-tabs-border-width solid $nav-tabs-border-color; } .nav-tabs { ~ .tab-content { @include border-bottom-radius(0); } .tab-slider { bottom: inherit !important; } } } // Left tabs .nav-align-left { // position: relative; .nav-tabs { position: relative; ~ .tab-content { .card & { @include ltr-style { border-left: $nav-tabs-border-width solid $nav-tabs-border-color; } @include rtl-style { border-right: $nav-tabs-border-width solid $nav-tabs-border-color; } } @include ltr-style { @include border-start-radius(0); } @include rtl-style { @include border-end-radius(0); } } } > .nav .nav-item, > div > .nav .nav-item { margin-right: -1px; margin-bottom: 0; @include rtl-style { margin-right: 0; margin-left: -1px; } } .nav-link { text-align: left; justify-content: start; } } // Tab content .nav-align-top > .tab-content, .nav-align-right > .tab-content, .nav-align-bottom > .tab-content, .nav-align-left > .tab-content { flex-shrink: 1; box-shadow: $card-box-shadow; background-clip: padding-box; background: $nav-tabs-link-active-bg; .card & { background: transparent; } } .card .tab-content { box-shadow: none !important; } // Dark @if $dark-style { .nav-tabs { .nav-link.active { border-color: $border-inner-color; border-bottom-color: $nav-tabs-link-active-bg; } } .nav-align-top, .nav-align-bottom, .nav-align-left, .nav-align-right { .nav-tabs { .nav-link.active { border-color: $gray-300; @include rtl-style { border-right-color: $gray-300 !important; } } } } .nav-align-top { .nav-tabs { .nav-link.active { border-bottom-color: $nav-tabs-link-active-bg !important; } } } .nav-align-bottom { .nav-tabs { .nav-link.active { border-top-color: $nav-tabs-link-active-bg !important; } } } } // RTL @include rtl-only { .nav { padding-right: 0; } .nav-align-left { .nav-link { text-align: right; } } .nav-align-right { .nav-link { text-align: left; } } }